mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-12-14 00:08:46 +00:00
Merge commit 'eb118d85238da8d0583868abab2756bb329742ba' into glitch-soc/merge-upstream
Conflicts: - `yarn.lock`: Upstream updated dependencies textually adjacent to glitch-soc-only ones. Updated them as upstream did.
This commit is contained in:
@@ -791,10 +791,10 @@ GEM
|
||||
rubocop-i18n (3.2.3)
|
||||
lint_roller (~> 1.1)
|
||||
rubocop (>= 1.72.1)
|
||||
rubocop-performance (1.25.0)
|
||||
rubocop-performance (1.26.0)
|
||||
lint_roller (~> 1.1)
|
||||
rubocop (>= 1.75.0, < 2.0)
|
||||
rubocop-ast (>= 1.38.0, < 2.0)
|
||||
rubocop-ast (>= 1.44.0, < 2.0)
|
||||
rubocop-rails (2.33.3)
|
||||
activesupport (>= 4.2.0)
|
||||
lint_roller (~> 1.1)
|
||||
@@ -817,7 +817,7 @@ GEM
|
||||
ruby-vips (2.2.5)
|
||||
ffi (~> 1.12)
|
||||
logger
|
||||
rubyzip (3.0.2)
|
||||
rubyzip (3.1.0)
|
||||
rufus-scheduler (3.9.2)
|
||||
fugit (~> 1.1, >= 1.11.1)
|
||||
safety_net_attestation (0.4.0)
|
||||
|
||||
82
app/controllers/activitypub/contexts_controller.rb
Normal file
82
app/controllers/activitypub/contexts_controller.rb
Normal file
@@ -0,0 +1,82 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::ContextsController < ActivityPub::BaseController
|
||||
vary_by -> { 'Signature' if authorized_fetch_mode? }
|
||||
|
||||
before_action :require_account_signature!, if: :authorized_fetch_mode?
|
||||
before_action :set_conversation
|
||||
before_action :set_items
|
||||
|
||||
DESCENDANTS_LIMIT = 60
|
||||
|
||||
def show
|
||||
expires_in 3.minutes, public: public_fetch_mode?
|
||||
render_with_cache json: context_presenter, serializer: ActivityPub::ContextSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
|
||||
end
|
||||
|
||||
def items
|
||||
expires_in 3.minutes, public: public_fetch_mode?
|
||||
render_with_cache json: items_collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def account_required?
|
||||
false
|
||||
end
|
||||
|
||||
def set_conversation
|
||||
account_id, status_id = params[:id].split('-')
|
||||
@conversation = Conversation.local.find_by(parent_account_id: account_id, parent_status_id: status_id)
|
||||
end
|
||||
|
||||
def set_items
|
||||
@items = @conversation.statuses.distributable_visibility.paginate_by_min_id(DESCENDANTS_LIMIT, params[:min_id])
|
||||
end
|
||||
|
||||
def context_presenter
|
||||
first_page = ActivityPub::CollectionPresenter.new(
|
||||
id: items_context_url(@conversation, page_params),
|
||||
type: :unordered,
|
||||
part_of: items_context_url(@conversation),
|
||||
next: next_page,
|
||||
items: @items.map { |status| status.local? ? ActivityPub::TagManager.instance.uri_for(status) : status.uri }
|
||||
)
|
||||
|
||||
ActivityPub::ContextPresenter.from_conversation(@conversation).tap do |presenter|
|
||||
presenter.first = first_page
|
||||
end
|
||||
end
|
||||
|
||||
def items_collection_presenter
|
||||
page = ActivityPub::CollectionPresenter.new(
|
||||
id: items_context_url(@conversation, page_params),
|
||||
type: :unordered,
|
||||
part_of: items_context_url(@conversation),
|
||||
next: next_page,
|
||||
items: @items.map { |status| status.local? ? ActivityPub::TagManager.instance.uri_for(status) : status.uri }
|
||||
)
|
||||
|
||||
return page if page_requested?
|
||||
|
||||
ActivityPub::CollectionPresenter.new(
|
||||
id: items_context_url(@conversation),
|
||||
type: :unordered,
|
||||
first: page
|
||||
)
|
||||
end
|
||||
|
||||
def page_requested?
|
||||
truthy_param?(:page)
|
||||
end
|
||||
|
||||
def next_page
|
||||
return nil if @items.size < DESCENDANTS_LIMIT
|
||||
|
||||
items_context_url(@conversation, page: true, min_id: @items.last.id)
|
||||
end
|
||||
|
||||
def page_params
|
||||
params.permit(:page, :min_id)
|
||||
end
|
||||
end
|
||||
@@ -6,4 +6,10 @@ class Settings::Preferences::PostingDefaultsController < Settings::Preferences::
|
||||
def after_update_redirect_path
|
||||
settings_preferences_posting_defaults_path
|
||||
end
|
||||
|
||||
def user_params
|
||||
super.tap do |params|
|
||||
params[:settings_attributes][:default_quote_policy] = 'nobody' if params[:settings_attributes][:default_privacy] == 'private'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -145,6 +145,10 @@ function loaded() {
|
||||
);
|
||||
});
|
||||
|
||||
updateDefaultQuotePrivacyFromPrivacy(
|
||||
document.querySelector('#user_settings_attributes_default_privacy'),
|
||||
);
|
||||
|
||||
const reactComponents = document.querySelectorAll('[data-component]');
|
||||
|
||||
if (reactComponents.length > 0) {
|
||||
@@ -364,6 +368,34 @@ Rails.delegate(
|
||||
},
|
||||
);
|
||||
|
||||
const updateDefaultQuotePrivacyFromPrivacy = (
|
||||
privacySelect: EventTarget | null,
|
||||
) => {
|
||||
if (!(privacySelect instanceof HTMLSelectElement) || !privacySelect.form)
|
||||
return;
|
||||
|
||||
const select = privacySelect.form.querySelector<HTMLSelectElement>(
|
||||
'select#user_settings_attributes_default_quote_policy',
|
||||
);
|
||||
if (!select) return;
|
||||
|
||||
if (privacySelect.value === 'private') {
|
||||
select.value = 'nobody';
|
||||
setInputDisabled(select, true);
|
||||
} else {
|
||||
setInputDisabled(select, false);
|
||||
}
|
||||
};
|
||||
|
||||
Rails.delegate(
|
||||
document,
|
||||
'#user_settings_attributes_default_privacy',
|
||||
'change',
|
||||
({ target }) => {
|
||||
updateDefaultQuotePrivacyFromPrivacy(target);
|
||||
},
|
||||
);
|
||||
|
||||
// Empty the honeypot fields in JS in case something like an extension
|
||||
// automatically filled them.
|
||||
Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
|
||||
|
||||
@@ -16,6 +16,7 @@ import type { Status } from '../models/status';
|
||||
|
||||
import { showAlert } from './alerts';
|
||||
import { focusCompose } from './compose';
|
||||
import { openModal } from './modal';
|
||||
|
||||
const messages = defineMessages({
|
||||
quoteErrorUpload: {
|
||||
@@ -110,8 +111,16 @@ export const quoteCompose = createAppThunk(
|
||||
|
||||
export const quoteComposeByStatus = createAppThunk(
|
||||
(status: Status, { dispatch, getState }) => {
|
||||
const composeState = getState().compose;
|
||||
const state = getState();
|
||||
const composeState = state.compose;
|
||||
const mediaAttachments = composeState.get('media_attachments');
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const wasQuietPostHintModalDismissed: boolean =
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
|
||||
state.settings.getIn(
|
||||
['dismissed_banners', 'quote/quiet_post_hint'],
|
||||
false,
|
||||
);
|
||||
|
||||
if (composeState.get('poll')) {
|
||||
dispatch(showAlert({ message: messages.quoteErrorPoll }));
|
||||
@@ -131,6 +140,16 @@ export const quoteComposeByStatus = createAppThunk(
|
||||
status.getIn(['quote_approval', 'current_user']) !== 'manual'
|
||||
) {
|
||||
dispatch(showAlert({ message: messages.quoteErrorUnauthorized }));
|
||||
} else if (
|
||||
status.get('visibility') === 'unlisted' &&
|
||||
!wasQuietPostHintModalDismissed
|
||||
) {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'CONFIRM_QUIET_QUOTE',
|
||||
modalProps: { status },
|
||||
}),
|
||||
);
|
||||
} else {
|
||||
dispatch(quoteCompose(status));
|
||||
}
|
||||
|
||||
@@ -21,6 +21,15 @@ export function normalizeFilterResult(result) {
|
||||
return normalResult;
|
||||
}
|
||||
|
||||
function stripQuoteFallback(text) {
|
||||
const wrapper = document.createElement('div');
|
||||
wrapper.innerHTML = text;
|
||||
|
||||
wrapper.querySelector('.quote-inline')?.remove();
|
||||
|
||||
return wrapper.innerHTML;
|
||||
}
|
||||
|
||||
export function normalizeStatus(status, normalOldStatus) {
|
||||
const normalStatus = { ...status };
|
||||
|
||||
@@ -86,6 +95,11 @@ export function normalizeStatus(status, normalOldStatus) {
|
||||
normalStatus.spoilerHtml = emojify(escapeTextContentForBrowser(spoilerText), emojiMap);
|
||||
normalStatus.hidden = expandSpoilers ? false : spoilerText.length > 0 || normalStatus.sensitive;
|
||||
|
||||
// Remove quote fallback link from the DOM so it doesn't mess with paragraph margins
|
||||
if (normalStatus.quote) {
|
||||
normalStatus.contentHtml = stripQuoteFallback(normalStatus.contentHtml);
|
||||
}
|
||||
|
||||
if (normalStatus.url && !(normalStatus.url.startsWith('http://') || normalStatus.url.startsWith('https://'))) {
|
||||
normalStatus.url = null;
|
||||
}
|
||||
@@ -125,6 +139,11 @@ export function normalizeStatusTranslation(translation, status) {
|
||||
spoiler_text: translation.spoiler_text,
|
||||
};
|
||||
|
||||
// Remove quote fallback link from the DOM so it doesn't mess with paragraph margins
|
||||
if (status.get('quote')) {
|
||||
normalTranslation.contentHtml = stripQuoteFallback(normalTranslation.contentHtml);
|
||||
}
|
||||
|
||||
return normalTranslation;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,28 @@
|
||||
import { useCallback, useId, useMemo, useRef, useState } from 'react';
|
||||
import type { ComponentPropsWithoutRef, FC } from 'react';
|
||||
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import { useIntl } from 'react-intl';
|
||||
import type { MessageDescriptor } from 'react-intl';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
|
||||
import UnfoldMoreIcon from '@/material-icons/400-24px/unfold_more.svg?react';
|
||||
|
||||
import type { SelectItem } from '../dropdown_selector';
|
||||
import { DropdownSelector } from '../dropdown_selector';
|
||||
import { Icon } from '../icon';
|
||||
|
||||
import { matchWidth } from './utils';
|
||||
|
||||
interface DropdownProps {
|
||||
title: string;
|
||||
disabled?: boolean;
|
||||
items: SelectItem[];
|
||||
onChange: (value: string) => void;
|
||||
current: string;
|
||||
labelId: string;
|
||||
descriptionId?: string;
|
||||
emptyText?: MessageDescriptor;
|
||||
classPrefix: string;
|
||||
}
|
||||
@@ -24,39 +30,59 @@ interface DropdownProps {
|
||||
export const Dropdown: FC<
|
||||
DropdownProps & Omit<ComponentPropsWithoutRef<'button'>, keyof DropdownProps>
|
||||
> = ({
|
||||
title,
|
||||
disabled,
|
||||
items,
|
||||
current,
|
||||
onChange,
|
||||
labelId,
|
||||
descriptionId,
|
||||
classPrefix,
|
||||
className,
|
||||
id,
|
||||
...buttonProps
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
const buttonRef = useRef<HTMLButtonElement>(null);
|
||||
const accessibilityId = useId();
|
||||
const uniqueId = useId();
|
||||
const buttonId = id ?? `${uniqueId}-button`;
|
||||
const listboxId = `${uniqueId}-listbox`;
|
||||
|
||||
const [open, setOpen] = useState(false);
|
||||
|
||||
const handleToggle = useCallback(() => {
|
||||
if (!disabled) {
|
||||
setOpen((prevOpen) => !prevOpen);
|
||||
setOpen((prevOpen) => {
|
||||
buttonRef.current?.focus();
|
||||
return !prevOpen;
|
||||
});
|
||||
}
|
||||
}, [disabled]);
|
||||
|
||||
const handleClose = useCallback(() => {
|
||||
setOpen(false);
|
||||
buttonRef.current?.focus();
|
||||
}, []);
|
||||
|
||||
const currentText = useMemo(
|
||||
() => items.find((i) => i.value === current)?.text,
|
||||
[current, items],
|
||||
() =>
|
||||
items.find((i) => i.value === current)?.text ??
|
||||
intl.formatMessage({
|
||||
id: 'dropdown.empty',
|
||||
defaultMessage: 'Select an option',
|
||||
}),
|
||||
[current, intl, items],
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
<button
|
||||
type='button'
|
||||
{...buttonProps}
|
||||
title={title}
|
||||
id={buttonId}
|
||||
aria-labelledby={`${labelId} ${buttonId}`}
|
||||
aria-describedby={descriptionId}
|
||||
aria-expanded={open}
|
||||
aria-controls={accessibilityId}
|
||||
aria-controls={listboxId}
|
||||
onClick={handleToggle}
|
||||
disabled={disabled}
|
||||
className={classNames(
|
||||
@@ -69,23 +95,24 @@ export const Dropdown: FC<
|
||||
)}
|
||||
ref={buttonRef}
|
||||
>
|
||||
{currentText ?? (
|
||||
<FormattedMessage
|
||||
id='dropdown.empty'
|
||||
defaultMessage='Select an option'
|
||||
/>
|
||||
)}
|
||||
{currentText}
|
||||
<Icon
|
||||
id='unfold-icon'
|
||||
icon={UnfoldMoreIcon}
|
||||
className={`${classPrefix}__icon`}
|
||||
/>
|
||||
</button>
|
||||
|
||||
<Overlay
|
||||
show={open}
|
||||
offset={[0, 4]}
|
||||
offset={[0, 0]}
|
||||
placement='bottom-start'
|
||||
onHide={handleClose}
|
||||
flip
|
||||
target={buttonRef.current}
|
||||
popperConfig={{
|
||||
strategy: 'fixed',
|
||||
modifiers: [matchWidth],
|
||||
}}
|
||||
>
|
||||
{({ props, placement }) => (
|
||||
@@ -96,7 +123,7 @@ export const Dropdown: FC<
|
||||
`${classPrefix}__dropdown`,
|
||||
placement,
|
||||
)}
|
||||
id={accessibilityId}
|
||||
id={listboxId}
|
||||
>
|
||||
<DropdownSelector
|
||||
items={items}
|
||||
|
||||
17
app/javascript/mastodon/components/dropdown/utils.ts
Normal file
17
app/javascript/mastodon/components/dropdown/utils.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import type { Modifier, UsePopperState } from 'react-overlays/esm/usePopper';
|
||||
|
||||
export const matchWidth: Modifier<'sameWidth', UsePopperState> = {
|
||||
name: 'sameWidth',
|
||||
enabled: true,
|
||||
phase: 'beforeWrite',
|
||||
requires: ['computeStyles'],
|
||||
fn: ({ state }) => {
|
||||
if (state.styles.popper) {
|
||||
state.styles.popper.width = `${state.rects.reference.width}px`;
|
||||
}
|
||||
},
|
||||
effect: ({ state }) => {
|
||||
const reference = state.elements.reference as HTMLElement;
|
||||
state.elements.popper.style.width = `${reference.offsetWidth}px`;
|
||||
},
|
||||
};
|
||||
@@ -36,6 +36,7 @@ import {
|
||||
import type { MenuItem } from 'mastodon/models/dropdown_menu';
|
||||
import { useAppDispatch, useAppSelector } from 'mastodon/store';
|
||||
|
||||
import { Icon } from './icon';
|
||||
import type { IconProp } from './icon';
|
||||
import { IconButton } from './icon_button';
|
||||
|
||||
@@ -68,6 +69,27 @@ interface DropdownMenuProps<Item = MenuItem> {
|
||||
onItemClick?: ItemClickFn<Item>;
|
||||
}
|
||||
|
||||
export const DropdownMenuItemContent: React.FC<{ item: MenuItem }> = ({
|
||||
item,
|
||||
}) => {
|
||||
if (item === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { text, description, icon } = item;
|
||||
return (
|
||||
<>
|
||||
{icon && <Icon icon={icon} id={`${text}-icon`} />}
|
||||
<span className='dropdown-menu__item-content'>
|
||||
{text}
|
||||
{Boolean(description) && (
|
||||
<span className='dropdown-menu__item-subtitle'>{description}</span>
|
||||
)}
|
||||
</span>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export const DropdownMenu = <Item = MenuItem,>({
|
||||
items,
|
||||
loading,
|
||||
@@ -200,7 +222,7 @@ export const DropdownMenu = <Item = MenuItem,>({
|
||||
return <li key={`sep-${i}`} className='dropdown-menu__separator' />;
|
||||
}
|
||||
|
||||
const { text, dangerous } = option;
|
||||
const { text, highlighted, disabled, dangerous } = option;
|
||||
|
||||
let element: React.ReactElement;
|
||||
|
||||
@@ -211,8 +233,9 @@ export const DropdownMenu = <Item = MenuItem,>({
|
||||
onClick={handleItemClick}
|
||||
onKeyUp={handleItemKeyUp}
|
||||
data-index={i}
|
||||
disabled={disabled}
|
||||
>
|
||||
{text}
|
||||
<DropdownMenuItemContent item={option} />
|
||||
</button>
|
||||
);
|
||||
} else if (isExternalLinkItem(option)) {
|
||||
@@ -227,7 +250,7 @@ export const DropdownMenu = <Item = MenuItem,>({
|
||||
onKeyUp={handleItemKeyUp}
|
||||
data-index={i}
|
||||
>
|
||||
{text}
|
||||
<DropdownMenuItemContent item={option} />
|
||||
</a>
|
||||
);
|
||||
} else {
|
||||
@@ -239,7 +262,7 @@ export const DropdownMenu = <Item = MenuItem,>({
|
||||
onKeyUp={handleItemKeyUp}
|
||||
data-index={i}
|
||||
>
|
||||
{text}
|
||||
<DropdownMenuItemContent item={option} />
|
||||
</Link>
|
||||
);
|
||||
}
|
||||
@@ -247,6 +270,7 @@ export const DropdownMenu = <Item = MenuItem,>({
|
||||
return (
|
||||
<li
|
||||
className={classNames('dropdown-menu__item', {
|
||||
'dropdown-menu__item--highlighted': highlighted,
|
||||
'dropdown-menu__item--dangerous': dangerous,
|
||||
})}
|
||||
key={`${text}-${i}`}
|
||||
|
||||
@@ -39,24 +39,10 @@ export const DropdownSelector: React.FC<Props> = ({
|
||||
onClose,
|
||||
onChange,
|
||||
}) => {
|
||||
const nodeRef = useRef<HTMLUListElement>(null);
|
||||
const listRef = useRef<HTMLUListElement>(null);
|
||||
const focusedItemRef = useRef<HTMLLIElement>(null);
|
||||
const [currentValue, setCurrentValue] = useState(value);
|
||||
|
||||
const handleDocumentClick = useCallback(
|
||||
(e: MouseEvent | TouchEvent) => {
|
||||
if (
|
||||
nodeRef.current &&
|
||||
e.target instanceof Node &&
|
||||
!nodeRef.current.contains(e.target)
|
||||
) {
|
||||
onClose();
|
||||
e.stopPropagation();
|
||||
}
|
||||
},
|
||||
[nodeRef, onClose],
|
||||
);
|
||||
|
||||
const handleClick = useCallback(
|
||||
(
|
||||
e: React.MouseEvent<HTMLLIElement> | React.KeyboardEvent<HTMLLIElement>,
|
||||
@@ -88,30 +74,30 @@ export const DropdownSelector: React.FC<Props> = ({
|
||||
break;
|
||||
case 'ArrowDown':
|
||||
element =
|
||||
nodeRef.current?.children[index + 1] ??
|
||||
nodeRef.current?.firstElementChild;
|
||||
listRef.current?.children[index + 1] ??
|
||||
listRef.current?.firstElementChild;
|
||||
break;
|
||||
case 'ArrowUp':
|
||||
element =
|
||||
nodeRef.current?.children[index - 1] ??
|
||||
nodeRef.current?.lastElementChild;
|
||||
listRef.current?.children[index - 1] ??
|
||||
listRef.current?.lastElementChild;
|
||||
break;
|
||||
case 'Tab':
|
||||
if (e.shiftKey) {
|
||||
element =
|
||||
nodeRef.current?.children[index - 1] ??
|
||||
nodeRef.current?.lastElementChild;
|
||||
listRef.current?.children[index - 1] ??
|
||||
listRef.current?.lastElementChild;
|
||||
} else {
|
||||
element =
|
||||
nodeRef.current?.children[index + 1] ??
|
||||
nodeRef.current?.firstElementChild;
|
||||
listRef.current?.children[index + 1] ??
|
||||
listRef.current?.firstElementChild;
|
||||
}
|
||||
break;
|
||||
case 'Home':
|
||||
element = nodeRef.current?.firstElementChild;
|
||||
element = listRef.current?.firstElementChild;
|
||||
break;
|
||||
case 'End':
|
||||
element = nodeRef.current?.lastElementChild;
|
||||
element = listRef.current?.lastElementChild;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -123,12 +109,24 @@ export const DropdownSelector: React.FC<Props> = ({
|
||||
e.stopPropagation();
|
||||
}
|
||||
},
|
||||
[nodeRef, items, onClose, handleClick, setCurrentValue],
|
||||
[items, onClose, handleClick, setCurrentValue],
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
const handleDocumentClick = (e: MouseEvent | TouchEvent) => {
|
||||
if (
|
||||
listRef.current &&
|
||||
e.target instanceof Node &&
|
||||
!listRef.current.contains(e.target)
|
||||
) {
|
||||
onClose();
|
||||
e.stopPropagation();
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('click', handleDocumentClick, { capture: true });
|
||||
document.addEventListener('touchend', handleDocumentClick, listenerOptions);
|
||||
|
||||
focusedItemRef.current?.focus({ preventScroll: true });
|
||||
|
||||
return () => {
|
||||
@@ -141,10 +139,10 @@ export const DropdownSelector: React.FC<Props> = ({
|
||||
listenerOptions,
|
||||
);
|
||||
};
|
||||
}, [handleDocumentClick]);
|
||||
}, [onClose]);
|
||||
|
||||
return (
|
||||
<ul style={style} role='listbox' ref={nodeRef}>
|
||||
<ul style={style} role='listbox' ref={listRef}>
|
||||
{items.map((item) => (
|
||||
<li
|
||||
role='option'
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
|
||||
import type { StatusVisibility } from '@/mastodon/api_types/statuses';
|
||||
import { statusFactoryState } from '@/testing/factories';
|
||||
|
||||
import { LegacyReblogButton, StatusReblogButton } from './reblog_button';
|
||||
import { LegacyReblogButton, StatusBoostButton } from './boost_button';
|
||||
|
||||
interface StoryProps {
|
||||
visibility: StatusVisibility;
|
||||
@@ -13,7 +13,7 @@ interface StoryProps {
|
||||
}
|
||||
|
||||
const meta = {
|
||||
title: 'Components/Status/ReblogButton',
|
||||
title: 'Components/Status/BoostButton',
|
||||
args: {
|
||||
visibility: 'public',
|
||||
quoteAllowed: true,
|
||||
@@ -38,7 +38,7 @@ const meta = {
|
||||
},
|
||||
},
|
||||
render: (args) => (
|
||||
<StatusReblogButton
|
||||
<StatusBoostButton
|
||||
status={argsToStatus(args)}
|
||||
counters={args.reblogCount > 0}
|
||||
/>
|
||||
253
app/javascript/mastodon/components/status/boost_button.tsx
Normal file
253
app/javascript/mastodon/components/status/boost_button.tsx
Normal file
@@ -0,0 +1,253 @@
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import type { FC, KeyboardEvent, MouseEvent, MouseEventHandler } from 'react';
|
||||
|
||||
import { useIntl } from 'react-intl';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
import { quoteComposeById } from '@/mastodon/actions/compose_typed';
|
||||
import { toggleReblog } from '@/mastodon/actions/interactions';
|
||||
import { openModal } from '@/mastodon/actions/modal';
|
||||
import type { ActionMenuItem } from '@/mastodon/models/dropdown_menu';
|
||||
import type { Status } from '@/mastodon/models/status';
|
||||
import { useAppDispatch, useAppSelector } from '@/mastodon/store';
|
||||
import { isFeatureEnabled } from '@/mastodon/utils/environment';
|
||||
import type { SomeRequired } from '@/mastodon/utils/types';
|
||||
|
||||
import type { RenderItemFn, RenderItemFnHandlers } from '../dropdown_menu';
|
||||
import { Dropdown, DropdownMenuItemContent } from '../dropdown_menu';
|
||||
import { IconButton } from '../icon_button';
|
||||
|
||||
import {
|
||||
boostItemState,
|
||||
messages,
|
||||
quoteItemState,
|
||||
selectStatusState,
|
||||
} from './boost_button_utils';
|
||||
|
||||
const renderMenuItem: RenderItemFn<ActionMenuItem> = (
|
||||
item,
|
||||
index,
|
||||
handlers,
|
||||
focusRefCallback,
|
||||
) => (
|
||||
<ReblogMenuItem
|
||||
index={index}
|
||||
item={item}
|
||||
handlers={handlers}
|
||||
key={`${item.text}-${index}`}
|
||||
focusRefCallback={focusRefCallback}
|
||||
/>
|
||||
);
|
||||
|
||||
interface ReblogButtonProps {
|
||||
status: Status;
|
||||
counters?: boolean;
|
||||
}
|
||||
|
||||
type ActionMenuItemWithIcon = SomeRequired<ActionMenuItem, 'icon'>;
|
||||
|
||||
export const StatusBoostButton: FC<ReblogButtonProps> = ({
|
||||
status,
|
||||
counters,
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
const dispatch = useAppDispatch();
|
||||
const statusState = useAppSelector((state) =>
|
||||
selectStatusState(state, status),
|
||||
);
|
||||
const {
|
||||
isLoggedIn,
|
||||
isReblogged,
|
||||
isReblogAllowed,
|
||||
isQuoteAutomaticallyAccepted,
|
||||
isQuoteManuallyAccepted,
|
||||
} = statusState;
|
||||
|
||||
const isMenuDisabled =
|
||||
!isQuoteAutomaticallyAccepted &&
|
||||
!isQuoteManuallyAccepted &&
|
||||
!isReblogAllowed;
|
||||
|
||||
const statusId = status.get('id') as string;
|
||||
const wasBoosted = !!status.get('reblogged');
|
||||
|
||||
const items = useMemo(() => {
|
||||
const boostItem = boostItemState(statusState);
|
||||
const quoteItem = quoteItemState(statusState);
|
||||
return [
|
||||
{
|
||||
text: intl.formatMessage(boostItem.title),
|
||||
description: boostItem.meta
|
||||
? intl.formatMessage(boostItem.meta)
|
||||
: undefined,
|
||||
icon: boostItem.iconComponent,
|
||||
highlighted: wasBoosted,
|
||||
disabled: boostItem.disabled,
|
||||
action: (event) => {
|
||||
if (isLoggedIn) {
|
||||
dispatch(toggleReblog(statusId, event.shiftKey));
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
text: intl.formatMessage(quoteItem.title),
|
||||
description: quoteItem.meta
|
||||
? intl.formatMessage(quoteItem.meta)
|
||||
: undefined,
|
||||
icon: quoteItem.iconComponent,
|
||||
disabled: quoteItem.disabled,
|
||||
action: () => {
|
||||
if (isLoggedIn) {
|
||||
dispatch(quoteComposeById(statusId));
|
||||
}
|
||||
},
|
||||
},
|
||||
] satisfies [ActionMenuItemWithIcon, ActionMenuItemWithIcon];
|
||||
}, [dispatch, intl, isLoggedIn, statusId, statusState, wasBoosted]);
|
||||
|
||||
const boostIcon = items[0].icon;
|
||||
|
||||
const handleDropdownOpen = useCallback(
|
||||
(event: MouseEvent | KeyboardEvent) => {
|
||||
if (!isLoggedIn) {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'INTERACTION',
|
||||
modalProps: {
|
||||
type: 'reblog',
|
||||
accountId: status.getIn(['account', 'id']),
|
||||
url: status.get('uri'),
|
||||
},
|
||||
}),
|
||||
);
|
||||
} else if (event.shiftKey) {
|
||||
dispatch(toggleReblog(status.get('id'), true));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
[dispatch, isLoggedIn, status],
|
||||
);
|
||||
|
||||
return (
|
||||
<Dropdown
|
||||
items={items}
|
||||
renderItem={renderMenuItem}
|
||||
onOpen={handleDropdownOpen}
|
||||
disabled={isMenuDisabled}
|
||||
>
|
||||
<IconButton
|
||||
title={intl.formatMessage(
|
||||
isMenuDisabled ? messages.all_disabled : messages.reblog_or_quote,
|
||||
)}
|
||||
icon='retweet'
|
||||
iconComponent={boostIcon}
|
||||
counter={
|
||||
counters
|
||||
? (status.get('reblogs_count') as number) +
|
||||
(status.get('quotes_count') as number)
|
||||
: undefined
|
||||
}
|
||||
active={isReblogged}
|
||||
/>
|
||||
</Dropdown>
|
||||
);
|
||||
};
|
||||
|
||||
interface ReblogMenuItemProps {
|
||||
item: ActionMenuItem;
|
||||
index: number;
|
||||
handlers: RenderItemFnHandlers;
|
||||
focusRefCallback?: (c: HTMLAnchorElement | HTMLButtonElement | null) => void;
|
||||
}
|
||||
|
||||
const ReblogMenuItem: FC<ReblogMenuItemProps> = ({
|
||||
index,
|
||||
item,
|
||||
handlers,
|
||||
focusRefCallback,
|
||||
}) => {
|
||||
const { text, highlighted, disabled } = item;
|
||||
|
||||
return (
|
||||
<li
|
||||
className={classNames('dropdown-menu__item reblog-menu-item', {
|
||||
'dropdown-menu__item--highlighted': highlighted,
|
||||
})}
|
||||
key={`${text}-${index}`}
|
||||
>
|
||||
<button
|
||||
{...handlers}
|
||||
ref={focusRefCallback}
|
||||
disabled={disabled}
|
||||
data-index={index}
|
||||
>
|
||||
<DropdownMenuItemContent item={item} />
|
||||
</button>
|
||||
</li>
|
||||
);
|
||||
};
|
||||
|
||||
// Legacy helpers
|
||||
|
||||
// Switch between the legacy and new reblog button based on feature flag.
|
||||
export const BoostButton: FC<ReblogButtonProps> = (props) => {
|
||||
if (isFeatureEnabled('outgoing_quotes')) {
|
||||
return <StatusBoostButton {...props} />;
|
||||
}
|
||||
return <LegacyReblogButton {...props} />;
|
||||
};
|
||||
|
||||
export const LegacyReblogButton: FC<ReblogButtonProps> = ({
|
||||
status,
|
||||
counters,
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
const statusState = useAppSelector((state) =>
|
||||
selectStatusState(state, status),
|
||||
);
|
||||
|
||||
const { title, meta, iconComponent, disabled } = useMemo(
|
||||
() => boostItemState(statusState),
|
||||
[statusState],
|
||||
);
|
||||
|
||||
const dispatch = useAppDispatch();
|
||||
const handleClick: MouseEventHandler = useCallback(
|
||||
(event) => {
|
||||
if (statusState.isLoggedIn) {
|
||||
dispatch(toggleReblog(status.get('id') as string, event.shiftKey));
|
||||
} else {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'INTERACTION',
|
||||
modalProps: {
|
||||
type: 'reblog',
|
||||
accountId: status.getIn(['account', 'id']),
|
||||
url: status.get('uri'),
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
},
|
||||
[dispatch, status, statusState.isLoggedIn],
|
||||
);
|
||||
|
||||
return (
|
||||
<IconButton
|
||||
disabled={disabled}
|
||||
active={!!status.get('reblogged')}
|
||||
title={intl.formatMessage(meta ?? title)}
|
||||
icon='retweet'
|
||||
iconComponent={iconComponent}
|
||||
onClick={!disabled ? handleClick : undefined}
|
||||
counter={
|
||||
counters
|
||||
? (status.get('reblogs_count') as number) +
|
||||
(status.get('quotes_count') as number)
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
);
|
||||
};
|
||||
161
app/javascript/mastodon/components/status/boost_button_utils.ts
Normal file
161
app/javascript/mastodon/components/status/boost_button_utils.ts
Normal file
@@ -0,0 +1,161 @@
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { MessageDescriptor } from 'react-intl';
|
||||
|
||||
import type { Status, StatusVisibility } from '@/mastodon/models/status';
|
||||
import { createAppSelector } from '@/mastodon/store';
|
||||
import FormatQuote from '@/material-icons/400-24px/format_quote-fill.svg?react';
|
||||
import FormatQuoteOff from '@/material-icons/400-24px/format_quote_off-fill.svg?react';
|
||||
import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';
|
||||
import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react';
|
||||
import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react';
|
||||
import RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react';
|
||||
import RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react';
|
||||
|
||||
import type { IconProp } from '../icon';
|
||||
|
||||
export const messages = defineMessages({
|
||||
all_disabled: {
|
||||
id: 'status.all_disabled',
|
||||
defaultMessage: 'Boosts and quotes are disabled',
|
||||
},
|
||||
quote: { id: 'status.quote', defaultMessage: 'Quote' },
|
||||
quote_cannot: {
|
||||
id: 'status.cannot_quote',
|
||||
defaultMessage: 'Quotes are disabled on this post',
|
||||
},
|
||||
quote_followers_only: {
|
||||
id: 'status.quote_followers_only',
|
||||
defaultMessage: 'Only followers can quote this post',
|
||||
},
|
||||
quote_manual_review: {
|
||||
id: 'status.quote_manual_review',
|
||||
defaultMessage: 'Author will manually review',
|
||||
},
|
||||
quote_private: {
|
||||
id: 'status.quote_private',
|
||||
defaultMessage: 'Private posts cannot be quoted',
|
||||
},
|
||||
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
|
||||
reblog_or_quote: {
|
||||
id: 'status.reblog_or_quote',
|
||||
defaultMessage: 'Boost or quote',
|
||||
},
|
||||
reblog_cancel: {
|
||||
id: 'status.cancel_reblog_private',
|
||||
defaultMessage: 'Unboost',
|
||||
},
|
||||
reblog_private: {
|
||||
id: 'status.reblog_private',
|
||||
defaultMessage: 'Share again with your followers',
|
||||
},
|
||||
reblog_cannot: {
|
||||
id: 'status.cannot_reblog',
|
||||
defaultMessage: 'This post cannot be boosted',
|
||||
},
|
||||
request_quote: {
|
||||
id: 'status.request_quote',
|
||||
defaultMessage: 'Request to quote',
|
||||
},
|
||||
});
|
||||
|
||||
export const selectStatusState = createAppSelector(
|
||||
[
|
||||
(state) => state.meta.get('me') as string | undefined,
|
||||
(_, status: Status) => status,
|
||||
],
|
||||
(userId, status) => {
|
||||
const isPublic = ['public', 'unlisted'].includes(
|
||||
status.get('visibility') as StatusVisibility,
|
||||
);
|
||||
const isMineAndPrivate =
|
||||
userId === status.getIn(['account', 'id']) &&
|
||||
status.get('visibility') === 'private';
|
||||
return {
|
||||
isLoggedIn: !!userId,
|
||||
isPublic,
|
||||
isMine: userId === status.getIn(['account', 'id']),
|
||||
isPrivateReblog:
|
||||
userId === status.getIn(['account', 'id']) &&
|
||||
status.get('visibility') === 'private',
|
||||
isReblogged: !!status.get('reblogged'),
|
||||
isReblogAllowed: isPublic || isMineAndPrivate,
|
||||
isQuoteAutomaticallyAccepted:
|
||||
status.getIn(['quote_approval', 'current_user']) === 'automatic' &&
|
||||
(isPublic || isMineAndPrivate),
|
||||
isQuoteManuallyAccepted:
|
||||
status.getIn(['quote_approval', 'current_user']) === 'manual' &&
|
||||
(isPublic || isMineAndPrivate),
|
||||
isQuoteFollowersOnly:
|
||||
status.getIn(['quote_approval', 'automatic', 0]) === 'followers' ||
|
||||
status.getIn(['quote_approval', 'manual', 0]) === 'followers',
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
export type StatusState = ReturnType<typeof selectStatusState>;
|
||||
|
||||
export interface MenuItemState {
|
||||
title: MessageDescriptor;
|
||||
meta?: MessageDescriptor;
|
||||
iconComponent: IconProp;
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
export function boostItemState({
|
||||
isPublic,
|
||||
isPrivateReblog,
|
||||
isReblogged,
|
||||
}: StatusState): MenuItemState {
|
||||
if (isReblogged) {
|
||||
return {
|
||||
title: messages.reblog_cancel,
|
||||
iconComponent: isPublic ? RepeatActiveIcon : RepeatPrivateActiveIcon,
|
||||
};
|
||||
}
|
||||
const iconText: MenuItemState = {
|
||||
title: messages.reblog,
|
||||
iconComponent: RepeatIcon,
|
||||
};
|
||||
|
||||
if (isPrivateReblog) {
|
||||
iconText.meta = messages.reblog_private;
|
||||
iconText.iconComponent = RepeatPrivateIcon;
|
||||
} else if (!isPublic) {
|
||||
iconText.meta = messages.reblog_cannot;
|
||||
iconText.iconComponent = RepeatDisabledIcon;
|
||||
iconText.disabled = true;
|
||||
}
|
||||
return iconText;
|
||||
}
|
||||
|
||||
export function quoteItemState({
|
||||
isMine,
|
||||
isQuoteAutomaticallyAccepted,
|
||||
isQuoteManuallyAccepted,
|
||||
isQuoteFollowersOnly,
|
||||
isPublic,
|
||||
}: StatusState): MenuItemState {
|
||||
const iconText: MenuItemState = {
|
||||
title: messages.quote,
|
||||
iconComponent: FormatQuote,
|
||||
};
|
||||
|
||||
if (!isPublic && !isMine) {
|
||||
iconText.disabled = true;
|
||||
iconText.iconComponent = FormatQuoteOff;
|
||||
iconText.meta = messages.quote_private;
|
||||
} else if (isQuoteAutomaticallyAccepted) {
|
||||
iconText.title = messages.quote;
|
||||
} else if (isQuoteManuallyAccepted) {
|
||||
iconText.title = messages.request_quote;
|
||||
iconText.meta = messages.quote_manual_review;
|
||||
} else {
|
||||
iconText.disabled = true;
|
||||
iconText.iconComponent = FormatQuoteOff;
|
||||
iconText.meta = isQuoteFollowersOnly
|
||||
? messages.quote_followers_only
|
||||
: messages.quote_cannot;
|
||||
}
|
||||
|
||||
return iconText;
|
||||
}
|
||||
@@ -1,425 +0,0 @@
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import type {
|
||||
FC,
|
||||
KeyboardEvent,
|
||||
MouseEvent,
|
||||
MouseEventHandler,
|
||||
SVGProps,
|
||||
} from 'react';
|
||||
|
||||
import type { MessageDescriptor } from 'react-intl';
|
||||
import { defineMessages, useIntl } from 'react-intl';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
import { quoteComposeById } from '@/mastodon/actions/compose_typed';
|
||||
import { toggleReblog } from '@/mastodon/actions/interactions';
|
||||
import { openModal } from '@/mastodon/actions/modal';
|
||||
import type { ActionMenuItem } from '@/mastodon/models/dropdown_menu';
|
||||
import type { Status, StatusVisibility } from '@/mastodon/models/status';
|
||||
import {
|
||||
createAppSelector,
|
||||
useAppDispatch,
|
||||
useAppSelector,
|
||||
} from '@/mastodon/store';
|
||||
import { isFeatureEnabled } from '@/mastodon/utils/environment';
|
||||
import FormatQuote from '@/material-icons/400-24px/format_quote-fill.svg?react';
|
||||
import FormatQuoteOff from '@/material-icons/400-24px/format_quote_off-fill.svg?react';
|
||||
import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';
|
||||
import RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react';
|
||||
import RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react';
|
||||
import RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react';
|
||||
import RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react';
|
||||
|
||||
import type { RenderItemFn, RenderItemFnHandlers } from '../dropdown_menu';
|
||||
import { Dropdown } from '../dropdown_menu';
|
||||
import { Icon } from '../icon';
|
||||
import { IconButton } from '../icon_button';
|
||||
|
||||
const messages = defineMessages({
|
||||
all_disabled: {
|
||||
id: 'status.all_disabled',
|
||||
defaultMessage: 'Boosts and quotes are disabled',
|
||||
},
|
||||
quote: { id: 'status.quote', defaultMessage: 'Quote' },
|
||||
quote_cannot: {
|
||||
id: 'status.cannot_quote',
|
||||
defaultMessage: 'Quotes are disabled on this post',
|
||||
},
|
||||
quote_followers_only: {
|
||||
id: 'status.quote_followers_only',
|
||||
defaultMessage: 'Only followers can quote this post',
|
||||
},
|
||||
quote_manual_review: {
|
||||
id: 'status.quote_manual_review',
|
||||
defaultMessage: 'Author will manually review',
|
||||
},
|
||||
quote_private: {
|
||||
id: 'status.quote_private',
|
||||
defaultMessage: 'Private posts cannot be quoted',
|
||||
},
|
||||
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
|
||||
reblog_or_quote: {
|
||||
id: 'status.reblog_or_quote',
|
||||
defaultMessage: 'Boost or quote',
|
||||
},
|
||||
reblog_cancel: {
|
||||
id: 'status.cancel_reblog_private',
|
||||
defaultMessage: 'Unboost',
|
||||
},
|
||||
reblog_private: {
|
||||
id: 'status.reblog_private',
|
||||
defaultMessage: 'Share again with your followers',
|
||||
},
|
||||
reblog_cannot: {
|
||||
id: 'status.cannot_reblog',
|
||||
defaultMessage: 'This post cannot be boosted',
|
||||
},
|
||||
request_quote: {
|
||||
id: 'status.request_quote',
|
||||
defaultMessage: 'Request to quote',
|
||||
},
|
||||
});
|
||||
|
||||
interface ReblogButtonProps {
|
||||
status: Status;
|
||||
counters?: boolean;
|
||||
}
|
||||
|
||||
export const StatusReblogButton: FC<ReblogButtonProps> = ({
|
||||
status,
|
||||
counters,
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
|
||||
const statusState = useAppSelector((state) =>
|
||||
selectStatusState(state, status),
|
||||
);
|
||||
const {
|
||||
isLoggedIn,
|
||||
isReblogged,
|
||||
isReblogAllowed,
|
||||
isQuoteAutomaticallyAccepted,
|
||||
isQuoteManuallyAccepted,
|
||||
} = statusState;
|
||||
const { iconComponent } = useMemo(
|
||||
() => reblogIconText(statusState),
|
||||
[statusState],
|
||||
);
|
||||
const disabled =
|
||||
!isQuoteAutomaticallyAccepted &&
|
||||
!isQuoteManuallyAccepted &&
|
||||
!isReblogAllowed;
|
||||
|
||||
const dispatch = useAppDispatch();
|
||||
const statusId = status.get('id') as string;
|
||||
const items: ActionMenuItem[] = useMemo(
|
||||
() => [
|
||||
{
|
||||
text: 'reblog',
|
||||
action: (event) => {
|
||||
if (isLoggedIn) {
|
||||
dispatch(toggleReblog(statusId, event.shiftKey));
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
text: 'quote',
|
||||
action: () => {
|
||||
if (isLoggedIn) {
|
||||
dispatch(quoteComposeById(statusId));
|
||||
}
|
||||
},
|
||||
},
|
||||
],
|
||||
[dispatch, isLoggedIn, statusId],
|
||||
);
|
||||
|
||||
const handleDropdownOpen = useCallback(
|
||||
(event: MouseEvent | KeyboardEvent) => {
|
||||
if (!isLoggedIn) {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'INTERACTION',
|
||||
modalProps: {
|
||||
type: 'reblog',
|
||||
accountId: status.getIn(['account', 'id']),
|
||||
url: status.get('uri'),
|
||||
},
|
||||
}),
|
||||
);
|
||||
} else if (event.shiftKey) {
|
||||
dispatch(toggleReblog(status.get('id'), true));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
[dispatch, isLoggedIn, status],
|
||||
);
|
||||
|
||||
const renderMenuItem: RenderItemFn<ActionMenuItem> = useCallback(
|
||||
(item, index, handlers, focusRefCallback) => (
|
||||
<ReblogMenuItem
|
||||
status={status}
|
||||
index={index}
|
||||
item={item}
|
||||
handlers={handlers}
|
||||
key={`${item.text}-${index}`}
|
||||
focusRefCallback={focusRefCallback}
|
||||
/>
|
||||
),
|
||||
[status],
|
||||
);
|
||||
|
||||
return (
|
||||
<Dropdown
|
||||
items={items}
|
||||
renderItem={renderMenuItem}
|
||||
onOpen={handleDropdownOpen}
|
||||
disabled={disabled}
|
||||
>
|
||||
<IconButton
|
||||
title={intl.formatMessage(
|
||||
!disabled ? messages.reblog_or_quote : messages.all_disabled,
|
||||
)}
|
||||
icon='retweet'
|
||||
iconComponent={iconComponent}
|
||||
counter={
|
||||
counters
|
||||
? (status.get('reblogs_count') as number) +
|
||||
(status.get('quotes_count') as number)
|
||||
: undefined
|
||||
}
|
||||
active={isReblogged}
|
||||
/>
|
||||
</Dropdown>
|
||||
);
|
||||
};
|
||||
|
||||
interface ReblogMenuItemProps {
|
||||
status: Status;
|
||||
item: ActionMenuItem;
|
||||
index: number;
|
||||
handlers: RenderItemFnHandlers;
|
||||
focusRefCallback?: (c: HTMLAnchorElement | HTMLButtonElement | null) => void;
|
||||
}
|
||||
|
||||
const ReblogMenuItem: FC<ReblogMenuItemProps> = ({
|
||||
status,
|
||||
index,
|
||||
item: { text },
|
||||
handlers,
|
||||
focusRefCallback,
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
const statusState = useAppSelector((state) =>
|
||||
selectStatusState(state, status),
|
||||
);
|
||||
const { title, meta, iconComponent, disabled } = useMemo(
|
||||
() =>
|
||||
text === 'quote'
|
||||
? quoteIconText(statusState)
|
||||
: reblogIconText(statusState),
|
||||
[statusState, text],
|
||||
);
|
||||
const active = useMemo(
|
||||
() => text === 'reblog' && !!status.get('reblogged'),
|
||||
[status, text],
|
||||
);
|
||||
|
||||
return (
|
||||
<li
|
||||
className={classNames('dropdown-menu__item reblog-button__item', {
|
||||
disabled,
|
||||
active,
|
||||
})}
|
||||
key={`${text}-${index}`}
|
||||
>
|
||||
<button
|
||||
{...handlers}
|
||||
title={intl.formatMessage(title)}
|
||||
ref={focusRefCallback}
|
||||
disabled={disabled}
|
||||
data-index={index}
|
||||
>
|
||||
<Icon
|
||||
id={text === 'quote' ? 'quote' : 'retweet'}
|
||||
icon={iconComponent}
|
||||
/>
|
||||
<div>
|
||||
{intl.formatMessage(title)}
|
||||
{meta && (
|
||||
<span className='reblog-button__meta'>
|
||||
{intl.formatMessage(meta)}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</button>
|
||||
</li>
|
||||
);
|
||||
};
|
||||
|
||||
// Legacy helpers
|
||||
|
||||
// Switch between the legacy and new reblog button based on feature flag.
|
||||
export const ReblogButton: FC<ReblogButtonProps> = (props) => {
|
||||
if (isFeatureEnabled('outgoing_quotes')) {
|
||||
return <StatusReblogButton {...props} />;
|
||||
}
|
||||
return <LegacyReblogButton {...props} />;
|
||||
};
|
||||
|
||||
export const LegacyReblogButton: FC<ReblogButtonProps> = ({
|
||||
status,
|
||||
counters,
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
const statusState = useAppSelector((state) =>
|
||||
selectStatusState(state, status),
|
||||
);
|
||||
|
||||
const { title, meta, iconComponent, disabled } = useMemo(
|
||||
() => reblogIconText(statusState),
|
||||
[statusState],
|
||||
);
|
||||
|
||||
const dispatch = useAppDispatch();
|
||||
const handleClick: MouseEventHandler = useCallback(
|
||||
(event) => {
|
||||
if (statusState.isLoggedIn) {
|
||||
dispatch(toggleReblog(status.get('id') as string, event.shiftKey));
|
||||
} else {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'INTERACTION',
|
||||
modalProps: {
|
||||
type: 'reblog',
|
||||
accountId: status.getIn(['account', 'id']),
|
||||
url: status.get('uri'),
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
},
|
||||
[dispatch, status, statusState.isLoggedIn],
|
||||
);
|
||||
|
||||
return (
|
||||
<IconButton
|
||||
disabled={disabled}
|
||||
active={!!status.get('reblogged')}
|
||||
title={intl.formatMessage(meta ?? title)}
|
||||
icon='retweet'
|
||||
iconComponent={iconComponent}
|
||||
onClick={!disabled ? handleClick : undefined}
|
||||
counter={
|
||||
counters
|
||||
? (status.get('reblogs_count') as number) +
|
||||
(status.get('quotes_count') as number)
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
// Helpers for copy and state for status.
|
||||
const selectStatusState = createAppSelector(
|
||||
[
|
||||
(state) => state.meta.get('me') as string | undefined,
|
||||
(_, status: Status) => status,
|
||||
],
|
||||
(userId, status) => {
|
||||
const isPublic = ['public', 'unlisted'].includes(
|
||||
status.get('visibility') as StatusVisibility,
|
||||
);
|
||||
const isMineAndPrivate =
|
||||
userId === status.getIn(['account', 'id']) &&
|
||||
status.get('visibility') === 'private';
|
||||
return {
|
||||
isLoggedIn: !!userId,
|
||||
isPublic,
|
||||
isMine: userId === status.getIn(['account', 'id']),
|
||||
isPrivateReblog:
|
||||
userId === status.getIn(['account', 'id']) &&
|
||||
status.get('visibility') === 'private',
|
||||
isReblogged: !!status.get('reblogged'),
|
||||
isReblogAllowed: isPublic || isMineAndPrivate,
|
||||
isQuoteAutomaticallyAccepted:
|
||||
status.getIn(['quote_approval', 'current_user']) === 'automatic' &&
|
||||
(isPublic || isMineAndPrivate),
|
||||
isQuoteManuallyAccepted:
|
||||
status.getIn(['quote_approval', 'current_user']) === 'manual' &&
|
||||
(isPublic || isMineAndPrivate),
|
||||
isQuoteFollowersOnly:
|
||||
status.getIn(['quote_approval', 'automatic', 0]) === 'followers' ||
|
||||
status.getIn(['quote_approval', 'manual', 0]) === 'followers',
|
||||
};
|
||||
},
|
||||
);
|
||||
type StatusState = ReturnType<typeof selectStatusState>;
|
||||
|
||||
interface IconText {
|
||||
title: MessageDescriptor;
|
||||
meta?: MessageDescriptor;
|
||||
iconComponent: FC<SVGProps<SVGSVGElement>>;
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
function reblogIconText({
|
||||
isPublic,
|
||||
isPrivateReblog,
|
||||
isReblogged,
|
||||
}: StatusState): IconText {
|
||||
if (isReblogged) {
|
||||
return {
|
||||
title: messages.reblog_cancel,
|
||||
iconComponent: isPublic ? RepeatActiveIcon : RepeatPrivateActiveIcon,
|
||||
};
|
||||
}
|
||||
const iconText: IconText = {
|
||||
title: messages.reblog,
|
||||
iconComponent: RepeatIcon,
|
||||
};
|
||||
|
||||
if (isPrivateReblog) {
|
||||
iconText.meta = messages.reblog_private;
|
||||
iconText.iconComponent = RepeatPrivateIcon;
|
||||
} else if (!isPublic) {
|
||||
iconText.meta = messages.reblog_cannot;
|
||||
iconText.iconComponent = RepeatDisabledIcon;
|
||||
iconText.disabled = true;
|
||||
}
|
||||
return iconText;
|
||||
}
|
||||
|
||||
function quoteIconText({
|
||||
isMine,
|
||||
isQuoteAutomaticallyAccepted,
|
||||
isQuoteManuallyAccepted,
|
||||
isQuoteFollowersOnly,
|
||||
isPublic,
|
||||
}: StatusState): IconText {
|
||||
const iconText: IconText = {
|
||||
title: messages.quote,
|
||||
iconComponent: FormatQuote,
|
||||
};
|
||||
|
||||
if (!isPublic && !isMine) {
|
||||
iconText.disabled = true;
|
||||
iconText.iconComponent = FormatQuoteOff;
|
||||
iconText.meta = messages.quote_private;
|
||||
} else if (isQuoteAutomaticallyAccepted) {
|
||||
iconText.title = messages.quote;
|
||||
} else if (isQuoteManuallyAccepted) {
|
||||
iconText.title = messages.request_quote;
|
||||
iconText.meta = messages.quote_manual_review;
|
||||
} else {
|
||||
iconText.disabled = true;
|
||||
iconText.iconComponent = FormatQuoteOff;
|
||||
iconText.meta = isQuoteFollowersOnly
|
||||
? messages.quote_followers_only
|
||||
: messages.quote_cannot;
|
||||
}
|
||||
|
||||
return iconText;
|
||||
}
|
||||
@@ -24,7 +24,7 @@ import { me } from '../../initial_state';
|
||||
|
||||
import { IconButton } from '../icon_button';
|
||||
import { isFeatureEnabled } from '../../utils/environment';
|
||||
import { ReblogButton } from '../status/reblog_button';
|
||||
import { BoostButton } from '../status/boost_button';
|
||||
import { RemoveQuoteHint } from './remove_quote_hint';
|
||||
|
||||
const messages = defineMessages({
|
||||
@@ -372,7 +372,7 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||
<IconButton className='status__action-bar__button' title={replyTitle} icon={isReply ? 'reply' : replyIcon} iconComponent={isReply ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} counter={status.get('replies_count')} />
|
||||
</div>
|
||||
<div className='status__action-bar__button-wrapper'>
|
||||
<ReblogButton status={status} counters={withCounters} />
|
||||
<BoostButton status={status} counters={withCounters} />
|
||||
</div>
|
||||
<div className='status__action-bar__button-wrapper'>
|
||||
<IconButton className='status__action-bar__button star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
|
||||
|
||||
@@ -138,16 +138,6 @@ class StatusContent extends PureComponent {
|
||||
|
||||
onCollapsedToggle(collapsed);
|
||||
}
|
||||
|
||||
// Remove quote fallback link from the DOM so it doesn't
|
||||
// mess with paragraph margins
|
||||
if (!!status.get('quote')) {
|
||||
const inlineQuote = node.querySelector('.quote-inline');
|
||||
|
||||
if (inlineQuote) {
|
||||
inlineQuote.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handleMouseEnter = ({ currentTarget }) => {
|
||||
|
||||
@@ -18,7 +18,7 @@ export const messages = defineMessages({
|
||||
public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
|
||||
public_long: { id: 'privacy.public.long', defaultMessage: 'Anyone on and off Mastodon' },
|
||||
unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Quiet public' },
|
||||
unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Fewer algorithmic fanfares' },
|
||||
unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Hidden from Mastodon search results, trending, and public timelines' },
|
||||
private_short: { id: 'privacy.private.short', defaultMessage: 'Followers' },
|
||||
private_long: { id: 'privacy.private.long', defaultMessage: 'Only your followers' },
|
||||
direct_short: { id: 'privacy.direct.short', defaultMessage: 'Specific people' },
|
||||
|
||||
@@ -79,10 +79,12 @@ const visibilityOptions = {
|
||||
const PrivacyModalButton: FC<PrivacyDropdownProps> = ({ disabled = false }) => {
|
||||
const intl = useIntl();
|
||||
|
||||
const { visibility, quotePolicy } = useAppSelector((state) => ({
|
||||
visibility: state.compose.get('privacy') as StatusVisibility,
|
||||
quotePolicy: state.compose.get('quote_policy') as ApiQuotePolicy,
|
||||
}));
|
||||
const quotePolicy = useAppSelector(
|
||||
(state) => state.compose.get('quote_policy') as ApiQuotePolicy,
|
||||
);
|
||||
const visibility = useAppSelector(
|
||||
(state) => state.compose.get('privacy') as StatusVisibility,
|
||||
);
|
||||
|
||||
const { icon, iconComponent } = useMemo(() => {
|
||||
const option = visibilityOptions[visibility];
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import type { ComponentPropsWithoutRef, ElementType } from 'react';
|
||||
|
||||
import { isModernEmojiEnabled } from '@/mastodon/utils/environment';
|
||||
|
||||
import { useEmojify } from './hooks';
|
||||
import type { CustomEmojiMapArg } from './types';
|
||||
|
||||
@@ -13,7 +15,7 @@ type EmojiHTMLProps<Element extends ElementType = 'div'> = Omit<
|
||||
shallow?: boolean;
|
||||
};
|
||||
|
||||
export const EmojiHTML = ({
|
||||
export const ModernEmojiHTML = ({
|
||||
extraEmojis,
|
||||
htmlString,
|
||||
as: Wrapper = 'div', // Rename for syntax highlighting
|
||||
@@ -34,3 +36,14 @@ export const EmojiHTML = ({
|
||||
<Wrapper {...props} dangerouslySetInnerHTML={{ __html: emojifiedHtml }} />
|
||||
);
|
||||
};
|
||||
|
||||
export const EmojiHTML = <Element extends ElementType>(
|
||||
props: EmojiHTMLProps<Element>,
|
||||
) => {
|
||||
if (isModernEmojiEnabled()) {
|
||||
return <ModernEmojiHTML {...props} />;
|
||||
}
|
||||
const { as: asElement, htmlString, extraEmojis, ...rest } = props;
|
||||
const Wrapper = asElement ?? 'div';
|
||||
return <Wrapper {...rest} dangerouslySetInnerHTML={{ __html: htmlString }} />;
|
||||
};
|
||||
|
||||
@@ -143,16 +143,14 @@ export const SelectWithLabel: React.FC<PropsWithChildren<Props>> = ({
|
||||
</div>
|
||||
|
||||
<div className='app-form__toggle__toggle'>
|
||||
<div>
|
||||
<Dropdown
|
||||
value={value}
|
||||
onChange={onChange}
|
||||
disabled={disabled}
|
||||
aria-labelledby={labelId}
|
||||
aria-describedby={descId}
|
||||
options={options}
|
||||
/>
|
||||
</div>
|
||||
<Dropdown
|
||||
value={value}
|
||||
onChange={onChange}
|
||||
disabled={disabled}
|
||||
aria-labelledby={labelId}
|
||||
aria-describedby={descId}
|
||||
options={options}
|
||||
/>
|
||||
</div>
|
||||
</label>
|
||||
);
|
||||
|
||||
@@ -20,7 +20,7 @@ import { IconButton } from '../../../components/icon_button';
|
||||
import { Dropdown } from 'mastodon/components/dropdown_menu';
|
||||
import { me } from '../../../initial_state';
|
||||
import { isFeatureEnabled } from '@/mastodon/utils/environment';
|
||||
import { ReblogButton } from '@/mastodon/components/status/reblog_button';
|
||||
import { BoostButton } from '@/mastodon/components/status/boost_button';
|
||||
|
||||
const messages = defineMessages({
|
||||
delete: { id: 'status.delete', defaultMessage: 'Delete' },
|
||||
@@ -310,7 +310,7 @@ class ActionBar extends PureComponent {
|
||||
<div className='detailed-status__action-bar'>
|
||||
<div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} /></div>
|
||||
<div className='detailed-status__button'>
|
||||
<ReblogButton status={status} />
|
||||
<BoostButton status={status} />
|
||||
</div>
|
||||
<div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} /></div>
|
||||
<div className='detailed-status__button'><IconButton className='bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={bookmarkTitle} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} /></div>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import classNames from 'classnames';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import { DropdownMenuItemContent } from 'mastodon/components/dropdown_menu';
|
||||
import type { MenuItem } from 'mastodon/models/dropdown_menu';
|
||||
import {
|
||||
isActionItem,
|
||||
@@ -18,14 +19,14 @@ export const ActionsModal: React.FC<{
|
||||
return <li key={`sep-${i}`} className='dropdown-menu__separator' />;
|
||||
}
|
||||
|
||||
const { text, dangerous } = option;
|
||||
const { text, highlighted, disabled, dangerous } = option;
|
||||
|
||||
let element: React.ReactElement;
|
||||
|
||||
if (isActionItem(option)) {
|
||||
element = (
|
||||
<button onClick={onClick} data-index={i}>
|
||||
{text}
|
||||
<button onClick={onClick} data-index={i} disabled={disabled}>
|
||||
<DropdownMenuItemContent item={option} />
|
||||
</button>
|
||||
);
|
||||
} else if (isExternalLinkItem(option)) {
|
||||
@@ -38,21 +39,22 @@ export const ActionsModal: React.FC<{
|
||||
onClick={onClick}
|
||||
data-index={i}
|
||||
>
|
||||
{text}
|
||||
<DropdownMenuItemContent item={option} />
|
||||
</a>
|
||||
);
|
||||
} else {
|
||||
element = (
|
||||
<Link to={option.to} onClick={onClick} data-index={i}>
|
||||
{text}
|
||||
<DropdownMenuItemContent item={option} />
|
||||
</Link>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<li
|
||||
className={classNames({
|
||||
className={classNames('dropdown-menu__item', {
|
||||
'dropdown-menu__item--dangerous': dangerous,
|
||||
'dropdown-menu__item--highlighted': highlighted,
|
||||
})}
|
||||
key={`${text}-${i}`}
|
||||
>
|
||||
|
||||
@@ -43,10 +43,6 @@ export const ConfirmationModal: React.FC<
|
||||
onSecondary?.();
|
||||
}, [onClose, onSecondary]);
|
||||
|
||||
const handleCancel = useCallback(() => {
|
||||
onClose();
|
||||
}, [onClose]);
|
||||
|
||||
return (
|
||||
<div className='modal-root__modal safety-action-modal'>
|
||||
<div className='safety-action-modal__top'>
|
||||
@@ -58,7 +54,7 @@ export const ConfirmationModal: React.FC<
|
||||
|
||||
<div className='safety-action-modal__bottom'>
|
||||
<div className='safety-action-modal__actions'>
|
||||
<button onClick={handleCancel} className='link-button'>
|
||||
<button onClick={onClose} className='link-button'>
|
||||
{cancel ?? (
|
||||
<FormattedMessage
|
||||
id='confirmation_modal.cancel'
|
||||
|
||||
@@ -11,3 +11,4 @@ export { ConfirmLogOutModal } from './log_out';
|
||||
export { ConfirmFollowToListModal } from './follow_to_list';
|
||||
export { ConfirmMissingAltTextModal } from './missing_alt_text';
|
||||
export { ConfirmRevokeQuoteModal } from './revoke_quote';
|
||||
export { QuietPostQuoteInfoModal } from './quiet_post_quote_info';
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import { defineMessages, useIntl } from 'react-intl';
|
||||
|
||||
import { quoteCompose } from '@/mastodon/actions/compose_typed';
|
||||
import { closeModal } from '@/mastodon/actions/modal';
|
||||
import { changeSetting } from '@/mastodon/actions/settings';
|
||||
import type { Status } from '@/mastodon/models/status';
|
||||
import { useAppDispatch } from '@/mastodon/store';
|
||||
|
||||
import { ConfirmationModal } from './confirmation_modal';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: {
|
||||
id: 'confirmations.quiet_post_quote_info.title',
|
||||
defaultMessage: 'Quoting quiet public posts',
|
||||
},
|
||||
message: {
|
||||
id: 'confirmations.quiet_post_quote_info.message',
|
||||
defaultMessage:
|
||||
'When quoting a quiet public post, your post will be hidden from trending timelines.',
|
||||
},
|
||||
got_it: {
|
||||
id: 'confirmations.quiet_post_quote_info.got_it',
|
||||
defaultMessage: 'Got it',
|
||||
},
|
||||
dismiss: {
|
||||
id: 'confirmations.quiet_post_quote_info.dismiss',
|
||||
defaultMessage: "Don't remind me again",
|
||||
},
|
||||
});
|
||||
|
||||
/**
|
||||
* [1] Since we only want this modal to have two buttons – "Don't ask again" and
|
||||
* "Got it" – , we have to use the `onClose` handler to handle the "Don't ask again"
|
||||
* functionality. Because of this, we need to set `closeWhenConfirm` to false and
|
||||
* close the modal manually.
|
||||
* This prevents the modal from being dismissed permanently when just confirming.
|
||||
*/
|
||||
|
||||
export const QuietPostQuoteInfoModal: React.FC<{ status: Status }> = ({
|
||||
status,
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
const dispatch = useAppDispatch();
|
||||
|
||||
const confirm = useCallback(() => {
|
||||
dispatch(quoteCompose(status));
|
||||
// [1]
|
||||
dispatch(
|
||||
closeModal({ modalType: 'CONFIRM_QUIET_QUOTE', ignoreFocus: true }),
|
||||
);
|
||||
}, [dispatch, status]);
|
||||
|
||||
const dismiss = useCallback(() => {
|
||||
dispatch(quoteCompose(status));
|
||||
dispatch(
|
||||
changeSetting(['dismissed_banners', 'quote/quiet_post_hint'], true),
|
||||
);
|
||||
// [1]
|
||||
dispatch(
|
||||
closeModal({ modalType: 'CONFIRM_QUIET_QUOTE', ignoreFocus: true }),
|
||||
);
|
||||
}, [dispatch, status]);
|
||||
|
||||
return (
|
||||
<ConfirmationModal
|
||||
closeWhenConfirm={false} // [1]
|
||||
title={intl.formatMessage(messages.title)}
|
||||
message={intl.formatMessage(messages.message)}
|
||||
confirm={intl.formatMessage(messages.got_it)}
|
||||
cancel={intl.formatMessage(messages.dismiss)}
|
||||
onConfirm={confirm}
|
||||
onClose={dismiss}
|
||||
/>
|
||||
);
|
||||
};
|
||||
@@ -201,8 +201,6 @@ class MediaModal extends ImmutablePureComponent {
|
||||
preview={image.get('preview_url')}
|
||||
blurhash={image.get('blurhash')}
|
||||
src={image.get('url')}
|
||||
width={image.get('width')}
|
||||
height={image.get('height')}
|
||||
frameRate={image.getIn(['meta', 'original', 'frame_rate'])}
|
||||
aspectRatio={`${image.getIn(['meta', 'original', 'width'])} / ${image.getIn(['meta', 'original', 'height'])}`}
|
||||
startTime={currentTime || 0}
|
||||
@@ -219,8 +217,6 @@ class MediaModal extends ImmutablePureComponent {
|
||||
return (
|
||||
<GIFV
|
||||
src={image.get('url')}
|
||||
width={width}
|
||||
height={height}
|
||||
key={image.get('url')}
|
||||
alt={description}
|
||||
lang={lang}
|
||||
|
||||
@@ -38,6 +38,7 @@ import {
|
||||
ConfirmFollowToListModal,
|
||||
ConfirmMissingAltTextModal,
|
||||
ConfirmRevokeQuoteModal,
|
||||
QuietPostQuoteInfoModal,
|
||||
} from './confirmation_modals';
|
||||
import { ImageModal } from './image_modal';
|
||||
import MediaModal from './media_modal';
|
||||
@@ -62,6 +63,7 @@ export const MODAL_COMPONENTS = {
|
||||
'CONFIRM_FOLLOW_TO_LIST': () => Promise.resolve({ default: ConfirmFollowToListModal }),
|
||||
'CONFIRM_MISSING_ALT_TEXT': () => Promise.resolve({ default: ConfirmMissingAltTextModal }),
|
||||
'CONFIRM_REVOKE_QUOTE': () => Promise.resolve({ default: ConfirmRevokeQuoteModal }),
|
||||
'CONFIRM_QUIET_QUOTE': () => Promise.resolve({ default: QuietPostQuoteInfoModal }),
|
||||
'MUTE': MuteModal,
|
||||
'BLOCK': BlockModal,
|
||||
'DOMAIN_BLOCK': DomainBlockModal,
|
||||
|
||||
@@ -163,7 +163,6 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||
value: 'unlisted',
|
||||
text: intl.formatMessage(privacyMessages.unlisted_short),
|
||||
meta: intl.formatMessage(privacyMessages.unlisted_long),
|
||||
extra: intl.formatMessage(privacyMessages.unlisted_extra),
|
||||
icon: 'unlock',
|
||||
iconComponent: QuietTimeIcon,
|
||||
},
|
||||
@@ -199,8 +198,11 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||
onClose();
|
||||
}, [onChange, onClose, visibility, quotePolicy]);
|
||||
|
||||
const privacyDropdownId = useId();
|
||||
const quoteDropdownId = useId();
|
||||
const uniqueId = useId();
|
||||
const visibilityLabelId = `${uniqueId}-visibility-label`;
|
||||
const visibilityDescriptionId = `${uniqueId}-visibility-desc`;
|
||||
const quoteLabelId = `${uniqueId}-quote-label`;
|
||||
const quoteDescriptionId = `${uniqueId}-quote-desc`;
|
||||
|
||||
return (
|
||||
<div className='modal-root__modal dialog-modal visibility-modal'>
|
||||
@@ -235,28 +237,36 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||
/>
|
||||
</div>
|
||||
<div className='dialog-modal__content__form'>
|
||||
<label
|
||||
htmlFor={privacyDropdownId}
|
||||
className={classNames('visibility-dropdown__label', {
|
||||
<div
|
||||
className={classNames('visibility-dropdown', {
|
||||
disabled: disableVisibility,
|
||||
})}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.privacy_label'
|
||||
defaultMessage='Visibility'
|
||||
/>
|
||||
{/* eslint-disable-next-line jsx-a11y/label-has-associated-control */}
|
||||
<label
|
||||
className='visibility-dropdown__label'
|
||||
id={visibilityLabelId}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.privacy_label'
|
||||
defaultMessage='Visibility'
|
||||
/>
|
||||
</label>
|
||||
|
||||
<Dropdown
|
||||
items={visibilityItems}
|
||||
classPrefix='visibility-dropdown'
|
||||
current={visibility}
|
||||
onChange={handleVisibilityChange}
|
||||
title={intl.formatMessage(privacyMessages.change_privacy)}
|
||||
labelId={visibilityLabelId}
|
||||
descriptionId={visibilityDescriptionId}
|
||||
classPrefix='visibility-dropdown'
|
||||
disabled={disableVisibility}
|
||||
id={privacyDropdownId}
|
||||
/>
|
||||
{!!statusId && (
|
||||
<p className='visibility-dropdown__helper'>
|
||||
<p
|
||||
className='visibility-dropdown__helper'
|
||||
id='visibilityDescriptionId'
|
||||
>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.privacy_editing'
|
||||
defaultMessage="Visibility can't be changed after a post is published."
|
||||
@@ -264,37 +274,47 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||
</p>
|
||||
)}
|
||||
{!statusId && disablePublicVisibilities && (
|
||||
<p className='visibility-dropdown__helper'>
|
||||
<p
|
||||
className='visibility-dropdown__helper'
|
||||
id='visibilityDescriptionId'
|
||||
>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.privacy_private_self_quote'
|
||||
defaultMessage='Self-quotes of private posts cannot be made public.'
|
||||
/>
|
||||
</p>
|
||||
)}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<label
|
||||
htmlFor={quoteDropdownId}
|
||||
className={classNames('visibility-dropdown__label', {
|
||||
<div
|
||||
className={classNames('visibility-dropdown', {
|
||||
disabled: disableQuotePolicy,
|
||||
})}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.quote_label'
|
||||
defaultMessage='Who can quote'
|
||||
/>
|
||||
{/* eslint-disable-next-line jsx-a11y/label-has-associated-control */}
|
||||
<label className='visibility-dropdown__label' id={quoteLabelId}>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.quote_label'
|
||||
defaultMessage='Who can quote'
|
||||
/>
|
||||
</label>
|
||||
|
||||
<Dropdown
|
||||
items={quoteItems}
|
||||
onChange={handleQuotePolicyChange}
|
||||
classPrefix='visibility-dropdown'
|
||||
current={disableQuotePolicy ? 'nobody' : quotePolicy}
|
||||
title={intl.formatMessage(messages.buttonTitle)}
|
||||
onChange={handleQuotePolicyChange}
|
||||
labelId={quoteLabelId}
|
||||
descriptionId={quoteDescriptionId}
|
||||
classPrefix='visibility-dropdown'
|
||||
disabled={disableQuotePolicy}
|
||||
id={quoteDropdownId}
|
||||
/>
|
||||
<QuotePolicyHelper policy={quotePolicy} visibility={visibility} />
|
||||
</label>
|
||||
<QuotePolicyHelper
|
||||
policy={quotePolicy}
|
||||
visibility={visibility}
|
||||
className='visibility-dropdown__helper'
|
||||
id={quoteDescriptionId}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className='dialog-modal__content__actions'>
|
||||
<Button onClick={onClose} secondary>
|
||||
@@ -317,42 +337,44 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
|
||||
);
|
||||
VisibilityModal.displayName = 'VisibilityModal';
|
||||
|
||||
const QuotePolicyHelper: FC<{
|
||||
policy: ApiQuotePolicy;
|
||||
visibility: StatusVisibility;
|
||||
}> = ({ policy, visibility }) => {
|
||||
const QuotePolicyHelper: FC<
|
||||
{
|
||||
policy: ApiQuotePolicy;
|
||||
visibility: StatusVisibility;
|
||||
} & React.ComponentPropsWithoutRef<'p'>
|
||||
> = ({ policy, visibility, ...otherProps }) => {
|
||||
let hintText: React.ReactElement | undefined;
|
||||
|
||||
if (visibility === 'unlisted' && policy !== 'nobody') {
|
||||
return (
|
||||
<p className='visibility-dropdown__helper'>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.unlisted_quoting'
|
||||
defaultMessage='When people quote you, their post will also be hidden from trending timelines.'
|
||||
/>
|
||||
</p>
|
||||
hintText = (
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.unlisted_quoting'
|
||||
defaultMessage='When people quote you, their post will also be hidden from trending timelines.'
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (visibility === 'private') {
|
||||
return (
|
||||
<p className='visibility-dropdown__helper'>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.private_quoting'
|
||||
defaultMessage="Follower-only posts authored on Mastodon can't be quoted by others."
|
||||
/>
|
||||
</p>
|
||||
hintText = (
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.private_quoting'
|
||||
defaultMessage="Follower-only posts authored on Mastodon can't be quoted by others."
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (visibility === 'direct') {
|
||||
return (
|
||||
<p className='visibility-dropdown__helper'>
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.direct_quoting'
|
||||
defaultMessage="Private mentions authored on Mastodon can't be quoted by others."
|
||||
/>
|
||||
</p>
|
||||
hintText = (
|
||||
<FormattedMessage
|
||||
id='visibility_modal.helper.direct_quoting'
|
||||
defaultMessage="Private mentions authored on Mastodon can't be quoted by others."
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return null;
|
||||
if (!hintText) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return <p {...otherProps}>{hintText}</p>;
|
||||
};
|
||||
|
||||
@@ -256,7 +256,6 @@
|
||||
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
|
||||
"status.open": "Brei hierdie plasing uit",
|
||||
"status.reblog": "Stuur aan",
|
||||
"status.reblog_private": "Stuur aan met oorspronklike sigbaarheid",
|
||||
"status.reblogged_by": "Aangestuur deur {name}",
|
||||
"status.reblogs.empty": "Hierdie plasing is nog deur niemand aangestuur nie. As iemand dit aanstuur, sal jy dit hier sien.",
|
||||
"status.reply": "Reageer",
|
||||
|
||||
@@ -442,7 +442,6 @@
|
||||
"status.pin": "Fixar",
|
||||
"status.read_more": "Leyer mas",
|
||||
"status.reblog": "Retutar",
|
||||
"status.reblog_private": "Empentar con l'audiencia orichinal",
|
||||
"status.reblogged_by": "Retutau per {name}",
|
||||
"status.reblogs.empty": "Dengún no ha retutau encara este tut. Quan belún lo faiga, amaneixerá aquí.",
|
||||
"status.redraft": "Borrar y tornar ta borrador",
|
||||
|
||||
@@ -731,7 +731,6 @@
|
||||
"privacy.public.long": "أي شخص على أو خارج ماستدون",
|
||||
"privacy.public.short": "للعامة",
|
||||
"privacy.unlisted.additional": "هذا يتصرف بالضبط مثل النشر للعامة، باستثناء أن المنشور لن يظهر في الموجزات الحية أو في الوسوم أو في الإستكشاف، أو في نتائج بحث ماستدون، حتى وإن قمت بتفعيله على مستوى الحساب.",
|
||||
"privacy.unlisted.long": "خوارزميات أقل",
|
||||
"privacy.unlisted.short": "للعامة دون صخب",
|
||||
"privacy_policy.last_updated": "آخر تحديث {date}",
|
||||
"privacy_policy.title": "سياسة الخصوصية",
|
||||
@@ -874,7 +873,6 @@
|
||||
"status.quote_error.filtered": "مُخفي بسبب إحدى إعدادات التصفية خاصتك",
|
||||
"status.read_more": "اقرأ المزيد",
|
||||
"status.reblog": "إعادة النشر",
|
||||
"status.reblog_private": "إعادة النشر إلى الجمهور الأصلي",
|
||||
"status.reblogged_by": "شارَكَه {name}",
|
||||
"status.reblogs": "{count, plural, one {إعادة نشر واحدة} two {معاد نشرها مرتان} few {# إعادات نشر} many {# إعادات نشر} other {# إعادة نشر}}",
|
||||
"status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
|
||||
|
||||
@@ -872,7 +872,6 @@
|
||||
"status.quote_post_author": "@{name} göndərişini sitat gətirdi",
|
||||
"status.read_more": "Daha çoxunu oxu",
|
||||
"status.reblog": "Təkrar paylaş",
|
||||
"status.reblog_private": "Orijinal görünmə ilə təkrar paylaş",
|
||||
"status.reblogged_by": "{name} təkrar paylaşdı",
|
||||
"status.reblogs": "{count, plural, one {təkrar paylaşma} other {təkrar paylaşma}}",
|
||||
"status.reblogs.empty": "Hələ heç kim bu göndərişi təkrar paylaşmayıb. Kimsə paylaşdığı zaman, burada görünəcək.",
|
||||
@@ -946,7 +945,6 @@
|
||||
"video.volume_up": "Həcmi artır",
|
||||
"visibility_modal.button_title": "Görünməni ayarla",
|
||||
"visibility_modal.header": "Görünmə və qarşılıqlı əlaqə",
|
||||
"visibility_modal.helper.privacy_editing": "Dərc edilən göndərişlərin görünməsi dəyişdirilə bilməz.",
|
||||
"visibility_modal.helper.unlisted_quoting": "İnsanlar sizdən sitat gətirdiyi zaman, onların göndərişləri də trend zaman xəttindən gizlədiləcək.",
|
||||
"visibility_modal.quote_followers": "Yalnız izləyicilər",
|
||||
"visibility_modal.quote_public": "Hər kəs"
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Усё адно апублікаваць",
|
||||
"confirmations.missing_alt_text.title": "Дадаць альтэрнатыўны тэкст?",
|
||||
"confirmations.mute.confirm": "Ігнараваць",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Не нагадваць зноў",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Зразумела",
|
||||
"confirmations.quiet_post_quote_info.message": "Калі будзеце цытаваць ціхі публічны допіс, Ваш допіс будзе схаваны ад трэндавых стужак.",
|
||||
"confirmations.quiet_post_quote_info.title": "Цытаванне ціхіх публічных допісаў",
|
||||
"confirmations.redraft.confirm": "Выдаліць і перапісаць",
|
||||
"confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.",
|
||||
"confirmations.redraft.title": "Выдаліць і перапісаць допіс?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, цытаты адключаныя",
|
||||
"privacy.quote.limited": "{visibility}, абмежаваныя цытаты",
|
||||
"privacy.unlisted.additional": "Паводзіць сябе гэтак жа, як і публічны, за выключэннем таго, што допіс не будзе адлюстроўвацца ў жывой стужцы, хэштэгах, аглядзе або ў пошуку Mastodon, нават калі Вы ўключылі бачнасць у пошуку ў наладах.",
|
||||
"privacy.unlisted.long": "Менш фанфар ад алгарытмаў",
|
||||
"privacy.unlisted.long": "Схаваны ад вынікаў пошуку Mastodon, трэндавага і публічных стужак",
|
||||
"privacy.unlisted.short": "Ціхі публічны",
|
||||
"privacy_policy.last_updated": "Адноўлена {date}",
|
||||
"privacy_policy.title": "Палітыка канфідэнцыйнасці",
|
||||
@@ -768,6 +772,9 @@
|
||||
"relative_time.minutes": "{number} хв",
|
||||
"relative_time.seconds": "{number} с",
|
||||
"relative_time.today": "сёння",
|
||||
"remove_quote_hint.button_label": "Зразумела",
|
||||
"remove_quote_hint.message": "Можаце зрабіце гэта ў {icon} меню налад.",
|
||||
"remove_quote_hint.title": "Хочаце выдаліць Ваш допіс з цытатай?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# далучэнне} few {# далучэнні} many {# далучэнняў} other {# далучэння}}",
|
||||
"reply_indicator.cancel": "Скасаваць",
|
||||
"reply_indicator.poll": "Апытанне",
|
||||
@@ -910,15 +917,15 @@
|
||||
"status.read_more": "Чытаць болей",
|
||||
"status.reblog": "Пашырыць",
|
||||
"status.reblog_or_quote": "Пашырыць ці цытаваць",
|
||||
"status.reblog_private": "Пашырыць з першапачатковай бачнасцю",
|
||||
"status.reblogged_by": "Карыстальнік {name} пашырыў",
|
||||
"status.reblog_private": "Зноў падзяліцца са сваімі падпісчыкамі",
|
||||
"status.reblogged_by": "{name} пашырыў(-ла)",
|
||||
"status.reblogs": "{count, plural, one {пашырэнне} few {пашырэнні} many {пашырэнняў} other {пашырэння}}",
|
||||
"status.reblogs.empty": "Гэты допіс яшчэ ніхто не пашырыў. Калі гэта адбудзецца, гэтых людзей будзе бачна тут.",
|
||||
"status.redraft": "Выдаліць і перапісаць",
|
||||
"status.remove_bookmark": "Выдаліць закладку",
|
||||
"status.remove_favourite": "Выдаліць з упадабаных",
|
||||
"status.replied_in_thread": "Адказаў у ланцужку",
|
||||
"status.replied_to": "Адказаў {name}",
|
||||
"status.replied_in_thread": "Адказаў(-ла) у ланцужку",
|
||||
"status.replied_to": "Адказаў(-ла) {name}",
|
||||
"status.reply": "Адказаць",
|
||||
"status.replyAll": "Адказаць у ланцугу",
|
||||
"status.report": "Паскардзіцца на @{name}",
|
||||
@@ -988,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Вызначыць бачнасць",
|
||||
"visibility_modal.header": "Бачнасць і ўзаемадзеянне",
|
||||
"visibility_modal.helper.direct_quoting": "Прыватныя згадванні, створаныя на Mastodon, нельга цытаваць іншым людзям.",
|
||||
"visibility_modal.helper.privacy_editing": "Апублікаваным допісам нельга змяняць бачнасць.",
|
||||
"visibility_modal.helper.privacy_editing": "Бачнасць нельга змяніць у апублікаваным допісе.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Самацытаванне прыватных допісаў не можа быць публічным.",
|
||||
"visibility_modal.helper.private_quoting": "Допісы для падпісчыкаў, створаныя на Mastodon, нельга цытаваць іншым людзям.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Калі людзі працытуюць Вас, іх допіс таксама будзе схаваны ад стужкі трэндаў.",
|
||||
|
||||
@@ -729,7 +729,6 @@
|
||||
"privacy.public.long": "Всеки във и извън Mastodon",
|
||||
"privacy.public.short": "Публично",
|
||||
"privacy.unlisted.additional": "Това действие е точно като публичното, с изключение на това, че публикацията няма да се появява в каналите на живо, хаштаговете, разглеждането или търсенето в Mastodon, дори ако сте избрали да се публично видими на ниво акаунт.",
|
||||
"privacy.unlisted.long": "По-малко алгоритмични фанфари",
|
||||
"privacy.unlisted.short": "Тиха публика",
|
||||
"privacy_policy.last_updated": "Последно осъвременяване на {date}",
|
||||
"privacy_policy.title": "Политика за поверителност",
|
||||
@@ -877,7 +876,6 @@
|
||||
"status.quote_post_author": "Цитирах публикация от @{name}",
|
||||
"status.read_more": "Още за четене",
|
||||
"status.reblog": "Подсилване",
|
||||
"status.reblog_private": "Подсилване с оригиналната видимост",
|
||||
"status.reblogged_by": "{name} подсили",
|
||||
"status.reblogs": "{count, plural, one {подсилване} other {подсилвания}}",
|
||||
"status.reblogs.empty": "Още никого не е подсилвал публикацията. Подсилващият ще се покаже тук.",
|
||||
@@ -952,7 +950,6 @@
|
||||
"video.volume_up": "Увеличаване на звука",
|
||||
"visibility_modal.button_title": "Задаване на видимост",
|
||||
"visibility_modal.header": "Видимост и взаимодействие",
|
||||
"visibility_modal.helper.privacy_editing": "Публикуваните публикации не може да променят видимостта си.",
|
||||
"visibility_modal.quote_followers": "Само последователи",
|
||||
"visibility_modal.quote_public": "Някой"
|
||||
}
|
||||
|
||||
@@ -377,7 +377,6 @@
|
||||
"status.pin": "নিজের পাতায় এটা পিন করতে",
|
||||
"status.read_more": "আরো পড়ুন",
|
||||
"status.reblog": "সমর্থন দিতে",
|
||||
"status.reblog_private": "আপনার অনুসরণকারীদের কাছে এটার সমর্থন দেখাতে",
|
||||
"status.reblogged_by": "{name} সমর্থন দিয়েছে",
|
||||
"status.reblogs.empty": "এখনো কেও এটাতে সমর্থন দেয়নি। যখন কেও দেয়, সেটা তখন এখানে দেখা যাবে।",
|
||||
"status.redraft": "মুছে আবার নতুন করে লিখতে",
|
||||
|
||||
@@ -7,12 +7,13 @@
|
||||
"about.domain_blocks.preamble": "Gant Mastodon e c'hellit gwelet danvez hag eskemm gant implijerien·ezed eus forzh peseurt servijer er fedibed peurliesañ. Setu an nemedennoù a zo bet graet evit ar servijer-mañ e-unan.",
|
||||
"about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.",
|
||||
"about.domain_blocks.silenced.title": "Bevennet",
|
||||
"about.domain_blocks.suspended.explanation": "Roadenn ebet eus ar servijer-mañ ne vo keweriet, kadavet pe eskemmet, ar pezh a lako an etreweriañ pe ar c'hehentiñ gant implijerien adalek ar servijer-mañ dibosupl.",
|
||||
"about.domain_blocks.suspended.explanation": "Roadenn ebet eus ar servijer-mañ ne vo keweriet, kadavet pe eskemmet, ar pezh a lako an etreweriañ pe ar c'hehentiñ gant implijerien·ezed adalek ar servijer-mañ dibosupl.",
|
||||
"about.domain_blocks.suspended.title": "Astalet",
|
||||
"about.language_label": "Yezh",
|
||||
"about.not_available": "An titour-mañ ne c'heller ket gwelet war ar servijer-mañ.",
|
||||
"about.powered_by": "Rouedad sokial digreizenned kaset gant {mastodon}",
|
||||
"about.rules": "Reolennoù ar servijer",
|
||||
"account.account_note_header": "Notenn bersonel",
|
||||
"account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù",
|
||||
"account.badges.bot": "Robot",
|
||||
"account.badges.group": "Strollad",
|
||||
@@ -20,19 +21,22 @@
|
||||
"account.block_domain": "Stankañ an domani {domain}",
|
||||
"account.block_short": "Stankañ",
|
||||
"account.blocked": "Stanket",
|
||||
"account.blocking": "Stanket",
|
||||
"account.cancel_follow_request": "Nullañ ar reked heuliañ",
|
||||
"account.copy": "Eilañ al liamm war-zu ho profil",
|
||||
"account.direct": "Menegiñ @{name} ent-prevez",
|
||||
"account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}",
|
||||
"account.domain_blocking": "Domani stanket",
|
||||
"account.edit_profile": "Kemmañ ar profil",
|
||||
"account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}",
|
||||
"account.endorse": "Lakaat war-wel war ar profil",
|
||||
"account.familiar_followers_one": "Heuilhet gant {name1}",
|
||||
"account.familiar_followers_two": "Heuilhet gant {name1} ha {name2}",
|
||||
"account.endorse": "Lakaat en a-raok war ar profil",
|
||||
"account.familiar_followers_one": "Heuliet gant {name1}",
|
||||
"account.familiar_followers_two": "Heuliet gant {name1} ha {name2}",
|
||||
"account.featured": "En a-raok",
|
||||
"account.featured.accounts": "Profiloù",
|
||||
"account.featured.hashtags": "Gerioù-klik",
|
||||
"account.featured_tags.last_status_at": "Toud diwezhañ : {date}",
|
||||
"account.featured_tags.last_status_never": "Embannadur ebet",
|
||||
"account.featured_tags.last_status_at": "Embann diwezhañ: {date}",
|
||||
"account.featured_tags.last_status_never": "Embann ebet",
|
||||
"account.follow": "Heuliañ",
|
||||
"account.follow_back": "Heuliañ d'ho tro",
|
||||
"account.followers": "Tud koumanantet",
|
||||
@@ -56,20 +60,25 @@
|
||||
"account.mute_notifications_short": "Kuzhat ar c'hemennoù",
|
||||
"account.mute_short": "Kuzhat",
|
||||
"account.muted": "Kuzhet",
|
||||
"account.muting": "O kuzhat",
|
||||
"account.mutual": "Heuliañ a rit an eil egile",
|
||||
"account.no_bio": "Deskrivadur ebet da gaout.",
|
||||
"account.open_original_page": "Digeriñ ar bajenn orin",
|
||||
"account.posts": "Embannadurioù",
|
||||
"account.posts_with_replies": "Embannadurioù ha respontoù",
|
||||
"account.remove_from_followers": "Dilemel {name} eus an heulierien·ezed",
|
||||
"account.report": "Disklêriañ @{name}",
|
||||
"account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ",
|
||||
"account.requested_follow": "Gant {name} eo bet goulennet ho heuliañ",
|
||||
"account.requests_to_follow_you": "Rekedoù d'ho heuliañ",
|
||||
"account.share": "Skignañ profil @{name}",
|
||||
"account.show_reblogs": "Diskouez skignadennoù @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} embannadur} two {{counter} embannadur} few {{counter} embannadur} many {{counter} embannadur} other {{counter} embannadur}}",
|
||||
"account.unblock": "Diverzañ @{name}",
|
||||
"account.unblock_domain": "Diverzañ an domani {domain}",
|
||||
"account.unblock": "Distankañ @{name}",
|
||||
"account.unblock_domain": "Distankañ an domani {domain}",
|
||||
"account.unblock_domain_short": "Distankañ",
|
||||
"account.unblock_short": "Distankañ",
|
||||
"account.unendorse": "Paouez da lakaat war-wel war ar profil",
|
||||
"account.unendorse": "Na lakaat ket en a-raok war ar profil",
|
||||
"account.unfollow": "Diheuliañ",
|
||||
"account.unmute": "Diguzhat @{name}",
|
||||
"account.unmute_notifications_short": "Diguzhat ar c'hemennoù",
|
||||
@@ -79,30 +88,39 @@
|
||||
"admin.dashboard.monthly_retention": "Feur azdalc'h an implijerien·ezed dre viz goude bezañ lakaet o anv",
|
||||
"admin.dashboard.retention.average": "Keidenn",
|
||||
"admin.dashboard.retention.cohort": "Miz an enrolladur",
|
||||
"admin.dashboard.retention.cohort_size": "Implijerien.erezed nevez",
|
||||
"admin.dashboard.retention.cohort_size": "Implijerien·ezed nevez",
|
||||
"admin.impact_report.instance_accounts": "Profiloù kontoù a vefe dilamet",
|
||||
"admin.impact_report.instance_followers": "Heulierien a gollfe hon implijerien",
|
||||
"admin.impact_report.instance_follows": "Heulierien a gollfe o implijerien",
|
||||
"admin.impact_report.instance_followers": "Heulierien a gollfe hon implijerien·ezed",
|
||||
"admin.impact_report.instance_follows": "Heulierien a gollfe o implijerien·ezed",
|
||||
"alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Feur bevennet",
|
||||
"alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.",
|
||||
"alert.unexpected.title": "Hopala !",
|
||||
"alt_text_badge.title": "Eiltestenn",
|
||||
"alt_text_modal.add_alt_text": "Ouzhpennañ un eiltestenn",
|
||||
"alt_text_modal.cancel": "Nullañ",
|
||||
"alt_text_modal.change_thumbnail": "Kemmañ ar velvenn",
|
||||
"alt_text_modal.done": "Graet",
|
||||
"announcement.announcement": "Kemennad",
|
||||
"annual_report.summary.followers.followers": "heulier",
|
||||
"annual_report.summary.followers.total": "{count} en holl",
|
||||
"annual_report.summary.highlighted_post.by_favourites": "embannadur karet ar muiañ",
|
||||
"annual_report.summary.highlighted_post.by_reblogs": "embannadur skignet ar muiañ",
|
||||
"annual_report.summary.highlighted_post.by_replies": "embannadur gant ar muiañ a respontoù",
|
||||
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||
"annual_report.summary.most_used_app.most_used_app": "arload muiañ implijet",
|
||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "ar gerioù-klik implijet ar muiañ",
|
||||
"annual_report.summary.most_used_hashtag.none": "Hini ebet",
|
||||
"annual_report.summary.new_posts.new_posts": "toudoù nevez",
|
||||
"annual_report.summary.new_posts.new_posts": "embannadurioù nevez",
|
||||
"attachments_list.unprocessed": "(ket meret)",
|
||||
"audio.hide": "Kuzhat ar c'hleved",
|
||||
"block_modal.show_less": "Diskouez nebeutoc'h",
|
||||
"block_modal.show_more": "Diskouez muioc'h",
|
||||
"block_modal.they_cant_mention": "Ne c'hall na menegiñ na heuliañ ac'hanoc'h.",
|
||||
"block_modal.title": "Stankañ an implijer·ez?",
|
||||
"boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou",
|
||||
"boost_modal.reblog": "Skignañ an embannadur?",
|
||||
"boost_modal.undo_reblog": "Paouez da skignañ an embannadur?",
|
||||
"bundle_column_error.copy_stacktrace": "Eilañ an danevell fazi",
|
||||
"bundle_column_error.error.body": "N'haller ket skrammañ ar bajenn goulennet. Gallout a ra bezañ abalamour d'ur beug er c'hod pe d'ur gudenn keverlec'hded gant ar merdeer.",
|
||||
"bundle_column_error.error.title": "Chaous !",
|
||||
@@ -120,20 +138,20 @@
|
||||
"closed_registrations_modal.preamble": "Digreizennet eo Mastodon, forzh pelec'h e vefe krouet ho kont e viot gouest da heuliañ hag etreweriañ gant an holl war ar servijer-mañ. Gallout a rit herbec'hiañ anezhañ hoc'h-unan zoken!",
|
||||
"closed_registrations_modal.title": "Enskrivadurioù war Mastodon",
|
||||
"column.about": "Diwar-benn",
|
||||
"column.blocks": "Implijer·ezed·ien berzet",
|
||||
"column.blocks": "Implijerien·ezed stanket",
|
||||
"column.bookmarks": "Sinedoù",
|
||||
"column.community": "Red-amzer lec'hel",
|
||||
"column.create_list": "Krouiñ ul listenn",
|
||||
"column.direct": "Menegoù prevez",
|
||||
"column.directory": "Mont a-dreuz ar profiloù",
|
||||
"column.domain_blocks": "Domani berzet",
|
||||
"column.domain_blocks": "Domani stanket",
|
||||
"column.edit_list": "Kemmañ al listenn",
|
||||
"column.favourites": "Muiañ-karet",
|
||||
"column.firehose": "Redoù war-eeun",
|
||||
"column.follow_requests": "Rekedoù heuliañ",
|
||||
"column.home": "Degemer",
|
||||
"column.lists": "Listennoù",
|
||||
"column.mutes": "Implijer·ion·ezed kuzhet",
|
||||
"column.mutes": "Implijerien·ezed kuzhet",
|
||||
"column.notifications": "Kemennoù",
|
||||
"column.pins": "Embannadurioù spilhennet",
|
||||
"column.public": "Red-amzer kevredet",
|
||||
@@ -154,9 +172,9 @@
|
||||
"compose.published.open": "Digeriñ",
|
||||
"compose.saved.body": "Enrollet.",
|
||||
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
|
||||
"compose_form.encryption_warning": "Toudoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.",
|
||||
"compose_form.hashtag_warning": "Ne vo ket listennet an toud-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.",
|
||||
"compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet ho toudoù prevez.",
|
||||
"compose_form.encryption_warning": "Embannadurioù war Mastodon na vezont ket sifret a-benn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.",
|
||||
"compose_form.hashtag_warning": "Ne vo ket listennet an embannadur-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet an embannadurioù foran a c'hall bezañ klasket dre c'her-klik.",
|
||||
"compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet hoc'h embannadurioù prevez.",
|
||||
"compose_form.lock_disclaimer.lock": "prennet",
|
||||
"compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?",
|
||||
"compose_form.poll.duration": "Pad ar sontadeg",
|
||||
@@ -173,19 +191,32 @@
|
||||
"confirmation_modal.cancel": "Nullañ",
|
||||
"confirmations.block.confirm": "Stankañ",
|
||||
"confirmations.delete.confirm": "Dilemel",
|
||||
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?",
|
||||
"confirmations.delete.title": "Dilemel an toud?",
|
||||
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an embannadur-mañ?",
|
||||
"confirmations.delete.title": "Dilemel an embannadur?",
|
||||
"confirmations.delete_list.confirm": "Dilemel",
|
||||
"confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?",
|
||||
"confirmations.delete_list.title": "Dilemel al listenn?",
|
||||
"confirmations.discard_draft.confirm": "Diverkañ ha kenderc'hel",
|
||||
"confirmations.discard_draft.edit.cancel": "Distreiñ d'an embann",
|
||||
"confirmations.discard_draft.post.cancel": "Distreiñ d'ar brouilhed",
|
||||
"confirmations.discard_draft.post.title": "Dilemel ho prouilhed?",
|
||||
"confirmations.discard_edit_media.confirm": "Nac'hañ",
|
||||
"confirmations.discard_edit_media.message": "Bez ez eus kemmoù n'int ket enrollet e deskrivadur ar media pe ar rakwel, nullañ anezho evelato?",
|
||||
"confirmations.follow_to_list.confirm": "Heuliañ hag ouzhpennañ d'al listenn",
|
||||
"confirmations.follow_to_list.title": "Heuliañ an implijer·ez?",
|
||||
"confirmations.logout.confirm": "Digevreañ",
|
||||
"confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?",
|
||||
"confirmations.logout.title": "Digevreañ?",
|
||||
"confirmations.missing_alt_text.confirm": "Ouzhpennañ un eiltestenn",
|
||||
"confirmations.missing_alt_text.secondary": "Embann memes tra",
|
||||
"confirmations.missing_alt_text.title": "Ouzhpennañ an eiltestenn?",
|
||||
"confirmations.mute.confirm": "Kuzhat",
|
||||
"confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro",
|
||||
"confirmations.redraft.title": "Diverkañ ha skrivañ an embann en-dro?",
|
||||
"confirmations.remove_from_followers.confirm": "Dilemel an heulier·ez",
|
||||
"confirmations.remove_from_followers.title": "Dilemel an heulier·ez?",
|
||||
"confirmations.revoke_quote.confirm": "Dilemel an embannadur",
|
||||
"confirmations.revoke_quote.title": "Dilemel an embannadur?",
|
||||
"confirmations.unfollow.confirm": "Diheuliañ",
|
||||
"confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?",
|
||||
"confirmations.unfollow.title": "Paouez da heuliañ an implijer·ez?",
|
||||
@@ -194,7 +225,7 @@
|
||||
"content_warning.show_more": "Diskouez muioc'h",
|
||||
"conversation.delete": "Dilemel ar gaozeadenn",
|
||||
"conversation.mark_as_read": "Merkañ evel lennet",
|
||||
"conversation.open": "Gwelout ar gaozeadenn",
|
||||
"conversation.open": "Gwelet ar gaozeadenn",
|
||||
"conversation.with": "Gant {names}",
|
||||
"copy_icon_button.copied": "Eilet er golver",
|
||||
"copypaste.copied": "Eilet",
|
||||
@@ -205,11 +236,17 @@
|
||||
"directory.recently_active": "Oberiant nevez zo",
|
||||
"disabled_account_banner.account_settings": "Arventennoù ar gont",
|
||||
"disabled_account_banner.text": "Ho kont {disabledAccount} zo divev evit bremañ.",
|
||||
"dismissable_banner.community_timeline": "Setu toudoù foran nevesañ an dud a zo herberc’hiet o c'hontoù gant {domain}.",
|
||||
"dismissable_banner.community_timeline": "Setu embannadurioù foran nevesañ an dud a zo herberc’hiet o c’hontoù gant {domain}.",
|
||||
"dismissable_banner.dismiss": "Diverkañ",
|
||||
"domain_block_modal.block": "Stankañ ar servijer",
|
||||
"domain_block_modal.block_account_instead": "Stankañ @{name} kentoc'h",
|
||||
"domain_block_modal.title": "Stankañ an domani?",
|
||||
"domain_pill.server": "Dafariad",
|
||||
"domain_pill.username": "Anv-implijer",
|
||||
"embed.instructions": "Enframmit an toud-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.",
|
||||
"domain_pill.whats_in_a_handle": "Petra eo an anaouder?",
|
||||
"domain_pill.your_handle": "Hoc'h anaouder:",
|
||||
"dropdown.empty": "Diuzit un dibarzh",
|
||||
"embed.instructions": "Enframmit an embannadur-mañ en ho lec’hienn en ur eilañ ar c’hod amañ-dindan.",
|
||||
"embed.preview": "Setu penaos e teuio war wel :",
|
||||
"emoji_button.activity": "Obererezh",
|
||||
"emoji_button.clear": "Diverkañ",
|
||||
@@ -226,22 +263,22 @@
|
||||
"emoji_button.search_results": "Disoc'hoù an enklask",
|
||||
"emoji_button.symbols": "Arouezioù",
|
||||
"emoji_button.travel": "Beajiñ & Lec'hioù",
|
||||
"empty_column.account_suspended": "Kont ehanet",
|
||||
"empty_column.account_timeline": "Toud ebet amañ !",
|
||||
"empty_column.account_suspended": "Kont astalet",
|
||||
"empty_column.account_timeline": "Embannadur ebet amañ!",
|
||||
"empty_column.account_unavailable": "Profil dihegerz",
|
||||
"empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.",
|
||||
"empty_column.blocks": "N'eus ket bet stanket implijer·ez ganeoc'h c'hoazh.",
|
||||
"empty_column.bookmarked_statuses": "N'ho peus embannadur ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
|
||||
"empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !",
|
||||
"empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
|
||||
"empty_column.domain_blocks": "N'eus domani stanket ebet c'hoazh.",
|
||||
"empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !",
|
||||
"empty_column.follow_requests": "N'ho peus reked heuliañ ebet c'hoazh. Pa vo resevet unan e teuio war wel amañ.",
|
||||
"empty_column.followed_tags": "N'emaoc'h oc'h heuliañ ger-klik ebet evit poent. Pa vioc'h e vo d'o gwelet amañ.",
|
||||
"empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.",
|
||||
"empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.",
|
||||
"empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet toudoù nevez gant e izili e teuint war wel amañ.",
|
||||
"empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.",
|
||||
"empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet un dra nevez gant e izili e teuio war wel amañ.",
|
||||
"empty_column.mutes": "N'ho peus kuzhet implijer·ez ebet c'hoazh.",
|
||||
"empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.",
|
||||
"empty_column.public": "N'eus netra amañ! Skrivit un dra bennak foran pe heuilhit implijer·ien·ezed eus dafariadoù all evit leuniañ",
|
||||
"empty_column.public": "N'eus netra amañ! Skrivit un dra bennak foran pe heuilhit implijerien·ezed eus servijerioù all evit leuniañ",
|
||||
"error.unexpected_crash.explanation": "Abalamour d'ur beug en hor c'hod pe d'ur gudenn geverlec'hded n'hallomp ket skrammañ ar bajenn-mañ en un doare dereat.",
|
||||
"error.unexpected_crash.explanation_addons": "Ar bajenn-mañ ne c'hell ket bezañ skrammet mat. Ar fazi-se a zo kaoz d'un astenn pe d'un ostilh troidigezh emgefreek war ho merdeer.",
|
||||
"error.unexpected_crash.next_steps": "Klaskit azbevaat ar bajenn. Ma n'a ket en-dro e c'hallit klask ober gant Mastodon dre ur merdeer disheñvel pe dre an arload genidik.",
|
||||
@@ -254,22 +291,22 @@
|
||||
"explore.trending_statuses": "Embannadurioù",
|
||||
"explore.trending_tags": "Gerioù-klik",
|
||||
"featured_carousel.next": "War-raok",
|
||||
"featured_carousel.post": "Embannadenn",
|
||||
"featured_carousel.post": "Embannadur",
|
||||
"featured_carousel.previous": "War-gil",
|
||||
"featured_carousel.slide": "{index} diwar {total}",
|
||||
"filter_modal.added.context_mismatch_title": "Kenarroud digenglotus !",
|
||||
"filter_modal.added.expired_title": "Sil deuet d'e dermen !",
|
||||
"filter_modal.added.review_and_configure_title": "Arventennoù ar sil",
|
||||
"filter_modal.added.settings_link": "pajenn an arventennoù",
|
||||
"filter_modal.added.short_explanation": "An toud-mañ zo bet ouzhpennet d'ar rummad sil-mañ : {title}.",
|
||||
"filter_modal.added.short_explanation": "Ouzhpennet eo bet an embannadur-mañ d'ar rummad sil-mañ: {title}.",
|
||||
"filter_modal.added.title": "Sil ouzhpennet !",
|
||||
"filter_modal.select_filter.context_mismatch": "na glot ket gant ar c'henarroud-mañ",
|
||||
"filter_modal.select_filter.expired": "zo deuet d'e dermen",
|
||||
"filter_modal.select_filter.prompt_new": "Rummad nevez : {name}",
|
||||
"filter_modal.select_filter.search": "Klask pe krouiñ",
|
||||
"filter_modal.select_filter.subtitle": "Implijout ur rummad a zo anezhañ pe krouiñ unan nevez",
|
||||
"filter_modal.select_filter.title": "Silañ an toud-mañ",
|
||||
"filter_modal.title.status": "Silañ un toud",
|
||||
"filter_modal.select_filter.title": "Silañ an embannadur-mañ",
|
||||
"filter_modal.title.status": "Silañ un embannadur",
|
||||
"filter_warning.matches_filter": "A glot gant ar sil “<span>{title}</span>”",
|
||||
"firehose.all": "Pep tra",
|
||||
"firehose.local": "Ar servijer-mañ",
|
||||
@@ -277,6 +314,7 @@
|
||||
"follow_request.authorize": "Aotren",
|
||||
"follow_request.reject": "Nac'hañ",
|
||||
"follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.",
|
||||
"follow_suggestions.dismiss": "Na ziskouez ket ken",
|
||||
"follow_suggestions.friends_of_friends_longer": "Diouzh ar c'hiz e-touez an dud heuliet ganeoc'h",
|
||||
"follow_suggestions.popular_suggestion_longer": "Diouzh ar c'hiz war {domain}",
|
||||
"follow_suggestions.view_all": "Gwelet pep tra",
|
||||
@@ -293,8 +331,8 @@
|
||||
"generic.saved": "Enrollet",
|
||||
"getting_started.heading": "Loc'hañ",
|
||||
"hashtag.admin_moderation": "Digeriñ an etrefas evezhiañ evit #{name}",
|
||||
"hashtag.browse": "Furchal dre an toudoù gant #{hashtag}",
|
||||
"hashtag.browse_from_account": "Furchal dre an toudoù gant @{name} gant #{hashtag}",
|
||||
"hashtag.browse": "Furchal dre an embannadurioù gant #{hashtag}",
|
||||
"hashtag.browse_from_account": "Furchal dre an embannadurioù gant @{name} gant #{hashtag}",
|
||||
"hashtag.column_header.tag_mode.all": "ha(g) {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "pe {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "hep {additional}",
|
||||
@@ -306,11 +344,13 @@
|
||||
"hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ",
|
||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}}",
|
||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}} hiziv",
|
||||
"hashtag.feature": "Lakaat war-wel war ar profil",
|
||||
"hashtag.feature": "Lakaat en a-raok war ar profil",
|
||||
"hashtag.follow": "Heuliañ ar ger-klik",
|
||||
"hashtag.mute": "Kuzhat #{hashtag}",
|
||||
"hashtag.unfeature": "Na lakaat ket en a-raok war ar profil",
|
||||
"hashtag.unfollow": "Diheuliañ ar ger-klik",
|
||||
"hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}",
|
||||
"hints.profiles.see_more_posts": "Gwelet embannadurioù ouzhpenn eus {domain}",
|
||||
"home.column_settings.show_quotes": "Diskouez an arroudennoù",
|
||||
"home.column_settings.show_reblogs": "Diskouez ar skignadennoù",
|
||||
"home.column_settings.show_replies": "Diskouez ar respontoù",
|
||||
@@ -319,25 +359,26 @@
|
||||
"home.pending_critical_update.link": "Gwelet an hizivadennoù",
|
||||
"home.show_announcements": "Diskouez ar c'hemennoù",
|
||||
"interaction_modal.go": "Mont di",
|
||||
"interaction_modal.no_account_yet": "N'ho peus ket ur gont c'hoazh?",
|
||||
"interaction_modal.on_another_server": "War ur servijer all",
|
||||
"interaction_modal.on_this_server": "War ar servijer-mañ",
|
||||
"interaction_modal.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet",
|
||||
"interaction_modal.title.follow": "Heuliañ {name}",
|
||||
"interaction_modal.title.reblog": "Skignañ toud {name}",
|
||||
"interaction_modal.title.reblog": "Skignañ embannadur {name}",
|
||||
"interaction_modal.title.reply": "Respont da doud {name}",
|
||||
"interaction_modal.username_prompt": "D.s. {example}",
|
||||
"intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}",
|
||||
"intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}",
|
||||
"keyboard_shortcuts.back": "Distreiñ",
|
||||
"keyboard_shortcuts.blocked": "Digeriñ roll an implijer.ezed.rien stanket",
|
||||
"keyboard_shortcuts.boost": "Skignañ an toud",
|
||||
"keyboard_shortcuts.blocked": "Digeriñ roll an implijerien·ezed stanket",
|
||||
"keyboard_shortcuts.boost": "Skignañ an embannadur",
|
||||
"keyboard_shortcuts.column": "Fokus ar bann",
|
||||
"keyboard_shortcuts.compose": "Fokus an takad testenn",
|
||||
"keyboard_shortcuts.description": "Deskrivadur",
|
||||
"keyboard_shortcuts.direct": "to open direct messages column",
|
||||
"keyboard_shortcuts.down": "Diskennañ er roll",
|
||||
"keyboard_shortcuts.enter": "Digeriñ an toud",
|
||||
"keyboard_shortcuts.enter": "Digeriñ an embannadur",
|
||||
"keyboard_shortcuts.favourite": "Ouzhpennañ an embannadur d'ar re vuiañ-karet",
|
||||
"keyboard_shortcuts.favourites": "Digeriñ roll an embannadurioù muiañ-karet",
|
||||
"keyboard_shortcuts.federated": "Digeriñ ar red-amzer kevredet",
|
||||
@@ -347,20 +388,22 @@
|
||||
"keyboard_shortcuts.legend": "Skrammañ ar skrid-se",
|
||||
"keyboard_shortcuts.local": "Digeriñ red-amzer lec'hel",
|
||||
"keyboard_shortcuts.mention": "Menegiñ an aozer.ez",
|
||||
"keyboard_shortcuts.muted": "Digeriñ roll an implijer.ezed.ien kuzhet",
|
||||
"keyboard_shortcuts.muted": "Digeriñ roll an implijerien·ezed kuzhet",
|
||||
"keyboard_shortcuts.my_profile": "Digeriñ ho profil",
|
||||
"keyboard_shortcuts.notifications": "Digeriñ bann ar c'hemennoù",
|
||||
"keyboard_shortcuts.open_media": "Digeriñ ar media",
|
||||
"keyboard_shortcuts.pinned": "Digeriñ listenn an toudoù spilhennet",
|
||||
"keyboard_shortcuts.pinned": "Digeriñ listenn an embannadurioù spilhennet",
|
||||
"keyboard_shortcuts.profile": "Digeriñ profil an aozer.ez",
|
||||
"keyboard_shortcuts.reply": "Respont d'an toud",
|
||||
"keyboard_shortcuts.quote": "Menegiñ an embannadur",
|
||||
"keyboard_shortcuts.reply": "Respont d'an embannadur",
|
||||
"keyboard_shortcuts.requests": "Digeriñ roll goulennoù heuliañ",
|
||||
"keyboard_shortcuts.search": "Fokus barenn klask",
|
||||
"keyboard_shortcuts.spoilers": "da guzhat/ziguzhat tachenn CW",
|
||||
"keyboard_shortcuts.start": "Digeriñ bann \"Kregiñ\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "da guzhat/ziguzhat an desten a-dreñv CW",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "da guzhat/ziguzhat ur media",
|
||||
"keyboard_shortcuts.toot": "Kregiñ gant un toud nevez",
|
||||
"keyboard_shortcuts.toot": "Kregiñ gant un embannadur nevez",
|
||||
"keyboard_shortcuts.translate": "da dreiñ un embannadur",
|
||||
"keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask",
|
||||
"keyboard_shortcuts.up": "Pignat er roll",
|
||||
"learn_more_link.got_it": "Mat eo",
|
||||
@@ -371,9 +414,11 @@
|
||||
"limited_account_hint.title": "Kuzhet eo bet ar profil-mañ gant an evezhierien eus {domain}.",
|
||||
"link_preview.author": "Gant {name}",
|
||||
"link_preview.more_from_author": "Muioc'h gant {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} embannadur} two {{counter} embannadur} few {{counter} embannadur} many {{counter} embannadur} other {{counter} embannadur}}",
|
||||
"lists.add_member": "Ouzhpennañ",
|
||||
"lists.add_to_list": "Ouzhpennañ d'al listenn",
|
||||
"lists.create": "Krouiñ",
|
||||
"lists.create_a_list_to_organize": "Krouit ul listenn evit renkañ ho red degemer",
|
||||
"lists.create_list": "Krouiñ ul listenn",
|
||||
"lists.delete": "Dilemel al listenn",
|
||||
"lists.done": "Graet",
|
||||
@@ -381,7 +426,8 @@
|
||||
"lists.list_name": "Anv al listenn",
|
||||
"lists.new_list_name": "Anv nevez al listenn",
|
||||
"lists.no_lists_yet": "Listenn ebet c'hoazh.",
|
||||
"lists.replies_policy.followed": "Pep implijer.ez heuliet",
|
||||
"lists.remove_member": "Dilemel",
|
||||
"lists.replies_policy.followed": "Pep implijer·ez heuliet",
|
||||
"lists.replies_policy.list": "Izili ar roll",
|
||||
"lists.replies_policy.none": "Den ebet",
|
||||
"lists.save": "Enrollañ",
|
||||
@@ -389,43 +435,53 @@
|
||||
"load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}",
|
||||
"loading_indicator.label": "O kargañ…",
|
||||
"media_gallery.hide": "Kuzhat",
|
||||
"mute_modal.hide_options": "Dibarzhioù ar c'huzhat",
|
||||
"mute_modal.show_options": "Dibarzhioù an diskwel",
|
||||
"mute_modal.title": "Kuzhat an implijer·ez?",
|
||||
"navigation_bar.about": "Diwar-benn",
|
||||
"navigation_bar.account_settings": "Ger-tremen ha surentez",
|
||||
"navigation_bar.administration": "Merañ",
|
||||
"navigation_bar.automated_deletion": "Dilemel an embannadenn ent-emgefreek",
|
||||
"navigation_bar.blocks": "Implijer·ezed·ien berzet",
|
||||
"navigation_bar.blocks": "Implijerien·ezed stanket",
|
||||
"navigation_bar.bookmarks": "Sinedoù",
|
||||
"navigation_bar.direct": "Menegoù prevez",
|
||||
"navigation_bar.domain_blocks": "Domanioù kuzhet",
|
||||
"navigation_bar.domain_blocks": "Domanioù stanket",
|
||||
"navigation_bar.favourites": "Muiañ-karet",
|
||||
"navigation_bar.filters": "Gerioù kuzhet",
|
||||
"navigation_bar.follow_requests": "Pedadoù heuliañ",
|
||||
"navigation_bar.follow_requests": "Rekedoù heuliañ",
|
||||
"navigation_bar.followed_tags": "Gerioù-klik o heuliañ",
|
||||
"navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien",
|
||||
"navigation_bar.import_export": "Enporzhiañ hag ezporzhiañ",
|
||||
"navigation_bar.lists": "Listennoù",
|
||||
"navigation_bar.logout": "Digennaskañ",
|
||||
"navigation_bar.live_feed_local": "Red war-eeun (lec'hel)",
|
||||
"navigation_bar.live_feed_public": "Red war-eeun (foran)",
|
||||
"navigation_bar.logout": "Digevreañ",
|
||||
"navigation_bar.moderation": "Habaskadur",
|
||||
"navigation_bar.more": "Muioc'h",
|
||||
"navigation_bar.mutes": "Implijer·ion·ezed kuzhet",
|
||||
"navigation_bar.mutes": "Implijerien·ezed kuzhet",
|
||||
"navigation_bar.preferences": "Gwellvezioù",
|
||||
"navigation_bar.search": "Klask",
|
||||
"navigation_bar.search_trends": "Klask / Diouzh ar c'hiz",
|
||||
"not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.",
|
||||
"notification.admin.report": "Disklêriet eo bet {target} gant {name}",
|
||||
"notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv",
|
||||
"notification.favourite": "Gant {name} eo bet ouzhpennet hoc'h embannadur d'h·e re vuiañ-karet",
|
||||
"notification.follow": "heuliañ a ra {name} ac'hanoc'h",
|
||||
"notification.follow.name_and_others": "{name} <a>{count, plural, one {hag # den all} two {ha # zen all} few {ha # den all} many {ha # den all} other {ha # den all}}</a> zo o heuliañ ac'hanoc'h",
|
||||
"notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ",
|
||||
"notification.label.quote": "Gant {name} eo bet meneget hoc'h embannadur",
|
||||
"notification.label.reply": "Respont",
|
||||
"notification.mention": "Meneg",
|
||||
"notification.mentioned_you": "Gant {name} oc'h bet meneget",
|
||||
"notification.moderation-warning.learn_more": "Gouzout hiroc'h",
|
||||
"notification.moderation_warning.action_disable": "Diweredekaet eo bet ho kont.",
|
||||
"notification.moderation_warning.action_suspend": "Astalet eo bet ho kont.",
|
||||
"notification.own_poll": "Echu eo ho sontadeg",
|
||||
"notification.reblog": "Gant {name} eo bet skignet ho toud",
|
||||
"notification.quoted_update": "Gant {name} eo bet kemmet un embannadur meneget ganeoc'h",
|
||||
"notification.reblog": "Gant {name} eo bet skignet hoc'h embannadur",
|
||||
"notification.relationships_severance_event.learn_more": "Gouzout hiroc'h",
|
||||
"notification.status": "Emañ {name} o paouez toudañ",
|
||||
"notification.update": "Gant {name} ez eus bet kemmet un toud",
|
||||
"notification.status": "Emañ {name} o paouez embann",
|
||||
"notification.update": "Gant {name} ez eus bet kemmet un embannadur",
|
||||
"notification_requests.accept": "Asantiñ",
|
||||
"notification_requests.dismiss": "Diverkañ",
|
||||
"notification_requests.edit_selection": "Kemmañ",
|
||||
@@ -437,18 +493,19 @@
|
||||
"notifications.column_settings.alert": "Kemennoù war ar burev",
|
||||
"notifications.column_settings.favourite": "Muiañ-karet:",
|
||||
"notifications.column_settings.follow": "Heulierien nevez:",
|
||||
"notifications.column_settings.follow_request": "Pedadoù heuliañ nevez :",
|
||||
"notifications.column_settings.follow_request": "Rekedoù heuliañ nevez:",
|
||||
"notifications.column_settings.group": "Strollañ",
|
||||
"notifications.column_settings.mention": "Menegoù:",
|
||||
"notifications.column_settings.poll": "Disoc'hoù ar sontadeg:",
|
||||
"notifications.column_settings.push": "Kemennoù push",
|
||||
"notifications.column_settings.quote": "Menegoù:",
|
||||
"notifications.column_settings.reblog": "Skignadennoù:",
|
||||
"notifications.column_settings.show": "Diskouez er bann",
|
||||
"notifications.column_settings.sound": "Seniñ",
|
||||
"notifications.column_settings.status": "Toudoù nevez :",
|
||||
"notifications.column_settings.status": "Embannadurioù nevez:",
|
||||
"notifications.column_settings.unread_notifications.category": "Kemennoù anlennet",
|
||||
"notifications.column_settings.unread_notifications.highlight": "Uslinennañ ar c'hemennoù anlennet",
|
||||
"notifications.column_settings.update": "Kemmoù :",
|
||||
"notifications.column_settings.update": "Kemmoù:",
|
||||
"notifications.filter.all": "Pep tra",
|
||||
"notifications.filter.boosts": "Skignadennoù",
|
||||
"notifications.filter.favourites": "Muiañ-karet",
|
||||
@@ -467,6 +524,8 @@
|
||||
"notifications.policy.drop": "Tremen e-bioù",
|
||||
"notifications.policy.filter": "Silañ",
|
||||
"notifications.policy.filter_new_accounts_title": "Kontoù nevez",
|
||||
"notifications.policy.filter_not_followers_title": "Tud na heuliont ket ac'hanoc'h",
|
||||
"notifications.policy.filter_not_following_title": "Tud n'int ket heuliet ganeoc'h",
|
||||
"notifications_permission_banner.enable": "Lezel kemennoù war ar burev",
|
||||
"notifications_permission_banner.how_to_control": "Evit reseviñ kemennoù pa ne vez ket digoret Mastodon, lezelit kemennoù war ar burev. Gallout a rit kontrollañ peseurt eskemmoù a c'henel kemennoù war ar burev gant ar {icon} nozelenn a-us kentre ma'z int lezelet.",
|
||||
"notifications_permission_banner.title": "Na vankit netra morse",
|
||||
@@ -478,6 +537,7 @@
|
||||
"onboarding.profile.note": "Berr-ha-berr",
|
||||
"onboarding.profile.note_hint": "Gallout a rit @menegiñ tud all pe #gerioù-klik…",
|
||||
"onboarding.profile.save_and_continue": "Enrollañ ha kenderc'hel",
|
||||
"onboarding.profile.title": "Kefluniañ ar profil",
|
||||
"onboarding.profile.upload_avatar": "Enporzhiañ ur skeudenn profil",
|
||||
"password_confirmation.mismatching": "Disheñvel eo an daou c'her-termen-se",
|
||||
"picture_in_picture.restore": "Adlakaat",
|
||||
@@ -492,12 +552,18 @@
|
||||
"poll_button.add_poll": "Ouzhpennañ ur sontadeg",
|
||||
"poll_button.remove_poll": "Dilemel ar sontadeg",
|
||||
"privacy.change": "Cheñch prevezded an embannadur",
|
||||
"privacy.direct.long": "Pep hini meneget en embannadur",
|
||||
"privacy.private.long": "Hoc'h heulierien·ezed hepken",
|
||||
"privacy.private.short": "Heulierien",
|
||||
"privacy.public.short": "Publik",
|
||||
"privacy.quote.anyone": "{visibility}, n'eus forzh piv a c'hall menegiñ",
|
||||
"privacy.quote.disabled": "{visibility}, menegoù diweredekaet",
|
||||
"privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}",
|
||||
"privacy_policy.title": "Reolennoù Prevezded",
|
||||
"quote_error.poll": "N'haller ket menegiñ sontadegoù.",
|
||||
"recommended": "Erbedet",
|
||||
"refresh": "Freskaat",
|
||||
"regeneration_indicator.preparing_your_home_feed": "O prientiñ ho red degemer…",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.full.days": "{number, plural, one {# devezh} two {# zevezh} few {# devezh} many {# a devezh} other {# devezh}} zo",
|
||||
"relative_time.full.hours": "{number, plural, one {# eurvezh} two {# eurvezh} few {# eurvezh} many {# eur} other {# eurvezh}} zo",
|
||||
@@ -510,10 +576,11 @@
|
||||
"relative_time.seconds": "{number}eil",
|
||||
"relative_time.today": "hiziv",
|
||||
"remove_quote_hint.button_label": "Mat eo",
|
||||
"remove_quote_hint.title": "Fellout a ra deoc'h dilemel ho menegiñ an embannadur?",
|
||||
"reply_indicator.cancel": "Nullañ",
|
||||
"reply_indicator.poll": "Sontadeg",
|
||||
"report.block": "Stankañ",
|
||||
"report.block_explanation": "Ne vo ket gwelet toudoù ar gont-se ken. Ne welo ket ho toudoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.",
|
||||
"report.block_explanation": "Ne vo ket gwelet embannadurioù ar gont-se ken. Ne welo ket hoc'h embannadurioù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.",
|
||||
"report.categories.legal": "Lezennel",
|
||||
"report.categories.other": "All",
|
||||
"report.categories.spam": "Spam",
|
||||
@@ -521,13 +588,13 @@
|
||||
"report.category.subtitle": "Choazit ar pezh a glot ar gwellañ",
|
||||
"report.category.title": "Lârit deomp petra c'hoarvez gant {type}",
|
||||
"report.category.title_account": "profil",
|
||||
"report.category.title_status": "an toud-mañ",
|
||||
"report.category.title_status": "an embannadur-mañ",
|
||||
"report.close": "Graet",
|
||||
"report.comment.title": "Ha traoù all a rankfemp gouzout ?",
|
||||
"report.forward": "Treuzkas da: {target}",
|
||||
"report.forward_hint": "War ur servijer all emañ ar c'hont-se. Kas dezhañ un adskrid disanv eus an danevell ivez?",
|
||||
"report.mute": "Kuzhat",
|
||||
"report.mute_explanation": "Ne vo ket gwelet toudoù ar gont-se ken. Gwelet ho toudoù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.",
|
||||
"report.mute_explanation": "Ne vo ket gwelet embannadurioù ar gont-se ken. Gwelet hoc'h embannadurioù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.",
|
||||
"report.next": "War-raok",
|
||||
"report.placeholder": "Askelennoù ouzhpenn",
|
||||
"report.reasons.dislike": "Ne blij ket din",
|
||||
@@ -542,7 +609,7 @@
|
||||
"report.rules.subtitle": "Diuzit an holl draoù a glot",
|
||||
"report.rules.title": "Pesort reolennoù zo bet torret ?",
|
||||
"report.statuses.subtitle": "Diuzit an holl draoù a glot",
|
||||
"report.statuses.title": "Ha toudoù all zo a c'hallfe nerzhañ an disklêriadenn-se ?",
|
||||
"report.statuses.title": "Hag embannadurioù all zo a c'hallfe nerzhañ an disklêriadenn-se?",
|
||||
"report.submit": "Kinnig",
|
||||
"report.target": "O tisklêriañ {target}",
|
||||
"report.thanks.title": "Ne fell ket deoc'h gwelet an dra-se ?",
|
||||
@@ -560,7 +627,7 @@
|
||||
"search.quick_action.go_to_account": "Mont d'ar profil {x}",
|
||||
"search.quick_action.go_to_hashtag": "Mont d'ar ger-klik {x}",
|
||||
"search.quick_action.open_url": "Digeriñ an URL e-barzh Mastodon",
|
||||
"search.quick_action.status_search": "Embannadurioù a glot gant {x}",
|
||||
"search.quick_action.status_search": "Toudoù a glot gant {x}",
|
||||
"search.search_or_paste": "Klask pe pegañ un URL",
|
||||
"search_popout.full_text_search_disabled_message": "N'eo ket da gaout war {domain}.",
|
||||
"search_popout.language_code": "Kod yezh ISO",
|
||||
@@ -580,18 +647,21 @@
|
||||
"server_banner.server_stats": "Stadegoù ar servijer :",
|
||||
"sign_in_banner.create_account": "Krouiñ ur gont",
|
||||
"sign_in_banner.sign_in": "Kevreañ",
|
||||
"sign_in_banner.sso_redirect": "Kennaskañ pe lakaat hoc'h anv",
|
||||
"sign_in_banner.sso_redirect": "Kevreañ pe lakaat hoc'h anv",
|
||||
"status.admin_account": "Digeriñ etrefas evezhiañ evit @{name}",
|
||||
"status.admin_domain": "Digeriñ an etrefas evezhiañ evit {domain}",
|
||||
"status.admin_status": "Digeriñ an embannadenn e-barzh an etrefas evezhiañ",
|
||||
"status.block": "Berzañ @{name}",
|
||||
"status.all_disabled": "Diweredekaet eo ar skignañ hag ar menegiñ",
|
||||
"status.block": "Stankañ @{name}",
|
||||
"status.bookmark": "Ouzhpennañ d'ar sinedoù",
|
||||
"status.cancel_reblog_private": "Nac'hañ ar skignadenn",
|
||||
"status.cannot_quote": "N'haller ket menegiñ an embannadur-mañ",
|
||||
"status.cannot_reblog": "Ar c'hannad-se na c'hall ket bezañ skignet",
|
||||
"status.context.load_new_replies": "Respontoù nevez zo",
|
||||
"status.context.loading": "O kerc'hat muioc'h a respontoù",
|
||||
"status.copy": "Eilañ liamm ar c'hannad",
|
||||
"status.delete": "Dilemel",
|
||||
"status.delete.success": "Embannadur dilamet",
|
||||
"status.detailed_status": "Gwel kaozeadenn munudek",
|
||||
"status.direct": "Menegiñ @{name} ent-prevez",
|
||||
"status.direct_indicator": "Meneg prevez",
|
||||
@@ -612,13 +682,19 @@
|
||||
"status.mute_conversation": "Kuzhat ar gaozeadenn",
|
||||
"status.open": "Digeriñ ar c'hannad-mañ",
|
||||
"status.pin": "Spilhennañ d'ar profil",
|
||||
"status.quote": "Menegiñ",
|
||||
"status.quote.cancel": "Nullañ ar menegiñ",
|
||||
"status.quote_error.not_available": "Embannadur dihegerz",
|
||||
"status.quote_policy_change": "Cheñch piv a c'hall menegiñ",
|
||||
"status.read_more": "Lenn muioc'h",
|
||||
"status.reblog": "Skignañ",
|
||||
"status.reblog_private": "Skignañ gant ar weledenn gentañ",
|
||||
"status.reblog_or_quote": "Skignañ pe menegiñ",
|
||||
"status.reblog_private": "Skignañ d'hoc'h heulierien·ezed adarre",
|
||||
"status.reblogged_by": "Skignet gant {name}",
|
||||
"status.reblogs.empty": "Den ebet n'eus skignet ar c'hannad-mañ c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.",
|
||||
"status.redraft": "Diverkañ ha skrivañ en-dro",
|
||||
"status.remove_bookmark": "Dilemel ar sined",
|
||||
"status.remove_favourite": "Dilemel eus ar re vuiañ-karet",
|
||||
"status.replied_to": "Respont da {name}",
|
||||
"status.reply": "Respont",
|
||||
"status.replyAll": "Respont d'ar gaozeadenn",
|
||||
@@ -671,6 +747,8 @@
|
||||
"video.play": "Lenn",
|
||||
"visibility_modal.privacy_label": "Gwelusted",
|
||||
"visibility_modal.quote_followers": "Tud koumanantet hepken",
|
||||
"visibility_modal.quote_label": "Piv a c'hall menegiñ",
|
||||
"visibility_modal.quote_nobody": "Me hepken",
|
||||
"visibility_modal.quote_public": "Pep den",
|
||||
"visibility_modal.save": "Enrollañ"
|
||||
}
|
||||
|
||||
@@ -740,7 +740,6 @@
|
||||
"privacy.public.long": "Tothom dins o fora Mastodon",
|
||||
"privacy.public.short": "Públic",
|
||||
"privacy.unlisted.additional": "Es comporta igual que públic, excepte que la publicació no apareixerà als canals en directe o etiquetes, l'explora o a la cerca de Mastodon, fins i tot si ho heu activat a nivell de compte.",
|
||||
"privacy.unlisted.long": "Menys fanfàrries algorísmiques",
|
||||
"privacy.unlisted.short": "Públic silenciós",
|
||||
"privacy_policy.last_updated": "Darrera actualització {date}",
|
||||
"privacy_policy.title": "Política de Privacitat",
|
||||
@@ -900,7 +899,6 @@
|
||||
"status.read_more": "Més informació",
|
||||
"status.reblog": "Impulsa",
|
||||
"status.reblog_or_quote": "Impuls or cita",
|
||||
"status.reblog_private": "Impulsa amb la visibilitat original",
|
||||
"status.reblogged_by": "impulsat per {name}",
|
||||
"status.reblogs": "{count, plural, one {impuls} other {impulsos}}",
|
||||
"status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.",
|
||||
@@ -977,7 +975,6 @@
|
||||
"visibility_modal.button_title": "Establiu la visibilitat",
|
||||
"visibility_modal.header": "Visibilitat i interacció",
|
||||
"visibility_modal.helper.direct_quoting": "No es poden citar mencions privades fetes a Mastondon.",
|
||||
"visibility_modal.helper.privacy_editing": "No es pot canviar la visibilitat de les publicacions ja fetes.",
|
||||
"visibility_modal.helper.private_quoting": "No es poden citar publicacions fetes a Mastodon només per a seguidors.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quan la gent et citi les seves publicacions estaran amagades de les línies de temps de tendències.",
|
||||
"visibility_modal.quote_followers": "Només seguidors",
|
||||
|
||||
@@ -496,7 +496,6 @@
|
||||
"status.pin": "لکاندن لەسەر پرۆفایل",
|
||||
"status.read_more": "زیاتر بخوێنەوە",
|
||||
"status.reblog": "بەهێزکردن",
|
||||
"status.reblog_private": "بەهێزکردن بۆ بینەرانی سەرەتایی",
|
||||
"status.reblogged_by": "{name} توتی کردەوە",
|
||||
"status.reblogs.empty": "کەس ئەم توتەی دووبارە نەتوتاندوە ،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.",
|
||||
"status.redraft": "سڕینەوەی و دووبارە ڕەشنووس",
|
||||
|
||||
@@ -288,7 +288,6 @@
|
||||
"status.pin": "Puntarulà à u prufile",
|
||||
"status.read_more": "Leghje di più",
|
||||
"status.reblog": "Sparte",
|
||||
"status.reblog_private": "Sparte à l'audienza uriginale",
|
||||
"status.reblogged_by": "{name} hà spartutu",
|
||||
"status.reblogs.empty": "Per avà nisunu hà spartutu u statutu. Quandu qualch'unu u sparterà, u so contu sarà mustratu quì.",
|
||||
"status.redraft": "Sguassà è riscrive",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Přesto odeslat",
|
||||
"confirmations.missing_alt_text.title": "Přidat popisek?",
|
||||
"confirmations.mute.confirm": "Skrýt",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Znovu nepřípomínat",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Rozumím",
|
||||
"confirmations.quiet_post_quote_info.message": "Při citování ztišeného veřejného příspěvku, váš příspěvek bude skrytý z os populárních příspěvků.",
|
||||
"confirmations.quiet_post_quote_info.title": "Citování ztišených veřejných příspěvků",
|
||||
"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.title": "Smazat a přepracovat příspěvek na koncept?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, citování je zakázáno",
|
||||
"privacy.quote.limited": "{visibility}, citování je omezené",
|
||||
"privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.",
|
||||
"privacy.unlisted.long": "Méně algoritmických fanfár",
|
||||
"privacy.unlisted.long": "Skryté z výsledků vyhledávání na Mastodonu, trendujících příspěvků a veřejné časové osy",
|
||||
"privacy.unlisted.short": "Ztišené veřejné",
|
||||
"privacy_policy.last_updated": "Naposledy aktualizováno {date}",
|
||||
"privacy_policy.title": "Zásady ochrany osobních údajů",
|
||||
@@ -913,7 +917,7 @@
|
||||
"status.read_more": "Číst více",
|
||||
"status.reblog": "Boostnout",
|
||||
"status.reblog_or_quote": "Boostnout nebo citovat",
|
||||
"status.reblog_private": "Boostnout s původní viditelností",
|
||||
"status.reblog_private": "Sdílejte znovu se svými sledujícími",
|
||||
"status.reblogged_by": "Uživatel {name} boostnul",
|
||||
"status.reblogs": "{count, plural, one {boost} few {boosty} many {boostů} other {boostů}}",
|
||||
"status.reblogs.empty": "Tento příspěvek ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.",
|
||||
@@ -991,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Nastavit viditelnost",
|
||||
"visibility_modal.header": "Viditelnost a interakce",
|
||||
"visibility_modal.helper.direct_quoting": "Soukromé zmínky, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.",
|
||||
"visibility_modal.helper.privacy_editing": "Publikované příspěvky nemohou změnit svou viditelnost.",
|
||||
"visibility_modal.helper.privacy_editing": "Viditelnost nelze změnit po publikování příspěvku.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Citace vlastních soukromých příspěvků nelze zveřejnit.",
|
||||
"visibility_modal.helper.private_quoting": "Příspěvky pouze pro sledující, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Když vás lidé citují, jejich příspěvek bude v časové ose populárních příspěvků také skryt.",
|
||||
|
||||
@@ -745,7 +745,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, dyfyniadau wedi'u hanalluogi",
|
||||
"privacy.quote.limited": "{visibility}, dyfyniadau wedi'u cyfyngu",
|
||||
"privacy.unlisted.additional": "Mae hwn yn ymddwyn yn union fel y cyhoeddus, ac eithrio na fydd y postiad yn ymddangos mewn ffrydiau byw neu hashnodau, archwilio, neu chwiliad Mastodon, hyd yn oed os ydych wedi eich cynnwys ar draws y cyfrif.",
|
||||
"privacy.unlisted.long": "Llai o ddathliadau algorithmig",
|
||||
"privacy.unlisted.long": "Wedi'i guddio rhag canlyniadau chwilio Mastodon, trendio, a llinellau amser cyhoeddus",
|
||||
"privacy.unlisted.short": "Tewi'r cyhoeddus",
|
||||
"privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}",
|
||||
"privacy_policy.title": "Polisi Preifatrwydd",
|
||||
@@ -768,6 +768,7 @@
|
||||
"relative_time.minutes": "{number} munud",
|
||||
"relative_time.seconds": "{number} eiliad",
|
||||
"relative_time.today": "heddiw",
|
||||
"remove_quote_hint.button_label": "Iawn",
|
||||
"reply_indicator.attachments": "{count, plural, one {# atodiad} other {# atodiad}}",
|
||||
"reply_indicator.cancel": "Diddymu",
|
||||
"reply_indicator.poll": "Pleidlais",
|
||||
@@ -908,7 +909,6 @@
|
||||
"status.read_more": "Darllen rhagor",
|
||||
"status.reblog": "Hybu",
|
||||
"status.reblog_or_quote": "Hybu neu ddyfynnu",
|
||||
"status.reblog_private": "Hybu i'r gynulleidfa wreiddiol",
|
||||
"status.reblogged_by": "Hybodd {name}",
|
||||
"status.reblogs": "{count, plural, one {# hwb} other {# hwb}}",
|
||||
"status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
|
||||
@@ -986,7 +986,6 @@
|
||||
"visibility_modal.button_title": "Gosod gwelededd",
|
||||
"visibility_modal.header": "Gwelededd a rhyngweithio",
|
||||
"visibility_modal.helper.direct_quoting": "Does dim modd dyfynnu crybwylliadau preifat ysgrifennwyd ar Mastodon.",
|
||||
"visibility_modal.helper.privacy_editing": "Does dim modd newid gwelededd postiadau wedi'u cyhoeddi.",
|
||||
"visibility_modal.helper.private_quoting": "Does dim modd dyfynnu crybwylliadau preifat ysgrifennwyd gan ddilynwyr.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Pan fydd pobl yn eich dyfynnu, bydd eu postiad hefyd yn cael ei guddio rhag llinellau amser sy'n trendio.",
|
||||
"visibility_modal.quote_followers": "Dilynwyr yn unig",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Læg op alligevel",
|
||||
"confirmations.missing_alt_text.title": "Tilføj alt-tekst?",
|
||||
"confirmations.mute.confirm": "Skjul",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Påmind mig ikke igen",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Forstået",
|
||||
"confirmations.quiet_post_quote_info.message": "Når du citerer et stille offentligt indlæg, vil dit indlæg blive skjult fra trendtidslinjer.",
|
||||
"confirmations.quiet_post_quote_info.title": "Citering af stille offentlige indlæg",
|
||||
"confirmations.redraft.confirm": "Slet og omskriv",
|
||||
"confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og fremhævelser går tabt, og svar til det oprindelige indlæg mister tilknytningen.",
|
||||
"confirmations.redraft.title": "Slet og omskriv indlæg?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, citering deaktiveret",
|
||||
"privacy.quote.limited": "{visibility}, citering begrænset",
|
||||
"privacy.unlisted.additional": "Dette svarer til offentlig, bortset fra at indlægget ikke vises i live-feeds eller hashtags, udforsk eller Mastodon-søgning, selvom du har tilvalgt dette for kontoen.",
|
||||
"privacy.unlisted.long": "Færre algoritmiske fanfarer",
|
||||
"privacy.unlisted.long": "Skjult fra Mastodons søgeresultater, trender og offentlige tidslinjer",
|
||||
"privacy.unlisted.short": "Offentlig (stille)",
|
||||
"privacy_policy.last_updated": "Senest opdateret {date}",
|
||||
"privacy_policy.title": "Privatlivspolitik",
|
||||
@@ -769,6 +773,8 @@
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.today": "i dag",
|
||||
"remove_quote_hint.button_label": "Forstået",
|
||||
"remove_quote_hint.message": "Du kan gøre dette fra menuen {icon} indstillinger.",
|
||||
"remove_quote_hint.title": "Vil du fjerne dit citerede indlæg?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# vedhæftning} other {# vedhæftninger}}",
|
||||
"reply_indicator.cancel": "Afbryd",
|
||||
"reply_indicator.poll": "Afstemning",
|
||||
@@ -911,7 +917,7 @@
|
||||
"status.read_more": "Læs mere",
|
||||
"status.reblog": "Fremhæv",
|
||||
"status.reblog_or_quote": "Fremhæv eller citér",
|
||||
"status.reblog_private": "Fremhæv med oprindelig synlighed",
|
||||
"status.reblog_private": "Del igen med dine følgere",
|
||||
"status.reblogged_by": "{name} fremhævede",
|
||||
"status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}",
|
||||
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
|
||||
@@ -989,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Indstil synlighed",
|
||||
"visibility_modal.header": "Synlighed og interaktion",
|
||||
"visibility_modal.helper.direct_quoting": "Private omtaler forfattet på Mastodon kan ikke citeres af andre.",
|
||||
"visibility_modal.helper.privacy_editing": "Publicerede indlægs synlighed kan ikke ændres.",
|
||||
"visibility_modal.helper.privacy_editing": "Synlighed kan ikke ændres, efter at et indlæg er offentliggjort.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Selvcitater fra private indlæg kan ikke gøres offentlige.",
|
||||
"visibility_modal.helper.private_quoting": "Kun-følger indlæg forfattet på Mastodon kan ikke citeres af andre.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Når folk citerer dig, vil deres indlæg også blive skjult fra trendtidslinjer.",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Trotzdem veröffentlichen",
|
||||
"confirmations.missing_alt_text.title": "Bildbeschreibung hinzufügen?",
|
||||
"confirmations.mute.confirm": "Stummschalten",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Nicht mehr anzeigen",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Verstanden",
|
||||
"confirmations.quiet_post_quote_info.message": "Beim Zitieren eines Beitrags mit der Sichtbarkeit „Öffentlich (still)“ wird dein zitierter Beitrag ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt.",
|
||||
"confirmations.quiet_post_quote_info.title": "Zitieren eines Beitrags mit der Sichtbarkeit „Öffentlich (still)“",
|
||||
"confirmations.redraft.confirm": "Löschen und neu erstellen",
|
||||
"confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Alle Favoriten sowie die bisher geteilten Beiträge werden verloren gehen und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.",
|
||||
"confirmations.redraft.title": "Beitrag löschen und neu verfassen?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility} – niemand darf zitieren",
|
||||
"privacy.quote.limited": "{visibility} – eingeschränktes Zitieren",
|
||||
"privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch gibt es einige Einschränkungen. Der Beitrag wird nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion auffindbar sein – selbst wenn die zugehörige Einstellung aktiviert wurde.",
|
||||
"privacy.unlisted.long": "Weniger im Algorithmus berücksichtigt",
|
||||
"privacy.unlisted.long": "Verborgen vor Suchergebnissen, Trends und öffentlichen Timelines in Mastodon",
|
||||
"privacy.unlisted.short": "Öffentlich (still)",
|
||||
"privacy_policy.last_updated": "Stand: {date}",
|
||||
"privacy_policy.title": "Datenschutzerklärung",
|
||||
@@ -913,7 +917,7 @@
|
||||
"status.read_more": "Gesamten Beitrag anschauen",
|
||||
"status.reblog": "Teilen",
|
||||
"status.reblog_or_quote": "Teilen oder zitieren",
|
||||
"status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen",
|
||||
"status.reblog_private": "Erneut mit deinen Followern teilen",
|
||||
"status.reblogged_by": "{name} teilte",
|
||||
"status.reblogs": "{count, plural, one {Mal geteilt} other {Mal geteilt}}",
|
||||
"status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird das Profil hier erscheinen.",
|
||||
@@ -991,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Sichtbarkeit festlegen",
|
||||
"visibility_modal.header": "Sichtbarkeit und Interaktion",
|
||||
"visibility_modal.helper.direct_quoting": "Private Erwähnungen, die auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.",
|
||||
"visibility_modal.helper.privacy_editing": "Die Sichtbarkeit bereits veröffentlichter Beiträge kann nachträglich nicht mehr geändert werden.",
|
||||
"visibility_modal.helper.privacy_editing": "Die Sichtbarkeit eines bereits veröffentlichten Beitrags kann nachträglich nicht mehr geändert werden.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Beiträge mit privaten Erwähnungen können öffentlich nicht zitiert werden.",
|
||||
"visibility_modal.helper.private_quoting": "Beiträge, die nur für deine Follower bestimmt sind und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Sollten dich andere zitieren, werden ihre zitierten Beiträge ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt.",
|
||||
|
||||
@@ -239,6 +239,8 @@
|
||||
"confirmations.missing_alt_text.secondary": "Δημοσίευση όπως και να ΄χει",
|
||||
"confirmations.missing_alt_text.title": "Προσθήκη εναλλακτικού κειμένου;",
|
||||
"confirmations.mute.confirm": "Αποσιώπηση",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Μη μου το ξαναθυμίσεις",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Το κατάλαβα",
|
||||
"confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο",
|
||||
"confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.",
|
||||
"confirmations.redraft.title": "Διαγραφή & επανασύνταξη;",
|
||||
@@ -492,6 +494,7 @@
|
||||
"keyboard_shortcuts.open_media": "Άνοιγμα πολυμέσων",
|
||||
"keyboard_shortcuts.pinned": "Άνοιγμα λίστας καρφιτσωμένων αναρτήσεων",
|
||||
"keyboard_shortcuts.profile": "Άνοιγμα προφίλ συγγραφέα",
|
||||
"keyboard_shortcuts.quote": "Παράθεση ανάρτησης",
|
||||
"keyboard_shortcuts.reply": "Απάντηση στην ανάρτηση",
|
||||
"keyboard_shortcuts.requests": "Άνοιγμα λίστας αιτημάτων ακολούθησης",
|
||||
"keyboard_shortcuts.search": "Εστίαση στη γραμμή αναζήτησης",
|
||||
@@ -620,6 +623,7 @@
|
||||
"notification.moderation_warning.action_suspend": "Ο λογαριασμός σου έχει ανασταλεί.",
|
||||
"notification.own_poll": "Η δημοσκόπησή σου έληξε",
|
||||
"notification.poll": "Μία ψηφοφορία στην οποία συμμετείχες έχει τελειώσει",
|
||||
"notification.quoted_update": "Ο χρήστης {name} επεξεργάστηκε μία ανάρτηση που παρέθεσες",
|
||||
"notification.reblog": "Ο/Η {name} ενίσχυσε την ανάρτηση σου",
|
||||
"notification.reblog.name_and_others_with_link": "{name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> ενίσχυσαν την ανάρτησή σου",
|
||||
"notification.relationships_severance_event": "Χάθηκε η σύνδεση με το {name}",
|
||||
@@ -743,7 +747,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, παραθέσεις απενεργοποιημένες",
|
||||
"privacy.quote.limited": "{visibility}, παραθέσεις περιορισμένες",
|
||||
"privacy.unlisted.additional": "Αυτό συμπεριφέρεται ακριβώς όπως το δημόσιο, εκτός από το ότι η ανάρτηση δεν θα εμφανιστεί σε ζωντανές ροές ή ετικέτες, εξερεύνηση ή αναζήτηση στο Mastodon, ακόμη και αν το έχεις επιλέξει για τον λογαριασμό σου.",
|
||||
"privacy.unlisted.long": "Λιγότερα αλγοριθμικά κόλπα",
|
||||
"privacy.unlisted.long": "Κρυμμένο από τα αποτελέσματα αναζήτησης Mastodon, τις τάσεις και τις δημόσιες ροές",
|
||||
"privacy.unlisted.short": "Ήσυχα δημόσια",
|
||||
"privacy_policy.last_updated": "Τελευταία ενημέρωση {date}",
|
||||
"privacy_policy.title": "Πολιτική Απορρήτου",
|
||||
@@ -766,6 +770,9 @@
|
||||
"relative_time.minutes": "{number}λ",
|
||||
"relative_time.seconds": "{number}δ",
|
||||
"relative_time.today": "σήμερα",
|
||||
"remove_quote_hint.button_label": "Το 'πιασα",
|
||||
"remove_quote_hint.message": "Μπορείτε να το κάνεις από το μενού επιλογών {icon}.",
|
||||
"remove_quote_hint.title": "Θες να αφαιρέσεις την ανάρτηση που παρέθεσες;",
|
||||
"reply_indicator.attachments": "{count, plural, one {# συνημμένο} other {# συνημμένα}}",
|
||||
"reply_indicator.cancel": "Άκυρο",
|
||||
"reply_indicator.poll": "Δημοσκόπηση",
|
||||
@@ -861,12 +868,14 @@
|
||||
"status.block": "Αποκλεισμός @{name}",
|
||||
"status.bookmark": "Σελιδοδείκτης",
|
||||
"status.cancel_reblog_private": "Ακύρωση ενίσχυσης",
|
||||
"status.cannot_quote": "Οι παραθέσεις είναι ανενεργές σ' αυτήν την ανάρτηση",
|
||||
"status.cannot_reblog": "Αυτή η ανάρτηση δεν μπορεί να ενισχυθεί",
|
||||
"status.context.load_new_replies": "Νέες απαντήσεις διαθέσιμες",
|
||||
"status.context.loading": "Γίνεται έλεγχος για περισσότερες απαντήσεις",
|
||||
"status.continued_thread": "Συνεχιζόμενο νήματος",
|
||||
"status.copy": "Αντιγραφή συνδέσμου ανάρτησης",
|
||||
"status.delete": "Διαγραφή",
|
||||
"status.delete.success": "Η ανάρτηση διαγράφηκε",
|
||||
"status.detailed_status": "Προβολή λεπτομερούς συζήτησης",
|
||||
"status.direct": "Ιδιωτική επισήμανση @{name}",
|
||||
"status.direct_indicator": "Ιδιωτική επισήμανση",
|
||||
@@ -896,12 +905,17 @@
|
||||
"status.quote_error.pending_approval": "Ανάρτηση σε αναμονή",
|
||||
"status.quote_error.pending_approval_popout.body": "Οι παραθέσεις που μοιράζονται στο Fediverse μπορεί να χρειαστούν χρόνο για να εμφανιστούν, καθώς διαφορετικοί διακομιστές έχουν διαφορετικά πρωτόκολλα.",
|
||||
"status.quote_error.pending_approval_popout.title": "Παράθεση σε εκκρεμότητα; Μείνετε ψύχραιμοι",
|
||||
"status.quote_followers_only": "Μόνο οι ακόλουθοι μπορούν να παραθέσουν αυτή την ανάρτηση",
|
||||
"status.quote_manual_review": "Ο συντάκτης θα επανεξετάσει χειροκίνητα",
|
||||
"status.quote_policy_change": "Αλλάξτε ποιός μπορεί να κάνει παράθεση",
|
||||
"status.quote_post_author": "Παρατίθεται μια ανάρτηση από @{name}",
|
||||
"status.quote_private": "Ιδιωτικές αναρτήσεις δεν μπορούν να παρατεθούν",
|
||||
"status.quotes": "{count, plural, one {# παράθεση} other {# παραθέσεις}}",
|
||||
"status.quotes.empty": "Κανείς δεν έχει παραθέσει αυτή την ανάρτηση ακόμα. Μόλις το κάνει, θα εμφανιστεί εδώ.",
|
||||
"status.read_more": "Διάβασε περισότερα",
|
||||
"status.reblog": "Ενίσχυση",
|
||||
"status.reblog_private": "Ενίσχυση με αρχική ορατότητα",
|
||||
"status.reblog_or_quote": "Ενίσχυση ή παράθεση",
|
||||
"status.reblog_private": "Μοιράσου ξανά με τους ακόλουθούς σου",
|
||||
"status.reblogged_by": "{name} προώθησε",
|
||||
"status.reblogs": "{count, plural, one {ενίσχυση} other {ενισχύσεις}}",
|
||||
"status.reblogs.empty": "Κανείς δεν ενίσχυσε αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.",
|
||||
@@ -913,6 +927,7 @@
|
||||
"status.reply": "Απάντησε",
|
||||
"status.replyAll": "Απάντησε στο νήμα συζήτησης",
|
||||
"status.report": "Αναφορά @{name}",
|
||||
"status.request_quote": "Αίτημα για παράθεση",
|
||||
"status.revoke_quote": "Αφαίρεση της ανάρτησης μου από την ανάρτηση του/της @{name}",
|
||||
"status.sensitive_warning": "Ευαίσθητο περιεχόμενο",
|
||||
"status.share": "Κοινοποίηση",
|
||||
@@ -977,9 +992,14 @@
|
||||
"video.volume_up": "Αύξηση έντασης",
|
||||
"visibility_modal.button_title": "Ορισμός ορατότητας",
|
||||
"visibility_modal.header": "Ορατότητα και αλληλεπίδραση",
|
||||
"visibility_modal.helper.privacy_editing": "Δημοσιευμένες αναρτήσεις δεν μπορούν να αλλάξουν την ορατότητά τους.",
|
||||
"visibility_modal.helper.direct_quoting": "Ιδιωτικές αναφορές που έχουν συνταχθεί στο Mastodon δεν μπορούν να γίνουν παράθεση από άλλους.",
|
||||
"visibility_modal.helper.privacy_editing": "Η ορατότητα δεν μπορεί να αλλάξει μετά τη δημοσίευση μιας ανάρτησης.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Αυτο-παραθέσεις ιδιωτικών αναρτήσεων δεν μπορούν να γίνουν δημόσιες.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Όταν οι άνθρωποι σας παραθέτουν, η ανάρτηση τους θα είναι επίσης κρυμμένη από τα δημοφιλή χρονοδιαγράμματα.",
|
||||
"visibility_modal.privacy_label": "Ορατότητα",
|
||||
"visibility_modal.quote_followers": "Μόνο ακόλουθοι",
|
||||
"visibility_modal.quote_label": "Ποιος μπορεί να παραθέσει",
|
||||
"visibility_modal.quote_nobody": "Μόνο εγώ",
|
||||
"visibility_modal.quote_public": "Οποιοσδήποτε",
|
||||
"visibility_modal.save": "Αποθήκευση"
|
||||
}
|
||||
|
||||
@@ -731,7 +731,6 @@
|
||||
"privacy.public.long": "Anyone on and off Mastodon",
|
||||
"privacy.public.short": "Public",
|
||||
"privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.",
|
||||
"privacy.unlisted.long": "Fewer algorithmic fanfares",
|
||||
"privacy.unlisted.short": "Quiet public",
|
||||
"privacy_policy.last_updated": "Last updated {date}",
|
||||
"privacy_policy.title": "Privacy Policy",
|
||||
@@ -873,7 +872,6 @@
|
||||
"status.quote_error.filtered": "Hidden due to one of your filters",
|
||||
"status.read_more": "Read more",
|
||||
"status.reblog": "Boost",
|
||||
"status.reblog_private": "Boost with original visibility",
|
||||
"status.reblogged_by": "{name} boosted",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Post anyway",
|
||||
"confirmations.missing_alt_text.title": "Add alt text?",
|
||||
"confirmations.mute.confirm": "Mute",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Don't remind me again",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Got it",
|
||||
"confirmations.quiet_post_quote_info.message": "When quoting a quiet public post, your post will be hidden from trending timelines.",
|
||||
"confirmations.quiet_post_quote_info.title": "Quoting quiet public posts",
|
||||
"confirmations.redraft.confirm": "Delete & redraft",
|
||||
"confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.",
|
||||
"confirmations.redraft.title": "Delete & redraft post?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, quotes disabled",
|
||||
"privacy.quote.limited": "{visibility}, quotes limited",
|
||||
"privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.",
|
||||
"privacy.unlisted.long": "Fewer algorithmic fanfares",
|
||||
"privacy.unlisted.long": "Hidden from Mastodon search results, trending, and public timelines",
|
||||
"privacy.unlisted.short": "Quiet public",
|
||||
"privacy_policy.last_updated": "Last updated {date}",
|
||||
"privacy_policy.title": "Privacy Policy",
|
||||
|
||||
@@ -733,7 +733,6 @@
|
||||
"privacy.public.short": "Publika",
|
||||
"privacy.quote.anyone": "{visibility}, iu ajn povas citi",
|
||||
"privacy.unlisted.additional": "Ĉi tio kondutas ekzakte kiel publika, krom ke la afiŝo ne aperos en vivaj fluoj aŭ kradvortoj, esploro aŭ Mastodon-serĉo, eĉ se vi estas enskribita en la tuta konto.",
|
||||
"privacy.unlisted.long": "Malpli algoritmaj fanfaroj",
|
||||
"privacy.unlisted.short": "Diskrete publika",
|
||||
"privacy_policy.last_updated": "Laste ĝisdatigita en {date}",
|
||||
"privacy_policy.title": "Politiko de privateco",
|
||||
@@ -900,7 +899,6 @@
|
||||
"status.read_more": "Legi pli",
|
||||
"status.reblog": "Diskonigi",
|
||||
"status.reblog_or_quote": "Diskonigi aŭ citi",
|
||||
"status.reblog_private": "Diskonigi kun la sama videbleco",
|
||||
"status.reblogged_by": "{name} diskonigis",
|
||||
"status.reblogs": "{count, plural, one {diskonigo} other {diskonigoj}}",
|
||||
"status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun afiŝon. Kiam iu faras tion, ri aperos ĉi tie.",
|
||||
@@ -976,7 +974,6 @@
|
||||
"video.volume_up": "Laŭteco pliigi",
|
||||
"visibility_modal.button_title": "Agordu videblon",
|
||||
"visibility_modal.header": "Videblo kaj interago",
|
||||
"visibility_modal.helper.privacy_editing": "Publikigitaj afiŝoj ne povas ŝanĝi sian videblon.",
|
||||
"visibility_modal.helper.private_quoting": "Afiŝoj nur por sekvantoj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.",
|
||||
"visibility_modal.privacy_label": "Videbleco",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Enviar de todos modos",
|
||||
"confirmations.missing_alt_text.title": "¿Agregar texto alternativo?",
|
||||
"confirmations.mute.confirm": "Silenciar",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "No me lo vuelvas a recordar",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Entendido",
|
||||
"confirmations.quiet_post_quote_info.message": "Cuando cites una publicación pública silenciosa, tu publicación se ocultará de las cronologías de tendencias.",
|
||||
"confirmations.quiet_post_quote_info.title": "Citar publicaciones públicas silenciosas",
|
||||
"confirmations.redraft.confirm": "Eliminar mensaje original y editarlo",
|
||||
"confirmations.redraft.message": "¿Estás seguro que querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.",
|
||||
"confirmations.redraft.title": "¿Eliminar y volver a redactar mensaje?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, citas deshabilitadas",
|
||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
||||
"privacy.unlisted.additional": "Esto se comporta exactamente igual que con la configuración de privacidad de mensaje «Público», excepto que el mensaje no aparecerá en las líneas temporales en vivo, ni en las etiquetas, ni en la línea temporal «Explorá», ni en la búsqueda de Mastodon; incluso si optaste por hacer tu cuenta visible.",
|
||||
"privacy.unlisted.long": "Menos fanfarrias algorítmicas",
|
||||
"privacy.unlisted.long": "Oculto de los resultados de búsqueda, tendencias y líneas temporales públicas de Mastodon",
|
||||
"privacy.unlisted.short": "Público silencioso",
|
||||
"privacy_policy.last_updated": "Última actualización: {date}",
|
||||
"privacy_policy.title": "Política de privacidad",
|
||||
@@ -913,7 +917,7 @@
|
||||
"status.read_more": "Leé más",
|
||||
"status.reblog": "Adherir",
|
||||
"status.reblog_or_quote": "Adherir o citar",
|
||||
"status.reblog_private": "Adherir a la audiencia original",
|
||||
"status.reblog_private": "Compartir de nuevo con tus seguidores",
|
||||
"status.reblogged_by": "{name} adhirió",
|
||||
"status.reblogs": "{count, plural, one {adhesión} other {adhesiones}}",
|
||||
"status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.",
|
||||
@@ -991,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Establecer visibilidad",
|
||||
"visibility_modal.header": "Visibilidad e interacción",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas redactadas en Mastodon no pueden ser citadas por otras cuentas.",
|
||||
"visibility_modal.helper.privacy_editing": "No se puede cambiar la visibilidad a los mensajes ya enviados.",
|
||||
"visibility_modal.helper.privacy_editing": "La visibilidad no se puede cambiar después de que se haya enviado un mensaje.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Las citas propias de mensajes privados no pueden hacerse públicas.",
|
||||
"visibility_modal.helper.private_quoting": "Los mensajes solo para seguidores redactados en Mastodon no pueden ser citados por otras cuentas.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cuando otras cuentas te citen, sus publicaciones también se ocultarán de las líneas temporales de tendencias.",
|
||||
|
||||
@@ -239,9 +239,13 @@
|
||||
"confirmations.missing_alt_text.secondary": "Publicar de todas maneras",
|
||||
"confirmations.missing_alt_text.title": "¿Añadir texto alternativo?",
|
||||
"confirmations.mute.confirm": "Silenciar",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "No me lo recuerdes otra vez",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Entendido",
|
||||
"confirmations.quiet_post_quote_info.message": "Al citar una publicación pública discreta, tu publicación se ocultará de las cronologías de tendencias.",
|
||||
"confirmations.quiet_post_quote_info.title": "Citar publicaciones públicas discretas",
|
||||
"confirmations.redraft.confirm": "Borrar y volver a borrador",
|
||||
"confirmations.redraft.message": "¿Estás seguro que quieres borrar esta publicación y editarla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán separadas.",
|
||||
"confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?",
|
||||
"confirmations.redraft.message": "¿Estás seguro de que quieres borrar esta publicación y editarla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán separadas.",
|
||||
"confirmations.redraft.title": "¿Deseas borrar y volver a redactar la publicación?",
|
||||
"confirmations.remove_from_followers.confirm": "Eliminar seguidor",
|
||||
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que quieres continuar?",
|
||||
"confirmations.remove_from_followers.title": "¿Eliminar seguidor?",
|
||||
@@ -319,7 +323,7 @@
|
||||
"empty_column.account_unavailable": "Perfil no disponible",
|
||||
"empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
|
||||
"empty_column.bookmarked_statuses": "Aún no tienes ninguna publicación guardada como marcador. Cuando guardes una, se mostrará aquí.",
|
||||
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
|
||||
"empty_column.community": "La cronología local está vacía. ¡Escribe algo públicamente para ponerla en marcha!",
|
||||
"empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.",
|
||||
"empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
|
||||
"empty_column.explore_statuses": "Nada es tendencia en este momento. ¡Revisa más tarde!",
|
||||
@@ -333,7 +337,7 @@
|
||||
"empty_column.mutes": "Aún no has silenciado a ningún usuario.",
|
||||
"empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.",
|
||||
"empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.",
|
||||
"empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo",
|
||||
"empty_column.public": "¡Aquí no hay nada! Escribe algo públicamente o sigue manualmente a usuarios de otros servidores para llenarlo",
|
||||
"error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.",
|
||||
"error.unexpected_crash.explanation_addons": "No se pudo mostrar correctamente esta página. Este error probablemente fue causado por un complemento del navegador web o por herramientas de traducción automática.",
|
||||
"error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodon a través de otro navegador o aplicación nativa.",
|
||||
@@ -745,8 +749,8 @@
|
||||
"privacy.quote.disabled": "{visibility}, citas desactivadas",
|
||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
||||
"privacy.unlisted.additional": "Esto se comporta exactamente igual que el público, excepto que el post no aparecerá en las cronologías en directo o en las etiquetas, la exploración o busquedas en Mastodon, incluso si está optado por activar la cuenta de usuario.",
|
||||
"privacy.unlisted.long": "Menos fanfares algorítmicos",
|
||||
"privacy.unlisted.short": "Público silencioso",
|
||||
"privacy.unlisted.long": "Oculto de los resultados de búsquedas, tendencias y cronologías públicas de Mastodon",
|
||||
"privacy.unlisted.short": "Pública, pero discreta",
|
||||
"privacy_policy.last_updated": "Actualizado por última vez {date}",
|
||||
"privacy_policy.title": "Política de Privacidad",
|
||||
"quote_error.poll": "No se permite citar encuestas.",
|
||||
@@ -913,7 +917,7 @@
|
||||
"status.read_more": "Leer más",
|
||||
"status.reblog": "Impulsar",
|
||||
"status.reblog_or_quote": "Impulsar o citar",
|
||||
"status.reblog_private": "Implusar a la audiencia original",
|
||||
"status.reblog_private": "Compartir de nuevo con tus seguidores",
|
||||
"status.reblogged_by": "Impulsado por {name}",
|
||||
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
||||
"status.reblogs.empty": "Nadie impulsó esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
|
||||
@@ -991,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Establece la visibilidad",
|
||||
"visibility_modal.header": "Visibilidad e interacción",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas creadas en Mastodon no pueden ser citadas por otros.",
|
||||
"visibility_modal.helper.privacy_editing": "Las publicaciones ya enviadas no pueden cambiar su visibilidad.",
|
||||
"visibility_modal.helper.privacy_editing": "La visibilidad no se puede cambiar después de que se haya hecho una publicación.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Las citas propias de publicaciones privadas no pueden hacerse públicas.",
|
||||
"visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores creadas en Mastodon no pueden ser citadas por otros.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cuando las personas te citen, sus publicaciones también se ocultarán de las cronologías de tendencias.",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Publicar de todos modos",
|
||||
"confirmations.missing_alt_text.title": "¿Deseas añadir texto alternativo?",
|
||||
"confirmations.mute.confirm": "Silenciar",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "No me lo vuelvas a recordar",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Entendido",
|
||||
"confirmations.quiet_post_quote_info.message": "Cuando cites una publicación pública silenciosa, tu publicación se ocultará de las cronologías de tendencias.",
|
||||
"confirmations.quiet_post_quote_info.title": "Citar publicaciones públicas silenciosas",
|
||||
"confirmations.redraft.confirm": "Borrar y volver a borrador",
|
||||
"confirmations.redraft.message": "¿Estás seguro de querer borrar esta publicación y reescribirla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán sin contexto.",
|
||||
"confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, citas deshabilitadas",
|
||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
||||
"privacy.unlisted.additional": "Se comporta exactamente igual que la visibilidad pública, excepto que la publicación no aparecerá en las cronologías públicas o en las etiquetas, la sección de Explorar o la búsqueda de Mastodon, incluso si has habilitado la opción de búsqueda en tu perfil.",
|
||||
"privacy.unlisted.long": "Sin algoritmos de descubrimiento",
|
||||
"privacy.unlisted.long": "Oculto de los resultados de búsquedas, tendencias y cronologías públicas de Mastodon",
|
||||
"privacy.unlisted.short": "Pública silenciosa",
|
||||
"privacy_policy.last_updated": "Actualizado por última vez {date}",
|
||||
"privacy_policy.title": "Política de Privacidad",
|
||||
@@ -913,7 +917,7 @@
|
||||
"status.read_more": "Leer más",
|
||||
"status.reblog": "Impulsar",
|
||||
"status.reblog_or_quote": "Impulsar o citar",
|
||||
"status.reblog_private": "Impulsar a la audiencia original",
|
||||
"status.reblog_private": "Compartir de nuevo con tus seguidores",
|
||||
"status.reblogged_by": "Impulsado por {name}",
|
||||
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
||||
"status.reblogs.empty": "Nadie ha impulsado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
|
||||
@@ -991,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Configura la visibilidad",
|
||||
"visibility_modal.header": "Visibilidad e interacciones",
|
||||
"visibility_modal.helper.direct_quoting": "Las menciones privadas publicadas en Mastodon no pueden ser citadas por otros usuarios.",
|
||||
"visibility_modal.helper.privacy_editing": "Una vez publicada, no se puede cambiar su visibilidad.",
|
||||
"visibility_modal.helper.privacy_editing": "La visibilidad no se puede cambiar después de que se haya hecho una publicación.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Las citas propias de publicaciones privadas no pueden hacerse públicas.",
|
||||
"visibility_modal.helper.private_quoting": "Las publicaciones solo para seguidores hechas en Mastodon no pueden ser citadas por otros usuarios.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cuando la gente te cite, su publicación tampoco se mostrará en las cronologías públicas.",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Postita siiski",
|
||||
"confirmations.missing_alt_text.title": "Lisada alt-tekst?",
|
||||
"confirmations.mute.confirm": "Vaigista",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Ära tuleta enam meelde",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Sain aru",
|
||||
"confirmations.quiet_post_quote_info.message": "Vaikse, aga avaliku postituse tsiteerimisel sinu postitus on peidetud populaarsust koguvatel ajajoontel.",
|
||||
"confirmations.quiet_post_quote_info.title": "Vaikse, aga avaliku postituse tsiteerimine",
|
||||
"confirmations.redraft.confirm": "Kustuta & taasalusta",
|
||||
"confirmations.redraft.message": "Kindel, et soovid postituse kustutada ja võtta uue aluseks? Lemmikuks märkimised ja jagamised lähevad kaotsi ning vastused jäävad ilma algse postituseta.",
|
||||
"confirmations.redraft.title": "Kustudada ja luua postituse mustand?",
|
||||
@@ -272,7 +276,7 @@
|
||||
"dismissable_banner.public_timeline": "Need on värskeimad avalikud postitused inimestelt fediversiumis, mida domeeni {domain} inimesed jälgivad.",
|
||||
"domain_block_modal.block": "Blokeeri server",
|
||||
"domain_block_modal.block_account_instead": "Selle asemel blokeeri @{name}",
|
||||
"domain_block_modal.they_can_interact_with_old_posts": "Inimesed sellest serverist saavad interakteeruda sinu vanade postitustega.",
|
||||
"domain_block_modal.they_can_interact_with_old_posts": "Inimesed sellest serverist saavad suhestuda sinu vanade postitustega.",
|
||||
"domain_block_modal.they_cant_follow": "Sellest serverist ei saa keegi sind jälgida.",
|
||||
"domain_block_modal.they_wont_know": "Nad ei tea, et nad on blokeeritud.",
|
||||
"domain_block_modal.title": "Blokeerida domeen?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, tsiteerimine pole lubatud",
|
||||
"privacy.quote.limited": "{visibility}, tsiteerimine on piiratud",
|
||||
"privacy.unlisted.additional": "See on olemuselt küll avalik, aga postitus ei ilmu voogudes ega märksõnades, lehitsedes ega Mastodoni otsingus, isegi kui konto on seadistustes avalik.",
|
||||
"privacy.unlisted.long": "Vähem algoritmilisi teavitusi",
|
||||
"privacy.unlisted.long": "Peidetud Mastodoni otsingutulemustest, pupulaarsust koguva sisu voost ja avalikult ajajoonelt",
|
||||
"privacy.unlisted.short": "Vaikselt avalik",
|
||||
"privacy_policy.last_updated": "Viimati uuendatud {date}",
|
||||
"privacy_policy.title": "Isikuandmete kaitse",
|
||||
@@ -768,6 +772,9 @@
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.today": "täna",
|
||||
"remove_quote_hint.button_label": "Sain aru",
|
||||
"remove_quote_hint.message": "Sa saad teha seda {icon} eelistuste menüüst.",
|
||||
"remove_quote_hint.title": "Kas sa soovid oma tsiteeritud postituse eemaldada?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# lisa} other {# lisa}}",
|
||||
"reply_indicator.cancel": "Tühista",
|
||||
"reply_indicator.poll": "Küsitlus",
|
||||
@@ -910,7 +917,7 @@
|
||||
"status.read_more": "Loe veel",
|
||||
"status.reblog": "Jaga",
|
||||
"status.reblog_or_quote": "Anna hoogu või tsiteeri",
|
||||
"status.reblog_private": "Jaga algse nähtavusega",
|
||||
"status.reblog_private": "Jaga uuesti oma jälgijatele",
|
||||
"status.reblogged_by": "{name} jagas",
|
||||
"status.reblogs": "{count, plural, one {jagamine} other {jagamist}}",
|
||||
"status.reblogs.empty": "Keegi pole seda postitust veel jaganud. Kui keegi seda teeb, siis on ta nähtav siin.",
|
||||
@@ -988,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Muuda nähtavust",
|
||||
"visibility_modal.header": "Nähtavus ja kasutus",
|
||||
"visibility_modal.helper.direct_quoting": "Ainult mainituile mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.",
|
||||
"visibility_modal.helper.privacy_editing": "Avaldatud postitused ei saa muuta oma nähtavust.",
|
||||
"visibility_modal.helper.privacy_editing": "Nähtavust ei saa peale postituse avaldamist muuta.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Privaatsete postituste tsiteerimist oma enda poolt pole võimalik teha avalikuks.",
|
||||
"visibility_modal.helper.private_quoting": "Ainult jälgijatele mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Kui teised kasutajad sind tsiteerivad, siis nende postitused peidetakse ajajoonelt, mis näitavad populaarsust koguvaid postitusi.",
|
||||
|
||||
@@ -707,7 +707,6 @@
|
||||
"privacy.public.long": "Mastodonen dagoen edo ez dagoen edonor",
|
||||
"privacy.public.short": "Publikoa",
|
||||
"privacy.unlisted.additional": "Aukera honek publiko modua bezala funtzionatzen du, baina argitalpena ez da agertuko zuzeneko jarioetan edo traoletan, \"Arakatu\" atalean edo Mastodonen bilaketan, nahiz eta kontua zabaltzeko onartu duzun.",
|
||||
"privacy.unlisted.long": "Tontakeria algoritmiko gutxiago",
|
||||
"privacy.unlisted.short": "Deiadar urrikoa",
|
||||
"privacy_policy.last_updated": "Azkenengo eguneraketa {date}",
|
||||
"privacy_policy.title": "Pribatutasun politika",
|
||||
@@ -846,7 +845,6 @@
|
||||
"status.pin": "Finkatu profilean",
|
||||
"status.read_more": "Irakurri gehiago",
|
||||
"status.reblog": "Bultzada",
|
||||
"status.reblog_private": "Bultzada jatorrizko hartzaileei",
|
||||
"status.reblogged_by": "{name}(r)en bultzada",
|
||||
"status.reblogs": "{count, plural, one {bultzada} other {bultzada}}",
|
||||
"status.reblogs.empty": "Inork ez dio bultzada eman bidalketa honi oraindik. Inork egiten badu, hemen agertuko da.",
|
||||
|
||||
@@ -739,7 +739,6 @@
|
||||
"privacy.public.long": "هرکسی در و بیرون از ماستودون",
|
||||
"privacy.public.short": "عمومی",
|
||||
"privacy.unlisted.additional": "درست مثل عمومی رفتار میکند؛ جز این که فرسته در برچسبها یا خوراکهای زنده، کشف یا جستوجوی ماستودون ظاهر نخواهد شد. حتا اگر کلیّت نمایهتان اجازه داده باشد.",
|
||||
"privacy.unlisted.long": "سروصدای الگوریتمی کمتر",
|
||||
"privacy.unlisted.short": "عمومی ساکت",
|
||||
"privacy_policy.last_updated": "آخرین بهروز رسانی در {date}",
|
||||
"privacy_policy.title": "سیاست محرمانگی",
|
||||
@@ -892,7 +891,6 @@
|
||||
"status.quote_post_author": "فرستهای از @{name} نقل شد",
|
||||
"status.read_more": "بیشتر بخوانید",
|
||||
"status.reblog": "تقویت",
|
||||
"status.reblog_private": "تقویت برای مخاطبان نخستین",
|
||||
"status.reblogged_by": "{name} تقویت کرد",
|
||||
"status.reblogs": "{count, plural, one {تقویت} other {تقویت}}",
|
||||
"status.reblogs.empty": "هنوز هیچ کسی این فرسته را تقویت نکرده است. وقتی کسی چنین کاری کند، اینجا نمایش داده خواهد شد.",
|
||||
@@ -967,8 +965,8 @@
|
||||
"video.volume_up": "افزایش حجم صدا",
|
||||
"visibility_modal.button_title": "تنظیم نمایانی",
|
||||
"visibility_modal.header": "نمایانی و برهمکنش",
|
||||
"visibility_modal.helper.privacy_editing": "نمیتوان نمایانی فرستههای منتشر شده را تغییر داد.",
|
||||
"visibility_modal.helper.unlisted_quoting": "هنگامی که افراد نقلتان میکنند فرستهشان هم از خطزمانیهای داغ پنهان خواهد بود.",
|
||||
"visibility_modal.quote_followers": "فقط پیگیرندگان",
|
||||
"visibility_modal.quote_public": "هرکسی"
|
||||
"visibility_modal.quote_public": "هرکسی",
|
||||
"visibility_modal.save": "ذخیره"
|
||||
}
|
||||
|
||||
@@ -745,7 +745,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, lainaukset poissa käytöstä",
|
||||
"privacy.quote.limited": "{visibility}, lainauksia rajoitettu",
|
||||
"privacy.unlisted.additional": "Tämä toimii muuten kuin julkinen, mutta julkaisut eivät näy livesyöte-, aihetunniste- tai selausnäkymissä eivätkä Mastodonin hakutuloksissa, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.",
|
||||
"privacy.unlisted.long": "Vähemmän algoritmiperusteista sisältöä",
|
||||
"privacy.unlisted.long": "Piilotettu Mastodonin hakutuloksista, trendeistä ja julkisilta aikajanoilta",
|
||||
"privacy.unlisted.short": "Vaivihkaa julkinen",
|
||||
"privacy_policy.last_updated": "Päivitetty viimeksi {date}",
|
||||
"privacy_policy.title": "Tietosuojakäytäntö",
|
||||
@@ -913,7 +913,7 @@
|
||||
"status.read_more": "Näytä enemmän",
|
||||
"status.reblog": "Tehosta",
|
||||
"status.reblog_or_quote": "Tehosta tai lainaa",
|
||||
"status.reblog_private": "Tehosta alkuperäiselle yleisölle",
|
||||
"status.reblog_private": "Jaa uudelleen seuraajiesi kanssa",
|
||||
"status.reblogged_by": "{name} tehosti",
|
||||
"status.reblogs": "{count, plural, one {tehostus} other {tehostusta}}",
|
||||
"status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.",
|
||||
@@ -991,7 +991,7 @@
|
||||
"visibility_modal.button_title": "Aseta näkyvyys",
|
||||
"visibility_modal.header": "Näkyvyys ja vuorovaikutus",
|
||||
"visibility_modal.helper.direct_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja yksityismainintoja.",
|
||||
"visibility_modal.helper.privacy_editing": "Lähetettyjen julkaisujen näkyvyyttä ei voi vaihtaa.",
|
||||
"visibility_modal.helper.privacy_editing": "Näkyvyyttä ei voi muuttaa julkaisun jälkeen.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Yksityisten julkaisujen itselainauksista ei voi tehdä julkisia.",
|
||||
"visibility_modal.helper.private_quoting": "Muut eivät voi lainata Mastodonissa kirjoitettuja, vain seuraajille tarkoitettuja julkaisuja.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Kun ihmiset lainaavat sinua, myös heidän julkaisunsa piilotetaan suosittujen julkaisujen aikajanoilta.",
|
||||
|
||||
@@ -745,7 +745,6 @@
|
||||
"privacy.quote.disabled": "{visibility}, siteringar óvirknar",
|
||||
"privacy.quote.limited": "{visibility}, siteringar avmarkaðar",
|
||||
"privacy.unlisted.additional": "Hetta er júst sum almenn, tó verður posturin ikki vístur í samtíðarrásum ella frámerkjum, rannsakan ella Mastodon leitingum, sjálvt um valið er galdandi fyri alla kontuna.",
|
||||
"privacy.unlisted.long": "Færri algoritmiskar fanfarur",
|
||||
"privacy.unlisted.short": "Stillur almenningur",
|
||||
"privacy_policy.last_updated": "Seinast dagført {date}",
|
||||
"privacy_policy.title": "Privatlívspolitikkur",
|
||||
@@ -768,6 +767,9 @@
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.today": "í dag",
|
||||
"remove_quote_hint.button_label": "Eg skilji",
|
||||
"remove_quote_hint.message": "Tú kanst gera tað frá {icon} valmyndini.",
|
||||
"remove_quote_hint.title": "Vilt tú strika siteraða postin hjá tær?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# viðfesti} other {# viðfesti}}",
|
||||
"reply_indicator.cancel": "Ógilda",
|
||||
"reply_indicator.poll": "Atkvøðugreiðsla",
|
||||
@@ -910,7 +912,6 @@
|
||||
"status.read_more": "Les meira",
|
||||
"status.reblog": "Stimbra",
|
||||
"status.reblog_or_quote": "Stimbra ella sitera",
|
||||
"status.reblog_private": "Stimbra við upprunasýni",
|
||||
"status.reblogged_by": "{name} stimbrað",
|
||||
"status.reblogs": "{count, plural, one {stimbran} other {stimbranir}}",
|
||||
"status.reblogs.empty": "Eingin hevur stimbrað hendan postin enn. Tá onkur stimbrar postin, verður hann sjónligur her.",
|
||||
@@ -988,7 +989,7 @@
|
||||
"visibility_modal.button_title": "Set sýni",
|
||||
"visibility_modal.header": "Sýni og samvirkni",
|
||||
"visibility_modal.helper.direct_quoting": "Privatar umrøður, sum eru skrivaðar á Mastodon, kunnu ikki siterast av øðrum.",
|
||||
"visibility_modal.helper.privacy_editing": "Útgivnir postar kunnnu ikki broyta sýni.",
|
||||
"visibility_modal.helper.privacy_editing": "Sýni kann ikki broytast eftir, at ein postur er útgivin.",
|
||||
"visibility_modal.helper.private_quoting": "Postar, sum einans eru fyri fylgjarar á Mastodon, kunnu ikki siterast av øðrum.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Tá fólk sitera teg, so vera teirra postar eisini fjaldir frá tíðarlinjum við ráki.",
|
||||
"visibility_modal.instructions": "Stýr hvør samvirka við hendan postin. Tú kanst eisini áseta stillingar til allar framtíðar postar við at fara til <link>Stillingar > Postingarstillingar</link>.",
|
||||
|
||||
@@ -739,7 +739,6 @@
|
||||
"privacy.quote.disabled": "{visibility}, citations désactivées",
|
||||
"privacy.quote.limited": "{visibility}, citations limitées",
|
||||
"privacy.unlisted.additional": "Se comporte exactement comme « public », sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, explorer ou la recherche Mastodon, même si vous les avez activé au niveau de votre compte.",
|
||||
"privacy.unlisted.long": "Moins de fanfares algorithmiques",
|
||||
"privacy.unlisted.short": "Public discret",
|
||||
"privacy_policy.last_updated": "Dernière mise à jour {date}",
|
||||
"privacy_policy.title": "Politique de confidentialité",
|
||||
@@ -898,7 +897,6 @@
|
||||
"status.quote_private": "Les publications privées ne peuvent pas être citées",
|
||||
"status.read_more": "En savoir plus",
|
||||
"status.reblog": "Booster",
|
||||
"status.reblog_private": "Booster avec visibilité originale",
|
||||
"status.reblogged_by": "{name} a boosté",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||
"status.reblogs.empty": "Personne n’a encore boosté cette publication. Lorsque quelqu’un le fera, elle apparaîtra ici.",
|
||||
|
||||
@@ -739,7 +739,6 @@
|
||||
"privacy.quote.disabled": "{visibility}, citations désactivées",
|
||||
"privacy.quote.limited": "{visibility}, citations limitées",
|
||||
"privacy.unlisted.additional": "Se comporte exactement comme « public », sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, explorer ou la recherche Mastodon, même si vous les avez activé au niveau de votre compte.",
|
||||
"privacy.unlisted.long": "Moins de fanfares algorithmiques",
|
||||
"privacy.unlisted.short": "Public discret",
|
||||
"privacy_policy.last_updated": "Dernière mise à jour {date}",
|
||||
"privacy_policy.title": "Politique de confidentialité",
|
||||
@@ -898,7 +897,6 @@
|
||||
"status.quote_private": "Les publications privées ne peuvent pas être citées",
|
||||
"status.read_more": "En savoir plus",
|
||||
"status.reblog": "Partager",
|
||||
"status.reblog_private": "Partager à l’audience originale",
|
||||
"status.reblogged_by": "{name} a partagé",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||
"status.reblogs.empty": "Personne n’a encore partagé ce message. Lorsque quelqu’un le fera, il apparaîtra ici.",
|
||||
|
||||
@@ -731,7 +731,6 @@
|
||||
"privacy.public.long": "Elkenien op Mastodon en dêrbûten",
|
||||
"privacy.public.short": "Iepenbier",
|
||||
"privacy.unlisted.additional": "Dit is fergelykber mei iepenbier, útsein dat it berjocht net ferskynt op iepenbiere tiidlijnen of hashtags, ûnder ferkenne of Mastodon sykje, sels as jo jo account dêrfoar ynsteld hawwe.",
|
||||
"privacy.unlisted.long": "Minder algoritmyske fanfare",
|
||||
"privacy.unlisted.short": "Minder iepenbier",
|
||||
"privacy_policy.last_updated": "Lêst bywurke op {date}",
|
||||
"privacy_policy.title": "Privacybelied",
|
||||
@@ -875,7 +874,6 @@
|
||||
"status.quote_error.filtered": "Ferburgen troch ien fan jo filters",
|
||||
"status.read_more": "Mear ynfo",
|
||||
"status.reblog": "Booste",
|
||||
"status.reblog_private": "Boost nei oarspronklike ûntfangers",
|
||||
"status.reblogged_by": "{name} hat boost",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||
"status.reblogs.empty": "Net ien hat dit berjocht noch boost. Wannear’t ien dit docht, falt dat hjir te sjen.",
|
||||
|
||||
@@ -745,7 +745,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, comharthaí athfhriotail díchumasaithe",
|
||||
"privacy.quote.limited": "{visibility}, luachana teoranta",
|
||||
"privacy.unlisted.additional": "Iompraíonn sé seo díreach mar a bheadh poiblí, ach amháin ní bheidh an postáil le feiceáil i bhfothaí beo nó i hashtags, in iniúchadh nó i gcuardach Mastodon, fiú má tá tú liostáilte ar fud an chuntais.",
|
||||
"privacy.unlisted.long": "Níos lú fanfarraí algarthacha",
|
||||
"privacy.unlisted.long": "I bhfolach ó thorthaí cuardaigh Mastodon, treochtaí, agus amlínte poiblí",
|
||||
"privacy.unlisted.short": "Poiblí ciúin",
|
||||
"privacy_policy.last_updated": "Nuashonraithe {date}",
|
||||
"privacy_policy.title": "Polasaí príobháideachais",
|
||||
@@ -768,6 +768,9 @@
|
||||
"relative_time.minutes": "{number}n",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.today": "inniu",
|
||||
"remove_quote_hint.button_label": "Tuigim é",
|
||||
"remove_quote_hint.message": "Is féidir leat é sin a dhéanamh ón roghchlár roghanna {icon}.",
|
||||
"remove_quote_hint.title": "Ar mhaith leat do phost luaite a bhaint?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# alán} two {# aláin} few {# aláin} many {# aláin} other {# aláin}}",
|
||||
"reply_indicator.cancel": "Cealaigh",
|
||||
"reply_indicator.poll": "Vótaíocht",
|
||||
@@ -863,6 +866,7 @@
|
||||
"status.block": "Bac @{name}",
|
||||
"status.bookmark": "Leabharmharcanna",
|
||||
"status.cancel_reblog_private": "Dímhol",
|
||||
"status.cannot_quote": "Tá luachana díchumasaithe ar an bpost seo",
|
||||
"status.cannot_reblog": "Ní féidir an phostáil seo a mholadh",
|
||||
"status.context.load_new_replies": "Freagraí nua ar fáil",
|
||||
"status.context.loading": "Ag seiceáil le haghaidh tuilleadh freagraí",
|
||||
@@ -909,7 +913,7 @@
|
||||
"status.read_more": "Léan a thuilleadh",
|
||||
"status.reblog": "Treisiú",
|
||||
"status.reblog_or_quote": "Borradh nó luachan",
|
||||
"status.reblog_private": "Mol le léargas bunúsach",
|
||||
"status.reblog_private": "Roinn arís le do leanúna",
|
||||
"status.reblogged_by": "Mhol {name}",
|
||||
"status.reblogs": "{count, plural, one {buaic} other {buaic}}",
|
||||
"status.reblogs.empty": "Níor mhol éinne an phostáil seo fós. Nuair a mholfaidh duine éigin í, taispeánfar anseo é sin.",
|
||||
@@ -987,10 +991,14 @@
|
||||
"visibility_modal.button_title": "Socraigh infheictheacht",
|
||||
"visibility_modal.header": "Infheictheacht agus idirghníomhaíocht",
|
||||
"visibility_modal.helper.direct_quoting": "Ní féidir le daoine eile tráchtanna príobháideacha a scríobhadh ar Mastodon a lua.",
|
||||
"visibility_modal.helper.privacy_editing": "Ní féidir infheictheacht postálacha foilsithe a athrú.",
|
||||
"visibility_modal.helper.privacy_editing": "Ní féidir infheictheacht a athrú tar éis post a fhoilsiú.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Ní féidir féin-luachanna ó phoist phríobháideacha a chur ar fáil don phobal.",
|
||||
"visibility_modal.helper.private_quoting": "Ní féidir le daoine eile poist atá scríofa ar Mastodon agus atá dírithe ar leanúna amháin a lua.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Nuair a luann daoine thú, beidh a bpost i bhfolach ó amlínte treochta freisin.",
|
||||
"visibility_modal.instructions": "Rialaigh cé a fhéadfaidh idirghníomhú leis an bpost seo. Is féidir leat socruithe a chur i bhfeidhm ar gach post amach anseo trí nascleanúint a dhéanamh chuig <link>Sainroghanna > Réamhshocruithe Postála</link>.",
|
||||
"visibility_modal.privacy_label": "Infheictheacht",
|
||||
"visibility_modal.quote_followers": "Leantóirí amháin",
|
||||
"visibility_modal.quote_label": "Cé a fhéadfaidh lua",
|
||||
"visibility_modal.quote_nobody": "Mise amháin",
|
||||
"visibility_modal.quote_public": "Aon duine",
|
||||
"visibility_modal.save": "Sábháil"
|
||||
|
||||
@@ -731,7 +731,6 @@
|
||||
"privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon",
|
||||
"privacy.public.short": "Poblach",
|
||||
"privacy.unlisted.additional": "Tha seo coltach ris an fhaicsinneachd phoblach ach cha nochd am post air loidhnichean-ama an t-saoghail phoblaich, nan tagaichean hais no an rùrachaidh no ann an toraidhean luirg Mhastodon fiù ’s ma thug thu ro-aonta airson sin seachad.",
|
||||
"privacy.unlisted.long": "Ìre bheag an algairim",
|
||||
"privacy.unlisted.short": "Poblach ach sàmhach",
|
||||
"privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}",
|
||||
"privacy_policy.title": "Poileasaidh prìobhaideachd",
|
||||
@@ -873,7 +872,6 @@
|
||||
"status.quote_error.filtered": "Falaichte le criathrag a th’ agad",
|
||||
"status.read_more": "Leugh an còrr",
|
||||
"status.reblog": "Brosnaich",
|
||||
"status.reblog_private": "Brosnaich leis an t-so-fhaicsinneachd tùsail",
|
||||
"status.reblogged_by": "’Ga bhrosnachadh le {name}",
|
||||
"status.reblogs": "{count, plural, one {bhrosnachadh} two {bhrosnachadh} few {brosnachaidhean} other {brosnachadh}}",
|
||||
"status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.",
|
||||
|
||||
@@ -745,7 +745,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, citas desactivadas",
|
||||
"privacy.quote.limited": "{visibility}, citas limitadas",
|
||||
"privacy.unlisted.additional": "Do mesmo xeito que público, menos que a publicación non aparecerá nas cronoloxías en directo ou nos cancelos, en descubrir ou nas buscas de Mastodon, incluso se estivese establecido nas opcións xerais da conta.",
|
||||
"privacy.unlisted.long": "Menor implicación dos algoritmos",
|
||||
"privacy.unlisted.long": "Non aparece nos resultados de buscas en Mastodon, nas tendencias e cronoloxías públicas",
|
||||
"privacy.unlisted.short": "Público limitado",
|
||||
"privacy_policy.last_updated": "Actualizado por última vez no {date}",
|
||||
"privacy_policy.title": "Política de Privacidade",
|
||||
@@ -913,7 +913,7 @@
|
||||
"status.read_more": "Ler máis",
|
||||
"status.reblog": "Promover",
|
||||
"status.reblog_or_quote": "Promover ou citar",
|
||||
"status.reblog_private": "Compartir coa audiencia orixinal",
|
||||
"status.reblog_private": "Volver a compartir coas túas seguidoras",
|
||||
"status.reblogged_by": "{name} promoveu",
|
||||
"status.reblogs": "{count, plural, one {promoción} other {promocións}}",
|
||||
"status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.",
|
||||
@@ -991,7 +991,7 @@
|
||||
"visibility_modal.button_title": "Establece a visibilidade",
|
||||
"visibility_modal.header": "Visibilidade e interaccións",
|
||||
"visibility_modal.helper.direct_quoting": "As mencións privadas creadas con Mastodon non poden ser citadas.",
|
||||
"visibility_modal.helper.privacy_editing": "Non se pode cambiar a visibilidade das publicacións xa publicadas.",
|
||||
"visibility_modal.helper.privacy_editing": "Non se pode cambiar a visibilidade unha vez foi publicada.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Non se poden facer públicas as auto-citas de publicacións privadas.",
|
||||
"visibility_modal.helper.private_quoting": "As publicacións só para seguidoras creadas con Mastodon non poden ser citadas.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Cando alguén te cite, a súa publicación non aparecerá nas cronoloxías de popularidade.",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "לפרסם בכל זאת",
|
||||
"confirmations.missing_alt_text.title": "להוסיף מלל חלופי?",
|
||||
"confirmations.mute.confirm": "להשתיק",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "אל תזכיר לי שוב",
|
||||
"confirmations.quiet_post_quote_info.got_it": "הבנתי",
|
||||
"confirmations.quiet_post_quote_info.message": "כשמצטטים הודעה ציבורית שקטה, גם ההודעה המצטטת תוסתר מחלון הנושאים החמים.",
|
||||
"confirmations.quiet_post_quote_info.title": "ציטוט הודעות ציבוריות שקטות",
|
||||
"confirmations.redraft.confirm": "מחיקה ועריכה מחדש",
|
||||
"confirmations.redraft.message": "למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.",
|
||||
"confirmations.redraft.title": "מחיקה ועריכה מחדש?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, האפשרות לציטוט מכובה",
|
||||
"privacy.quote.limited": "{visibility}, האפשרות לציטוט מוגבלת",
|
||||
"privacy.unlisted.additional": "ההתנהגות דומה להודעה ציבורית, מלבד שההודעה לא תופיע בפיד החי המקומי או בתגיות, תגליות או חיפוש מסטודון, אפילו אם ביקשת שהחשבון כולו יהיה פומבי.",
|
||||
"privacy.unlisted.long": "פחות חשיפה לאלגוריתמים",
|
||||
"privacy.unlisted.long": "מוסתרת מתוצאות חיפוש במסטודון, נושאים חמים וציר הזמן הציבורי",
|
||||
"privacy.unlisted.short": "ציבורי שקט",
|
||||
"privacy_policy.last_updated": "עודכן לאחרונה {date}",
|
||||
"privacy_policy.title": "מדיניות פרטיות",
|
||||
@@ -913,7 +917,7 @@
|
||||
"status.read_more": "לקרוא עוד",
|
||||
"status.reblog": "הדהוד",
|
||||
"status.reblog_or_quote": "להדהד או לצטט",
|
||||
"status.reblog_private": "להדהד ברמת הנראות המקורית",
|
||||
"status.reblog_private": "שיתוף מחדש עם העוקבות והעוקבים שלך",
|
||||
"status.reblogged_by": "{name} הידהד/ה:",
|
||||
"status.reblogs": "{count, plural, one {הדהוד אחד} two {שני הדהודים} other {# הדהודים}}",
|
||||
"status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.",
|
||||
@@ -991,12 +995,12 @@
|
||||
"visibility_modal.button_title": "בחירת רמת חשיפה",
|
||||
"visibility_modal.header": "חשיפה והידוּד (אינטראקציה)",
|
||||
"visibility_modal.helper.direct_quoting": "איזכורים פרטיים שנוצרו במסטודון חסומים מציטוט על ידי אחרים.",
|
||||
"visibility_modal.helper.privacy_editing": "לא ניתן לשנות את דרגת החשיפה של הודעות שפורסמו.",
|
||||
"visibility_modal.helper.privacy_editing": "רמת החשיפה של ההודעה לא ניתנת לשינוי אחרי הפרסום.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "ציטוט עצמי של הודעות פרטיות בהודעה ציבורית איננו אפשרי.",
|
||||
"visibility_modal.helper.private_quoting": "הודעות לעוקבים־בלבד שנוצרו במסטודון חסומות מציטוט על ידי אחרים.",
|
||||
"visibility_modal.helper.unlisted_quoting": "כאשר אחרים מצטטים אותך, ההודעות שלהם יוסתרו גם מ\"נושאים חמים\".",
|
||||
"visibility_modal.instructions": "שליטה ביכולות השימוש של קהל הקוראות בהודעה. תוכלו גם לבחור את ברירות המחדל לכל ההודעות העתידיות על ידי ניווט אל <link>העדפות > ברירות מחדל בפרסום</link>.",
|
||||
"visibility_modal.privacy_label": "נראות",
|
||||
"visibility_modal.privacy_label": "חשיפה",
|
||||
"visibility_modal.quote_followers": "לעוקבים בלבד",
|
||||
"visibility_modal.quote_label": "למי מותר לצטט",
|
||||
"visibility_modal.quote_nobody": "רק אני",
|
||||
|
||||
@@ -421,7 +421,6 @@
|
||||
"status.pin": "Prikvači na profil",
|
||||
"status.read_more": "Pročitajte više",
|
||||
"status.reblog": "Boostaj",
|
||||
"status.reblog_private": "Boostaj s izvornom vidljivošću",
|
||||
"status.reblogged_by": "{name} je boostao/la",
|
||||
"status.reblogs.empty": "Nitko još nije boostao ovaj toot. Kada netko to učini, ovdje će biti prikazani.",
|
||||
"status.redraft": "Izbriši i ponovno uredi",
|
||||
|
||||
@@ -239,6 +239,8 @@
|
||||
"confirmations.missing_alt_text.secondary": "Közzététel mindenképpen",
|
||||
"confirmations.missing_alt_text.title": "Helyettesítő szöveg hozzáadása?",
|
||||
"confirmations.mute.confirm": "Némítás",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Ne emlékeztessen újra",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Rendben",
|
||||
"confirmations.redraft.confirm": "Törlés és újraírás",
|
||||
"confirmations.redraft.message": "Biztos, hogy ezt a bejegyzést szeretnéd törölni és újraírni? Minden megtolást és kedvencnek jelölést elvesztesz, az eredetire adott válaszok pedig elárvulnak.",
|
||||
"confirmations.redraft.title": "Törlöd és újraírod a bejegyzést?",
|
||||
@@ -745,7 +747,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, idézés letiltva",
|
||||
"privacy.quote.limited": "{visibility}, idézés korlátozva",
|
||||
"privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírfolyamokban, hashtagekben, felfedezésben vagy a Mastodonos keresésben, még akkor sem, ha ezt az egész fiókra engedélyezted.",
|
||||
"privacy.unlisted.long": "Kevesebb algoritmikus fanfár",
|
||||
"privacy.unlisted.long": "Elrejtve a Mastodon keresési találataiban, a felkapottak között és a nyilvános idővonalakon",
|
||||
"privacy.unlisted.short": "Csendes nyilvános",
|
||||
"privacy_policy.last_updated": "Utoljára frissítve: {date}",
|
||||
"privacy_policy.title": "Adatvédelmi szabályzat",
|
||||
@@ -768,6 +770,9 @@
|
||||
"relative_time.minutes": "{number}p",
|
||||
"relative_time.seconds": "{number}mp",
|
||||
"relative_time.today": "ma",
|
||||
"remove_quote_hint.button_label": "Rendben",
|
||||
"remove_quote_hint.message": "Ezt a {icon} beállítások menüben lehet megtenni.",
|
||||
"remove_quote_hint.title": "Eltávolítod az idézett bejegyzésedet?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# melléklet} other {# melléklet}}",
|
||||
"reply_indicator.cancel": "Mégsem",
|
||||
"reply_indicator.poll": "Szavazás",
|
||||
@@ -863,6 +868,7 @@
|
||||
"status.block": "@{name} letiltása",
|
||||
"status.bookmark": "Könyvjelzőzés",
|
||||
"status.cancel_reblog_private": "Megtolás visszavonása",
|
||||
"status.cannot_quote": "Az idézés ki van kapcsolva ennél a bejegyzésnél",
|
||||
"status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni",
|
||||
"status.context.load_new_replies": "Új válaszok érhetőek el",
|
||||
"status.context.loading": "További válaszok keresése",
|
||||
@@ -909,7 +915,7 @@
|
||||
"status.read_more": "Bővebben",
|
||||
"status.reblog": "Megtolás",
|
||||
"status.reblog_or_quote": "Megtolás vagy idézés",
|
||||
"status.reblog_private": "Megtolás az eredeti közönségnek",
|
||||
"status.reblog_private": "Megosztás a követőiddel",
|
||||
"status.reblogged_by": "{name} megtolta",
|
||||
"status.reblogs": "{count, plural, one {megtolás} other {megtolás}}",
|
||||
"status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.",
|
||||
@@ -987,7 +993,8 @@
|
||||
"visibility_modal.button_title": "Láthatóság beállítása",
|
||||
"visibility_modal.header": "Láthatóság és interakció",
|
||||
"visibility_modal.helper.direct_quoting": "A Mastodonon készült privát említéseket mások nem idézhetik.",
|
||||
"visibility_modal.helper.privacy_editing": "A közzétett bejegyzések láthatósága nem módosítható.",
|
||||
"visibility_modal.helper.privacy_editing": "A láthatóság nem módosítható a bejegyzés közzététele után.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "A privát bejegyzések saját idézései nem tehetőek nyilvánossá.",
|
||||
"visibility_modal.helper.private_quoting": "A Mastodonon írt, csak követőknek szóló bejegyzéseket mások nem idézhetik.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Amikor idéznek tőled, a bejegyzésük rejtve lesz a felkapott bejegyzések hírfolyamain is.",
|
||||
"visibility_modal.instructions": "Állítsd be, hogy ki léphet interakcióba a bejegyzéssel. Az összes bejegyzésre is alkalmazhatod, ha a <link>Beállítások > Bejegyzések alapértelmezései</link> lapra navigálsz.",
|
||||
|
||||
@@ -412,7 +412,6 @@
|
||||
"status.pin": "Ամրացնել անձնական էջում",
|
||||
"status.read_more": "Կարդալ աւելին",
|
||||
"status.reblog": "Տարածել",
|
||||
"status.reblog_private": "Տարածել սեփական լսարանին",
|
||||
"status.reblogged_by": "{name} տարածել է",
|
||||
"status.reblogs.empty": "Այս գրառումը ոչ մէկ դեռ չի տարածել։ Տարածողները կերեւան այստեղ, երբ տարածեն։",
|
||||
"status.redraft": "Ջնջել եւ վերակազմել",
|
||||
|
||||
@@ -744,7 +744,6 @@
|
||||
"privacy.quote.disabled": "{visibility}, citation disactivate",
|
||||
"privacy.quote.limited": "{visibility}, citation limitate",
|
||||
"privacy.unlisted.additional": "Isto es exactemente como public, excepte que le message non apparera in fluxos in directo, in hashtags, in Explorar, o in le recerca de Mastodon, mesmo si tu ha optate pro render tote le conto discoperibile.",
|
||||
"privacy.unlisted.long": "Minus fanfares algorithmic",
|
||||
"privacy.unlisted.short": "Public, non listate",
|
||||
"privacy_policy.last_updated": "Ultime actualisation {date}",
|
||||
"privacy_policy.title": "Politica de confidentialitate",
|
||||
@@ -903,7 +902,6 @@
|
||||
"status.quotes": "{count, plural, one {citation} other {citationes}}",
|
||||
"status.read_more": "Leger plus",
|
||||
"status.reblog": "Impulsar",
|
||||
"status.reblog_private": "Impulsar con visibilitate original",
|
||||
"status.reblogged_by": "Impulsate per {name}",
|
||||
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
||||
"status.reblogs.empty": "Necuno ha ancora impulsate iste message. Quando alcuno lo face, le impulsos apparera hic.",
|
||||
@@ -980,7 +978,6 @@
|
||||
"visibility_modal.button_title": "Definir visibilitate",
|
||||
"visibility_modal.header": "Visibilitate e interaction",
|
||||
"visibility_modal.helper.direct_quoting": "Le mentiones private scribite sur Mastodon non pote esser citate per alteres.",
|
||||
"visibility_modal.helper.privacy_editing": "Le messages ja publicate non pote cambiar de visibilitate.",
|
||||
"visibility_modal.helper.private_quoting": "Le messages limitate al sequitores scribite sur Mastodon non pote esser citate per alteres.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quando un persona te cita, su message essera tamben celate del chronologia \"In tendentia\".",
|
||||
"visibility_modal.quote_followers": "Solmente sequitores",
|
||||
|
||||
@@ -544,7 +544,6 @@
|
||||
"status.pin": "Sematkan di profil",
|
||||
"status.read_more": "Baca lebih banyak",
|
||||
"status.reblog": "Boost",
|
||||
"status.reblog_private": "Boost dengan visibilitas asli",
|
||||
"status.reblogged_by": "{name} mem-boost",
|
||||
"status.reblogs.empty": "Belum ada yang mem-boost toot ini. Ketika seseorang melakukannya, mereka akan muncul di sini.",
|
||||
"status.redraft": "Hapus & draf ulang",
|
||||
|
||||
@@ -509,7 +509,6 @@
|
||||
"privacy.public.long": "Quicunc in e ex Mastodon",
|
||||
"privacy.public.short": "Public",
|
||||
"privacy.unlisted.additional": "It acte just quam public, except que li posta ne va aparir in tendentie o hashtags, explorar, o sercha de Mastodon, mem si tu ha optet por les sur tui tot conto.",
|
||||
"privacy.unlisted.long": "Minu fanfare algoritmic",
|
||||
"privacy.unlisted.short": "Quiet public",
|
||||
"privacy_policy.last_updated": "Ultimmen actualisat ye {date}",
|
||||
"privacy_policy.title": "Politica pri Privatie",
|
||||
@@ -635,7 +634,6 @@
|
||||
"status.pin": "Pinglar sur profil",
|
||||
"status.read_more": "Leer plu",
|
||||
"status.reblog": "Boostar",
|
||||
"status.reblog_private": "Boostar con li original visibilitá",
|
||||
"status.reblogged_by": "{name} boostat",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||
"status.reblogs.empty": "Ancor nequi ha boostat ti-ci posta. Quande alqui fa it, ilu va aparir ci.",
|
||||
|
||||
@@ -677,7 +677,6 @@
|
||||
"privacy.public.long": "Ulu de e ne de Mastodon",
|
||||
"privacy.public.short": "Publike",
|
||||
"privacy.unlisted.additional": "Co kondutas exakte kam publika, ecepte la posto ne aparos en nuna flui o gretvorti, exploro, o sercho di Mastodon, mem se vu esas volunta totkonte.",
|
||||
"privacy.unlisted.long": "Min multa algoritmoridikuli",
|
||||
"privacy.unlisted.short": "Deslauta publiko",
|
||||
"privacy_policy.last_updated": "Antea novajo ye {date}",
|
||||
"privacy_policy.title": "Privatesguidilo",
|
||||
@@ -817,7 +816,6 @@
|
||||
"status.pin": "Pinglagez che profilo",
|
||||
"status.read_more": "Lektez plu",
|
||||
"status.reblog": "Repetez",
|
||||
"status.reblog_private": "Repetez kun originala videbleso",
|
||||
"status.reblogged_by": "{name} repetis",
|
||||
"status.reblogs": "{count, plural, one {repeto} other {repeti}}",
|
||||
"status.reblogs.empty": "Nulu ja repetis ca posto. Kande ulu facas lo, lu montresos hike.",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "Birta samt",
|
||||
"confirmations.missing_alt_text.title": "Bæta við hjálpartexta?",
|
||||
"confirmations.mute.confirm": "Þagga",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Ekki minna mig aftur á þetta",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Náði því",
|
||||
"confirmations.quiet_post_quote_info.message": "Þegar þú vitnar í hljóðláta opinbera færslu, verður færslan þín ekki birt á vinsældatímalínum.",
|
||||
"confirmations.quiet_post_quote_info.title": "Vitnað í hljóðlátar opinberar færslur",
|
||||
"confirmations.redraft.confirm": "Eyða og endurvinna drög",
|
||||
"confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.",
|
||||
"confirmations.redraft.title": "Eyða og byrja ný drög að færslu?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, tilvitnanir eru óvirkar",
|
||||
"privacy.quote.limited": "{visibility}, tilvitnanir eru takmarkaðar",
|
||||
"privacy.unlisted.additional": "Þetta hegðar sér eins og opinber færsla, fyrir utan að færslan birtist ekki í beinum streymum eða myllumerkjum, né heldur í Mastodon-leitum jafnvel þótt þú hafir valið að falla undir slíkt í notandasniðinu þínu.",
|
||||
"privacy.unlisted.long": "Minni stælar í reikniritum",
|
||||
"privacy.unlisted.long": "Falið frá leitarniðurstöðum Mastodon, vinsældalistum og opinberum tímalínum",
|
||||
"privacy.unlisted.short": "Hljóðlátt opinbert",
|
||||
"privacy_policy.last_updated": "Síðast uppfært {date}",
|
||||
"privacy_policy.title": "Persónuverndarstefna",
|
||||
@@ -913,7 +917,7 @@
|
||||
"status.read_more": "Lesa meira",
|
||||
"status.reblog": "Endurbirting",
|
||||
"status.reblog_or_quote": "Endurbirta eða vitna í færslu",
|
||||
"status.reblog_private": "Endurbirta til upphaflegra lesenda",
|
||||
"status.reblog_private": "Deildu aftur með þeim sem fylgjast með þér",
|
||||
"status.reblogged_by": "{name} endurbirti",
|
||||
"status.reblogs": "{count, plural, one {endurbirting} other {endurbirtingar}}",
|
||||
"status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
|
||||
@@ -991,7 +995,7 @@
|
||||
"visibility_modal.button_title": "Stilla sýnileika",
|
||||
"visibility_modal.header": "Sýnileiki og gagnvirkni",
|
||||
"visibility_modal.helper.direct_quoting": "Ekki er hægt að vitna í einkaspjall sem skrifað er á Mastodon.",
|
||||
"visibility_modal.helper.privacy_editing": "Ekki er hægt að breyta sýnileika birtra færslna.",
|
||||
"visibility_modal.helper.privacy_editing": "Ekki er hægt að breyta sýnileika færslu eftir að hún hefur verið birt.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Tilvitnanir í sjálfan sig úr einkaspjallfærslum er ekki hægt að gera opinberar.",
|
||||
"visibility_modal.helper.private_quoting": "Ekki er hægt að vitna í færslur einungis til fylgjenda sem skrifaðar eru á Mastodon.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Þegar fólk vitnar í þig verða færslurnar þeirr einnig faldar á vinsældatímalínum.",
|
||||
|
||||
@@ -745,7 +745,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, citazioni disabilitate",
|
||||
"privacy.quote.limited": "{visibility}, citazioni limitate",
|
||||
"privacy.unlisted.additional": "Si comporta esattamente come pubblico, tranne per il fatto che il post non verrà visualizzato nei feed live o negli hashtag, nell'esplorazione o nella ricerca Mastodon, anche se hai attivato l'attivazione a livello di account.",
|
||||
"privacy.unlisted.long": "Meno fanfare algoritmiche",
|
||||
"privacy.unlisted.long": "Nascosto dai risultati di ricerca di Mastodon, dalle tendenze e dalle timeline pubbliche",
|
||||
"privacy.unlisted.short": "Pubblico silenzioso",
|
||||
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
|
||||
"privacy_policy.title": "Politica sulla Privacy",
|
||||
@@ -768,6 +768,9 @@
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.today": "oggi",
|
||||
"remove_quote_hint.button_label": "Ho capito",
|
||||
"remove_quote_hint.message": "Puoi farlo dal menu delle opzioni {icon}.",
|
||||
"remove_quote_hint.title": "Vuoi rimuovere il tuo post citato?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# allegato} other {# allegati}}",
|
||||
"reply_indicator.cancel": "Annulla",
|
||||
"reply_indicator.poll": "Sondaggio",
|
||||
@@ -863,6 +866,7 @@
|
||||
"status.block": "Blocca @{name}",
|
||||
"status.bookmark": "Aggiungi segnalibro",
|
||||
"status.cancel_reblog_private": "Annulla reblog",
|
||||
"status.cannot_quote": "Le citazioni sono disabilitate su questo post",
|
||||
"status.cannot_reblog": "Questo post non può essere condiviso",
|
||||
"status.context.load_new_replies": "Nuove risposte disponibili",
|
||||
"status.context.loading": "Controllo per altre risposte",
|
||||
@@ -909,7 +913,7 @@
|
||||
"status.read_more": "Leggi di più",
|
||||
"status.reblog": "Reblog",
|
||||
"status.reblog_or_quote": "Condividi o cita",
|
||||
"status.reblog_private": "Reblog con visibilità originale",
|
||||
"status.reblog_private": "Condividi di nuovo con i tuoi seguaci",
|
||||
"status.reblogged_by": "Rebloggato da {name}",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boost}}",
|
||||
"status.reblogs.empty": "Ancora nessuno ha rebloggato questo post. Quando qualcuno lo farà, apparirà qui.",
|
||||
@@ -987,7 +991,8 @@
|
||||
"visibility_modal.button_title": "Imposta la visibilità",
|
||||
"visibility_modal.header": "Visibilità e interazione",
|
||||
"visibility_modal.helper.direct_quoting": "Le menzioni private scritte su Mastodon non possono essere citate da altri.",
|
||||
"visibility_modal.helper.privacy_editing": "La visibilità dei post pubblicati non può essere modificata.",
|
||||
"visibility_modal.helper.privacy_editing": "La visibilità non può essere modificata dopo la pubblicazione di un post.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Le autocitazioni di post privati non possono essere rese pubbliche.",
|
||||
"visibility_modal.helper.private_quoting": "I post scritti e riservati ai seguaci su Mastodon non possono essere citati da altri.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quando le persone ti citano, il loro post verrà nascosto anche dalle timeline di tendenza.",
|
||||
"visibility_modal.instructions": "Controlla chi può interagire con questo post. Puoi anche applicare le impostazioni a tutti i post futuri andando su <link>Preferenze > Impostazioni predefinite per i post</link>.",
|
||||
|
||||
@@ -728,7 +728,6 @@
|
||||
"privacy.public.long": "すべての人 (Mastodon以外も含む)",
|
||||
"privacy.public.short": "公開",
|
||||
"privacy.unlisted.additional": "「公開」とほとんど同じですが、リアルタイムフィードやハッシュタグ、探索機能、Mastodon検索などに投稿が表示されない点で「公開」と異なります。また、アカウント設定で投稿の検索や表示を許可している場合でも、この公開範囲を設定した投稿は前述の機能には表示されません。",
|
||||
"privacy.unlisted.long": "より表示機会の少ない公開",
|
||||
"privacy.unlisted.short": "ひかえめな公開",
|
||||
"privacy_policy.last_updated": "{date}に更新",
|
||||
"privacy_policy.title": "プライバシーポリシー",
|
||||
@@ -870,7 +869,6 @@
|
||||
"status.quote_error.filtered": "あなたのフィルター設定によって非表示になっています",
|
||||
"status.read_more": "もっと見る",
|
||||
"status.reblog": "ブースト",
|
||||
"status.reblog_private": "ブースト",
|
||||
"status.reblogged_by": "{name}さんがブースト",
|
||||
"status.reblogs": "{count, plural, one {ブースト} other {ブースト}}",
|
||||
"status.reblogs.empty": "まだ誰もブーストしていません。ブーストされるとここに表示されます。",
|
||||
|
||||
@@ -197,7 +197,6 @@
|
||||
"status.open": "ამ სტატუსის გაფართოება",
|
||||
"status.pin": "აპინე პროფილზე",
|
||||
"status.reblog": "ბუსტი",
|
||||
"status.reblog_private": "დაიბუსტოს საწყის აუდიტორიაზე",
|
||||
"status.reblogged_by": "{name} დაიბუსტა",
|
||||
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
|
||||
"status.redraft": "გაუქმდეს და გადანაწილდეს",
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
"account.edit_profile": "Ẓreg amaɣnu",
|
||||
"account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}",
|
||||
"account.endorse": "Welleh fell-as deg umaɣnu-inek",
|
||||
"account.familiar_followers_many": "Yeṭṭafaṛ-it {name1} d {name2}, akked {othersCount, plural, one {yiwen nniḍen i tessneḍ} other {# nniḍen i tessneḍ}}",
|
||||
"account.familiar_followers_one": "Yeṭṭafar-it {name1}",
|
||||
"account.familiar_followers_two": "Yeṭṭafar-it {name1} akked {name2}",
|
||||
"account.featured.accounts": "Imeɣna",
|
||||
"account.featured.hashtags": "Ihacṭagen",
|
||||
"account.featured_tags.last_status_at": "Tasuffeɣt taneggarut ass n {date}",
|
||||
@@ -186,6 +189,7 @@
|
||||
"confirmations.redraft.confirm": "Kkes sakin ɛiwed tira",
|
||||
"confirmations.remove_from_followers.confirm": "Kkes aneḍfar",
|
||||
"confirmations.revoke_quote.confirm": "Kkes tasuffeɣt",
|
||||
"confirmations.revoke_quote.title": "Kkes tasuffeɣt?",
|
||||
"confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara",
|
||||
"confirmations.unfollow.message": "Tetḥeqqeḍ belli tebɣiḍ ur teṭafaṛeḍ ara {name}?",
|
||||
"content_warning.hide": "Ffer tasuffeɣt",
|
||||
@@ -336,6 +340,7 @@
|
||||
"interaction_modal.on_another_server": "Deg uqeddac nniḍen",
|
||||
"interaction_modal.on_this_server": "Deg uqeddac-ayi",
|
||||
"interaction_modal.title.follow": "Ḍfer {name}",
|
||||
"interaction_modal.title.reblog": "Zuzer tsuffeɣt n {name}",
|
||||
"interaction_modal.title.reply": "Tiririt i tsuffeɣt n {name}",
|
||||
"interaction_modal.username_prompt": "Amedya: {example}",
|
||||
"intervals.full.days": "{number, plural, one {# wass} other {# wussan}}",
|
||||
@@ -428,6 +433,7 @@
|
||||
"navigation_bar.follow_requests": "Isuturen n teḍfeṛt",
|
||||
"navigation_bar.followed_tags": "Ihacṭagen yettwaḍfaren",
|
||||
"navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ",
|
||||
"navigation_bar.import_export": "Taktert d usifeḍ",
|
||||
"navigation_bar.lists": "Tibdarin",
|
||||
"navigation_bar.live_feed_local": "Asuddem usrid (adigan)",
|
||||
"navigation_bar.live_feed_public": "Asuddem usrid (azayaz)",
|
||||
@@ -437,6 +443,7 @@
|
||||
"navigation_bar.mutes": "Iseqdacen yettwasusmen",
|
||||
"navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.",
|
||||
"navigation_bar.preferences": "Imenyafen",
|
||||
"navigation_bar.privacy_and_reach": "Tabḍnit akked wagwaḍ",
|
||||
"navigation_bar.search": "Nadi",
|
||||
"navigation_bar.search_trends": "Anadi / Anezzuɣ",
|
||||
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
|
||||
@@ -542,7 +549,6 @@
|
||||
"privacy.private.short": "Imeḍfaren",
|
||||
"privacy.public.long": "Kra n win yellan deg Masṭudun neɣ berra-s",
|
||||
"privacy.public.short": "Azayez",
|
||||
"privacy.unlisted.long": "Kra kan yiwarzimen",
|
||||
"privacy.unlisted.short": "Azayez asusam",
|
||||
"privacy_policy.last_updated": "Aleqqem aneggaru {date}",
|
||||
"privacy_policy.title": "Tasertit tabaḍnit",
|
||||
@@ -557,6 +563,7 @@
|
||||
"relative_time.minutes": "{number}tis",
|
||||
"relative_time.seconds": "{number}tas",
|
||||
"relative_time.today": "ass-a",
|
||||
"reply_indicator.attachments": "{count, plural, one {# n umedday} other {# n imeddayen}}",
|
||||
"reply_indicator.cancel": "Sefsex",
|
||||
"reply_indicator.poll": "Afmiḍi",
|
||||
"report.block": "Sewḥel",
|
||||
|
||||
@@ -322,7 +322,6 @@
|
||||
"status.pin": "Профильде жабыстыру",
|
||||
"status.read_more": "Әрі қарай",
|
||||
"status.reblog": "Бөлісу",
|
||||
"status.reblog_private": "Негізгі аудиторияға бөлісу",
|
||||
"status.reblogged_by": "{name} бөлісті",
|
||||
"status.reblogs.empty": "Бұл жазбаны әлі ешкім бөліспеді. Біреу бөліскен кезде осында көрінеді.",
|
||||
"status.redraft": "Өшіру & қайта қарастыру",
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
"confirmations.missing_alt_text.secondary": "그냥 게시하기",
|
||||
"confirmations.missing_alt_text.title": "대체 텍스트를 추가할까요? ",
|
||||
"confirmations.mute.confirm": "뮤트",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "다시 보지 않기",
|
||||
"confirmations.quiet_post_quote_info.got_it": "알겠습니다",
|
||||
"confirmations.quiet_post_quote_info.message": "조용한 공개 게시물을 인용하면 그 게시물은 유행 타임라인에서 나타나지 않을 것입니다.",
|
||||
"confirmations.quiet_post_quote_info.title": "조용한 공개 게시물 인용하기",
|
||||
"confirmations.redraft.confirm": "삭제하고 다시 쓰기",
|
||||
"confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.",
|
||||
"confirmations.redraft.title": "삭제하고 다시 작성할까요?",
|
||||
@@ -745,7 +749,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, 인용 비활성화",
|
||||
"privacy.quote.limited": "{visibility}, 제한된 인용",
|
||||
"privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.",
|
||||
"privacy.unlisted.long": "더 적은 알고리즘 팡파르",
|
||||
"privacy.unlisted.long": "마스토돈 검색결과, 유행, 공개 타임라인에서 숨기기",
|
||||
"privacy.unlisted.short": "조용한 공개",
|
||||
"privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨",
|
||||
"privacy_policy.title": "개인정보처리방침",
|
||||
@@ -768,6 +772,9 @@
|
||||
"relative_time.minutes": "{number}분 전",
|
||||
"relative_time.seconds": "{number}초 전",
|
||||
"relative_time.today": "오늘",
|
||||
"remove_quote_hint.button_label": "알겠습니다",
|
||||
"remove_quote_hint.message": "{icon} 메뉴에서 할 수 있습니다.",
|
||||
"remove_quote_hint.title": "인용된 나의 게시물을 지우고 싶나요?",
|
||||
"reply_indicator.attachments": "{count, plural, other {#}} 개의 첨부파일",
|
||||
"reply_indicator.cancel": "취소",
|
||||
"reply_indicator.poll": "투표",
|
||||
@@ -863,6 +870,7 @@
|
||||
"status.block": "@{name} 차단",
|
||||
"status.bookmark": "북마크",
|
||||
"status.cancel_reblog_private": "부스트 취소",
|
||||
"status.cannot_quote": "이 게시물은 인용이 비활성화되어 있습니다",
|
||||
"status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다",
|
||||
"status.context.load_new_replies": "새 답글 보기",
|
||||
"status.context.loading": "추가 답글 확인중",
|
||||
@@ -907,7 +915,7 @@
|
||||
"status.read_more": "더 보기",
|
||||
"status.reblog": "부스트",
|
||||
"status.reblog_or_quote": "부스트 또는 인용",
|
||||
"status.reblog_private": "원래의 수신자들에게 부스트",
|
||||
"status.reblog_private": "팔로워들에게 다시 공유",
|
||||
"status.reblogged_by": "{name} 님이 부스트했습니다",
|
||||
"status.reblogs": "{count, plural, other {부스트}}",
|
||||
"status.reblogs.empty": "아직 아무도 이 게시물을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.",
|
||||
@@ -984,9 +992,10 @@
|
||||
"video.volume_up": "음량 증가",
|
||||
"visibility_modal.button_title": "공개범위 설정",
|
||||
"visibility_modal.header": "공개범위와 반응",
|
||||
"visibility_modal.helper.privacy_editing": "발행된 게시물은 공개설정을 바꿀 수 없습니다.",
|
||||
"visibility_modal.helper.unlisted_quoting": "사람들이 나를 인용한 경우 그 게시물 또한 유행에서 제외됩니다.",
|
||||
"visibility_modal.privacy_label": "공개 범위",
|
||||
"visibility_modal.quote_followers": "팔로워만",
|
||||
"visibility_modal.quote_label": "인용할 수 있는 사람",
|
||||
"visibility_modal.quote_nobody": "나에게만",
|
||||
"visibility_modal.quote_public": "아무나",
|
||||
"visibility_modal.save": "저장"
|
||||
|
||||
@@ -505,7 +505,6 @@
|
||||
"status.pin": "Li ser profîlê derzî bike",
|
||||
"status.read_more": "Bêtir bixwîne",
|
||||
"status.reblog": "Bilind bike",
|
||||
"status.reblog_private": "Bi dîtina resen bilind bike",
|
||||
"status.reblogged_by": "{name} bilind kir",
|
||||
"status.reblogs.empty": "Kesekî hin ev şandî bilind nekiriye. Gava kesek bilind bike, ew ên li vir werin xuyakirin.",
|
||||
"status.redraft": "Jê bibe & ji nû ve reşnivîs bike",
|
||||
|
||||
@@ -286,7 +286,6 @@
|
||||
"status.pin": "Fastya yn profil",
|
||||
"status.read_more": "Redya moy",
|
||||
"status.reblog": "Kenertha",
|
||||
"status.reblog_private": "Kenertha gans gweladewder derowel",
|
||||
"status.reblogged_by": "{name} a generthas",
|
||||
"status.reblogs.empty": "Ny wrug nagonan kenertha'n post ma hwath. Pan wra, hynn a wra omdhiskwedhes omma.",
|
||||
"status.redraft": "Dilea ha daskynskrifa",
|
||||
|
||||
@@ -603,7 +603,6 @@
|
||||
"privacy.public.long": "Todos en i afuera de Mastodon",
|
||||
"privacy.public.short": "Publiko",
|
||||
"privacy.unlisted.additional": "Esto funksyona exaktamente komo publiko, eksepto ke la publikasyon no aparesera en linyas publikas o etiketas, la eksplorasyon o bushkedas de Mastodon, inkluzo si kapasites esto para tu kuento.",
|
||||
"privacy.unlisted.long": "Vizivle para todos, ama no en trendes, etiketas o linyas publikas",
|
||||
"privacy.unlisted.short": "Publiko i silensyozo",
|
||||
"privacy_policy.last_updated": "Ultima aktualizasyon: {date}",
|
||||
"privacy_policy.title": "Politika de privasita",
|
||||
@@ -734,7 +733,6 @@
|
||||
"status.pin": "Fiksa en profil",
|
||||
"status.read_more": "Melda mas",
|
||||
"status.reblog": "Repartaja",
|
||||
"status.reblog_private": "Repartaja kon vizibilita orijinala",
|
||||
"status.reblogged_by": "{name} repartajo",
|
||||
"status.reblogs.empty": "Ainda nadie tiene repartajado esta publikasyon. Kuando algien lo aga, se amostrara aki.",
|
||||
"status.redraft": "Efasa i eskrive de muevo",
|
||||
|
||||
@@ -682,7 +682,6 @@
|
||||
"privacy.public.long": "Bet kas iš Mastodon ir ne Mastodon",
|
||||
"privacy.public.short": "Vieša",
|
||||
"privacy.unlisted.additional": "Tai veikia lygiai taip pat, kaip ir vieša, tik įrašas nebus rodomas tiesioginiuose srautuose, saitažodžiose, naršyme ar Mastodon paieškoje, net jei esi įtraukęs (-usi) visą paskyrą.",
|
||||
"privacy.unlisted.long": "Mažiau algoritminių fanfarų",
|
||||
"privacy.unlisted.short": "Tyliai vieša",
|
||||
"privacy_policy.last_updated": "Paskutinį kartą atnaujinta {date}",
|
||||
"privacy_policy.title": "Privatumo politika",
|
||||
@@ -823,7 +822,6 @@
|
||||
"status.pin": "Prisegti prie profilio",
|
||||
"status.read_more": "Skaityti daugiau",
|
||||
"status.reblog": "Pakelti",
|
||||
"status.reblog_private": "Pakelti su originaliu matomumu",
|
||||
"status.reblogged_by": "{name} pakėlė",
|
||||
"status.reblogs.empty": "Šio įrašo dar niekas nepakėlė. Kai kas nors tai padarys, jie bus rodomi čia.",
|
||||
"status.redraft": "Ištrinti ir parengti iš naujo",
|
||||
|
||||
@@ -630,7 +630,6 @@
|
||||
"privacy.public.long": "Jebkurš Mastodon un ārpus tā",
|
||||
"privacy.public.short": "Redzams visiem",
|
||||
"privacy.unlisted.additional": "Šis uzvedas tieši kā publisks, izņemot to, ka ieraksts neparādīsies tiešraides barotnēs vai tēmturos, izpētē vai Mastodon meklēšanā, pat ja esi to norādījis visa konta ietvaros.",
|
||||
"privacy.unlisted.long": "Mazāk algoritmisku fanfaru",
|
||||
"privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}",
|
||||
"privacy_policy.title": "Privātuma politika",
|
||||
"recommended": "Ieteicams",
|
||||
@@ -762,7 +761,6 @@
|
||||
"status.pin": "Piespraust profilam",
|
||||
"status.read_more": "Lasīt vairāk",
|
||||
"status.reblog": "Pastiprināt",
|
||||
"status.reblog_private": "Pastiprināt ar sākotnējo redzamību",
|
||||
"status.reblogged_by": "{name} pastiprināja",
|
||||
"status.reblogs": "{count, plural, zero {pastiprinājumu} one {pastiprinājums} other {pastiprinājumi}}",
|
||||
"status.reblogs.empty": "Neviens vēl nav pastiprinājis šo ierakstu. Kad kāds to izdarīs, šeit tiks parādīti lietotāji.",
|
||||
|
||||
@@ -643,7 +643,6 @@
|
||||
"status.pin": "Semat di profil",
|
||||
"status.read_more": "Baca lagi",
|
||||
"status.reblog": "Galakkan",
|
||||
"status.reblog_private": "Galakkan dengan ketampakan asal",
|
||||
"status.reblogged_by": "{name} galakkan",
|
||||
"status.reblogs": "{count, plural, other {galakan}}",
|
||||
"status.reblogs.empty": "Tiada sesiapa yang galakkan hantaran ini. Apabila ada yang galakkan, hantaran akan muncul di sini.",
|
||||
|
||||
@@ -530,7 +530,6 @@
|
||||
"status.pin": "ပရိုဖိုင်တွင် ပင်ထားပါ",
|
||||
"status.read_more": "ပိုမိုဖတ်ရှုရန်",
|
||||
"status.reblog": "Boost",
|
||||
"status.reblog_private": "မူရင်းပုံစံဖြင့် Boost လုပ်ပါ",
|
||||
"status.reblogged_by": "{name} က Boost လုပ်ထားသည်",
|
||||
"status.reblogs.empty": "ဤပို့စ်ကို မည်သူမှ Boost လုပ်ထားခြင်းမရှိသေးပါ။ တစ်ယောက်ယောက်မှ Boost လုပ်ပါက ဤနေရာတွင်ပေါ်လာပါမည်။",
|
||||
"status.redraft": "ဖျက်ပြီး ပြန်ရေးပါ",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"about.blocks": "Siū 管制 ê 服侍器",
|
||||
"about.contact": "聯絡lâng:",
|
||||
"about.contact": "聯絡方法:",
|
||||
"about.default_locale": "預設",
|
||||
"about.disclaimer": "Mastodon是自由、開放原始碼ê軟體,mā是Mastodon gGmbH ê商標。",
|
||||
"about.domain_blocks.no_reason_available": "原因bē-tàng用",
|
||||
@@ -745,7 +745,7 @@
|
||||
"privacy.quote.disabled": "{visibility},停止引用PO文",
|
||||
"privacy.quote.limited": "{visibility},PO文引用受限",
|
||||
"privacy.unlisted.additional": "Tse ê行為kap公開相siâng,m̄-koh 就算lí佇口座設定phah開有關ê公開功能,PO文mā bē顯示佇即時ê動態、hashtag、探索kap Mastodon ê搜尋結果。",
|
||||
"privacy.unlisted.long": "減少演算法ê宣傳",
|
||||
"privacy.unlisted.long": "Mài顯示tī Mastodon ê tshiau-tshuē結果、趨勢kap公共ê時間線。",
|
||||
"privacy.unlisted.short": "恬靜公開",
|
||||
"privacy_policy.last_updated": "上尾更新tī:{date}",
|
||||
"privacy_policy.title": "隱私權政策",
|
||||
@@ -768,6 +768,9 @@
|
||||
"relative_time.minutes": "{number} 分進前",
|
||||
"relative_time.seconds": "{number} 秒進前",
|
||||
"relative_time.today": "今á日",
|
||||
"remove_quote_hint.button_label": "知ah",
|
||||
"remove_quote_hint.message": "Lí ē當tuì {icon} 選項ê目錄完成tsit ê動作",
|
||||
"remove_quote_hint.title": "Kám想beh thâi掉lí受引用ê PO文?",
|
||||
"reply_indicator.attachments": "{count, plural, other {# ê附件}}",
|
||||
"reply_indicator.cancel": "取消",
|
||||
"reply_indicator.poll": "投票",
|
||||
@@ -863,6 +866,7 @@
|
||||
"status.block": "封鎖 @{name}",
|
||||
"status.bookmark": "冊籤",
|
||||
"status.cancel_reblog_private": "取消轉送",
|
||||
"status.cannot_quote": "Tsit篇PO文停止使用引用功能ah",
|
||||
"status.cannot_reblog": "Tsit篇PO文bē當轉送",
|
||||
"status.context.load_new_replies": "有新ê回應",
|
||||
"status.context.loading": "Leh檢查其他ê回應",
|
||||
@@ -894,8 +898,8 @@
|
||||
"status.quote": "引用",
|
||||
"status.quote.cancel": "取消引用",
|
||||
"status.quote_error.filtered": "Lí所設定ê過濾器kā tse khàm起來",
|
||||
"status.quote_error.not_available": "鋪文bē當看",
|
||||
"status.quote_error.pending_approval": "鋪文當咧送",
|
||||
"status.quote_error.not_available": "PO文bē當看",
|
||||
"status.quote_error.pending_approval": "PO文當咧送",
|
||||
"status.quote_error.pending_approval_popout.body": "因為無kâng ê服侍器有無kâng ê協定,佇聯邦宇宙分享ê引文可能愛開時間來顯示。",
|
||||
"status.quote_error.pending_approval_popout.title": "Leh送引文?請sió等leh",
|
||||
"status.quote_followers_only": "Kan-ta tuè我ê ē當引用PO文",
|
||||
@@ -908,7 +912,7 @@
|
||||
"status.read_more": "讀詳細",
|
||||
"status.reblog": "轉送",
|
||||
"status.reblog_or_quote": "轉送á是引用",
|
||||
"status.reblog_private": "照原PO ê通看見ê範圍轉送",
|
||||
"status.reblog_private": "Koh再hām跟tuè ê分享",
|
||||
"status.reblogged_by": "{name} kā轉送ah",
|
||||
"status.reblogs": "{count, plural, other {# ê 轉送}}",
|
||||
"status.reblogs.empty": "Iáu無lâng轉送tsit篇PO文。Nā是有lâng轉送,ē佇tsia顯示。",
|
||||
@@ -985,10 +989,14 @@
|
||||
"visibility_modal.button_title": "設定通看ê程度",
|
||||
"visibility_modal.header": "通看ê程度kap互動",
|
||||
"visibility_modal.helper.direct_quoting": "Mastodon頂發布ê私人提起bē當hōo別lâng引用。",
|
||||
"visibility_modal.helper.privacy_editing": "公開ê PO文bē當改in通看ê程度。",
|
||||
"visibility_modal.helper.privacy_editing": "Po文發布了後,bē當改通看ê程度。",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "家kī引用ê私人PO文bē當改公開。",
|
||||
"visibility_modal.helper.private_quoting": "Mastodon頂發布ê kan-ta跟tuè ê通看ê PO文,bē當hōo別lâng引用。",
|
||||
"visibility_modal.helper.unlisted_quoting": "若別lâng引用lí,in ê PO文mā ē tuì趨勢時間線隱藏。",
|
||||
"visibility_modal.instructions": "控制ē當hām tsit篇PO文互動ê lâng。Lí mā ē當用 <link>偏愛ê設定 > PO文預設<link>,kā設定作用kàu ta̍k篇未來ê PO文。",
|
||||
"visibility_modal.privacy_label": "通看見ê程度",
|
||||
"visibility_modal.quote_followers": "Kan-ta hōo跟tuè ê lâng",
|
||||
"visibility_modal.quote_label": "Ē當引用ê lâng",
|
||||
"visibility_modal.quote_nobody": "Kan-ta我",
|
||||
"visibility_modal.quote_public": "Ta̍k ê lâng",
|
||||
"visibility_modal.save": "儲存"
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
{
|
||||
"about.contact": "सम्पर्क:",
|
||||
"about.default_locale": "पूर्वनिर्धारित",
|
||||
"about.disclaimer": "Mastodon नि:शुल्क, खुला स्रोत सफ्टवेयर, र Mastodon gGmbH को ट्रेडमार्क हो।",
|
||||
"about.domain_blocks.no_reason_available": "कारण उपलब्ध छैन",
|
||||
"about.domain_blocks.preamble": "Mastodon ले तपाइँलाई सामान्यतया फेडिभर्समा कुनै पनि अन्य सर्भरका सामग्री हेर्न र प्रयोगकर्ताहरूसँग अन्तरक्रिया गर्न दिन्छ। यी अपवादहरू हुन् जुन यस विशेष सर्भरमा बनाइएका छन्।",
|
||||
"about.domain_blocks.silenced.title": "सीमित",
|
||||
"about.domain_blocks.suspended.explanation": "यस सर्भरबाट कुनै पनि डेटा प्रशोधन, भण्डारण वा आदानप्रदान गरिने छैन, जसले यस सर्भरका प्रयोगकर्ताहरूसँग कुनै पनि अन्तरक्रिया वा सञ्चारलाई असम्भव बनाउँछ।",
|
||||
"about.domain_blocks.suspended.title": "निलम्बित",
|
||||
"about.language_label": "भाषा",
|
||||
"about.not_available": "यो जानकारी यस सर्भरमा उपलब्ध गराइएको छैन।",
|
||||
"about.powered_by": "{mastodon} द्वारा संचालित विकेन्द्रीकृत सामाजिक मिडिया",
|
||||
"about.rules": "सर्भर नियमहरू",
|
||||
@@ -16,10 +18,12 @@
|
||||
"account.block_domain": "{domain} डोमेनलाई ब्लक गर्नुहोस्",
|
||||
"account.block_short": "ब्लक",
|
||||
"account.blocked": "ब्लक गरिएको",
|
||||
"account.blocking": "ब्लक गरिएको",
|
||||
"account.cancel_follow_request": "फलो अनुरोध रद्द गर्नुहोस",
|
||||
"account.copy": "प्रोफाइलको लिङ्क प्रतिलिपि गर्नुहोस्",
|
||||
"account.direct": "@{name} लाई निजी रूपमा उल्लेख गर्नुहोस्",
|
||||
"account.disable_notifications": "@{name} ले पोस्ट गर्दा मलाई सूचित नगर्नुहोस्",
|
||||
"account.domain_blocking": "ब्लक गरिएको डोमेन",
|
||||
"account.edit_profile": "प्रोफाइल सम्पादन गर्नुहोस्",
|
||||
"account.enable_notifications": "@{name} ले पोस्ट गर्दा मलाई सूचित गर्नुहोस्",
|
||||
"account.endorse": "प्रोफाइलमा फिचर गर्नुहोस्",
|
||||
@@ -35,6 +39,7 @@
|
||||
"account.following": "फलो गर्दै",
|
||||
"account.following_counter": "{count, plural, one {{counter} फलो गर्दै} other {{counter} फलो गर्दै}}",
|
||||
"account.follows.empty": "यो प्रयोगकर्ताले अहिलेसम्म कसैलाई फलो गरेको छैन।",
|
||||
"account.follows_you": "तपाईलाई फलो गर्नुहुन्छ",
|
||||
"account.go_to_profile": "प्रोफाइलमा जानुहोस्",
|
||||
"account.hide_reblogs": "@{name} को बूस्टहरू लुकाउनुहोस्",
|
||||
"account.in_memoriam": "सम्झनामा।",
|
||||
@@ -45,10 +50,12 @@
|
||||
"account.mute_notifications_short": "सूचनाहरू म्यूट गर्नुहोस्",
|
||||
"account.mute_short": "म्युट",
|
||||
"account.muted": "म्युट गरिएको",
|
||||
"account.muting": "म्यूट गरिएको",
|
||||
"account.mutual": "तपाईंहरु एकअर्कालाई फलो गर्नुहुन्छ",
|
||||
"account.no_bio": "कुनै विवरण प्रदान गरिएको छैन।",
|
||||
"account.posts": "पोस्टहरू",
|
||||
"account.posts_with_replies": "पोस्ट र जवाफहरू",
|
||||
"account.remove_from_followers": "{name}लाई फलोअरहरूबाट हटाउनुहोस्",
|
||||
"account.report": "@{name}लाई रिपोर्ट गर्नुहोस्",
|
||||
"account.requested": "स्वीकृतिको पर्खाइमा। फलो अनुरोध रद्द गर्न क्लिक गर्नुहोस्",
|
||||
"account.requested_follow": "{name} ले तपाईंलाई फलो गर्न अनुरोध गर्नुभएको छ",
|
||||
@@ -77,7 +84,10 @@
|
||||
"block_modal.remote_users_caveat": "हामी सर्भर {domain} लाई तपाईंको निर्णयको सम्मान गर्न सोध्नेछौं। तर, हामी अनुपालनको ग्यारेन्टी दिन सक्दैनौं किनभने केही सर्भरहरूले ब्लकहरू फरक रूपमा ह्यान्डल गर्न सक्छन्। सार्वजनिक पोस्टहरू लग इन नभएका प्रयोगकर्ताहरूले देख्न सक्छन्।",
|
||||
"block_modal.show_less": "कम देखाउनुहोस्",
|
||||
"block_modal.show_more": "थप देखाउनुहोस्",
|
||||
"block_modal.they_cant_mention": "तिनीहरूले तपाईंलाई उल्लेख गर्न वा फलो गर्न सक्दैनन्।",
|
||||
"block_modal.they_will_know": "उनीहरूले उनीहरू ब्लक गरिएको देख्न सक्छन्।",
|
||||
"block_modal.title": "प्रयोगकर्तालाई ब्लक गर्ने?",
|
||||
"block_modal.you_wont_see_mentions": "तपाईंले तिनीहरूलाई उल्लेख गरिएका पोस्टहरू देख्नुहुने छैन।",
|
||||
"boost_modal.reblog": "पोस्ट बुस्ट गर्ने?",
|
||||
"boost_modal.undo_reblog": "पोस्ट अनबुस्ट गर्ने?",
|
||||
"bundle_column_error.copy_stacktrace": "त्रुटि रिपोर्ट प्रतिलिपि गर्नुहोस्",
|
||||
@@ -127,6 +137,7 @@
|
||||
"confirmations.follow_to_list.confirm": "फलो गर्नुहोस र सूचीमा थप्नुहोस्",
|
||||
"confirmations.follow_to_list.message": "सूचीमा {name}लाई थप्नको लागि तपाईंले तिनीहरूलाई फलो गरेको हुनुपर्छ।",
|
||||
"confirmations.follow_to_list.title": "प्रयोगकर्तालाई फलो गर्ने?",
|
||||
"confirmations.logout.confirm": "लग आउट",
|
||||
"confirmations.logout.message": "के तपाइँ पक्का हुनुहुन्छ कि तपाइँ लाई लग आउट गर्न चाहनुहुन्छ?",
|
||||
"confirmations.logout.title": "लग आउट गर्ने?",
|
||||
"confirmations.mute.confirm": "म्यूट गर्नुहोस्",
|
||||
@@ -136,6 +147,7 @@
|
||||
"confirmations.unfollow.message": "के तपाइँ पक्का हुनुहुन्छ कि तपाइँ {name}लाई अनफलो गर्न चाहनुहुन्छ?",
|
||||
"confirmations.unfollow.title": "प्रयोगकर्तालाई अनफलो गर्ने?",
|
||||
"disabled_account_banner.account_settings": "खाता सेटिङहरू",
|
||||
"empty_column.direct": "तपाईंले अहिलेसम्म कुनै पनि प्राइवेट उल्लेखहरू प्राप्त गर्नुभएको छैन। तपाईंले कुनै प्राप्त गरेपछि त्यो यहाँ देखिनेछ।",
|
||||
"empty_column.follow_requests": "तपाईंले अहिलेसम्म कुनै पनि फलो अनुरोधहरू प्राप्त गर्नुभएको छैन। तपाईंले कुनै प्राप्त गरेपछि त्यो यहाँ देखिनेछ।",
|
||||
"empty_column.followed_tags": "तपाईंले अहिलेसम्म कुनै पनि ह्यासट्यागहरू फलो गर्नुभएको छैन। तपाईंले ह्यासट्याग फलो गरेपछि तिनीहरू यहाँ देखिनेछन्।",
|
||||
"follow_suggestions.dismiss": "फेरि नदेखाउनुहोस्",
|
||||
@@ -149,23 +161,39 @@
|
||||
"hashtag.follow": "ह्यासट्याग फलो गर्नुहोस्",
|
||||
"hashtag.unfollow": "ह्यासट्याग अनफलो गर्नुहोस्",
|
||||
"home.column_settings.show_reblogs": "बूस्टहरू देखाउनुहोस्",
|
||||
"ignore_notifications_modal.private_mentions_title": "अनावश्यक प्राइवेट उल्लेखहरूबाट आउने सूचनाहरूलाई बेवास्ता गर्न चाहनुहुन्छ?",
|
||||
"interaction_modal.no_account_yet": "अहिलेसम्म खाता छैन?",
|
||||
"interaction_modal.title.follow": "{name} लाई फलो गर्नुहोस्",
|
||||
"interaction_modal.title.reblog": "{name} को पोस्ट बुस्ट गर्नुहोस्",
|
||||
"keyboard_shortcuts.boost": "पोस्ट बुस्ट गर्नुहोस्",
|
||||
"keyboard_shortcuts.mention": "लेखकलाई उल्लेख गर्नुहोस्",
|
||||
"mute_modal.they_can_mention_and_follow": "\n\nतिनीहरूले तपाईंलाई उल्लेख गर्न र फलो गर्न सक्छन्, तर तपाईंले तिनीहरूलाई देख्नुहुने छैन।",
|
||||
"mute_modal.they_wont_know": "उनीहरूलाई म्यूट गरिएको बारे थाहा हुँदैन।",
|
||||
"mute_modal.title": "प्रयोगकर्तालाई म्युट गर्ने?",
|
||||
"mute_modal.you_wont_see_mentions": "तपाईंले तिनीहरूलाई उल्लेख गरिएका पोस्टहरू देख्नुहुने छैन।",
|
||||
"navigation_bar.blocks": "ब्लक गरिएको प्रयोगकर्ताहरु",
|
||||
"navigation_bar.direct": "प्राइवेट उल्लेखहरू",
|
||||
"navigation_bar.follow_requests": "फलो अनुरोधहरू",
|
||||
"navigation_bar.followed_tags": "फलो गरिएका ह्यासट्यागहरू",
|
||||
"navigation_bar.logout": "लग आउट",
|
||||
"notification.label.mention": "उल्लेख",
|
||||
"notification.label.private_mention": "प्राइवेट उल्लेख",
|
||||
"notification.mention": "उल्लेख",
|
||||
"notification.mentioned_you": "{name} ले तपाईंलाई उल्लेख गर्नुभयो",
|
||||
"notification.reblog": "{name} ले तपाईंको पोस्ट बूस्ट गर्नुभयो",
|
||||
"notification_requests.confirm_accept_multiple.title": "सूचना अनुरोधहरू स्वीकार गर्ने?",
|
||||
"notification_requests.confirm_dismiss_multiple.title": "सूचना अनुरोधहरू खारेज गर्ने?",
|
||||
"notifications.clear_title": "सूचनाहरू खाली गर्ने?",
|
||||
"notifications.column_settings.follow": "नयाँ फलोअरहरु:",
|
||||
"notifications.column_settings.follow_request": "नयाँ फलोअर अनुरोधहरु",
|
||||
"notifications.column_settings.mention": "उल्लेखहरू:",
|
||||
"notifications.column_settings.reblog": "बूस्टहरू:",
|
||||
"notifications.filter.boosts": "बूस्टहरू",
|
||||
"notifications.filter.mentions": "उल्लेखहरू",
|
||||
"notifications.policy.filter_private_mentions_title": "अनावश्यक प्राइवेट उल्लेखहरू",
|
||||
"onboarding.profile.note_hint": "तपाईं अन्य व्यक्तिहरूलाई @उल्लेख गर्न सक्नुहुन्छ वा #ह्यासट्यागहरू प्रयोग गर्न सक्नुहुन्छ…",
|
||||
"privacy.direct.long": "पोस्टमा उल्लेख गरिएका सबैजना",
|
||||
"privacy.direct.short": "प्राइवेट उल्लेख",
|
||||
"privacy.private.long": "मात्र तपाईंको फलोअरहरु",
|
||||
"privacy.private.short": "फलोअरहरु",
|
||||
"reply_indicator.cancel": "रद्द गर्नुहोस्",
|
||||
@@ -176,13 +204,19 @@
|
||||
"report.thanks.title": "यो हेर्न चाहनुहुन्न?",
|
||||
"report.unfollow": "@{name} लाई अनफलो गर्नुहोस्",
|
||||
"search_results.hashtags": "ह्यासट्यागहरू",
|
||||
"sign_in_banner.sign_in": "लगइन",
|
||||
"sign_in_banner.sso_redirect": "लगइन वा दर्ता गर्नुहोस्",
|
||||
"status.cancel_reblog_private": "अनबुस्ट गर्नुहोस्",
|
||||
"status.cannot_reblog": "यो पोस्टलाई बुस्ट गर्न सकिँदैन",
|
||||
"status.direct": "@{name} लाई प्राइवेट रूपमा उल्लेख गर्नुहोस्",
|
||||
"status.direct_indicator": "प्राइवेट उल्लेख",
|
||||
"status.mention": "@{name} लाई उल्लेख गर्नुहोस्",
|
||||
"status.mute": "@{name}लाई म्यूट गर्नुहोस्",
|
||||
"status.mute_conversation": "कुराकानी म्यूट गर्नुहोस्",
|
||||
"status.reblog": "बूस्ट गर्नुहोस्",
|
||||
"status.reblogged_by": "{name} ले बूस्ट गर्नुभएको",
|
||||
"status.reblogs": "{count, plural, one {बूस्ट} other {बूस्टहरू}}",
|
||||
"status.reblogs.empty": "यो पोस्टलाई अहिलेसम्म कसैले पनि बूस्ट गरेको छैन। कसैले बूस्ट गरेमा तिनीहरू यहाँ देखिनेछन्।",
|
||||
"status.unmute_conversation": "कुराकानी अनम्यूट गर्नुहोस्",
|
||||
"visibility_modal.quote_followers": "फलोअरहरु मात्र"
|
||||
}
|
||||
|
||||
@@ -239,6 +239,8 @@
|
||||
"confirmations.missing_alt_text.secondary": "Toch plaatsen",
|
||||
"confirmations.missing_alt_text.title": "Alt-tekst toevoegen?",
|
||||
"confirmations.mute.confirm": "Negeren",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Herinner me er niet nogmaals aan",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Begrepen",
|
||||
"confirmations.redraft.confirm": "Verwijderen en herschrijven",
|
||||
"confirmations.redraft.message": "Weet je zeker dat je dit bericht wilt verwijderen en herschrijven? Je verliest wel de boosts en favorieten, en de reacties op het originele bericht raak je kwijt.",
|
||||
"confirmations.redraft.title": "Bericht verwijderen en herschrijven?",
|
||||
@@ -745,7 +747,7 @@
|
||||
"privacy.quote.disabled": "{visibility}, citeren uitgeschakeld",
|
||||
"privacy.quote.limited": "{visibility}, citeren beperkt",
|
||||
"privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het bericht niet op openbare tijdlijnen, onder hashtags, verkennen of zoeken verschijnt, zelfs als je je account daarvoor hebt ingesteld.",
|
||||
"privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen",
|
||||
"privacy.unlisted.long": "Niet zichtbaar in de zoekresultaten van Mastodon, onder trends, hashtags en op openbare tijdlijnen",
|
||||
"privacy.unlisted.short": "Minder openbaar",
|
||||
"privacy_policy.last_updated": "Laatst bijgewerkt op {date}",
|
||||
"privacy_policy.title": "Privacybeleid",
|
||||
@@ -913,7 +915,7 @@
|
||||
"status.read_more": "Meer lezen",
|
||||
"status.reblog": "Boosten",
|
||||
"status.reblog_or_quote": "Boosten of citeren",
|
||||
"status.reblog_private": "Boost naar oorspronkelijke ontvangers",
|
||||
"status.reblog_private": "Opnieuw met je volgers delen",
|
||||
"status.reblogged_by": "{name} boostte",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||
"status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.",
|
||||
@@ -991,7 +993,7 @@
|
||||
"visibility_modal.button_title": "Privacy instellen",
|
||||
"visibility_modal.header": "Zichtbaarheid en interactie",
|
||||
"visibility_modal.helper.direct_quoting": "Privéberichten afkomstig van Mastodon kunnen niet door anderen worden geciteerd.",
|
||||
"visibility_modal.helper.privacy_editing": "Het is niet mogelijk om de zichtbaarheid van geplaatste berichten te wijzigen.",
|
||||
"visibility_modal.helper.privacy_editing": "De zichtbaarheid kan niet meer worden gewijzigd nadat een bericht is gepubliceerd.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Jouw eigen citaten van berichten aan alleen volgers kunnen niet openbaar worden gemaakt.",
|
||||
"visibility_modal.helper.private_quoting": "Berichten aan alleen volgers afkomstig van Mastodon kunnen niet door anderen worden geciteerd.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Wanneer mensen jou citeren, verschijnt hun bericht ook niet onder trends.",
|
||||
|
||||
@@ -744,7 +744,6 @@
|
||||
"privacy.quote.disabled": "{visibility}, ingen kan sitera",
|
||||
"privacy.quote.limited": "{visibility}, avgrensa sitat",
|
||||
"privacy.unlisted.additional": "Dette er akkurat som offentleg, bortsett frå at innlegga ikkje dukkar opp i direktestraumar eller merkelappar, i oppdagingar eller Mastodon-søk, sjølv om du har sagt ja til at kontoen skal vera synleg.",
|
||||
"privacy.unlisted.long": "Færre algoritmiske fanfarar",
|
||||
"privacy.unlisted.short": "Stille offentleg",
|
||||
"privacy_policy.last_updated": "Sist oppdatert {date}",
|
||||
"privacy_policy.title": "Personvernsreglar",
|
||||
@@ -903,7 +902,6 @@
|
||||
"status.quotes": "{count, plural, one {sitat} other {sitat}}",
|
||||
"status.read_more": "Les meir",
|
||||
"status.reblog": "Framhev",
|
||||
"status.reblog_private": "Framhev til dei originale mottakarane",
|
||||
"status.reblogged_by": "{name} framheva",
|
||||
"status.reblogs": "{count, plural, one {framheving} other {framhevingar}}",
|
||||
"status.reblogs.empty": "Ingen har framheva dette tutet enno. Om nokon gjer, så dukkar det opp her.",
|
||||
@@ -980,7 +978,6 @@
|
||||
"visibility_modal.button_title": "Vel vising",
|
||||
"visibility_modal.header": "Vising og samhandling",
|
||||
"visibility_modal.helper.direct_quoting": "Private omtalar som er skrivne på Mastodon kan ikkje siterast av andre.",
|
||||
"visibility_modal.helper.privacy_editing": "Du kan ikkje endra vising på publiserte innlegg.",
|
||||
"visibility_modal.helper.private_quoting": "Innlegg som er skrivne på Mastodon og berre for fylgjarar kan ikkje siterast av andre.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Når folk siterer deg, vil innlegget deira ikkje syna på populære tidsliner.",
|
||||
"visibility_modal.quote_followers": "Berre fylgjarar",
|
||||
|
||||
@@ -707,7 +707,6 @@
|
||||
"privacy.private.short": "Følgere",
|
||||
"privacy.public.long": "Alle på og utenfor Mastodon",
|
||||
"privacy.public.short": "Offentlig",
|
||||
"privacy.unlisted.long": "Færre algoritmiske fanfarer",
|
||||
"privacy.unlisted.short": "Stille offentlig",
|
||||
"privacy_policy.last_updated": "Sist oppdatert {date}",
|
||||
"privacy_policy.title": "Personvernregler",
|
||||
@@ -841,7 +840,6 @@
|
||||
"status.quote_error.filtered": "Skjult på grunn av et av filterne dine",
|
||||
"status.read_more": "Les mer",
|
||||
"status.reblog": "Fremhev",
|
||||
"status.reblog_private": "Fremhev til det opprinnelige publikummet",
|
||||
"status.reblogged_by": "Fremhevet av {name}",
|
||||
"status.reblogs.empty": "Ingen har fremhevet dette innlegget enda. Når noen gjør det, vil de dukke opp her.",
|
||||
"status.redraft": "Slett og skriv på nytt",
|
||||
|
||||
@@ -482,7 +482,6 @@
|
||||
"status.pin": "Penjar al perfil",
|
||||
"status.read_more": "Ne legir mai",
|
||||
"status.reblog": "Partejar",
|
||||
"status.reblog_private": "Partejar a l’audiéncia d’origina",
|
||||
"status.reblogged_by": "{name} a partejat",
|
||||
"status.reblogs.empty": "Degun a pas encara partejat aqueste tut. Quand qualqu’un o farà, apareisserà aquí.",
|
||||
"status.redraft": "Escafar e tornar formular",
|
||||
|
||||
@@ -292,6 +292,7 @@
|
||||
"domain_pill.your_handle": "Twoja nazwa:",
|
||||
"domain_pill.your_server": "Twój cyfrowy dom wszystkich twoich wpisów. Nie podoba ci się ten serwer? Przenieś się na inny w dowolnym momencie i zabierz ze sobą swoich obserwujących.",
|
||||
"domain_pill.your_username": "Twój unikalny identyfikator na tym serwerze. Możliwe jest znalezienie osób z tą samą nazwą na innych serwerach.",
|
||||
"dropdown.empty": "Wybierz opcję",
|
||||
"embed.instructions": "Umieść ten wpis na swojej stronie, kopiując poniższy kod.",
|
||||
"embed.preview": "Tak to będzie wyglądać:",
|
||||
"emoji_button.activity": "Aktywność",
|
||||
@@ -490,6 +491,7 @@
|
||||
"keyboard_shortcuts.open_media": "Otwórz multimedia",
|
||||
"keyboard_shortcuts.pinned": "Otwórz listę przypiętych wpisów",
|
||||
"keyboard_shortcuts.profile": "Otwórz profil",
|
||||
"keyboard_shortcuts.quote": "Cytuj post",
|
||||
"keyboard_shortcuts.reply": "Skomentuj",
|
||||
"keyboard_shortcuts.requests": "Otwórz listę próśb o obserwowanie",
|
||||
"keyboard_shortcuts.search": "Aktywuj pole wyszukiwania",
|
||||
@@ -618,6 +620,7 @@
|
||||
"notification.moderation_warning.action_suspend": "Twoje konto zostało zawieszone.",
|
||||
"notification.own_poll": "Twoja ankieta została zakończona",
|
||||
"notification.poll": "Zakończyła się ankieta, w której głosowano",
|
||||
"notification.quoted_update": "{name} edytował post, który cytowałeś",
|
||||
"notification.reblog": "Twój post został podbity przez {name}",
|
||||
"notification.reblog.name_and_others_with_link": "{name} i <a>{count, plural, one {# inna osoba} few {# inne osoby} other {# innych osób}}</a> podbili twój wpis",
|
||||
"notification.relationships_severance_event": "Utracono połączenie z {name}",
|
||||
@@ -737,8 +740,10 @@
|
||||
"privacy.private.short": "Obserwujący",
|
||||
"privacy.public.long": "Każdy na i poza Mastodon",
|
||||
"privacy.public.short": "Publiczny",
|
||||
"privacy.quote.anyone": "{visibility}, każdy może cytować",
|
||||
"privacy.quote.disabled": "{visibility}, cytaty wyłączone",
|
||||
"privacy.quote.limited": "{visibility}, cytaty ograniczone",
|
||||
"privacy.unlisted.additional": "Dostępny podobnie jak wpis publiczny, ale nie będzie widoczny w aktualnościach, hashtagach ani wyszukiwarce Mastodon, nawet jeśli twoje konto jest widoczne.",
|
||||
"privacy.unlisted.long": "Niewidoczny w aktualnościach",
|
||||
"privacy.unlisted.short": "Niewidoczny",
|
||||
"privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}",
|
||||
"privacy_policy.title": "Polityka prywatności",
|
||||
@@ -757,6 +762,8 @@
|
||||
"relative_time.minutes": "{number} min.",
|
||||
"relative_time.seconds": "{number} s.",
|
||||
"relative_time.today": "dzisiaj",
|
||||
"remove_quote_hint.button_label": "Rozumiem",
|
||||
"remove_quote_hint.title": "Czy chcesz usunąć swój cytowany post?",
|
||||
"reply_indicator.attachments": "{count, plural, one {# załącznik} few {# załączniki} many {# załączników} other {# załączników}}",
|
||||
"reply_indicator.cancel": "Anuluj",
|
||||
"reply_indicator.poll": "Ankieta",
|
||||
@@ -851,12 +858,14 @@
|
||||
"status.block": "Zablokuj @{name}",
|
||||
"status.bookmark": "Dodaj zakładkę",
|
||||
"status.cancel_reblog_private": "Cofnij podbicie",
|
||||
"status.cannot_quote": "Cytaty są wyłączone dla tego postu",
|
||||
"status.cannot_reblog": "Ten wpis nie może zostać podbity",
|
||||
"status.context.load_new_replies": "Dostępne są nowe odpowiedzi",
|
||||
"status.context.loading": "Sprawdzanie kolejnych odpowiedzi",
|
||||
"status.continued_thread": "Ciąg dalszy wątku",
|
||||
"status.copy": "Skopiuj odnośnik do wpisu",
|
||||
"status.delete": "Usuń",
|
||||
"status.delete.success": "Post usunięty",
|
||||
"status.detailed_status": "Szczegółowy widok konwersacji",
|
||||
"status.direct": "Prywatna wzmianka @{name}",
|
||||
"status.direct_indicator": "Prywatna wzmianka",
|
||||
@@ -879,15 +888,20 @@
|
||||
"status.mute_conversation": "Wycisz konwersację",
|
||||
"status.open": "Rozszerz ten wpis",
|
||||
"status.pin": "Przypnij do profilu",
|
||||
"status.quote": "Cytuj",
|
||||
"status.quote.cancel": "Anuluj cytat",
|
||||
"status.quote_error.filtered": "Ukryte z powodu jednego z Twoich filtrów",
|
||||
"status.quote_error.not_available": "Post niedostępny",
|
||||
"status.quote_error.pending_approval": "Post oczekujący",
|
||||
"status.quote_error.pending_approval_popout.body": "Oferty współdzielone przez Fediverse mogą wymagać czasu, ponieważ różne serwery mają różne protokoły.",
|
||||
"status.quote_error.pending_approval_popout.title": "Oczekujący cytat? Spokojnie, bądź cierpliwy :)",
|
||||
"status.quote_followers_only": "Tylko obserwatorzy mogą cytować ten post",
|
||||
"status.quote_policy_change": "Zmień kto może cytować",
|
||||
"status.quote_post_author": "Zacytowano post @{name}",
|
||||
"status.quote_private": "Prywatne posty nie mogą być cytowane",
|
||||
"status.read_more": "Czytaj dalej",
|
||||
"status.reblog": "Podbij",
|
||||
"status.reblog_private": "Podbij dla odbiorców oryginalnego wpisu",
|
||||
"status.reblog_or_quote": "Podbij lub cytuj",
|
||||
"status.reblogged_by": "Podbite przez {name}",
|
||||
"status.reblogs": "{count, plural, one {podbicie} few {podbicia} other {podbić}}",
|
||||
"status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.",
|
||||
@@ -937,6 +951,7 @@
|
||||
"upload_button.label": "Dodaj zdjęcia, filmy lub audio",
|
||||
"upload_error.limit": "Przekroczono limit plików do wysłania.",
|
||||
"upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.",
|
||||
"upload_error.quote": "Dołączanie plików nie jest pozwolone z cytatami.",
|
||||
"upload_form.drag_and_drop.instructions": "Naciśnij spację lub enter żeby podnieść załącznik. Podczas przeciągania, strzałki przesuwają załącznik. Naciśnięcie spacji lub entera upuści załącznik w nowym miejscu, a escape anuluje przesuwanie.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Przesuwanie anulowane. Załącznik {item} upuszczony.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "Upuszczono załącznik {item}.",
|
||||
@@ -959,5 +974,13 @@
|
||||
"video.skip_forward": "Skocz do przodu",
|
||||
"video.unmute": "Wyłącz wyciszenie",
|
||||
"video.volume_down": "Zmniejsz głośność",
|
||||
"video.volume_up": "Zwiększ głośność"
|
||||
"video.volume_up": "Zwiększ głośność",
|
||||
"visibility_modal.button_title": "Ustaw widoczność",
|
||||
"visibility_modal.header": "Widoczność i interakcja",
|
||||
"visibility_modal.privacy_label": "Widoczność",
|
||||
"visibility_modal.quote_followers": "Tylko dla obserwujących",
|
||||
"visibility_modal.quote_label": "Kto może cytować",
|
||||
"visibility_modal.quote_nobody": "Tylko ja",
|
||||
"visibility_modal.quote_public": "Każdy",
|
||||
"visibility_modal.save": "Zapisz"
|
||||
}
|
||||
|
||||
@@ -745,7 +745,6 @@
|
||||
"privacy.quote.disabled": "{visibility} Citações desabilitadas",
|
||||
"privacy.quote.limited": "{visibility} Citações limitadas",
|
||||
"privacy.unlisted.additional": "Isso se comporta exatamente como público, exceto que a publicação não aparecerá nos _feeds ao vivo_ ou nas _hashtags_, explorar, ou barra de busca, mesmo que você seja escolhido em toda a conta.",
|
||||
"privacy.unlisted.long": "Menos notificações e recomendações do algoritmo",
|
||||
"privacy.unlisted.short": "Público (silencioso)",
|
||||
"privacy_policy.last_updated": "Atualizado {date}",
|
||||
"privacy_policy.title": "Política de privacidade",
|
||||
@@ -909,7 +908,6 @@
|
||||
"status.read_more": "Ler mais",
|
||||
"status.reblog": "Dar boost",
|
||||
"status.reblog_or_quote": "Acelerar ou citar",
|
||||
"status.reblog_private": "Dar boost para o mesmo público",
|
||||
"status.reblogged_by": "{name} deu boost",
|
||||
"status.reblogs": "{count, plural, one {boost} other {boosts}}",
|
||||
"status.reblogs.empty": "Nada aqui. Quando alguém der boost, o usuário aparecerá aqui.",
|
||||
@@ -987,7 +985,6 @@
|
||||
"visibility_modal.button_title": "Selecionar Visibilidade",
|
||||
"visibility_modal.header": "Visibilidade e interação",
|
||||
"visibility_modal.helper.direct_quoting": "Menções privadas escritas no Mastodon.",
|
||||
"visibility_modal.helper.privacy_editing": "Os posts publicados não podem alterar sua visibilidade.",
|
||||
"visibility_modal.helper.private_quoting": "Posts somente para seguidores feitos no Mastodon não podem ser citados por outros.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quando as pessoas citam você, sua publicação também será ocultada das linhas de tempo de tendência.",
|
||||
"visibility_modal.instructions": "Controle quem pode interagir com este post. Você também pode aplicar as configurações para todos os posts futuros navegando para <link>Preferências > Postagem padrão</link>.",
|
||||
|
||||
@@ -744,7 +744,6 @@
|
||||
"privacy.quote.disabled": "{visibility}, citações desativadas",
|
||||
"privacy.quote.limited": "{visibility}, citações limitadas",
|
||||
"privacy.unlisted.additional": "Este comportamento é exatamente igual ao do público, exceto que a publicação não aparecerá em cronologias, nas etiquetas, ao explorar ou na pesquisa do Mastodon, mesmo que tenhas optado por participar em toda a tua conta.",
|
||||
"privacy.unlisted.long": "Menos fanfarras algorítmicas",
|
||||
"privacy.unlisted.short": "Público silencioso",
|
||||
"privacy_policy.last_updated": "Última atualização em {date}",
|
||||
"privacy_policy.title": "Política de privacidade",
|
||||
@@ -906,7 +905,6 @@
|
||||
"status.quotes.empty": "Ainda ninguém citou esta publicação. Quando alguém o fizer, aparecerá aqui.",
|
||||
"status.read_more": "Ler mais",
|
||||
"status.reblog": "Impulsionar",
|
||||
"status.reblog_private": "Impulsionar com a visibilidade original",
|
||||
"status.reblogged_by": "{name} impulsionou",
|
||||
"status.reblogs": "{count, plural, one {impulso} other {impulsos}}",
|
||||
"status.reblogs.empty": "Ainda ninguém impulsionou esta publicação. Quando alguém o fizer, aparecerá aqui.",
|
||||
@@ -984,7 +982,6 @@
|
||||
"visibility_modal.button_title": "Definir visibilidade",
|
||||
"visibility_modal.header": "Visibilidade e interação",
|
||||
"visibility_modal.helper.direct_quoting": "As menções privadas criadas no Mastodon não podem ser citadas por outras pessoas.",
|
||||
"visibility_modal.helper.privacy_editing": "Publicações publicadas não podem alterar a sua visibilidade.",
|
||||
"visibility_modal.helper.private_quoting": "As publicações apenas para seguidores criadas no Mastodon não podem ser citadas por outras pessoas.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Quando as pessoas o citarem, as publicações delas serão também ocultadas das tendências.",
|
||||
"visibility_modal.quote_followers": "Apenas seguidores",
|
||||
|
||||
@@ -528,7 +528,6 @@
|
||||
"status.pin": "Fixează pe profil",
|
||||
"status.read_more": "Citește mai mult",
|
||||
"status.reblog": "Impuls",
|
||||
"status.reblog_private": "Impulsionează către audiența originală",
|
||||
"status.reblogged_by": "{name} a distribuit",
|
||||
"status.reblogs.empty": "Nimeni nu a distribuit această postare până acum. Când cineva o va face, va apărea aici.",
|
||||
"status.redraft": "Șterge și adaugă la ciorne",
|
||||
|
||||
@@ -738,7 +738,6 @@
|
||||
"privacy.public.long": "Для кого угодно в интернете",
|
||||
"privacy.public.short": "Публичный",
|
||||
"privacy.unlisted.additional": "Похоже на «Публичный» за исключением того, что пост не появится ни в живых лентах, ни в лентах хештегов, ни в разделе «Актуальное», ни в поиске Mastodon, даже если вы разрешили поиск по своим постам в настройках профиля.",
|
||||
"privacy.unlisted.long": "Без продвижения алгоритмами",
|
||||
"privacy.unlisted.short": "Тихий публичный",
|
||||
"privacy_policy.last_updated": "Последнее обновление: {date}",
|
||||
"privacy_policy.title": "Политика конфиденциальности",
|
||||
@@ -885,7 +884,6 @@
|
||||
"status.quote_error.pending_approval_popout.title": "Цитирование ещё не подтверждено? Не беспокойтесь",
|
||||
"status.read_more": "Читать далее",
|
||||
"status.reblog": "Продвинуть",
|
||||
"status.reblog_private": "Продвинуть для своей аудитории",
|
||||
"status.reblogged_by": "{name} продвинул(а)",
|
||||
"status.reblogs": "{count, plural, one {продвижение} few {продвижения} other {продвижений}}",
|
||||
"status.reblogs.empty": "Никто ещё не продвинул этот пост. Все пользователи, которые продвинут этот пост, будут показаны здесь.",
|
||||
|
||||
@@ -706,7 +706,6 @@
|
||||
"status.pin": "Apica in su profilu",
|
||||
"status.read_more": "Leghe·nde àteru",
|
||||
"status.reblog": "Cumpartzi",
|
||||
"status.reblog_private": "Cumpartzi cun is utentes originales",
|
||||
"status.reblogged_by": "{name} at cumpartzidu",
|
||||
"status.reblogs.empty": "Nemos at ancora cumpartzidu custa publicatzione. Cando calicunu dd'at a fàghere, at a èssere ammustrada inoghe.",
|
||||
"status.redraft": "Cantzella e torra a iscrìere",
|
||||
|
||||
@@ -444,7 +444,6 @@
|
||||
"status.pin": "Preen tae profile",
|
||||
"status.read_more": "Read mair",
|
||||
"status.reblog": "Heeze",
|
||||
"status.reblog_private": "Heeze wi original visibility",
|
||||
"status.reblogged_by": "{name} heezed",
|
||||
"status.reblogs.empty": "Naebody haes heezed this post yit. Whan somebody dis, they wull shaw up here.",
|
||||
"status.redraft": "Delete & re-dae",
|
||||
|
||||
@@ -699,7 +699,6 @@
|
||||
"privacy.public.long": "මැස්ටෝඩන් වල සහ ඉන් පිටත ඕනෑම අයෙක්",
|
||||
"privacy.public.short": "ප්රසිද්ධ",
|
||||
"privacy.unlisted.additional": "මෙය හරියටම පොදු ලෙසම ක්රියා කරයි, ඔබ ගිණුම පුරා තෝරාගෙන සිටියත්, සජීවී සංග්රහ හෝ හැෂ් ටැග්, ගවේෂණය හෝ මැස්ටෝඩන් සෙවුම තුළ පළ කිරීම දිස් නොවේ.",
|
||||
"privacy.unlisted.long": "ඇල්ගොරිතම රසික ගාස්තු අඩුයි",
|
||||
"privacy.unlisted.short": "නිහඬ මහජනතාව",
|
||||
"privacy_policy.last_updated": "අවසන් වරට යාවත්කාලීන කරන ලද්දේ {date}",
|
||||
"privacy_policy.title": "රහස්යතා ප්රතිපත්තිය",
|
||||
@@ -839,7 +838,6 @@
|
||||
"status.pin": "පැතිකඩට අමුණන්න",
|
||||
"status.read_more": "තව කියවන්න",
|
||||
"status.reblog": "බූස්ට් කරන්න",
|
||||
"status.reblog_private": "මුල් දෘශ්යතාව සමඟ වැඩි කරන්න",
|
||||
"status.reblogged_by": "{name} වැඩි කරන ලදී",
|
||||
"status.reblogs": "{count, plural, one {බූස්ට්} other {බූස්ට්}}",
|
||||
"status.reblogs.empty": "මෙම සටහන තවම කිසිවෙකු බූස්ට් කර නැත. යමෙකු එසේ කළ විට, ඔවුන් මෙහි පෙන්වනු ඇත.",
|
||||
|
||||
@@ -626,7 +626,6 @@
|
||||
"privacy.public.long": "Ktokoľvek na Mastodone aj mimo neho",
|
||||
"privacy.public.short": "Verejné",
|
||||
"privacy.unlisted.additional": "Presne ako verejné, s tým rozdielom, že sa príspevok nezobrazí v živých kanáloch, hashtagoch, objavovaní či vo vyhľadávaní na Mastodone, aj keď máte pre účet objaviteľnosť zapnutú.",
|
||||
"privacy.unlisted.long": "Menej algoritmických výmyslov",
|
||||
"privacy.unlisted.short": "Tiché verejné",
|
||||
"privacy_policy.last_updated": "Posledná úprava {date}",
|
||||
"privacy_policy.title": "Pravidlá ochrany súkromia",
|
||||
@@ -762,7 +761,6 @@
|
||||
"status.pin": "Pripnúť na profil",
|
||||
"status.read_more": "Čítaj ďalej",
|
||||
"status.reblog": "Zdieľať",
|
||||
"status.reblog_private": "Zdieľať pôvodnému publiku",
|
||||
"status.reblogged_by": "{name} zdieľa",
|
||||
"status.reblogs.empty": "Nikto ešte tento príspevok nezdieľal. Keď tak niekto urobí, zobrazí sa to tu.",
|
||||
"status.redraft": "Vymazať a prepísať",
|
||||
|
||||
@@ -677,7 +677,6 @@
|
||||
"privacy.public.long": "Vsem, ki so ali niso na Mastodonu",
|
||||
"privacy.public.short": "Javno",
|
||||
"privacy.unlisted.additional": "Učinek je enak kot pri javni objavi, le da se ta ne bo prikazala v živih virih, med ključniki, raziskovanjem ali iskanjem, četudi ste to vključili na ravni računa.",
|
||||
"privacy.unlisted.long": "Manj vsebine po izboru algoritma",
|
||||
"privacy.unlisted.short": "Tiho javno",
|
||||
"privacy_policy.last_updated": "Zadnja posodobitev {date}",
|
||||
"privacy_policy.title": "Pravilnik o zasebnosti",
|
||||
@@ -817,7 +816,6 @@
|
||||
"status.pin": "Pripni na profil",
|
||||
"status.read_more": "Preberi več",
|
||||
"status.reblog": "Izpostavi",
|
||||
"status.reblog_private": "Izpostavi z izvirno vidljivostjo",
|
||||
"status.reblogged_by": "{name} je izpostavil/a",
|
||||
"status.reblogs": "{count, plural, one {izpostavitev} two {izpostavitvi} few {izpostavitve} other {izpostavitev}}",
|
||||
"status.reblogs.empty": "Nihče še ni izpostavil te objave. Ko se bo to zgodilo, se bodo pojavile tukaj.",
|
||||
|
||||
@@ -724,7 +724,6 @@
|
||||
"privacy.public.long": "Cilido që hyn e del në Mastodon",
|
||||
"privacy.public.short": "Publik",
|
||||
"privacy.unlisted.additional": "Ky sillet saktësisht si publik, vetëm se postimi s’do të shfaqet në prurje të drejtpërdrejta, ose në hashtag-ë, te eksploroni, apo kërkim në Mastodon, edhe kur keni zgjedhur të jetë për tërë llogarinë.",
|
||||
"privacy.unlisted.long": "Më pak fanfara algoritmike",
|
||||
"privacy.unlisted.short": "Publik i qetë",
|
||||
"privacy_policy.last_updated": "Përditësuar së fundi më {date}",
|
||||
"privacy_policy.title": "Rregulla Privatësie",
|
||||
@@ -866,7 +865,6 @@
|
||||
"status.quote_error.filtered": "Fshehur për shkak të njërit nga filtrat tuaj",
|
||||
"status.read_more": "Lexoni më tepër",
|
||||
"status.reblog": "Përforcojeni",
|
||||
"status.reblog_private": "Përforcim për publikun origjinal",
|
||||
"status.reblogged_by": "{name} përforcoi",
|
||||
"status.reblogs": "{count, plural, one {përforcim} other {përforcime}}",
|
||||
"status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user