mirror of
https://github.com/mastodon/mastodon.git
synced 2025-11-27 10:00:50 +00:00
Merge branch 'main' into patch-16
This commit is contained in:
commit
668fc5a860
|
|
@ -100,7 +100,7 @@ module LanguagesHelper
|
||||||
lo: ['Lao', 'ລາວ'].freeze,
|
lo: ['Lao', 'ລາວ'].freeze,
|
||||||
lt: ['Lithuanian', 'lietuvių kalba'].freeze,
|
lt: ['Lithuanian', 'lietuvių kalba'].freeze,
|
||||||
lu: ['Luba-Katanga', 'Tshiluba'].freeze,
|
lu: ['Luba-Katanga', 'Tshiluba'].freeze,
|
||||||
lv: ['Latvian', 'latviešu valoda'].freeze,
|
lv: ['Latvian', 'Latviski'].freeze,
|
||||||
mg: ['Malagasy', 'fiteny malagasy'].freeze,
|
mg: ['Malagasy', 'fiteny malagasy'].freeze,
|
||||||
mh: ['Marshallese', 'Kajin M̧ajeļ'].freeze,
|
mh: ['Marshallese', 'Kajin M̧ajeļ'].freeze,
|
||||||
mi: ['Māori', 'te reo Māori'].freeze,
|
mi: ['Māori', 'te reo Māori'].freeze,
|
||||||
|
|
|
||||||
|
|
@ -1,158 +0,0 @@
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import { PureComponent } from 'react';
|
|
||||||
|
|
||||||
import { injectIntl, defineMessages } from 'react-intl';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
|
||||||
|
|
||||||
import Overlay from 'react-overlays/Overlay';
|
|
||||||
|
|
||||||
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
|
|
||||||
import LockIcon from '@/material-icons/400-24px/lock.svg?react';
|
|
||||||
import PublicIcon from '@/material-icons/400-24px/public.svg?react';
|
|
||||||
import QuietTimeIcon from '@/material-icons/400-24px/quiet_time.svg?react';
|
|
||||||
import { DropdownSelector } from 'mastodon/components/dropdown_selector';
|
|
||||||
import { Icon } from 'mastodon/components/icon';
|
|
||||||
|
|
||||||
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: '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' },
|
|
||||||
direct_long: { id: 'privacy.direct.long', defaultMessage: 'Everyone mentioned in the post' },
|
|
||||||
change_privacy: { id: 'privacy.change', defaultMessage: 'Change post privacy' },
|
|
||||||
unlisted_extra: { id: 'privacy.unlisted.additional', defaultMessage: '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.' },
|
|
||||||
});
|
|
||||||
|
|
||||||
class PrivacyDropdown extends PureComponent {
|
|
||||||
|
|
||||||
static propTypes = {
|
|
||||||
value: PropTypes.string.isRequired,
|
|
||||||
onChange: PropTypes.func.isRequired,
|
|
||||||
noDirect: PropTypes.bool,
|
|
||||||
container: PropTypes.func,
|
|
||||||
disabled: PropTypes.bool,
|
|
||||||
intl: PropTypes.object.isRequired,
|
|
||||||
};
|
|
||||||
|
|
||||||
state = {
|
|
||||||
open: false,
|
|
||||||
placement: 'bottom',
|
|
||||||
};
|
|
||||||
|
|
||||||
handleToggle = () => {
|
|
||||||
if (this.state.open && this.activeElement) {
|
|
||||||
this.activeElement.focus({ preventScroll: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
this.setState({ open: !this.state.open });
|
|
||||||
};
|
|
||||||
|
|
||||||
handleKeyDown = e => {
|
|
||||||
switch(e.key) {
|
|
||||||
case 'Escape':
|
|
||||||
this.handleClose();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
handleMouseDown = () => {
|
|
||||||
if (!this.state.open) {
|
|
||||||
this.activeElement = document.activeElement;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
handleButtonKeyDown = (e) => {
|
|
||||||
switch(e.key) {
|
|
||||||
case ' ':
|
|
||||||
case 'Enter':
|
|
||||||
this.handleMouseDown();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
handleClose = () => {
|
|
||||||
if (this.state.open && this.activeElement) {
|
|
||||||
this.activeElement.focus({ preventScroll: true });
|
|
||||||
}
|
|
||||||
this.setState({ open: false });
|
|
||||||
};
|
|
||||||
|
|
||||||
handleChange = value => {
|
|
||||||
this.props.onChange(value);
|
|
||||||
};
|
|
||||||
|
|
||||||
UNSAFE_componentWillMount () {
|
|
||||||
const { intl: { formatMessage } } = this.props;
|
|
||||||
|
|
||||||
this.options = [
|
|
||||||
{ icon: 'globe', iconComponent: PublicIcon, value: 'public', text: formatMessage(messages.public_short), meta: formatMessage(messages.public_long) },
|
|
||||||
{ icon: 'unlock', iconComponent: QuietTimeIcon, value: 'unlisted', text: formatMessage(messages.unlisted_short), meta: formatMessage(messages.unlisted_long), extra: formatMessage(messages.unlisted_extra) },
|
|
||||||
{ icon: 'lock', iconComponent: LockIcon, value: 'private', text: formatMessage(messages.private_short), meta: formatMessage(messages.private_long) },
|
|
||||||
];
|
|
||||||
|
|
||||||
if (!this.props.noDirect) {
|
|
||||||
this.options.push(
|
|
||||||
{ icon: 'at', iconComponent: AlternateEmailIcon, value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setTargetRef = c => {
|
|
||||||
this.target = c;
|
|
||||||
};
|
|
||||||
|
|
||||||
findTarget = () => {
|
|
||||||
return this.target;
|
|
||||||
};
|
|
||||||
|
|
||||||
handleOverlayEnter = (state) => {
|
|
||||||
this.setState({ placement: state.placement });
|
|
||||||
};
|
|
||||||
|
|
||||||
render () {
|
|
||||||
const { value, container, disabled, intl } = this.props;
|
|
||||||
const { open, placement } = this.state;
|
|
||||||
|
|
||||||
const valueOption = this.options.find(item => item.value === value);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div ref={this.setTargetRef} onKeyDown={this.handleKeyDown}>
|
|
||||||
<button
|
|
||||||
type='button'
|
|
||||||
title={intl.formatMessage(messages.change_privacy)}
|
|
||||||
aria-expanded={open}
|
|
||||||
onClick={this.handleToggle}
|
|
||||||
onMouseDown={this.handleMouseDown}
|
|
||||||
onKeyDown={this.handleButtonKeyDown}
|
|
||||||
disabled={disabled}
|
|
||||||
className={classNames('dropdown-button', { active: open })}
|
|
||||||
>
|
|
||||||
<Icon id={valueOption.icon} icon={valueOption.iconComponent} />
|
|
||||||
<span className='dropdown-button__label'>{valueOption.text}</span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<Overlay show={open} offset={[5, 5]} placement={placement} flip target={this.findTarget} container={container} popperConfig={{ strategy: 'fixed', onFirstUpdate: this.handleOverlayEnter }}>
|
|
||||||
{({ props, placement }) => (
|
|
||||||
<div {...props}>
|
|
||||||
<div className={`dropdown-animation privacy-dropdown__dropdown ${placement}`}>
|
|
||||||
<DropdownSelector
|
|
||||||
items={this.options}
|
|
||||||
value={value}
|
|
||||||
onClose={this.handleClose}
|
|
||||||
onChange={this.handleChange}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</Overlay>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export default injectIntl(PrivacyDropdown);
|
|
||||||
|
|
@ -0,0 +1,199 @@
|
||||||
|
import { useCallback, useRef, useState } from 'react';
|
||||||
|
|
||||||
|
import { defineMessages, useIntl } from 'react-intl';
|
||||||
|
|
||||||
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import type { OverlayProps } from 'react-overlays/Overlay';
|
||||||
|
import Overlay from 'react-overlays/Overlay';
|
||||||
|
|
||||||
|
import type { StatusVisibility } from '@/mastodon/api_types/statuses';
|
||||||
|
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
|
||||||
|
import LockIcon from '@/material-icons/400-24px/lock.svg?react';
|
||||||
|
import PublicIcon from '@/material-icons/400-24px/public.svg?react';
|
||||||
|
import QuietTimeIcon from '@/material-icons/400-24px/quiet_time.svg?react';
|
||||||
|
import { DropdownSelector } from 'mastodon/components/dropdown_selector';
|
||||||
|
import { Icon } from 'mastodon/components/icon';
|
||||||
|
|
||||||
|
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:
|
||||||
|
'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',
|
||||||
|
},
|
||||||
|
direct_long: {
|
||||||
|
id: 'privacy.direct.long',
|
||||||
|
defaultMessage: 'Everyone mentioned in the post',
|
||||||
|
},
|
||||||
|
change_privacy: {
|
||||||
|
id: 'privacy.change',
|
||||||
|
defaultMessage: 'Change post privacy',
|
||||||
|
},
|
||||||
|
unlisted_extra: {
|
||||||
|
id: 'privacy.unlisted.additional',
|
||||||
|
defaultMessage:
|
||||||
|
'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.',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
interface PrivacyDropdownProps {
|
||||||
|
value: StatusVisibility;
|
||||||
|
onChange: (value: StatusVisibility) => void;
|
||||||
|
noDirect?: boolean;
|
||||||
|
container?: OverlayProps['container'];
|
||||||
|
disabled?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PrivacyDropdown: React.FC<PrivacyDropdownProps> = ({
|
||||||
|
value,
|
||||||
|
onChange,
|
||||||
|
noDirect,
|
||||||
|
container,
|
||||||
|
disabled,
|
||||||
|
}) => {
|
||||||
|
const intl = useIntl();
|
||||||
|
const overlayTargetRef = useRef<HTMLDivElement | null>(null);
|
||||||
|
const previousFocusTargetRef = useRef<HTMLElement | null>(null);
|
||||||
|
const [isOpen, setIsOpen] = useState(false);
|
||||||
|
|
||||||
|
const handleClose = useCallback(() => {
|
||||||
|
if (isOpen && previousFocusTargetRef.current) {
|
||||||
|
previousFocusTargetRef.current.focus({ preventScroll: true });
|
||||||
|
}
|
||||||
|
setIsOpen(false);
|
||||||
|
}, [isOpen]);
|
||||||
|
|
||||||
|
const handleToggle = useCallback(() => {
|
||||||
|
if (isOpen) {
|
||||||
|
handleClose();
|
||||||
|
}
|
||||||
|
setIsOpen((prev) => !prev);
|
||||||
|
}, [handleClose, isOpen]);
|
||||||
|
|
||||||
|
const registerPreviousFocusTarget = useCallback(() => {
|
||||||
|
if (!isOpen) {
|
||||||
|
previousFocusTargetRef.current = document.activeElement as HTMLElement;
|
||||||
|
}
|
||||||
|
}, [isOpen]);
|
||||||
|
|
||||||
|
const handleButtonKeyDown = useCallback(
|
||||||
|
(e: React.KeyboardEvent) => {
|
||||||
|
if ([' ', 'Enter'].includes(e.key)) {
|
||||||
|
registerPreviousFocusTarget();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[registerPreviousFocusTarget],
|
||||||
|
);
|
||||||
|
|
||||||
|
const options = [
|
||||||
|
{
|
||||||
|
icon: 'globe',
|
||||||
|
iconComponent: PublicIcon,
|
||||||
|
value: 'public',
|
||||||
|
text: intl.formatMessage(messages.public_short),
|
||||||
|
meta: intl.formatMessage(messages.public_long),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'unlock',
|
||||||
|
iconComponent: QuietTimeIcon,
|
||||||
|
value: 'unlisted',
|
||||||
|
text: intl.formatMessage(messages.unlisted_short),
|
||||||
|
meta: intl.formatMessage(messages.unlisted_long),
|
||||||
|
extra: intl.formatMessage(messages.unlisted_extra),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'lock',
|
||||||
|
iconComponent: LockIcon,
|
||||||
|
value: 'private',
|
||||||
|
text: intl.formatMessage(messages.private_short),
|
||||||
|
meta: intl.formatMessage(messages.private_long),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
if (!noDirect) {
|
||||||
|
options.push({
|
||||||
|
icon: 'at',
|
||||||
|
iconComponent: AlternateEmailIcon,
|
||||||
|
value: 'direct',
|
||||||
|
text: intl.formatMessage(messages.direct_short),
|
||||||
|
meta: intl.formatMessage(messages.direct_long),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const selectedOption =
|
||||||
|
options.find((item) => item.value === value) ?? options.at(0);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div ref={overlayTargetRef}>
|
||||||
|
<button
|
||||||
|
type='button'
|
||||||
|
title={intl.formatMessage(messages.change_privacy)}
|
||||||
|
aria-expanded={isOpen}
|
||||||
|
onClick={handleToggle}
|
||||||
|
onMouseDown={registerPreviousFocusTarget}
|
||||||
|
onKeyDown={handleButtonKeyDown}
|
||||||
|
disabled={disabled}
|
||||||
|
className={classNames('dropdown-button', { active: isOpen })}
|
||||||
|
>
|
||||||
|
{selectedOption && (
|
||||||
|
<>
|
||||||
|
<Icon
|
||||||
|
id={selectedOption.icon}
|
||||||
|
icon={selectedOption.iconComponent}
|
||||||
|
/>
|
||||||
|
<span className='dropdown-button__label'>
|
||||||
|
{selectedOption.text}
|
||||||
|
</span>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<Overlay
|
||||||
|
show={isOpen}
|
||||||
|
offset={[5, 5]}
|
||||||
|
placement='bottom'
|
||||||
|
flip
|
||||||
|
target={overlayTargetRef}
|
||||||
|
container={container}
|
||||||
|
popperConfig={{ strategy: 'fixed' }}
|
||||||
|
>
|
||||||
|
{({ props, placement }) => (
|
||||||
|
<div {...props}>
|
||||||
|
<div
|
||||||
|
className={`dropdown-animation privacy-dropdown__dropdown ${placement}`}
|
||||||
|
>
|
||||||
|
<DropdownSelector
|
||||||
|
items={options}
|
||||||
|
value={value}
|
||||||
|
onClose={handleClose}
|
||||||
|
// @ts-expect-error DropdownSelector doesn't yet return the correct type for onChange
|
||||||
|
onChange={onChange}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Overlay>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// eslint-disable-next-line import/no-default-export
|
||||||
|
export default PrivacyDropdown;
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
import { connect } from 'react-redux';
|
|
||||||
|
|
||||||
import { changeComposeVisibility } from '@/mastodon/actions/compose_typed';
|
|
||||||
|
|
||||||
import PrivacyDropdown from '../components/privacy_dropdown';
|
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
|
||||||
value: state.getIn(['compose', 'privacy']),
|
|
||||||
});
|
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
|
||||||
|
|
||||||
onChange (value) {
|
|
||||||
dispatch(changeComposeVisibility(value));
|
|
||||||
},
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
export default connect(mapStateToProps, mapDispatchToProps)(PrivacyDropdown);
|
|
||||||
|
|
@ -52,7 +52,10 @@ export const BoostModal: React.FC<{
|
||||||
}, [onClose]);
|
}, [onClose]);
|
||||||
|
|
||||||
const findContainer = useCallback(
|
const findContainer = useCallback(
|
||||||
() => document.getElementsByClassName('modal-root__container')[0],
|
() =>
|
||||||
|
document.getElementsByClassName(
|
||||||
|
'modal-root__container',
|
||||||
|
)[0] as HTMLDivElement,
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -250,6 +250,8 @@
|
||||||
"confirmations.missing_alt_text.title": "Hi voleu afegir text alternatiu?",
|
"confirmations.missing_alt_text.title": "Hi voleu afegir text alternatiu?",
|
||||||
"confirmations.mute.confirm": "Silencia",
|
"confirmations.mute.confirm": "Silencia",
|
||||||
"confirmations.private_quote_notify.cancel": "Torna a l'edició",
|
"confirmations.private_quote_notify.cancel": "Torna a l'edició",
|
||||||
|
"confirmations.private_quote_notify.confirm": "Publica la publicació",
|
||||||
|
"confirmations.private_quote_notify.do_not_show_again": "No tornis a mostrar-me aquest missatge",
|
||||||
"confirmations.private_quote_notify.message": "La persona que citeu i altres mencionades rebran una notificació i podran veure la vostra publicació, encara que no us segueixen.",
|
"confirmations.private_quote_notify.message": "La persona que citeu i altres mencionades rebran una notificació i podran veure la vostra publicació, encara que no us segueixen.",
|
||||||
"confirmations.private_quote_notify.title": "Voleu compartir amb seguidors i usuaris mencionats?",
|
"confirmations.private_quote_notify.title": "Voleu compartir amb seguidors i usuaris mencionats?",
|
||||||
"confirmations.quiet_post_quote_info.dismiss": "No m'ho tornis a recordar",
|
"confirmations.quiet_post_quote_info.dismiss": "No m'ho tornis a recordar",
|
||||||
|
|
@ -341,7 +343,7 @@
|
||||||
"empty_column.bookmarked_statuses": "Encara no has marcat cap tut. Quan en marquis un, apareixerà aquí.",
|
"empty_column.bookmarked_statuses": "Encara no has marcat cap tut. Quan en marquis un, apareixerà aquí.",
|
||||||
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
|
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
|
||||||
"empty_column.direct": "Encara no tens mencions privades. Quan n'enviïs o en rebis una, et sortirà aquí.",
|
"empty_column.direct": "Encara no tens mencions privades. Quan n'enviïs o en rebis una, et sortirà aquí.",
|
||||||
"empty_column.disabled_feed": "Aquest canal ha estat desactivat per l'administració del vostre servidor.",
|
"empty_column.disabled_feed": "L'administració del vostre servidor ha desactivat aquest canal.",
|
||||||
"empty_column.domain_blocks": "Encara no hi ha dominis blocats.",
|
"empty_column.domain_blocks": "Encara no hi ha dominis blocats.",
|
||||||
"empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Revisa-ho més tard!",
|
"empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Revisa-ho més tard!",
|
||||||
"empty_column.favourited_statuses": "Encara no has afavorit cap tut. Quan ho facis, apareixerà aquí.",
|
"empty_column.favourited_statuses": "Encara no has afavorit cap tut. Quan ho facis, apareixerà aquí.",
|
||||||
|
|
@ -366,6 +368,7 @@
|
||||||
"explore.trending_links": "Notícies",
|
"explore.trending_links": "Notícies",
|
||||||
"explore.trending_statuses": "Tuts",
|
"explore.trending_statuses": "Tuts",
|
||||||
"explore.trending_tags": "Etiquetes",
|
"explore.trending_tags": "Etiquetes",
|
||||||
|
"featured_carousel.current": "<sr>Publicació</sr> {current, number} / {max, number}",
|
||||||
"featured_carousel.header": "{count, plural, one {Publicació fixada} other {Publicacions fixades}}",
|
"featured_carousel.header": "{count, plural, one {Publicació fixada} other {Publicacions fixades}}",
|
||||||
"featured_carousel.slide": "Publicació {current, number} de {max, number}",
|
"featured_carousel.slide": "Publicació {current, number} de {max, number}",
|
||||||
"filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquest tut. Si també vols que el tut es filtri en aquest context, hauràs d'editar el filtre.",
|
"filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquest tut. Si també vols que el tut es filtri en aquest context, hauràs d'editar el filtre.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Vyčištěno! Nic tu není. Jakmile obdržíš nové notifikace, objeví se zde podle tvého nastavení.",
|
"empty_column.notification_requests": "Vyčištěno! Nic tu není. Jakmile obdržíš nové notifikace, objeví se zde podle tvého nastavení.",
|
||||||
"empty_column.notifications": "Zatím nemáte žádná oznámení. Až s vámi někdo bude interagovat, uvidíte to zde.",
|
"empty_column.notifications": "Zatím nemáte žádná oznámení. Až s vámi někdo bude interagovat, uvidíte to zde.",
|
||||||
"empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo",
|
"empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo",
|
||||||
|
"error.no_hashtag_feed_access": "Zaregistrujte se nebo se přihlaste k zobrazení a sledování tohoto hashtagu.",
|
||||||
"error.unexpected_crash.explanation": "Kvůli chybě v našem kódu nebo problému s kompatibilitou prohlížeče nemohla být tato stránka správně zobrazena.",
|
"error.unexpected_crash.explanation": "Kvůli chybě v našem kódu nebo problému s kompatibilitou prohlížeče nemohla být tato stránka správně zobrazena.",
|
||||||
"error.unexpected_crash.explanation_addons": "Tuto stránku nelze správně zobrazit. Takovou chybu obvykle způsobuje doplněk prohlížeče nebo nástroje pro automatický překlad.",
|
"error.unexpected_crash.explanation_addons": "Tuto stránku nelze správně zobrazit. Takovou chybu obvykle způsobuje doplněk prohlížeče nebo nástroje pro automatický překlad.",
|
||||||
"error.unexpected_crash.next_steps": "Zkuste stránku načíst znovu. Pokud to nepomůže, zkuste Mastodon používat pomocí jiného prohlížeče nebo nativní aplikace.",
|
"error.unexpected_crash.next_steps": "Zkuste stránku načíst znovu. Pokud to nepomůže, zkuste Mastodon používat pomocí jiného prohlížeče nebo nativní aplikace.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Dim i boeni amdano! Does dim byd yma. Pan fyddwch yn derbyn hysbysiadau newydd, byddan nhw'n ymddangos yma yn ôl eich gosodiadau.",
|
"empty_column.notification_requests": "Dim i boeni amdano! Does dim byd yma. Pan fyddwch yn derbyn hysbysiadau newydd, byddan nhw'n ymddangos yma yn ôl eich gosodiadau.",
|
||||||
"empty_column.notifications": "Does gennych chi ddim hysbysiadau eto. Pan fyddwch chi'n rhyngweithio ag eraill, byddwch yn ei weld yma.",
|
"empty_column.notifications": "Does gennych chi ddim hysbysiadau eto. Pan fyddwch chi'n rhyngweithio ag eraill, byddwch yn ei weld yma.",
|
||||||
"empty_column.public": "Does dim byd yma! Ysgrifennwch rywbeth cyhoeddus, neu dilynwch ddefnyddwyr o weinyddion eraill i'w lanw",
|
"empty_column.public": "Does dim byd yma! Ysgrifennwch rywbeth cyhoeddus, neu dilynwch ddefnyddwyr o weinyddion eraill i'w lanw",
|
||||||
|
"error.no_hashtag_feed_access": "Ymunwch neu mewngofnodwch i weld a dilyn yr hashnod hwn.",
|
||||||
"error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.",
|
"error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.",
|
||||||
"error.unexpected_crash.explanation_addons": "Does dim modd dangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
|
"error.unexpected_crash.explanation_addons": "Does dim modd dangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
|
||||||
"error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho'r dudalen. Os nad yw hyn yn eich helpu, efallai gallwch ddefnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
|
"error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho'r dudalen. Os nad yw hyn yn eich helpu, efallai gallwch ddefnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Alt er klar! Der er intet her. Når der modtages nye notifikationer, fremgår de her jævnfør dine indstillinger.",
|
"empty_column.notification_requests": "Alt er klar! Der er intet her. Når der modtages nye notifikationer, fremgår de her jævnfør dine indstillinger.",
|
||||||
"empty_column.notifications": "Du har endnu ingen notifikationer. Når andre interagerer med dig, vil det fremgå her.",
|
"empty_column.notifications": "Du har endnu ingen notifikationer. Når andre interagerer med dig, vil det fremgå her.",
|
||||||
"empty_column.public": "Der er ikke noget her! Skriv noget offentligt, eller følg manuelt brugere fra andre servere for at se indhold",
|
"empty_column.public": "Der er ikke noget her! Skriv noget offentligt, eller følg manuelt brugere fra andre servere for at se indhold",
|
||||||
|
"error.no_hashtag_feed_access": "Tilmeld dig eller log ind for at se og følge dette hashtag.",
|
||||||
"error.unexpected_crash.explanation": "Grundet en fejl i vores kode, eller en netlæser-kompatibilitetsfejl, kunne siden ikke vises korrekt.",
|
"error.unexpected_crash.explanation": "Grundet en fejl i vores kode, eller en netlæser-kompatibilitetsfejl, kunne siden ikke vises korrekt.",
|
||||||
"error.unexpected_crash.explanation_addons": "Denne side kunne ikke vises korrekt. Fejlen skyldes sandsynligvis en browsertilføjelse eller automatiske oversættelsesværktøjer.",
|
"error.unexpected_crash.explanation_addons": "Denne side kunne ikke vises korrekt. Fejlen skyldes sandsynligvis en browsertilføjelse eller automatiske oversættelsesværktøjer.",
|
||||||
"error.unexpected_crash.next_steps": "Prøv at opfriske siden. Hjælper dette ikke, kan Mastodon muligvis stadig bruges via en anden netlæser eller app.",
|
"error.unexpected_crash.next_steps": "Prøv at opfriske siden. Hjælper dette ikke, kan Mastodon muligvis stadig bruges via en anden netlæser eller app.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Alles klar! Hier gibt es nichts. Wenn Sie neue Mitteilungen erhalten, werden diese entsprechend Ihren Einstellungen hier angezeigt.",
|
"empty_column.notification_requests": "Alles klar! Hier gibt es nichts. Wenn Sie neue Mitteilungen erhalten, werden diese entsprechend Ihren Einstellungen hier angezeigt.",
|
||||||
"empty_column.notifications": "Du hast noch keine Benachrichtigungen. Sobald andere Personen mit dir interagieren, wirst du hier darüber informiert.",
|
"empty_column.notifications": "Du hast noch keine Benachrichtigungen. Sobald andere Personen mit dir interagieren, wirst du hier darüber informiert.",
|
||||||
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen",
|
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen",
|
||||||
|
"error.no_hashtag_feed_access": "Registriere dich oder melde dich an, um den Hashtag anzusehen und ihm zu folgen.",
|
||||||
"error.unexpected_crash.explanation": "Wegen eines Fehlers in unserem Code oder aufgrund einer Browser-Inkompatibilität kann diese Seite nicht korrekt angezeigt werden.",
|
"error.unexpected_crash.explanation": "Wegen eines Fehlers in unserem Code oder aufgrund einer Browser-Inkompatibilität kann diese Seite nicht korrekt angezeigt werden.",
|
||||||
"error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
|
"error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
|
||||||
"error.unexpected_crash.next_steps": "Versuche, die Seite neu zu laden. Wenn das nicht helfen sollte, kannst du das Webinterface von Mastodon vermutlich über einen anderen Browser erreichen – oder du verwendest eine mobile (native) App.",
|
"error.unexpected_crash.next_steps": "Versuche, die Seite neu zu laden. Wenn das nicht helfen sollte, kannst du das Webinterface von Mastodon vermutlich über einen anderen Browser erreichen – oder du verwendest eine mobile (native) App.",
|
||||||
|
|
@ -759,7 +760,7 @@
|
||||||
"privacy.quote.disabled": "{visibility} – niemand darf zitieren",
|
"privacy.quote.disabled": "{visibility} – niemand darf zitieren",
|
||||||
"privacy.quote.limited": "{visibility} – eingeschränktes Zitieren",
|
"privacy.quote.limited": "{visibility} – eingeschränktes Zitieren",
|
||||||
"privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch gibt es einige Einschränkungen. Der Beitrag wird nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion auffindbar sein – selbst wenn die zugehörige Einstellung aktiviert wurde.",
|
"privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch gibt es einige Einschränkungen. Der Beitrag wird nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion auffindbar sein – selbst wenn die zugehörige Einstellung aktiviert wurde.",
|
||||||
"privacy.unlisted.long": "Verborgen vor Suchergebnissen, Trends und öffentlichen Timelines auf Mastodon",
|
"privacy.unlisted.long": "Verborgen vor Suchergebnissen, Trends und öffentlichen Timelines",
|
||||||
"privacy.unlisted.short": "Öffentlich (still)",
|
"privacy.unlisted.short": "Öffentlich (still)",
|
||||||
"privacy_policy.last_updated": "Stand: {date}",
|
"privacy_policy.last_updated": "Stand: {date}",
|
||||||
"privacy_policy.title": "Datenschutzerklärung",
|
"privacy_policy.title": "Datenschutzerklärung",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Όλα καθαρά! Δεν υπάρχει τίποτα εδώ. Όταν λαμβάνεις νέες ειδοποιήσεις, αυτές θα εμφανίζονται εδώ σύμφωνα με τις ρυθμίσεις σου.",
|
"empty_column.notification_requests": "Όλα καθαρά! Δεν υπάρχει τίποτα εδώ. Όταν λαμβάνεις νέες ειδοποιήσεις, αυτές θα εμφανίζονται εδώ σύμφωνα με τις ρυθμίσεις σου.",
|
||||||
"empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Όταν άλλα άτομα αλληλεπιδράσουν μαζί σου, θα το δεις εδώ.",
|
"empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Όταν άλλα άτομα αλληλεπιδράσουν μαζί σου, θα το δεις εδώ.",
|
||||||
"empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο ή ακολούθησε χειροκίνητα χρήστες από άλλους διακομιστές για να τη γεμίσεις",
|
"empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο ή ακολούθησε χειροκίνητα χρήστες από άλλους διακομιστές για να τη γεμίσεις",
|
||||||
|
"error.no_hashtag_feed_access": "Γίνετε μέλος ή συνδεθείτε για να δείτε και να ακολουθήσετε αυτήν την ετικέτα.",
|
||||||
"error.unexpected_crash.explanation": "Είτε λόγω σφάλματος στον κώδικά μας ή λόγω ασυμβατότητας με τον περιηγητή, η σελίδα δε μπόρεσε να εμφανιστεί σωστά.",
|
"error.unexpected_crash.explanation": "Είτε λόγω σφάλματος στον κώδικά μας ή λόγω ασυμβατότητας με τον περιηγητή, η σελίδα δε μπόρεσε να εμφανιστεί σωστά.",
|
||||||
"error.unexpected_crash.explanation_addons": "Η σελίδα δεν μπόρεσε να εμφανιστεί σωστά. Το πρόβλημα οφείλεται πιθανόν σε κάποια επέκταση του φυλλομετρητή ή σε κάποιο αυτόματο εργαλείο μετάφρασης.",
|
"error.unexpected_crash.explanation_addons": "Η σελίδα δεν μπόρεσε να εμφανιστεί σωστά. Το πρόβλημα οφείλεται πιθανόν σε κάποια επέκταση του φυλλομετρητή ή σε κάποιο αυτόματο εργαλείο μετάφρασης.",
|
||||||
"error.unexpected_crash.next_steps": "Δοκίμασε να ανανεώσεις τη σελίδα. Αν αυτό δε βοηθήσει, ίσως να μπορέσεις να χρησιμοποιήσεις το Mastodon μέσω διαφορετικού περιηγητή ή κάποιας εφαρμογής.",
|
"error.unexpected_crash.next_steps": "Δοκίμασε να ανανεώσεις τη σελίδα. Αν αυτό δε βοηθήσει, ίσως να μπορέσεις να χρησιμοποιήσεις το Mastodon μέσω διαφορετικού περιηγητή ή κάποιας εφαρμογής.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "¡Todo limpio! No hay nada acá. Cuando recibás nuevas notificaciones, aparecerán acá, acorde a tu configuración.",
|
"empty_column.notification_requests": "¡Todo limpio! No hay nada acá. Cuando recibás nuevas notificaciones, aparecerán acá, acorde a tu configuración.",
|
||||||
"empty_column.notifications": "Todavía no tenés ninguna notificación. Cuando otras cuentas interactúen con vos, vas a ver la notificación acá.",
|
"empty_column.notifications": "Todavía no tenés ninguna notificación. Cuando otras cuentas interactúen con vos, vas a ver la notificación acá.",
|
||||||
"empty_column.public": "¡Naranja! Escribí algo públicamente, o seguí usuarios manualmente de otros servidores para ir llenando esta línea temporal",
|
"empty_column.public": "¡Naranja! Escribí algo públicamente, o seguí usuarios manualmente de otros servidores para ir llenando esta línea temporal",
|
||||||
|
"error.no_hashtag_feed_access": "Únete o inicia sesión para ver y seguir esta etiqueta.",
|
||||||
"error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador web, esta página no se pudo mostrar correctamente.",
|
"error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador web, esta página no se pudo mostrar correctamente.",
|
||||||
"error.unexpected_crash.explanation_addons": "No se pudo mostrar correctamente esta página. Este error probablemente es causado por un complemento del navegador web o por herramientas de traducción automática.",
|
"error.unexpected_crash.explanation_addons": "No se pudo mostrar correctamente esta página. Este error probablemente es causado por un complemento del navegador web o por herramientas de traducción automática.",
|
||||||
"error.unexpected_crash.next_steps": "Intentá recargar la página. Si eso no ayuda, podés usar Mastodon a través de un navegador web diferente o aplicación nativa.",
|
"error.unexpected_crash.next_steps": "Intentá recargar la página. Si eso no ayuda, podés usar Mastodon a través de un navegador web diferente o aplicación nativa.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.",
|
"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.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.",
|
||||||
"empty_column.public": "¡Aquí no hay nada! Escribe algo públicamente o sigue manualmente a usuarios de otros servidores para llenarlo",
|
"empty_column.public": "¡Aquí no hay nada! Escribe algo públicamente o sigue manualmente a usuarios de otros servidores para llenarlo",
|
||||||
|
"error.no_hashtag_feed_access": "Únete o inicia sesión para ver y seguir esta etiqueta.",
|
||||||
"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": "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.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.",
|
"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.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.",
|
"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": "Aún no tienes ninguna notificación. Cuando otras personas interactúen contigo, aparecerán aquí.",
|
"empty_column.notifications": "Aún no tienes ninguna notificación. Cuando otras personas interactúen contigo, aparecerán aquí.",
|
||||||
"empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo",
|
"empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo",
|
||||||
|
"error.no_hashtag_feed_access": "Únete o inicia sesión para ver y seguir esta etiqueta.",
|
||||||
"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": "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.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, quizás puedas usar Mastodon desde otro navegador o aplicación nativa.",
|
"error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, quizás puedas usar Mastodon desde otro navegador o aplicación nativa.",
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
"account.familiar_followers_two": "Jälgijateks {name1} ja {name2}",
|
"account.familiar_followers_two": "Jälgijateks {name1} ja {name2}",
|
||||||
"account.featured": "Esiletõstetud",
|
"account.featured": "Esiletõstetud",
|
||||||
"account.featured.accounts": "Profiilid",
|
"account.featured.accounts": "Profiilid",
|
||||||
"account.featured.hashtags": "Sildid",
|
"account.featured.hashtags": "Teemaviited",
|
||||||
"account.featured_tags.last_status_at": "Viimane postitus {date}",
|
"account.featured_tags.last_status_at": "Viimane postitus {date}",
|
||||||
"account.featured_tags.last_status_never": "Postitusi pole",
|
"account.featured_tags.last_status_never": "Postitusi pole",
|
||||||
"account.follow": "Jälgi",
|
"account.follow": "Jälgi",
|
||||||
|
|
@ -126,8 +126,8 @@
|
||||||
"annual_report.summary.highlighted_post.by_replies": "kõige vastatum postitus",
|
"annual_report.summary.highlighted_post.by_replies": "kõige vastatum postitus",
|
||||||
"annual_report.summary.highlighted_post.possessive": "omanik {name}",
|
"annual_report.summary.highlighted_post.possessive": "omanik {name}",
|
||||||
"annual_report.summary.most_used_app.most_used_app": "enim kasutatud äpp",
|
"annual_report.summary.most_used_app.most_used_app": "enim kasutatud äpp",
|
||||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "enim kasutatud silt",
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "enim kasutatud teemaviide",
|
||||||
"annual_report.summary.most_used_hashtag.none": "Pole",
|
"annual_report.summary.most_used_hashtag.none": "Puudub",
|
||||||
"annual_report.summary.new_posts.new_posts": "uus postitus",
|
"annual_report.summary.new_posts.new_posts": "uus postitus",
|
||||||
"annual_report.summary.percentile.text": "<topLabel>See paneb su top</topLabel><percentage></percentage><bottomLabel> {domain} kasutajate hulka.</bottomLabel>",
|
"annual_report.summary.percentile.text": "<topLabel>See paneb su top</topLabel><percentage></percentage><bottomLabel> {domain} kasutajate hulka.</bottomLabel>",
|
||||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Vägev.",
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Vägev.",
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
"compose.saved.body": "Postitus salvestatud.",
|
"compose.saved.body": "Postitus salvestatud.",
|
||||||
"compose_form.direct_message_warning_learn_more": "Vaata lisa",
|
"compose_form.direct_message_warning_learn_more": "Vaata lisa",
|
||||||
"compose_form.encryption_warning": "Postitused Mastodonis ei ole otsast-otsani krüpteeritud. Ära jaga mingeid delikaatseid andmeid Mastodoni kaudu.",
|
"compose_form.encryption_warning": "Postitused Mastodonis ei ole otsast-otsani krüpteeritud. Ära jaga mingeid delikaatseid andmeid Mastodoni kaudu.",
|
||||||
"compose_form.hashtag_warning": "See postitus ei ilmu ühegi märksõna all, kuna pole avalik. Vaid avalikud postitused on märksõnade kaudu leitavad.",
|
"compose_form.hashtag_warning": "See postitus ei ilmu ühegi teemaviite all, kuna pole avalik. Vaid avalikud postitused on teemaviidete kaudu leitavad.",
|
||||||
"compose_form.lock_disclaimer": "Su konto ei ole {locked}. Igaüks saab sind jälgida, et näha su ainult-jälgijatele postitusi.",
|
"compose_form.lock_disclaimer": "Su konto ei ole {locked}. Igaüks saab sind jälgida, et näha su ainult-jälgijatele postitusi.",
|
||||||
"compose_form.lock_disclaimer.lock": "lukus",
|
"compose_form.lock_disclaimer.lock": "lukus",
|
||||||
"compose_form.placeholder": "Millest mõtled?",
|
"compose_form.placeholder": "Millest mõtled?",
|
||||||
|
|
@ -332,8 +332,8 @@
|
||||||
"emoji_button.search_results": "Otsitulemused",
|
"emoji_button.search_results": "Otsitulemused",
|
||||||
"emoji_button.symbols": "Sümbolid",
|
"emoji_button.symbols": "Sümbolid",
|
||||||
"emoji_button.travel": "Reisimine & kohad",
|
"emoji_button.travel": "Reisimine & kohad",
|
||||||
"empty_column.account_featured.me": "Sa pole veel midagi esile tõstnud. Kas sa teadsid, et oma profiilis saad esile tõsta enamkasutatavaid silte või või sõbra kasutajakontot?",
|
"empty_column.account_featured.me": "Sa pole veel midagi esile tõstnud. Kas sa teadsid, et oma profiilis saad esile tõsta enamkasutatavaid teemaviiteid või sõbra kasutajakontot?",
|
||||||
"empty_column.account_featured.other": "{acct} pole veel midagi esile tõstnud. Kas sa teadsid, et oma profiilis saad esile tõsta enamkasutatavaid silte või või sõbra kasutajakontot?",
|
"empty_column.account_featured.other": "{acct} pole veel midagi esile tõstnud. Kas sa teadsid, et oma profiilis saad esile tõsta enamkasutatavaid teemaviiteid või sõbra kasutajakontot?",
|
||||||
"empty_column.account_featured_other.unknown": "See kasutajakonto pole veel midagi esile tõstnud.",
|
"empty_column.account_featured_other.unknown": "See kasutajakonto pole veel midagi esile tõstnud.",
|
||||||
"empty_column.account_hides_collections": "See kasutaja otsustas mitte teha seda infot saadavaks",
|
"empty_column.account_hides_collections": "See kasutaja otsustas mitte teha seda infot saadavaks",
|
||||||
"empty_column.account_suspended": "Konto kustutatud",
|
"empty_column.account_suspended": "Konto kustutatud",
|
||||||
|
|
@ -349,14 +349,15 @@
|
||||||
"empty_column.favourited_statuses": "Pole veel lemmikpostitusi. Kui märgid mõne, näed neid siin.",
|
"empty_column.favourited_statuses": "Pole veel lemmikpostitusi. Kui märgid mõne, näed neid siin.",
|
||||||
"empty_column.favourites": "Keegi pole veel seda postitust lemmikuks märkinud. Kui keegi seda teeb, siis on ta nähtav siin.",
|
"empty_column.favourites": "Keegi pole veel seda postitust lemmikuks märkinud. Kui keegi seda teeb, siis on ta nähtav siin.",
|
||||||
"empty_column.follow_requests": "Pole hetkel ühtegi jälgimistaotlust. Kui saad mõne, näed neid siin.",
|
"empty_column.follow_requests": "Pole hetkel ühtegi jälgimistaotlust. Kui saad mõne, näed neid siin.",
|
||||||
"empty_column.followed_tags": "Sa ei jälgi veel ühtegi märksõna. Kui jälgid, ilmuvad need siia.",
|
"empty_column.followed_tags": "Sa ei jälgi veel ühtegi teemaviidet. Kui jälgid, ilmuvad need siia.",
|
||||||
"empty_column.hashtag": "Selle sildi all ei ole ühtegi postitust.",
|
"empty_column.hashtag": "Selle teemaviite all ei ole ühtegi postitust.",
|
||||||
"empty_column.home": "Su koduajajoon on tühi. Jälgi rohkemaid inimesi, et seda täita {suggestions}",
|
"empty_column.home": "Su koduajajoon on tühi. Jälgi rohkemaid inimesi, et seda täita {suggestions}",
|
||||||
"empty_column.list": "Siin loetelus pole veel midagi. Kui loetelu liikmed teevad uusi postitusi, näed neid siin.",
|
"empty_column.list": "Siin loetelus pole veel midagi. Kui loetelu liikmed teevad uusi postitusi, näed neid siin.",
|
||||||
"empty_column.mutes": "Sa pole veel ühtegi kasutajat summutanud.",
|
"empty_column.mutes": "Sa pole veel ühtegi kasutajat summutanud.",
|
||||||
"empty_column.notification_requests": "Kõik tühi! Siin pole mitte midagi. Kui saad uusi teavitusi, ilmuvad need siin vastavalt sinu seadistustele.",
|
"empty_column.notification_requests": "Kõik tühi! Siin pole mitte midagi. Kui saad uusi teavitusi, ilmuvad need siin vastavalt sinu seadistustele.",
|
||||||
"empty_column.notifications": "Ei ole veel teateid. Kui keegi suhtleb sinuga, näed seda siin.",
|
"empty_column.notifications": "Ei ole veel teateid. Kui keegi suhtleb sinuga, näed seda siin.",
|
||||||
"empty_column.public": "Siin pole midagi! Kirjuta midagi avalikku või jälgi ise kasutajaid täitmaks seda ruumi",
|
"empty_column.public": "Siin pole midagi! Kirjuta midagi avalikku või jälgi ise kasutajaid täitmaks seda ruumi",
|
||||||
|
"error.no_hashtag_feed_access": "Selle teemaviite jälgimiseks liitu teenusega või logi sisse oma kasutajakontoga.",
|
||||||
"error.unexpected_crash.explanation": "Meie poolse probleemi või veebilehitseja ühilduvusprobleemi tõttu ei suutnud me seda lehekülge korrektselt näidata.",
|
"error.unexpected_crash.explanation": "Meie poolse probleemi või veebilehitseja ühilduvusprobleemi tõttu ei suutnud me seda lehekülge korrektselt näidata.",
|
||||||
"error.unexpected_crash.explanation_addons": "Seda lehte ei suudetud õigesti kuvada. Selle vea põhjustas arvatavasti mõni lehitseja lisand või automaattõlke tööriist.",
|
"error.unexpected_crash.explanation_addons": "Seda lehte ei suudetud õigesti kuvada. Selle vea põhjustas arvatavasti mõni lehitseja lisand või automaattõlke tööriist.",
|
||||||
"error.unexpected_crash.next_steps": "Proovi lehekülge uuesti avada. Kui see ei aita, võib proovida kasutada Mastodoni mõne muu veebilehitseja või äpi kaudu.",
|
"error.unexpected_crash.next_steps": "Proovi lehekülge uuesti avada. Kui see ei aita, võib proovida kasutada Mastodoni mõne muu veebilehitseja või äpi kaudu.",
|
||||||
|
|
@ -367,7 +368,7 @@
|
||||||
"explore.title": "Populaarsust koguv",
|
"explore.title": "Populaarsust koguv",
|
||||||
"explore.trending_links": "Uudised",
|
"explore.trending_links": "Uudised",
|
||||||
"explore.trending_statuses": "Postitused",
|
"explore.trending_statuses": "Postitused",
|
||||||
"explore.trending_tags": "Sildid",
|
"explore.trending_tags": "Teemaviited",
|
||||||
"featured_carousel.current": "<sr>Postitus</sr> {current, number} / {max, number}",
|
"featured_carousel.current": "<sr>Postitus</sr> {current, number} / {max, number}",
|
||||||
"featured_carousel.header": "{count, plural, one {Esiletõstetud postitus} other {Esiletõstetud postitust}}",
|
"featured_carousel.header": "{count, plural, one {Esiletõstetud postitus} other {Esiletõstetud postitust}}",
|
||||||
"featured_carousel.slide": "Postitus {current, number} / {max, number}",
|
"featured_carousel.slide": "Postitus {current, number} / {max, number}",
|
||||||
|
|
@ -411,7 +412,7 @@
|
||||||
"follow_suggestions.similar_to_recently_followed_longer": "Sarnane profiilile, mida hiljuti jälgima hakkasid",
|
"follow_suggestions.similar_to_recently_followed_longer": "Sarnane profiilile, mida hiljuti jälgima hakkasid",
|
||||||
"follow_suggestions.view_all": "Vaata kõiki",
|
"follow_suggestions.view_all": "Vaata kõiki",
|
||||||
"follow_suggestions.who_to_follow": "Keda jälgida",
|
"follow_suggestions.who_to_follow": "Keda jälgida",
|
||||||
"followed_tags": "Jälgitavad märksõnad",
|
"followed_tags": "Jälgitavad teemaviited",
|
||||||
"footer.about": "Teave",
|
"footer.about": "Teave",
|
||||||
"footer.about_this_server": "Serveri teave",
|
"footer.about_this_server": "Serveri teave",
|
||||||
"footer.directory": "Profiilikataloog",
|
"footer.directory": "Profiilikataloog",
|
||||||
|
|
@ -424,17 +425,17 @@
|
||||||
"generic.saved": "Salvestatud",
|
"generic.saved": "Salvestatud",
|
||||||
"getting_started.heading": "Alustamine",
|
"getting_started.heading": "Alustamine",
|
||||||
"hashtag.admin_moderation": "Ava modereerimisliides #{name} jaoks",
|
"hashtag.admin_moderation": "Ava modereerimisliides #{name} jaoks",
|
||||||
"hashtag.browse": "Sirvi #{hashtag} sildiga postitusi",
|
"hashtag.browse": "Sirvi #{hashtag} teemaviitega postitusi",
|
||||||
"hashtag.browse_from_account": "Sirvi @{name} kasutaja #{hashtag} sildiga postitusi",
|
"hashtag.browse_from_account": "Sirvi @{name} kasutaja #{hashtag} teemaviitega postitusi",
|
||||||
"hashtag.column_header.tag_mode.all": "ja {additional}",
|
"hashtag.column_header.tag_mode.all": "ja {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "või {additional}",
|
"hashtag.column_header.tag_mode.any": "või teemaviide {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "ilma {additional}",
|
"hashtag.column_header.tag_mode.none": "ilma teemaviiteta {additional}",
|
||||||
"hashtag.column_settings.select.no_options_message": "Soovitusi ei leitud",
|
"hashtag.column_settings.select.no_options_message": "Soovitusi ei leitud",
|
||||||
"hashtag.column_settings.select.placeholder": "Sisesta sildid…",
|
"hashtag.column_settings.select.placeholder": "Sisesta sildid…",
|
||||||
"hashtag.column_settings.tag_mode.all": "Kõik need",
|
"hashtag.column_settings.tag_mode.all": "Kõik need",
|
||||||
"hashtag.column_settings.tag_mode.any": "Mõni neist",
|
"hashtag.column_settings.tag_mode.any": "Mõni neist",
|
||||||
"hashtag.column_settings.tag_mode.none": "Mitte ükski neist",
|
"hashtag.column_settings.tag_mode.none": "Mitte ükski neist",
|
||||||
"hashtag.column_settings.tag_toggle": "Kaasa lisamärked selle tulba jaoks",
|
"hashtag.column_settings.tag_toggle": "Kaasa lisasildid selle veeru jaoks",
|
||||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} osalejaga} other {{counter} osalejaga}}",
|
"hashtag.counter_by_accounts": "{count, plural, one {{counter} osalejaga} other {{counter} osalejaga}}",
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} postitusega} other {{counter} postitusega}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} postitusega} other {{counter} postitusega}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} postitust} other {{counter} postitust}} täna",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} postitust} other {{counter} postitust}} täna",
|
||||||
|
|
@ -580,7 +581,7 @@
|
||||||
"navigation_bar.favourites": "Lemmikud",
|
"navigation_bar.favourites": "Lemmikud",
|
||||||
"navigation_bar.filters": "Summutatud sõnad",
|
"navigation_bar.filters": "Summutatud sõnad",
|
||||||
"navigation_bar.follow_requests": "Jälgimistaotlused",
|
"navigation_bar.follow_requests": "Jälgimistaotlused",
|
||||||
"navigation_bar.followed_tags": "Jälgitavad märksõnad",
|
"navigation_bar.followed_tags": "Jälgitavad teemaviited",
|
||||||
"navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
|
"navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
|
||||||
"navigation_bar.import_export": "Import ja eksport",
|
"navigation_bar.import_export": "Import ja eksport",
|
||||||
"navigation_bar.lists": "Loetelud",
|
"navigation_bar.lists": "Loetelud",
|
||||||
|
|
@ -730,7 +731,7 @@
|
||||||
"onboarding.profile.display_name": "Näidatav nimi",
|
"onboarding.profile.display_name": "Näidatav nimi",
|
||||||
"onboarding.profile.display_name_hint": "Su täisnimi või naljanimi…",
|
"onboarding.profile.display_name_hint": "Su täisnimi või naljanimi…",
|
||||||
"onboarding.profile.note": "Elulugu",
|
"onboarding.profile.note": "Elulugu",
|
||||||
"onboarding.profile.note_hint": "Saad @mainida teisi kasutajaid või #sildistada…",
|
"onboarding.profile.note_hint": "Saad @mainida teisi kasutajaid või lisada #teemaviidet…",
|
||||||
"onboarding.profile.save_and_continue": "Salvesta ja jätka",
|
"onboarding.profile.save_and_continue": "Salvesta ja jätka",
|
||||||
"onboarding.profile.title": "Profiili seadistamine",
|
"onboarding.profile.title": "Profiili seadistamine",
|
||||||
"onboarding.profile.upload_avatar": "Laadi üles profiilipilt",
|
"onboarding.profile.upload_avatar": "Laadi üles profiilipilt",
|
||||||
|
|
@ -758,7 +759,7 @@
|
||||||
"privacy.quote.anyone": "{visibility}, kõik võivad tsiteerida",
|
"privacy.quote.anyone": "{visibility}, kõik võivad tsiteerida",
|
||||||
"privacy.quote.disabled": "{visibility}, tsiteerimine pole lubatud",
|
"privacy.quote.disabled": "{visibility}, tsiteerimine pole lubatud",
|
||||||
"privacy.quote.limited": "{visibility}, tsiteerimine on piiratud",
|
"privacy.quote.limited": "{visibility}, tsiteerimine on piiratud",
|
||||||
"privacy.unlisted.additional": "See on olemuselt küll avalik, aga postitus ei ilmu voogudes ega märksõnades, lehitsedes ega Mastodoni otsingus, isegi kui konto on seadistustes avalik.",
|
"privacy.unlisted.additional": "See on olemuselt küll avalik, aga postitus ei ilmu voogudes ega teemaviidetes, lehitsedes ega Mastodoni otsingus, isegi kui konto on seadistustes avalik.",
|
||||||
"privacy.unlisted.long": "Peidetud Mastodoni otsingutulemustest, pupulaarsust koguva sisu voost ja avalikult ajajoonelt",
|
"privacy.unlisted.long": "Peidetud Mastodoni otsingutulemustest, pupulaarsust koguva sisu voost ja avalikult ajajoonelt",
|
||||||
"privacy.unlisted.short": "Vaikselt avalik",
|
"privacy.unlisted.short": "Vaikselt avalik",
|
||||||
"privacy_policy.last_updated": "Viimati uuendatud {date}",
|
"privacy_policy.last_updated": "Viimati uuendatud {date}",
|
||||||
|
|
@ -845,7 +846,7 @@
|
||||||
"search.placeholder": "Otsi",
|
"search.placeholder": "Otsi",
|
||||||
"search.quick_action.account_search": "Sobivaid profiile {x}",
|
"search.quick_action.account_search": "Sobivaid profiile {x}",
|
||||||
"search.quick_action.go_to_account": "Mine profiili {x}",
|
"search.quick_action.go_to_account": "Mine profiili {x}",
|
||||||
"search.quick_action.go_to_hashtag": "Ava silt {x}",
|
"search.quick_action.go_to_hashtag": "Ava teemaviide {x}",
|
||||||
"search.quick_action.open_url": "Ava URL Mastodonis",
|
"search.quick_action.open_url": "Ava URL Mastodonis",
|
||||||
"search.quick_action.status_search": "Sobivad postitused {x}",
|
"search.quick_action.status_search": "Sobivad postitused {x}",
|
||||||
"search.search_or_paste": "Otsi või kleebi URL",
|
"search.search_or_paste": "Otsi või kleebi URL",
|
||||||
|
|
@ -861,7 +862,7 @@
|
||||||
"search_results.all": "Kõik",
|
"search_results.all": "Kõik",
|
||||||
"search_results.hashtags": "Sildid",
|
"search_results.hashtags": "Sildid",
|
||||||
"search_results.no_results": "Tulemusi pole.",
|
"search_results.no_results": "Tulemusi pole.",
|
||||||
"search_results.no_search_yet": "Proovi otsida postitusi, profiile või silte.",
|
"search_results.no_search_yet": "Proovi otsida postitusi, profiile või teemaviiteid.",
|
||||||
"search_results.see_all": "Vaata kõiki",
|
"search_results.see_all": "Vaata kõiki",
|
||||||
"search_results.statuses": "Postitused",
|
"search_results.statuses": "Postitused",
|
||||||
"search_results.title": "Otsi märksõna: {q}",
|
"search_results.title": "Otsi märksõna: {q}",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Olet ajan tasalla! Täällä ei ole mitään uutta kerrottavaa. Kun saat uusia ilmoituksia, ne näkyvät täällä asetustesi mukaisesti.",
|
"empty_column.notification_requests": "Olet ajan tasalla! Täällä ei ole mitään uutta kerrottavaa. Kun saat uusia ilmoituksia, ne näkyvät täällä asetustesi mukaisesti.",
|
||||||
"empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun muut ovat vuorovaikutuksessa kanssasi, näet sen täällä.",
|
"empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun muut ovat vuorovaikutuksessa kanssasi, näet sen täällä.",
|
||||||
"empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai seuraa muiden palvelinten käyttäjiä, niin saat sisältöä",
|
"empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai seuraa muiden palvelinten käyttäjiä, niin saat sisältöä",
|
||||||
|
"error.no_hashtag_feed_access": "Liity tai kirjaudu sisään, niin voit tarkastella ja seurata tätä aihetunnistetta.",
|
||||||
"error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.",
|
"error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.",
|
||||||
"error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
|
"error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
|
||||||
"error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttö ehkä onnistua eri selaimella tai natiivisovelluksella.",
|
"error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttö ehkä onnistua eri selaimella tai natiivisovelluksella.",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Mga pinatimping server",
|
"about.blocks": "Mga pinatimping server",
|
||||||
"about.contact": "Kontak:",
|
"about.contact": "Kontak:",
|
||||||
|
"about.default_locale": "Default",
|
||||||
"about.disclaimer": "Ang Mastodon ay software na malaya at bukas-na-pinagmulan, at isang tatak-pangkalakal ng Mastodon gGmbH.",
|
"about.disclaimer": "Ang Mastodon ay software na malaya at bukas-na-pinagmulan, at isang tatak-pangkalakal ng Mastodon gGmbH.",
|
||||||
"about.domain_blocks.no_reason_available": "Hindi makuha ang dahilan",
|
"about.domain_blocks.no_reason_available": "Hindi makuha ang dahilan",
|
||||||
"about.domain_blocks.preamble": "Sa kadalasan, hinahayaan ka ng Mastodon na makita ang mga content sa, at makipag-interact sa users ng, ibang servers sa fediverse. Narito ang exceptions na ginawa sa partikular na server na ito.",
|
"about.domain_blocks.preamble": "Sa kadalasan, hinahayaan ka ng Mastodon na makita ang mga content sa, at makipag-interact sa users ng, ibang servers sa fediverse. Narito ang exceptions na ginawa sa partikular na server na ito.",
|
||||||
|
|
@ -8,6 +9,7 @@
|
||||||
"about.domain_blocks.silenced.title": "Limitado",
|
"about.domain_blocks.silenced.title": "Limitado",
|
||||||
"about.domain_blocks.suspended.explanation": "Walang data mula sa server na ito ang mapoproseso, maiimbak o maipagpapaplitan. Sa gayon. imposibleng magawa ang interaksiyon o komunikasyon sa ibang users sa server na ito.",
|
"about.domain_blocks.suspended.explanation": "Walang data mula sa server na ito ang mapoproseso, maiimbak o maipagpapaplitan. Sa gayon. imposibleng magawa ang interaksiyon o komunikasyon sa ibang users sa server na ito.",
|
||||||
"about.domain_blocks.suspended.title": "Suspendido",
|
"about.domain_blocks.suspended.title": "Suspendido",
|
||||||
|
"about.language_label": "Wika",
|
||||||
"about.not_available": "Hindi available ang impormasyong ito.",
|
"about.not_available": "Hindi available ang impormasyong ito.",
|
||||||
"about.powered_by": "Decentralisadong social media na pinapagana ng {mastodon}",
|
"about.powered_by": "Decentralisadong social media na pinapagana ng {mastodon}",
|
||||||
"about.rules": "Mga alituntunin ng server",
|
"about.rules": "Mga alituntunin ng server",
|
||||||
|
|
@ -19,21 +21,31 @@
|
||||||
"account.block_domain": "Hadlangan ang domain na {domain}",
|
"account.block_domain": "Hadlangan ang domain na {domain}",
|
||||||
"account.block_short": "Hadlangan",
|
"account.block_short": "Hadlangan",
|
||||||
"account.blocked": "Hinadlangan",
|
"account.blocked": "Hinadlangan",
|
||||||
|
"account.blocking": "Pagharang",
|
||||||
"account.cancel_follow_request": "I-kansela ang pagsunod",
|
"account.cancel_follow_request": "I-kansela ang pagsunod",
|
||||||
"account.copy": "I-sipi ang kawing sa profile",
|
"account.copy": "I-sipi ang kawing sa profile",
|
||||||
"account.direct": "Palihim banggitin si @{name}",
|
"account.direct": "Palihim banggitin si @{name}",
|
||||||
"account.disable_notifications": "I-tigil ang pagpapaalam sa akin tuwing nagpopost si @{name}",
|
"account.disable_notifications": "I-tigil ang pagpapaalam sa akin tuwing nagpopost si @{name}",
|
||||||
|
"account.domain_blocking": "Pag-block ng domain",
|
||||||
"account.edit_profile": "Baguhin ang profile",
|
"account.edit_profile": "Baguhin ang profile",
|
||||||
|
"account.edit_profile_short": "I-edit",
|
||||||
"account.enable_notifications": "Ipaalam sa akin kapag nag-post si @{name}",
|
"account.enable_notifications": "Ipaalam sa akin kapag nag-post si @{name}",
|
||||||
"account.endorse": "I-tampok sa profile",
|
"account.endorse": "I-tampok sa profile",
|
||||||
"account.familiar_followers_many": "Sinusundan nina {name1}, {name2}, at {othersCount, plural, one {# iba pa na kilala mo} other {# na iba pa na kilala mo}}",
|
"account.familiar_followers_many": "Sinusundan nina {name1}, {name2}, at {othersCount, plural, one {# iba pa na kilala mo} other {# na iba pa na kilala mo}}",
|
||||||
"account.familiar_followers_one": "Sinusindan ni/ng {name1}",
|
"account.familiar_followers_one": "Sinusindan ni/ng {name1}",
|
||||||
"account.familiar_followers_two": "Sinusindan nina {name1} at {name2}",
|
"account.familiar_followers_two": "Sinusindan nina {name1} at {name2}",
|
||||||
"account.featured": "Itinatampok",
|
"account.featured": "Itinatampok",
|
||||||
|
"account.featured.accounts": "Mga Profile",
|
||||||
|
"account.featured.hashtags": "Mga Hashtag",
|
||||||
"account.featured_tags.last_status_at": "Huling post noong {date}",
|
"account.featured_tags.last_status_at": "Huling post noong {date}",
|
||||||
"account.featured_tags.last_status_never": "Walang mga post",
|
"account.featured_tags.last_status_never": "Walang mga post",
|
||||||
"account.follow": "Sundan",
|
"account.follow": "Sundan",
|
||||||
"account.follow_back": "Sundan pabalik",
|
"account.follow_back": "Sundan pabalik",
|
||||||
|
"account.follow_back_short": "I-follow back",
|
||||||
|
"account.follow_request": "Humiling na mag-follow",
|
||||||
|
"account.follow_request_cancel": "I-cancel ang request",
|
||||||
|
"account.follow_request_cancel_short": "Cancel",
|
||||||
|
"account.follow_request_short": "Request",
|
||||||
"account.followers": "Mga tagasunod",
|
"account.followers": "Mga tagasunod",
|
||||||
"account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
|
"account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} tagasunod} other {{counter} tagasunod}}",
|
"account.followers_counter": "{count, plural, one {{counter} tagasunod} other {{counter} tagasunod}}",
|
||||||
|
|
@ -56,15 +68,29 @@
|
||||||
"account.mute_notifications_short": "I-mute ang mga abiso",
|
"account.mute_notifications_short": "I-mute ang mga abiso",
|
||||||
"account.mute_short": "I-mute",
|
"account.mute_short": "I-mute",
|
||||||
"account.muted": "Naka-mute",
|
"account.muted": "Naka-mute",
|
||||||
|
"account.muting": "Pag-mute",
|
||||||
|
"account.mutual": "Pina-follow nyo ang isa't-isa",
|
||||||
"account.no_bio": "Walang nakalaan na paglalarawan.",
|
"account.no_bio": "Walang nakalaan na paglalarawan.",
|
||||||
"account.open_original_page": "Buksan ang pinagmulang pahina",
|
"account.open_original_page": "Buksan ang pinagmulang pahina",
|
||||||
"account.posts": "Mga post",
|
"account.posts": "Mga post",
|
||||||
|
"account.posts_with_replies": "Mga Post at Reply",
|
||||||
|
"account.remove_from_followers": "Alisin si {name} sa mga follower",
|
||||||
"account.report": "I-ulat si/ang @{name}",
|
"account.report": "I-ulat si/ang @{name}",
|
||||||
"account.requested_follow": "Hinihiling ni {name} na sundan ka",
|
"account.requested_follow": "Hinihiling ni {name} na sundan ka",
|
||||||
|
"account.requests_to_follow_you": "Mga Request para i-fillow ka",
|
||||||
"account.share": "Ibahagi ang profile ni @{name}",
|
"account.share": "Ibahagi ang profile ni @{name}",
|
||||||
"account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
|
"account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
|
||||||
|
"account.statuses_counter": "{count,plural,one {{counter} i-post} other {{counter} mga post}}",
|
||||||
|
"account.unblock": "I-unblock si @{name}",
|
||||||
|
"account.unblock_domain": "I-unblock ang domain {domain}",
|
||||||
|
"account.unblock_domain_short": "I-unblock",
|
||||||
|
"account.unblock_short": "I-unblock",
|
||||||
"account.unendorse": "Huwag itampok sa profile",
|
"account.unendorse": "Huwag itampok sa profile",
|
||||||
"account.unfollow": "Huwag nang sundan",
|
"account.unfollow": "Huwag nang sundan",
|
||||||
|
"account.unmute": "I-unmute si @{name}",
|
||||||
|
"account.unmute_notifications_short": "I-unmute ang mga notification",
|
||||||
|
"account.unmute_short": "I-unmute",
|
||||||
|
"account_note.placeholder": "I-click para magdagdag ng note",
|
||||||
"admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
|
"admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
|
||||||
"alert.rate_limited.message": "Mangyaring subukan muli pagkatapos ng {retry_time, time, medium}.",
|
"alert.rate_limited.message": "Mangyaring subukan muli pagkatapos ng {retry_time, time, medium}.",
|
||||||
"audio.hide": "Itago ang tunog",
|
"audio.hide": "Itago ang tunog",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Gach soiléir! Níl aon rud anseo. Nuair a gheobhaidh tú fógraí nua, beidh siad le feiceáil anseo de réir do shocruithe.",
|
"empty_column.notification_requests": "Gach soiléir! Níl aon rud anseo. Nuair a gheobhaidh tú fógraí nua, beidh siad le feiceáil anseo de réir do shocruithe.",
|
||||||
"empty_column.notifications": "Níl aon fógraí agat fós. Nuair a dhéanann daoine eile idirghníomhú leat, feicfear anseo é.",
|
"empty_column.notifications": "Níl aon fógraí agat fós. Nuair a dhéanann daoine eile idirghníomhú leat, feicfear anseo é.",
|
||||||
"empty_column.public": "Faic anseo! Scríobh rud éigin go poiblí, nó lean úsáideoirí ar fhreastalaithe eile chun é a líonadh",
|
"empty_column.public": "Faic anseo! Scríobh rud éigin go poiblí, nó lean úsáideoirí ar fhreastalaithe eile chun é a líonadh",
|
||||||
|
"error.no_hashtag_feed_access": "Bí linn nó logáil isteach chun an haischlib seo a fheiceáil agus a leanúint.",
|
||||||
"error.unexpected_crash.explanation": "De bharr fabht inár gcód, nó fadhb le chomhoiriúnacht brabhsálaí, níorbh fhéadfadh an leathanach seo a léiriú i gceart.",
|
"error.unexpected_crash.explanation": "De bharr fabht inár gcód, nó fadhb le chomhoiriúnacht brabhsálaí, níorbh fhéadfadh an leathanach seo a léiriú i gceart.",
|
||||||
"error.unexpected_crash.explanation_addons": "Ní taispeántar an leathanach seo mar is ceart. Is dócha go gcruthaíonn breiseán brabhsálaí nó uirlisí uathaistriúcháin an fhadhb seo.",
|
"error.unexpected_crash.explanation_addons": "Ní taispeántar an leathanach seo mar is ceart. Is dócha go gcruthaíonn breiseán brabhsálaí nó uirlisí uathaistriúcháin an fhadhb seo.",
|
||||||
"error.unexpected_crash.next_steps": "Bain triail as an leathanach a athnuachan. Mura gcabhraíonn sé sin, seans go mbeidh tú fós in ann Mastodon a úsáid trí bhrabhsálaí nó aip dhúchais eile.",
|
"error.unexpected_crash.next_steps": "Bain triail as an leathanach a athnuachan. Mura gcabhraíonn sé sin, seans go mbeidh tú fós in ann Mastodon a úsáid trí bhrabhsálaí nó aip dhúchais eile.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificacións aparecerán aquí seguindo o criterio dos teus axustes.",
|
"empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificacións aparecerán aquí seguindo o criterio dos teus axustes.",
|
||||||
"empty_column.notifications": "Aínda non tes notificacións. Aparecerán cando outras persoas interactúen contigo.",
|
"empty_column.notifications": "Aínda non tes notificacións. Aparecerán cando outras persoas interactúen contigo.",
|
||||||
"empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo",
|
"empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo",
|
||||||
|
"error.no_hashtag_feed_access": "Crea unha conta ou accede para ver e seguir este cancelo.",
|
||||||
"error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.",
|
"error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.",
|
||||||
"error.unexpected_crash.explanation_addons": "Non se puido mostrar correctamente a páxina. Habitualmente este erro está causado por algún engadido do navegador ou ferramentas de tradución automática.",
|
"error.unexpected_crash.explanation_addons": "Non se puido mostrar correctamente a páxina. Habitualmente este erro está causado por algún engadido do navegador ou ferramentas de tradución automática.",
|
||||||
"error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se isto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.",
|
"error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se isto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "בום! אין פה כלום. כשיווצרו עוד התראות, הן יופיעו כאן על בסיס ההעדפות שלך.",
|
"empty_column.notification_requests": "בום! אין פה כלום. כשיווצרו עוד התראות, הן יופיעו כאן על בסיס ההעדפות שלך.",
|
||||||
"empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.",
|
"empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.",
|
||||||
"empty_column.public": "אין פה כלום! כדי למלא את הטור הזה אפשר לכתוב משהו, או להתחיל לעקוב אחרי אנשים מקהילות אחרות",
|
"empty_column.public": "אין פה כלום! כדי למלא את הטור הזה אפשר לכתוב משהו, או להתחיל לעקוב אחרי אנשים מקהילות אחרות",
|
||||||
|
"error.no_hashtag_feed_access": "הצטרפו או התחברו כדי לעקוב אחרי תגית זו.",
|
||||||
"error.unexpected_crash.explanation": "עקב תקלה בקוד שלנו או בעיית תאימות דפדפן, לא ניתן להציג דף זה כראוי.",
|
"error.unexpected_crash.explanation": "עקב תקלה בקוד שלנו או בעיית תאימות דפדפן, לא ניתן להציג דף זה כראוי.",
|
||||||
"error.unexpected_crash.explanation_addons": "לא ניתן להציג דף זה כראוי. הבעיה נגרמת כנראה עקב תוסף דפדפן או כלי תרגום אוטומטי.",
|
"error.unexpected_crash.explanation_addons": "לא ניתן להציג דף זה כראוי. הבעיה נגרמת כנראה עקב תוסף דפדפן או כלי תרגום אוטומטי.",
|
||||||
"error.unexpected_crash.next_steps": "נסה/י לרענן את הדף. אם זה לא עוזר, אולי אפשר עדיין להשתמש במסטודון דרך דפדפן אחר או באמצעות אפליקציה ילידית.",
|
"error.unexpected_crash.next_steps": "נסה/י לרענן את הדף. אם זה לא עוזר, אולי אפשר עדיין להשתמש במסטודון דרך דפדפן אחר או באמצעות אפליקציה ילידית.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Minden tiszta! Itt nincs semmi. Ha új értesítéseket kapsz, azok itt jelennek meg a beállításoknak megfelelően.",
|
"empty_column.notification_requests": "Minden tiszta! Itt nincs semmi. Ha új értesítéseket kapsz, azok itt jelennek meg a beállításoknak megfelelően.",
|
||||||
"empty_column.notifications": "Jelenleg még nincsenek értesítéseid. Ha mások kapcsolatba lépnek veled, ezek itt lesznek láthatóak.",
|
"empty_column.notifications": "Jelenleg még nincsenek értesítéseid. Ha mások kapcsolatba lépnek veled, ezek itt lesznek láthatóak.",
|
||||||
"empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más kiszolgálón levő felhasználókat, hogy megtöltsd.",
|
"empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más kiszolgálón levő felhasználókat, hogy megtöltsd.",
|
||||||
|
"error.no_hashtag_feed_access": "Csatlakozz vagy jelentkezz be, hogy megtekintsd és kövesd ezt a hashtaget.",
|
||||||
"error.unexpected_crash.explanation": "Egy kód- vagy böngészőkompatibilitási hiba miatt ez az oldal nem jeleníthető meg helyesen.",
|
"error.unexpected_crash.explanation": "Egy kód- vagy böngészőkompatibilitási hiba miatt ez az oldal nem jeleníthető meg helyesen.",
|
||||||
"error.unexpected_crash.explanation_addons": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző kiegészítő vagy egy automatikus fordító okozza.",
|
"error.unexpected_crash.explanation_addons": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző kiegészítő vagy egy automatikus fordító okozza.",
|
||||||
"error.unexpected_crash.next_steps": "Próbáld frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.",
|
"error.unexpected_crash.next_steps": "Próbáld frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Allt hreint! Það er ekkert hér. Þegar þú færð nýjar tilkynningar, munu þær birtast hér í samræmi við stillingarnar þínar.",
|
"empty_column.notification_requests": "Allt hreint! Það er ekkert hér. Þegar þú færð nýjar tilkynningar, munu þær birtast hér í samræmi við stillingarnar þínar.",
|
||||||
"empty_column.notifications": "Þú ert ekki ennþá með neinar tilkynningar. Vertu í samskiptum við aðra til að umræður fari af stað.",
|
"empty_column.notifications": "Þú ert ekki ennþá með neinar tilkynningar. Vertu í samskiptum við aðra til að umræður fari af stað.",
|
||||||
"empty_column.public": "Það er ekkert hér! Skrifaðu eitthvað opinberlega, eða fylgstu með notendum á öðrum netþjónum til að fylla upp í þetta",
|
"empty_column.public": "Það er ekkert hér! Skrifaðu eitthvað opinberlega, eða fylgstu með notendum á öðrum netþjónum til að fylla upp í þetta",
|
||||||
|
"error.no_hashtag_feed_access": "Skráðu þig inn eða stofnaðu aðgang til að skoða og fylgjast með þessu myllumerki.",
|
||||||
"error.unexpected_crash.explanation": "Vegna villu í kóðanum okkar eða samhæfnivandamála í vafra er ekki hægt að birta þessa síðu svo vel sé.",
|
"error.unexpected_crash.explanation": "Vegna villu í kóðanum okkar eða samhæfnivandamála í vafra er ekki hægt að birta þessa síðu svo vel sé.",
|
||||||
"error.unexpected_crash.explanation_addons": "Ekki er hægt að birta þessa síðu rétt. Þetta er líklega af völdum forritsviðbótar í vafranum eða sjálfvirkra þýðainaverkfæra.",
|
"error.unexpected_crash.explanation_addons": "Ekki er hægt að birta þessa síðu rétt. Þetta er líklega af völdum forritsviðbótar í vafranum eða sjálfvirkra þýðainaverkfæra.",
|
||||||
"error.unexpected_crash.next_steps": "Prófaðu að endurlesa síðuna. Ef það hjálpar ekki til, má samt vera að þú getir notað Mastodon í gegnum annan vafra eða forrit.",
|
"error.unexpected_crash.next_steps": "Prófaðu að endurlesa síðuna. Ef það hjálpar ekki til, má samt vera að þú getir notað Mastodon í gegnum annan vafra eða forrit.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Tutto chiaro! Non c'è niente qui. Quando ricevi nuove notifiche, verranno visualizzate qui in base alle tue impostazioni.",
|
"empty_column.notification_requests": "Tutto chiaro! Non c'è niente qui. Quando ricevi nuove notifiche, verranno visualizzate qui in base alle tue impostazioni.",
|
||||||
"empty_column.notifications": "Non hai ancora nessuna notifica. Quando altre persone interagiranno con te, le vedrai qui.",
|
"empty_column.notifications": "Non hai ancora nessuna notifica. Quando altre persone interagiranno con te, le vedrai qui.",
|
||||||
"empty_column.public": "Non c'è nulla qui! Scrivi qualcosa pubblicamente o segui manualmente gli utenti dagli altri server per riempire questo spazio",
|
"empty_column.public": "Non c'è nulla qui! Scrivi qualcosa pubblicamente o segui manualmente gli utenti dagli altri server per riempire questo spazio",
|
||||||
|
"error.no_hashtag_feed_access": "Iscriviti o accedi per visualizzare e seguire questo hashtag.",
|
||||||
"error.unexpected_crash.explanation": "A causa di un bug nel nostro codice o di un problema di compatibilità del browser, non è stato possibile visualizzare correttamente questa pagina.",
|
"error.unexpected_crash.explanation": "A causa di un bug nel nostro codice o di un problema di compatibilità del browser, non è stato possibile visualizzare correttamente questa pagina.",
|
||||||
"error.unexpected_crash.explanation_addons": "Impossibile mostrare correttamente questa pagina. Questo errore è probabilmente causato da un addon del browser o da strumenti di traduzione automatica.",
|
"error.unexpected_crash.explanation_addons": "Impossibile mostrare correttamente questa pagina. Questo errore è probabilmente causato da un addon del browser o da strumenti di traduzione automatica.",
|
||||||
"error.unexpected_crash.next_steps": "Prova a ricaricare la pagina. Se non aiuta, potresti comunque utilizzare Mastodon tramite un browser differente o un'app nativa.",
|
"error.unexpected_crash.next_steps": "Prova a ricaricare la pagina. Se non aiuta, potresti comunque utilizzare Mastodon tramite un browser differente o un'app nativa.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui de acordo com suas configurações.",
|
"empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui de acordo com suas configurações.",
|
||||||
"empty_column.notifications": "Interaja com outros usuários para começar a conversar.",
|
"empty_column.notifications": "Interaja com outros usuários para começar a conversar.",
|
||||||
"empty_column.public": "Publique algo ou siga manualmente usuários de outros servidores",
|
"empty_column.public": "Publique algo ou siga manualmente usuários de outros servidores",
|
||||||
|
"error.no_hashtag_feed_access": "Se cadastre ou faça login para ver e seguir esta hashtag.",
|
||||||
"error.unexpected_crash.explanation": "Esta página não pôde ser mostrada corretamente. Este erro provavelmente é devido a um bug em nosso código ou um problema de compatibilidade de navegador.",
|
"error.unexpected_crash.explanation": "Esta página não pôde ser mostrada corretamente. Este erro provavelmente é devido a um bug em nosso código ou um problema de compatibilidade de navegador.",
|
||||||
"error.unexpected_crash.explanation_addons": "Esta página não pôde ser mostrada corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
|
"error.unexpected_crash.explanation_addons": "Esta página não pôde ser mostrada corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
|
||||||
"error.unexpected_crash.next_steps": "Tente atualizar a página. Se isso não ajudar, você ainda poderá usar o Mastodon por meio de um navegador diferente ou de um aplicativo nativo.",
|
"error.unexpected_crash.next_steps": "Tente atualizar a página. Se isso não ajudar, você ainda poderá usar o Mastodon por meio de um navegador diferente ou de um aplicativo nativo.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando receberes novas notificações, elas aparecerão aqui conforme as tuas configurações.",
|
"empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando receberes novas notificações, elas aparecerão aqui conforme as tuas configurações.",
|
||||||
"empty_column.notifications": "Ainda não tens quaisquer notificações. Quando outras pessoas interagirem contigo, verás isso aqui.",
|
"empty_column.notifications": "Ainda não tens quaisquer notificações. Quando outras pessoas interagirem contigo, verás isso aqui.",
|
||||||
"empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para veres aqui os conteúdos públicos",
|
"empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para veres aqui os conteúdos públicos",
|
||||||
|
"error.no_hashtag_feed_access": "Inscreva-se ou inicie sessão para ver e seguir esta etiqueta.",
|
||||||
"error.unexpected_crash.explanation": "Devido a um erro no nosso código ou a um problema de compatibilidade do navegador, esta página não pode ser apresentada corretamente.",
|
"error.unexpected_crash.explanation": "Devido a um erro no nosso código ou a um problema de compatibilidade do navegador, esta página não pode ser apresentada corretamente.",
|
||||||
"error.unexpected_crash.explanation_addons": "Esta página não pode ser mostrada corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
|
"error.unexpected_crash.explanation_addons": "Esta página não pode ser mostrada corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
|
||||||
"error.unexpected_crash.next_steps": "Tenta atualizar a página. Se isso não ajudar, podes usar o Mastodon através de um navegador diferente ou uma aplicação nativa.",
|
"error.unexpected_crash.next_steps": "Tenta atualizar a página. Se isso não ajudar, podes usar o Mastodon através de um navegador diferente ou uma aplicação nativa.",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Moderirani strežniki",
|
"about.blocks": "Moderirani strežniki",
|
||||||
"about.contact": "Stik:",
|
"about.contact": "Stik:",
|
||||||
|
"about.default_locale": "Privzeto",
|
||||||
"about.disclaimer": "Mastodon je prosto, odprtokodno programje in blagovna znamka podjetja Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon je prosto, odprtokodno programje in blagovna znamka podjetja Mastodon gGmbH.",
|
||||||
"about.domain_blocks.no_reason_available": "Razlog ni na voljo",
|
"about.domain_blocks.no_reason_available": "Razlog ni na voljo",
|
||||||
"about.domain_blocks.preamble": "Mastodon vam na splošno omogoča ogled vsebin in interakcijo z uporabniki z vseh drugih strežnikov v fediverzumu. Tu so navedene izjeme, ki jih postavlja ta strežnik.",
|
"about.domain_blocks.preamble": "Mastodon vam na splošno omogoča ogled vsebin in interakcijo z uporabniki z vseh drugih strežnikov v fediverzumu. Tu so navedene izjeme, ki jih postavlja ta strežnik.",
|
||||||
|
|
@ -8,6 +9,7 @@
|
||||||
"about.domain_blocks.silenced.title": "Omejeno",
|
"about.domain_blocks.silenced.title": "Omejeno",
|
||||||
"about.domain_blocks.suspended.explanation": "Nobeni podatki s tega strežnika ne bodo obdelani, shranjeni ali izmenjani, zaradi česar je nemogoča kakršna koli interakcija ali komunikacija z uporabniki s tega strežnika.",
|
"about.domain_blocks.suspended.explanation": "Nobeni podatki s tega strežnika ne bodo obdelani, shranjeni ali izmenjani, zaradi česar je nemogoča kakršna koli interakcija ali komunikacija z uporabniki s tega strežnika.",
|
||||||
"about.domain_blocks.suspended.title": "Suspendiran",
|
"about.domain_blocks.suspended.title": "Suspendiran",
|
||||||
|
"about.language_label": "Jezik",
|
||||||
"about.not_available": "Ti podatki še niso na voljo na tem strežniku.",
|
"about.not_available": "Ti podatki še niso na voljo na tem strežniku.",
|
||||||
"about.powered_by": "Decentraliziran družabni medij, ki ga poganja {mastodon}",
|
"about.powered_by": "Decentraliziran družabni medij, ki ga poganja {mastodon}",
|
||||||
"about.rules": "Pravila strežnika",
|
"about.rules": "Pravila strežnika",
|
||||||
|
|
@ -24,12 +26,16 @@
|
||||||
"account.direct": "Zasebno omeni @{name}",
|
"account.direct": "Zasebno omeni @{name}",
|
||||||
"account.disable_notifications": "Ne obveščaj me več, ko ima @{name} novo objavo",
|
"account.disable_notifications": "Ne obveščaj me več, ko ima @{name} novo objavo",
|
||||||
"account.edit_profile": "Uredi profil",
|
"account.edit_profile": "Uredi profil",
|
||||||
|
"account.edit_profile_short": "Uredi",
|
||||||
"account.enable_notifications": "Obvesti me, ko ima @{name} novo objavo",
|
"account.enable_notifications": "Obvesti me, ko ima @{name} novo objavo",
|
||||||
"account.endorse": "Izpostavi v profilu",
|
"account.endorse": "Izpostavi v profilu",
|
||||||
|
"account.featured.accounts": "Profili",
|
||||||
|
"account.featured.hashtags": "Ključniki",
|
||||||
"account.featured_tags.last_status_at": "Zadnja objava {date}",
|
"account.featured_tags.last_status_at": "Zadnja objava {date}",
|
||||||
"account.featured_tags.last_status_never": "Ni objav",
|
"account.featured_tags.last_status_never": "Ni objav",
|
||||||
"account.follow": "Sledi",
|
"account.follow": "Sledi",
|
||||||
"account.follow_back": "Sledi nazaj",
|
"account.follow_back": "Sledi nazaj",
|
||||||
|
"account.follow_request_cancel_short": "Prekliči",
|
||||||
"account.followers": "Sledilci",
|
"account.followers": "Sledilci",
|
||||||
"account.followers.empty": "Nihče še ne sledi temu uporabniku.",
|
"account.followers.empty": "Nihče še ne sledi temu uporabniku.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} sledilec} two {{counter} sledilca} few {{counter} sledilci} other {{counter} sledilcev}}",
|
"account.followers_counter": "{count, plural, one {{counter} sledilec} two {{counter} sledilca} few {{counter} sledilci} other {{counter} sledilcev}}",
|
||||||
|
|
@ -214,9 +220,15 @@
|
||||||
"confirmations.missing_alt_text.secondary": "Vseeno objavi",
|
"confirmations.missing_alt_text.secondary": "Vseeno objavi",
|
||||||
"confirmations.missing_alt_text.title": "Dodam nadomestno besedilo?",
|
"confirmations.missing_alt_text.title": "Dodam nadomestno besedilo?",
|
||||||
"confirmations.mute.confirm": "Utišaj",
|
"confirmations.mute.confirm": "Utišaj",
|
||||||
|
"confirmations.quiet_post_quote_info.got_it": "Razumem",
|
||||||
"confirmations.redraft.confirm": "Izbriši in preoblikuj",
|
"confirmations.redraft.confirm": "Izbriši in preoblikuj",
|
||||||
"confirmations.redraft.message": "Ali ste prepričani, da želite izbrisati to objavo in jo preoblikovati? Izkazi priljubljenosti in izpostavitve bodo izgubljeni, odgovori na izvirno objavo pa bodo osiroteli.",
|
"confirmations.redraft.message": "Ali ste prepričani, da želite izbrisati to objavo in jo preoblikovati? Izkazi priljubljenosti in izpostavitve bodo izgubljeni, odgovori na izvirno objavo pa bodo osiroteli.",
|
||||||
"confirmations.redraft.title": "Želite izbrisati in preoblikovati objavo?",
|
"confirmations.redraft.title": "Želite izbrisati in preoblikovati objavo?",
|
||||||
|
"confirmations.remove_from_followers.confirm": "Odstrani sledilca",
|
||||||
|
"confirmations.remove_from_followers.title": "Ali želite odstraniti sledilca?",
|
||||||
|
"confirmations.revoke_quote.confirm": "Odstrani objavo",
|
||||||
|
"confirmations.revoke_quote.message": "Tega dejanja ni možno povrniti.",
|
||||||
|
"confirmations.revoke_quote.title": "Ali želite odstraniti objavo?",
|
||||||
"confirmations.unfollow.confirm": "Ne sledi več",
|
"confirmations.unfollow.confirm": "Ne sledi več",
|
||||||
"content_warning.hide": "Skrij objavo",
|
"content_warning.hide": "Skrij objavo",
|
||||||
"content_warning.show": "Vseeno pokaži",
|
"content_warning.show": "Vseeno pokaži",
|
||||||
|
|
@ -682,6 +694,7 @@
|
||||||
"relative_time.minutes": "{number} m",
|
"relative_time.minutes": "{number} m",
|
||||||
"relative_time.seconds": "{number} s",
|
"relative_time.seconds": "{number} s",
|
||||||
"relative_time.today": "danes",
|
"relative_time.today": "danes",
|
||||||
|
"remove_quote_hint.button_label": "Razumem",
|
||||||
"reply_indicator.attachments": "{count, plural, one {# priloga} two {# prilogi} few {# priloge} other {# prilog}}",
|
"reply_indicator.attachments": "{count, plural, one {# priloga} two {# prilogi} few {# priloge} other {# prilog}}",
|
||||||
"reply_indicator.cancel": "Prekliči",
|
"reply_indicator.cancel": "Prekliči",
|
||||||
"reply_indicator.poll": "Anketa",
|
"reply_indicator.poll": "Anketa",
|
||||||
|
|
@ -735,6 +748,7 @@
|
||||||
"report_notification.categories.violation": "Kršitev pravila",
|
"report_notification.categories.violation": "Kršitev pravila",
|
||||||
"report_notification.categories.violation_sentence": "kršitev pravila",
|
"report_notification.categories.violation_sentence": "kršitev pravila",
|
||||||
"report_notification.open": "Odpri prijavo",
|
"report_notification.open": "Odpri prijavo",
|
||||||
|
"search.clear": "Počisti iskanje",
|
||||||
"search.no_recent_searches": "Ni nedavnih iskanj",
|
"search.no_recent_searches": "Ni nedavnih iskanj",
|
||||||
"search.placeholder": "Iskanje",
|
"search.placeholder": "Iskanje",
|
||||||
"search.quick_action.account_search": "Profili, ki se ujemajo z {x}",
|
"search.quick_action.account_search": "Profili, ki se ujemajo z {x}",
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
"account.disable_notifications": "@{name} li toki la o mu ala e mi",
|
"account.disable_notifications": "@{name} li toki la o mu ala e mi",
|
||||||
"account.domain_blocking": "mi len e ma ni",
|
"account.domain_blocking": "mi len e ma ni",
|
||||||
"account.edit_profile": "o ante e lipu mi",
|
"account.edit_profile": "o ante e lipu mi",
|
||||||
|
"account.edit_profile_short": "o ante",
|
||||||
"account.enable_notifications": "@{name} li toki la o toki e toki ona tawa mi",
|
"account.enable_notifications": "@{name} li toki la o toki e toki ona tawa mi",
|
||||||
"account.endorse": "lipu jan la o suli e ni",
|
"account.endorse": "lipu jan la o suli e ni",
|
||||||
"account.familiar_followers_many": "{name1} en {name2} en {othersCount, plural, other {jan ante #}} li kute e jan ni",
|
"account.familiar_followers_many": "{name1} en {name2} en {othersCount, plural, other {jan ante #}} li kute e jan ni",
|
||||||
|
|
@ -40,6 +41,10 @@
|
||||||
"account.featured_tags.last_status_never": "toki ala li lon",
|
"account.featured_tags.last_status_never": "toki ala li lon",
|
||||||
"account.follow": "o kute",
|
"account.follow": "o kute",
|
||||||
"account.follow_back": "jan ni li kute e sina. o kute",
|
"account.follow_back": "jan ni li kute e sina. o kute",
|
||||||
|
"account.follow_back_short": "jan ni li kute e sina. o kute",
|
||||||
|
"account.follow_request": "toki e wile kute",
|
||||||
|
"account.follow_request_cancel": "toki ala e wile kute",
|
||||||
|
"account.follow_request_cancel_short": "ala",
|
||||||
"account.followers": "jan kute",
|
"account.followers": "jan kute",
|
||||||
"account.followers.empty": "jan ala li kute e jan ni",
|
"account.followers.empty": "jan ala li kute e jan ni",
|
||||||
"account.followers_counter": "{count, plural, other {jan {counter} li kute e ona}}",
|
"account.followers_counter": "{count, plural, other {jan {counter} li kute e ona}}",
|
||||||
|
|
@ -151,6 +156,8 @@
|
||||||
"bundle_modal_error.close": "o pini",
|
"bundle_modal_error.close": "o pini",
|
||||||
"bundle_modal_error.message": "ilo li wile kama e ijo ni, taso pakala li lon.",
|
"bundle_modal_error.message": "ilo li wile kama e ijo ni, taso pakala li lon.",
|
||||||
"bundle_modal_error.retry": "o alasa sin",
|
"bundle_modal_error.retry": "o alasa sin",
|
||||||
|
"carousel.current": "<sr>lipu</sr> {current, number} / {max, number}",
|
||||||
|
"carousel.slide": "lipu {current, number} lon {max, number}",
|
||||||
"closed_registrations.other_server_instructions": "kulupu Mastodon la lawa mute li lon. sina ken pali e sijelo lon ma ante la sina awen ken lukin e ijo pi ma ni.",
|
"closed_registrations.other_server_instructions": "kulupu Mastodon la lawa mute li lon. sina ken pali e sijelo lon ma ante la sina awen ken lukin e ijo pi ma ni.",
|
||||||
"closed_registrations_modal.description": "tenpo ni la, sina ken ala pali e jan lon ma {domain}. taso sina wile kepeken ilo Mastodon la, sina ken pali e jan lon ma ante lon ala ma {domain}.",
|
"closed_registrations_modal.description": "tenpo ni la, sina ken ala pali e jan lon ma {domain}. taso sina wile kepeken ilo Mastodon la, sina ken pali e jan lon ma ante lon ala ma {domain}.",
|
||||||
"closed_registrations_modal.find_another_server": "o alasa e ma ante",
|
"closed_registrations_modal.find_another_server": "o alasa e ma ante",
|
||||||
|
|
@ -167,6 +174,8 @@
|
||||||
"column.edit_list": "o ante e kulupu",
|
"column.edit_list": "o ante e kulupu",
|
||||||
"column.favourites": "ijo pona",
|
"column.favourites": "ijo pona",
|
||||||
"column.firehose": "toki pi tenpo ni",
|
"column.firehose": "toki pi tenpo ni",
|
||||||
|
"column.firehose_local": "toki pi tenpo ni pi ma ni",
|
||||||
|
"column.firehose_singular": "toki pi tenpo ni",
|
||||||
"column.follow_requests": "wile alasa pi jan ante",
|
"column.follow_requests": "wile alasa pi jan ante",
|
||||||
"column.home": "lipu open",
|
"column.home": "lipu open",
|
||||||
"column.list_members": "o ante e kulupu jan",
|
"column.list_members": "o ante e kulupu jan",
|
||||||
|
|
@ -186,6 +195,7 @@
|
||||||
"community.column_settings.local_only": "toki tan ni taso",
|
"community.column_settings.local_only": "toki tan ni taso",
|
||||||
"community.column_settings.media_only": "sitelen taso",
|
"community.column_settings.media_only": "sitelen taso",
|
||||||
"community.column_settings.remote_only": "toki tan ante taso",
|
"community.column_settings.remote_only": "toki tan ante taso",
|
||||||
|
"compose.error.blank_post": "toki ken ala jo e ala.",
|
||||||
"compose.language.change": "o ante e nasin toki",
|
"compose.language.change": "o ante e nasin toki",
|
||||||
"compose.language.search": "o alasa e nasin toki...",
|
"compose.language.search": "o alasa e nasin toki...",
|
||||||
"compose.published.body": "toki li pana.",
|
"compose.published.body": "toki li pana.",
|
||||||
|
|
@ -237,6 +247,9 @@
|
||||||
"confirmations.missing_alt_text.secondary": "o pana a",
|
"confirmations.missing_alt_text.secondary": "o pana a",
|
||||||
"confirmations.missing_alt_text.title": "o pana ala pana e toki pi sona lukin?",
|
"confirmations.missing_alt_text.title": "o pana ala pana e toki pi sona lukin?",
|
||||||
"confirmations.mute.confirm": "o len",
|
"confirmations.mute.confirm": "o len",
|
||||||
|
"confirmations.private_quote_notify.confirm": "o pana e toki ni tawa ale",
|
||||||
|
"confirmations.private_quote_notify.do_not_show_again": "o toki ala e toki ni",
|
||||||
|
"confirmations.quiet_post_quote_info.dismiss": "o toki ala e ni tawa mi",
|
||||||
"confirmations.quiet_post_quote_info.got_it": "sona",
|
"confirmations.quiet_post_quote_info.got_it": "sona",
|
||||||
"confirmations.redraft.confirm": "o weka o pali sin e toki",
|
"confirmations.redraft.confirm": "o weka o pali sin e toki",
|
||||||
"confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.",
|
"confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.",
|
||||||
|
|
@ -246,7 +259,10 @@
|
||||||
"confirmations.remove_from_followers.title": "o kama ala kama kute ala e jan?",
|
"confirmations.remove_from_followers.title": "o kama ala kama kute ala e jan?",
|
||||||
"confirmations.revoke_quote.confirm": "o weka e toki tan lipu Mastodon",
|
"confirmations.revoke_quote.confirm": "o weka e toki tan lipu Mastodon",
|
||||||
"confirmations.revoke_quote.title": "sina wile weka ala weka e toki?",
|
"confirmations.revoke_quote.title": "sina wile weka ala weka e toki?",
|
||||||
|
"confirmations.unblock.confirm": "o len ala",
|
||||||
|
"confirmations.unblock.title": "o len ala e {name}?",
|
||||||
"confirmations.unfollow.confirm": "o kute ala",
|
"confirmations.unfollow.confirm": "o kute ala",
|
||||||
|
"confirmations.unfollow.title": "o kute ala e {name}?",
|
||||||
"content_warning.hide": "o len",
|
"content_warning.hide": "o len",
|
||||||
"content_warning.show": "o lukin a",
|
"content_warning.show": "o lukin a",
|
||||||
"content_warning.show_more": "o lukin",
|
"content_warning.show_more": "o lukin",
|
||||||
|
|
@ -287,10 +303,12 @@
|
||||||
"domain_pill.your_handle": "nimi sina:",
|
"domain_pill.your_handle": "nimi sina:",
|
||||||
"domain_pill.your_server": "ni li ma sina lon ilo. toki ale sina li lon ma ni. ma li ike tawa sina la, sina ken tawa ma ante. ni la jan kute sina li tawa sama.",
|
"domain_pill.your_server": "ni li ma sina lon ilo. toki ale sina li lon ma ni. ma li ike tawa sina la, sina ken tawa ma ante. ni la jan kute sina li tawa sama.",
|
||||||
"domain_pill.your_username": "ni li nimi sina. ma sina la, sina taso li jo e ona. jan mute li lon ma ante la, ona li ken jo e nimi sama.",
|
"domain_pill.your_username": "ni li nimi sina. ma sina la, sina taso li jo e ona. jan mute li lon ma ante la, ona li ken jo e nimi sama.",
|
||||||
|
"dropdown.empty": "o wile e ijo wan",
|
||||||
"embed.instructions": "o pana e toki ni la, toki li lon lipu ante. ",
|
"embed.instructions": "o pana e toki ni la, toki li lon lipu ante. ",
|
||||||
"embed.preview": "ni li jo e sitelen ni:",
|
"embed.preview": "ni li jo e sitelen ni:",
|
||||||
"emoji_button.activity": "musi",
|
"emoji_button.activity": "musi",
|
||||||
"emoji_button.clear": "o weka",
|
"emoji_button.clear": "o weka",
|
||||||
|
"emoji_button.custom": "pali sin",
|
||||||
"emoji_button.flags": "len ma",
|
"emoji_button.flags": "len ma",
|
||||||
"emoji_button.food": "moku",
|
"emoji_button.food": "moku",
|
||||||
"emoji_button.label": "o pana e sitelen pilin",
|
"emoji_button.label": "o pana e sitelen pilin",
|
||||||
|
|
@ -326,7 +344,10 @@
|
||||||
"explore.trending_links": "sin",
|
"explore.trending_links": "sin",
|
||||||
"explore.trending_statuses": "toki",
|
"explore.trending_statuses": "toki",
|
||||||
"explore.trending_tags": "kulupu pi lipu suli",
|
"explore.trending_tags": "kulupu pi lipu suli",
|
||||||
|
"featured_carousel.current": "<sr>toki</sr>{current, number} / {max, number}",
|
||||||
"featured_carousel.header": "{count, plural, other {toki sewi}}",
|
"featured_carousel.header": "{count, plural, other {toki sewi}}",
|
||||||
|
"featured_carousel.slide": "toki {current, number} lon {max, number}",
|
||||||
|
"filter_modal.added.review_and_configure_title": "o alasa e lawa",
|
||||||
"filter_modal.added.settings_link": "lipu lawa",
|
"filter_modal.added.settings_link": "lipu lawa",
|
||||||
"filter_modal.select_filter.expired": "tenpo pini",
|
"filter_modal.select_filter.expired": "tenpo pini",
|
||||||
"filter_modal.select_filter.search": "o alasa anu pali",
|
"filter_modal.select_filter.search": "o alasa anu pali",
|
||||||
|
|
@ -367,8 +388,10 @@
|
||||||
"hashtag.counter_by_accounts": "{count, plural, other {jan {counter}}}",
|
"hashtag.counter_by_accounts": "{count, plural, other {jan {counter}}}",
|
||||||
"hashtag.counter_by_uses": "{count, plural, other {toki {counter}}}",
|
"hashtag.counter_by_uses": "{count, plural, other {toki {counter}}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, other {toki poka {counter}}}",
|
"hashtag.counter_by_uses_today": "{count, plural, other {toki poka {counter}}}",
|
||||||
|
"hashtag.feature": "lipu jan la o suli e ni",
|
||||||
"hashtag.follow": "o kute e kulupu lipu",
|
"hashtag.follow": "o kute e kulupu lipu",
|
||||||
"hashtag.mute": "o kute ala e kulupu #{hashtag}",
|
"hashtag.mute": "o kute ala e kulupu #{hashtag}",
|
||||||
|
"hashtag.unfeature": "lipu jan la o suli ala e ni",
|
||||||
"hashtag.unfollow": "o kute ala e kulupu lipu",
|
"hashtag.unfollow": "o kute ala e kulupu lipu",
|
||||||
"hints.profiles.followers_may_be_missing": "jan kute li ken weka.",
|
"hints.profiles.followers_may_be_missing": "jan kute li ken weka.",
|
||||||
"hints.profiles.see_more_followers": "o lukin e jan ni lon ma {domain}: ona li kute e jan ni.",
|
"hints.profiles.see_more_followers": "o lukin e jan ni lon ma {domain}: ona li kute e jan ni.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "Sạch sẽ! Không còn gì ở đây. Khi bạn nhận được thông báo mới, chúng sẽ xuất hiện ở đây theo cài đặt của bạn.",
|
"empty_column.notification_requests": "Sạch sẽ! Không còn gì ở đây. Khi bạn nhận được thông báo mới, chúng sẽ xuất hiện ở đây theo cài đặt của bạn.",
|
||||||
"empty_column.notifications": "Bạn chưa có thông báo nào. Hãy thử theo dõi hoặc nhắn riêng cho ai đó.",
|
"empty_column.notifications": "Bạn chưa có thông báo nào. Hãy thử theo dõi hoặc nhắn riêng cho ai đó.",
|
||||||
"empty_column.public": "Trống trơn! Bạn hãy viết gì đó hoặc bắt đầu theo dõi những người khác",
|
"empty_column.public": "Trống trơn! Bạn hãy viết gì đó hoặc bắt đầu theo dõi những người khác",
|
||||||
|
"error.no_hashtag_feed_access": "Tham gia hoặc đăng nhập để xem và theo dõi hashtag này.",
|
||||||
"error.unexpected_crash.explanation": "Trang này có thể không hiển thị chính xác do lỗi lập trình Mastodon hoặc vấn đề tương thích trình duyệt.",
|
"error.unexpected_crash.explanation": "Trang này có thể không hiển thị chính xác do lỗi lập trình Mastodon hoặc vấn đề tương thích trình duyệt.",
|
||||||
"error.unexpected_crash.explanation_addons": "Trang này không thể hiển thị do xung khắc với add-on của trình duyệt hoặc công cụ tự động dịch ngôn ngữ.",
|
"error.unexpected_crash.explanation_addons": "Trang này không thể hiển thị do xung khắc với add-on của trình duyệt hoặc công cụ tự động dịch ngôn ngữ.",
|
||||||
"error.unexpected_crash.next_steps": "Hãy thử làm mới trang. Nếu vẫn không được, bạn hãy vào Mastodon bằng một ứng dụng di động hoặc trình duyệt khác.",
|
"error.unexpected_crash.next_steps": "Hãy thử làm mới trang. Nếu vẫn không được, bạn hãy vào Mastodon bằng một ứng dụng di động hoặc trình duyệt khác.",
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@
|
||||||
"empty_column.notification_requests": "清空啦!已經沒有任何推播通知。當您收到新推播通知時,它們將依照您的設定於此顯示。",
|
"empty_column.notification_requests": "清空啦!已經沒有任何推播通知。當您收到新推播通知時,它們將依照您的設定於此顯示。",
|
||||||
"empty_column.notifications": "您還沒有收到任何推播通知,當您與別人開始互動時,它將於此顯示。",
|
"empty_column.notifications": "您還沒有收到任何推播通知,當您與別人開始互動時,它將於此顯示。",
|
||||||
"empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或者跟隨其他伺服器的使用者後,就會有嘟文出現了",
|
"empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或者跟隨其他伺服器的使用者後,就會有嘟文出現了",
|
||||||
|
"error.no_hashtag_feed_access": "加入或登入 Mastodon 以檢視與跟隨此主題標籤。",
|
||||||
"error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。",
|
"error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。",
|
||||||
"error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
|
"error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
|
||||||
"error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式以檢視來使用 Mastodon。",
|
"error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式以檢視來使用 Mastodon。",
|
||||||
|
|
|
||||||
|
|
@ -112,10 +112,17 @@ class AttachmentBatch
|
||||||
keys.each_slice(LIMIT) do |keys_slice|
|
keys.each_slice(LIMIT) do |keys_slice|
|
||||||
logger.debug { "Deleting #{keys_slice.size} objects" }
|
logger.debug { "Deleting #{keys_slice.size} objects" }
|
||||||
|
|
||||||
bucket.delete_objects(delete: {
|
bucket.delete_objects(
|
||||||
objects: keys_slice.map { |key| { key: key } },
|
{
|
||||||
quiet: true,
|
delete: {
|
||||||
})
|
objects: keys_slice.map { |key| { key: key } },
|
||||||
|
quiet: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
http_read_timeout: [Paperclip::Attachment.default_options[:s3_options][:http_read_timeout], 120].max,
|
||||||
|
}
|
||||||
|
)
|
||||||
rescue => e
|
rescue => e
|
||||||
retries += 1
|
retries += 1
|
||||||
|
|
||||||
|
|
|
||||||
53
app/models/collection.rb
Normal file
53
app/models/collection.rb
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: collections
|
||||||
|
#
|
||||||
|
# id :bigint(8) not null, primary key
|
||||||
|
# description :text not null
|
||||||
|
# discoverable :boolean not null
|
||||||
|
# local :boolean not null
|
||||||
|
# name :string not null
|
||||||
|
# original_number_of_items :integer
|
||||||
|
# sensitive :boolean not null
|
||||||
|
# uri :string
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# account_id :bigint(8) not null
|
||||||
|
# tag_id :bigint(8)
|
||||||
|
#
|
||||||
|
class Collection < ApplicationRecord
|
||||||
|
MAX_ITEMS = 25
|
||||||
|
|
||||||
|
belongs_to :account
|
||||||
|
belongs_to :tag, optional: true
|
||||||
|
|
||||||
|
has_many :collection_items, dependent: :delete_all
|
||||||
|
|
||||||
|
validates :name, presence: true
|
||||||
|
validates :description, presence: true
|
||||||
|
validates :uri, presence: true, if: :remote?
|
||||||
|
validates :original_number_of_items,
|
||||||
|
presence: true,
|
||||||
|
numericality: { greater_than_or_equal: 0 },
|
||||||
|
if: :remote?
|
||||||
|
validate :tag_is_usable
|
||||||
|
validate :items_do_not_exceed_limit
|
||||||
|
|
||||||
|
def remote?
|
||||||
|
!local?
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def tag_is_usable
|
||||||
|
return if tag.blank?
|
||||||
|
|
||||||
|
errors.add(:tag, :unusable) unless tag.usable?
|
||||||
|
end
|
||||||
|
|
||||||
|
def items_do_not_exceed_limit
|
||||||
|
errors.add(:collection_items, :too_many, count: MAX_ITEMS) if collection_items.size > MAX_ITEMS
|
||||||
|
end
|
||||||
|
end
|
||||||
40
app/models/collection_item.rb
Normal file
40
app/models/collection_item.rb
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: collection_items
|
||||||
|
#
|
||||||
|
# id :bigint(8) not null, primary key
|
||||||
|
# activity_uri :string
|
||||||
|
# approval_last_verified_at :datetime
|
||||||
|
# approval_uri :string
|
||||||
|
# object_uri :string
|
||||||
|
# position :integer default(1), not null
|
||||||
|
# state :integer default("pending"), not null
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# account_id :bigint(8)
|
||||||
|
# collection_id :bigint(8) not null
|
||||||
|
#
|
||||||
|
class CollectionItem < ApplicationRecord
|
||||||
|
belongs_to :collection
|
||||||
|
belongs_to :account, optional: true
|
||||||
|
|
||||||
|
enum :state,
|
||||||
|
{ pending: 0, accepted: 1, rejected: 2, revoked: 3 },
|
||||||
|
validate: true
|
||||||
|
|
||||||
|
delegate :local?, :remote?, to: :collection
|
||||||
|
|
||||||
|
validates :position, numericality: { only_integer: true, greater_than: 0 }
|
||||||
|
validates :activity_uri, presence: true, if: :local_item_with_remote_account?
|
||||||
|
validates :approval_uri, absence: true, unless: :local?
|
||||||
|
validates :account, presence: true, if: :accepted?
|
||||||
|
validates :object_uri, presence: true, if: -> { account.nil? }
|
||||||
|
|
||||||
|
scope :ordered, -> { order(position: :asc) }
|
||||||
|
|
||||||
|
def local_item_with_remote_account?
|
||||||
|
local? && account&.remote?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -13,6 +13,8 @@ module Account::Associations
|
||||||
has_many :account_warnings
|
has_many :account_warnings
|
||||||
has_many :aliases, class_name: 'AccountAlias'
|
has_many :aliases, class_name: 'AccountAlias'
|
||||||
has_many :bookmarks
|
has_many :bookmarks
|
||||||
|
has_many :collections
|
||||||
|
has_many :collection_items
|
||||||
has_many :conversations, class_name: 'AccountConversation'
|
has_many :conversations, class_name: 'AccountConversation'
|
||||||
has_many :custom_filters
|
has_many :custom_filters
|
||||||
has_many :favourites
|
has_many :favourites
|
||||||
|
|
|
||||||
|
|
@ -4,29 +4,30 @@
|
||||||
#
|
#
|
||||||
# Table name: media_attachments
|
# Table name: media_attachments
|
||||||
#
|
#
|
||||||
# id :bigint(8) not null, primary key
|
# id :bigint(8) not null, primary key
|
||||||
# status_id :bigint(8)
|
# blurhash :string
|
||||||
# file_file_name :string
|
# description :text
|
||||||
# file_content_type :string
|
# file_content_type :string
|
||||||
# file_file_size :integer
|
# file_file_name :string
|
||||||
# file_updated_at :datetime
|
# file_file_size :integer
|
||||||
# remote_url :string default(""), not null
|
# file_meta :json
|
||||||
# created_at :datetime not null
|
# file_storage_schema_version :integer
|
||||||
# updated_at :datetime not null
|
# file_updated_at :datetime
|
||||||
# shortcode :string
|
# processing :integer
|
||||||
# type :integer default("image"), not null
|
# remote_url :string default(""), not null
|
||||||
# file_meta :json
|
# shortcode :string
|
||||||
# account_id :bigint(8)
|
# thumbnail_content_type :string
|
||||||
# description :text
|
# thumbnail_file_name :string
|
||||||
# scheduled_status_id :bigint(8)
|
# thumbnail_file_size :integer
|
||||||
# blurhash :string
|
# thumbnail_remote_url :string
|
||||||
# processing :integer
|
# thumbnail_storage_schema_version :integer
|
||||||
# file_storage_schema_version :integer
|
# thumbnail_updated_at :datetime
|
||||||
# thumbnail_file_name :string
|
# type :integer default("image"), not null
|
||||||
# thumbnail_content_type :string
|
# created_at :datetime not null
|
||||||
# thumbnail_file_size :integer
|
# updated_at :datetime not null
|
||||||
# thumbnail_updated_at :datetime
|
# account_id :bigint(8)
|
||||||
# thumbnail_remote_url :string
|
# scheduled_status_id :bigint(8)
|
||||||
|
# status_id :bigint(8)
|
||||||
#
|
#
|
||||||
|
|
||||||
class MediaAttachment < ApplicationRecord
|
class MediaAttachment < ApplicationRecord
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
- if activity.is_a?(Status) && (activity.non_sensitive_with_media? || (activity.with_media? && Setting.preview_sensitive_media))
|
- if status.non_sensitive_with_media? || (status.with_media? && Setting.preview_sensitive_media)
|
||||||
- player_card = false
|
- player_card = false
|
||||||
- activity.ordered_media_attachments.each do |media|
|
- status.ordered_media_attachments.each do |media|
|
||||||
- if media.image?
|
- if media.image?
|
||||||
= opengraph 'og:image', full_asset_url(media.file.url(:original))
|
= opengraph 'og:image', full_asset_url(media.file.url(:original))
|
||||||
= opengraph 'og:image:type', media.file_content_type
|
= opengraph 'og:image:type', media.file_content_type
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,6 @@
|
||||||
= opengraph 'profile:username', acct(@account)[1..]
|
= opengraph 'profile:username', acct(@account)[1..]
|
||||||
|
|
||||||
= render 'og_description', activity: @status
|
= render 'og_description', activity: @status
|
||||||
= render 'og_image', activity: @status, account: @account
|
= render 'og_image', status: @status, account: @account
|
||||||
|
|
||||||
= render 'shared/web_app'
|
= render 'shared/web_app'
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,12 @@ en:
|
||||||
attributes:
|
attributes:
|
||||||
url:
|
url:
|
||||||
invalid: is not a valid URL
|
invalid: is not a valid URL
|
||||||
|
collection:
|
||||||
|
attributes:
|
||||||
|
collection_items:
|
||||||
|
too_many: are too many, no more than %{count} are allowed
|
||||||
|
tag:
|
||||||
|
unusable: may not be used
|
||||||
doorkeeper/application:
|
doorkeeper/application:
|
||||||
attributes:
|
attributes:
|
||||||
website:
|
website:
|
||||||
|
|
|
||||||
|
|
@ -1901,7 +1901,7 @@ da:
|
||||||
user_domain_block: "%{target_name} blev blokeret"
|
user_domain_block: "%{target_name} blev blokeret"
|
||||||
lost_followers: Tabte følgere
|
lost_followers: Tabte følgere
|
||||||
lost_follows: Mistet følger
|
lost_follows: Mistet følger
|
||||||
preamble: Der kan mistes fulgte objekter og følgere, når et domæne blokeres eller moderatorerne beslutter at suspendere en ekstern server. Når det sker, kan der downloades lister over afbrudte relationer til inspektion og mulig import på anden server.
|
preamble: Du kan miste fulgte og følgere, når du blokerer et domæne, eller når dine moderatorer beslutter at suspendere en fjernserver. Når det sker, kan du downloade lister over afbrudte forhold til inspektion og eventuelt import til en anden server.
|
||||||
purged: Oplysninger om denne server er blevet renset af serveradministratoreren.
|
purged: Oplysninger om denne server er blevet renset af serveradministratoreren.
|
||||||
type: Begivenhed
|
type: Begivenhed
|
||||||
statuses:
|
statuses:
|
||||||
|
|
|
||||||
|
|
@ -364,7 +364,7 @@ de:
|
||||||
overwrite: Überschreiben
|
overwrite: Überschreiben
|
||||||
shortcode: Shortcode
|
shortcode: Shortcode
|
||||||
shortcode_hint: Mindestens 2 Zeichen, nur Buchstaben, Ziffern und Unterstriche
|
shortcode_hint: Mindestens 2 Zeichen, nur Buchstaben, Ziffern und Unterstriche
|
||||||
title: Eigene Emojis
|
title: Emojis
|
||||||
uncategorized: Unkategorisiert
|
uncategorized: Unkategorisiert
|
||||||
unlist: Nicht anzeigen
|
unlist: Nicht anzeigen
|
||||||
unlisted: Nicht sichtbar
|
unlisted: Nicht sichtbar
|
||||||
|
|
@ -2150,7 +2150,7 @@ de:
|
||||||
follow_limit_reached: Du kannst nicht mehr als %{limit} Profilen folgen
|
follow_limit_reached: Du kannst nicht mehr als %{limit} Profilen folgen
|
||||||
go_to_sso_account_settings: Kontoeinstellungen des Identitätsanbieters aufrufen
|
go_to_sso_account_settings: Kontoeinstellungen des Identitätsanbieters aufrufen
|
||||||
invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung
|
invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung
|
||||||
otp_lost_help_html: Wenn du beides nicht mehr weißt, melde dich bitte bei uns unter der E-Mail-Adresse %{email}
|
otp_lost_help_html: Wenn du sowohl die E-Mail-Adresse als auch das Passwort nicht mehr weißt, melde dich bitte bei uns unter %{email}
|
||||||
rate_limited: Zu viele Authentisierungsversuche. Bitte versuche es später noch einmal.
|
rate_limited: Zu viele Authentisierungsversuche. Bitte versuche es später noch einmal.
|
||||||
seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar.
|
seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar.
|
||||||
signed_in_as: 'Angemeldet als:'
|
signed_in_as: 'Angemeldet als:'
|
||||||
|
|
|
||||||
|
|
@ -384,8 +384,8 @@ et:
|
||||||
one: "<strong>%{count}</strong> ootel raport"
|
one: "<strong>%{count}</strong> ootel raport"
|
||||||
other: "<strong>%{count}</strong> ootel raportit"
|
other: "<strong>%{count}</strong> ootel raportit"
|
||||||
pending_tags_html:
|
pending_tags_html:
|
||||||
one: "<strong>%{count}</strong> ootel silt"
|
one: "<strong>%{count}</strong> ootel teemaviide"
|
||||||
other: "<strong>%{count}</strong> ootel silti"
|
other: "<strong>%{count}</strong> ootel teemaviidet"
|
||||||
pending_users_html:
|
pending_users_html:
|
||||||
one: "<strong>%{count}</strong> ootel kasutaja"
|
one: "<strong>%{count}</strong> ootel kasutaja"
|
||||||
other: "<strong>%{count}</strong> ootel kasutajat"
|
other: "<strong>%{count}</strong> ootel kasutajat"
|
||||||
|
|
@ -783,7 +783,7 @@ et:
|
||||||
manage_settings: Halda sätteid
|
manage_settings: Halda sätteid
|
||||||
manage_settings_description: Lubab kasutajatel muuta lehekülje sätteid
|
manage_settings_description: Lubab kasutajatel muuta lehekülje sätteid
|
||||||
manage_taxonomies: Halda taksonoomiaid
|
manage_taxonomies: Halda taksonoomiaid
|
||||||
manage_taxonomies_description: Luba kasutajatel populaarset sisu üle vaadata ning uuendada siltide sätteid
|
manage_taxonomies_description: Luba kasutajatel populaarset sisu üle vaadata ning uuendada teemaviidete seadistusi
|
||||||
manage_user_access: Halda kasutajate ligipääsu
|
manage_user_access: Halda kasutajate ligipääsu
|
||||||
manage_user_access_description: Võimaldab kasutajatel keelata teiste kasutajate kaheastmelise autentimise, muuta oma e-posti aadressi ja lähtestada oma parooli
|
manage_user_access_description: Võimaldab kasutajatel keelata teiste kasutajate kaheastmelise autentimise, muuta oma e-posti aadressi ja lähtestada oma parooli
|
||||||
manage_users: Kasutajate haldamine
|
manage_users: Kasutajate haldamine
|
||||||
|
|
@ -998,8 +998,8 @@ et:
|
||||||
reset: Lähtesta
|
reset: Lähtesta
|
||||||
review: Vaata olek üle
|
review: Vaata olek üle
|
||||||
search: Otsi
|
search: Otsi
|
||||||
title: Märksõnad
|
title: Teemaviited
|
||||||
updated_msg: Sildi sätted edukalt uuendatud
|
updated_msg: Teemaviite seadistused on uuendatud
|
||||||
terms_of_service:
|
terms_of_service:
|
||||||
back: Tagasi teenuse tingimustesse
|
back: Tagasi teenuse tingimustesse
|
||||||
changelog: Mis on muutunud
|
changelog: Mis on muutunud
|
||||||
|
|
@ -1088,14 +1088,14 @@ et:
|
||||||
tag_servers_dimension: Populaarseimad serverid
|
tag_servers_dimension: Populaarseimad serverid
|
||||||
tag_servers_measure: erinevat serverit
|
tag_servers_measure: erinevat serverit
|
||||||
tag_uses_measure: kasutajaid kokku
|
tag_uses_measure: kasutajaid kokku
|
||||||
description_html: Need sildid ilmuvad praegu paljudes postitutes mida su server näeb. See võib aidata su kasutajatel leida seda millest kõige rohkem parajasti räägitakse. Ühtegi silti ei näidata avalikult, enne nende heaks kiitmist.
|
description_html: Need teemaviited ilmuvad praegu paljudes postitutes, mida su server näeb. See võib aidata su kasutajatel leida seda millest kõige rohkem parajasti räägitakse. Ühtegi teemaviidet ei näidata enne nende heaks kiitmist avalikult.
|
||||||
listable: Võib olla soovitatud
|
listable: Võib olla soovitatud
|
||||||
no_tag_selected: Silte ei muudetud, kuna ühtegi polnud valitud
|
no_tag_selected: Silte ei muudetud, kuna ühtegi polnud valitud
|
||||||
not_listable: Ei soovitata
|
not_listable: Ei soovitata
|
||||||
not_trendable: Ei ilmu trendides
|
not_trendable: Ei ilmu trendides
|
||||||
not_usable: Ei saa kasutada
|
not_usable: Ei saa kasutada
|
||||||
peaked_on_and_decaying: Populaarseim %{date}, nüüd langemas
|
peaked_on_and_decaying: Populaarseim %{date}, nüüd langemas
|
||||||
title: Trendikad sildid
|
title: Trendikad teemaviited
|
||||||
trendable: Võib ilmuda trendides
|
trendable: Võib ilmuda trendides
|
||||||
trending_rank: 'Trendides #%{rank}'
|
trending_rank: 'Trendides #%{rank}'
|
||||||
usable: Kasutatav
|
usable: Kasutatav
|
||||||
|
|
@ -1186,7 +1186,7 @@ et:
|
||||||
new_trending_statuses:
|
new_trending_statuses:
|
||||||
title: Trendikad postitused
|
title: Trendikad postitused
|
||||||
new_trending_tags:
|
new_trending_tags:
|
||||||
title: Trendikad sildid
|
title: Trendikad teemaviited
|
||||||
subject: Uued %{instance} trendid ülevaatuseks
|
subject: Uued %{instance} trendid ülevaatuseks
|
||||||
aliases:
|
aliases:
|
||||||
add_new: Pane kolimiseks valmis
|
add_new: Pane kolimiseks valmis
|
||||||
|
|
@ -1428,8 +1428,8 @@ et:
|
||||||
featured_tags:
|
featured_tags:
|
||||||
add_new: Lisa uus
|
add_new: Lisa uus
|
||||||
errors:
|
errors:
|
||||||
limit: Oled jõudnud siltide lubatud maksimumarvuni
|
limit: Oled jõudnud teemaviidete lubatud maksimumarvuni
|
||||||
hint_html: "<strong>Mis on esiletõstetud sildid?</strong> Neid silte näidatakse su avalikul profiilil esiletõstetult ning need aitavad teistel leida postitusi, millel on selline silt. See on hea viis, kuidas hoida järge loovtöödel või pikaajalistel projektidel."
|
hint_html: "<strong>Mis on esiletõstetud teemaviited?</strong> Neid teemaviiteid näidatakse su avalikul profiilil esiletõstetult ning need aitavad teistel leida postitusi, millel on selline teemaviide. See on hea viis, kuidas hoida järge loovtöödel või pikaajalistel projektidel."
|
||||||
filters:
|
filters:
|
||||||
contexts:
|
contexts:
|
||||||
account: Profiilid
|
account: Profiilid
|
||||||
|
|
@ -1815,7 +1815,7 @@ et:
|
||||||
content_warning: 'Sisuhoiatus:'
|
content_warning: 'Sisuhoiatus:'
|
||||||
descriptions:
|
descriptions:
|
||||||
account: "@%{acct} avalikud postitused"
|
account: "@%{acct} avalikud postitused"
|
||||||
tag: 'Avalikud postitused sildiga #%{hashtag}'
|
tag: 'Avalikud postitused teemaviitega #%{hashtag}'
|
||||||
scheduled_statuses:
|
scheduled_statuses:
|
||||||
over_daily_limit: Lubatud ajastatud postituste arv %{limit} päevas on tänaseks ületatud
|
over_daily_limit: Lubatud ajastatud postituste arv %{limit} päevas on tänaseks ületatud
|
||||||
over_total_limit: Oled jõudnud ajastatud postituste lubatud maksimumarvuni %{limit}
|
over_total_limit: Oled jõudnud ajastatud postituste lubatud maksimumarvuni %{limit}
|
||||||
|
|
@ -1880,7 +1880,7 @@ et:
|
||||||
development: Arendus
|
development: Arendus
|
||||||
edit_profile: Muuda profiili
|
edit_profile: Muuda profiili
|
||||||
export: Eksport
|
export: Eksport
|
||||||
featured_tags: Esile toodud sildid
|
featured_tags: Esile toodud teemaviited
|
||||||
import: Impordi
|
import: Impordi
|
||||||
import_and_export: Import / eksport
|
import_and_export: Import / eksport
|
||||||
migrate: Konto kolimine
|
migrate: Konto kolimine
|
||||||
|
|
@ -1923,8 +1923,8 @@ et:
|
||||||
show: Näita rohkem
|
show: Näita rohkem
|
||||||
default_language: Kasutajaliidese keelega sama
|
default_language: Kasutajaliidese keelega sama
|
||||||
disallowed_hashtags:
|
disallowed_hashtags:
|
||||||
one: 'sisaldab ebasobivat silti: %{tags}'
|
one: 'sisaldab ebasobivat teemaviidet: %{tags}'
|
||||||
other: 'sisaldab ebasobivaid silte: %{tags}'
|
other: 'sisaldab ebasobivaid teemaviiteid: %{tags}'
|
||||||
edited_at_html: Muudetud %{date}
|
edited_at_html: Muudetud %{date}
|
||||||
errors:
|
errors:
|
||||||
in_reply_not_found: Postitus, millele üritad vastata, ei näi enam eksisteerivat.
|
in_reply_not_found: Postitus, millele üritad vastata, ei näi enam eksisteerivat.
|
||||||
|
|
@ -2139,7 +2139,7 @@ et:
|
||||||
other: "%{people} inimest viimase 2 päeva jooksul"
|
other: "%{people} inimest viimase 2 päeva jooksul"
|
||||||
hashtags_subtitle: Avasta, mis viimase 2 päeva jooksul on toimunud
|
hashtags_subtitle: Avasta, mis viimase 2 päeva jooksul on toimunud
|
||||||
hashtags_title: Populaarsed märksõnad
|
hashtags_title: Populaarsed märksõnad
|
||||||
hashtags_view_more: Vaata teisi trendikaid märksõnu
|
hashtags_view_more: Vaata teisi trendikaid teemaviiteid
|
||||||
post_action: Postita
|
post_action: Postita
|
||||||
post_step: Tervita maailma teksti, fotode, videote või küsitlustega.
|
post_step: Tervita maailma teksti, fotode, videote või küsitlustega.
|
||||||
post_title: Tee oma esimene postitus
|
post_title: Tee oma esimene postitus
|
||||||
|
|
|
||||||
|
|
@ -353,7 +353,9 @@ ca:
|
||||||
jurisdiction: Jurisdicció
|
jurisdiction: Jurisdicció
|
||||||
min_age: Edat mínima
|
min_age: Edat mínima
|
||||||
user:
|
user:
|
||||||
|
date_of_birth_1i: Any
|
||||||
date_of_birth_2i: Mes
|
date_of_birth_2i: Mes
|
||||||
|
date_of_birth_3i: Dia
|
||||||
role: Rol
|
role: Rol
|
||||||
time_zone: Zona horària
|
time_zone: Zona horària
|
||||||
user_role:
|
user_role:
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ da:
|
||||||
account:
|
account:
|
||||||
attribution_domains: Ét pr. linje. Beskytter mod falske tilskrivninger.
|
attribution_domains: Ét pr. linje. Beskytter mod falske tilskrivninger.
|
||||||
discoverable: Dine offentlige indlæg og profil kan blive fremhævet eller anbefalet i forskellige områder af Mastodon, og profilen kan blive foreslået til andre brugere.
|
discoverable: Dine offentlige indlæg og profil kan blive fremhævet eller anbefalet i forskellige områder af Mastodon, og profilen kan blive foreslået til andre brugere.
|
||||||
display_name: Dit fulde navn eller dit sjove navn.
|
display_name: Dit fulde navn eller et kaldenavn.
|
||||||
fields: Din hjemmeside, dine pronominer, din alder, eller hvad du har lyst til.
|
fields: Din hjemmeside, dine pronominer, din alder, eller hvad du har lyst til.
|
||||||
indexable: Dine offentlige indlæg vil kunne vises i Mastodon-søgeresultater. Folk, som har interageret med dem, vil kunne finde dem uanset.
|
indexable: Dine offentlige indlæg vil kunne vises i Mastodon-søgeresultater. Folk, som har interageret med dem, vil kunne finde dem uanset.
|
||||||
note: 'Du kan @omtale andre personer eller #hashtags.'
|
note: 'Du kan @omtale andre personer eller #hashtags.'
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ et:
|
||||||
display_name: Su täisnimi või naljanimi.
|
display_name: Su täisnimi või naljanimi.
|
||||||
fields: Su koduleht, sugu, vanus. Mistahes, mida soovid.
|
fields: Su koduleht, sugu, vanus. Mistahes, mida soovid.
|
||||||
indexable: Sinu avalikud postitused võivad ilmuda Mastodoni otsingutulemustes. Inimesed, kes on sinu postitustele reageerinud, saavad neid otsida nii või naa.
|
indexable: Sinu avalikud postitused võivad ilmuda Mastodoni otsingutulemustes. Inimesed, kes on sinu postitustele reageerinud, saavad neid otsida nii või naa.
|
||||||
note: 'Saad @mainida teisi inimesi või #silte.'
|
note: 'Saad @mainida teisi inimesi või #teemaviiteid.'
|
||||||
show_collections: Inimesed saavad sirvida su jälgijaid ja jälgitavaid. Inimesed, keda sa jälgid, näevad seda sõltumata häälestuse valikust.
|
show_collections: Inimesed saavad sirvida su jälgijaid ja jälgitavaid. Inimesed, keda sa jälgid, näevad seda sõltumata häälestuse valikust.
|
||||||
unlocked: Teised kasutajad saavad sind jälgima hakata nõusolekut küsimata. Eemalda märge, kui soovid jälgimistaotlusi üle vaadata ja valida, kas nõustuda või keelduda uute jälgijatega.
|
unlocked: Teised kasutajad saavad sind jälgima hakata nõusolekut küsimata. Eemalda märge, kui soovid jälgimistaotlusi üle vaadata ja valida, kas nõustuda või keelduda uute jälgijatega.
|
||||||
account_alias:
|
account_alias:
|
||||||
|
|
@ -16,7 +16,7 @@ et:
|
||||||
account_migration:
|
account_migration:
|
||||||
acct: Sisesta kasutajanimi@domeen, kuhu soovid konto siit kolida
|
acct: Sisesta kasutajanimi@domeen, kuhu soovid konto siit kolida
|
||||||
account_warning_preset:
|
account_warning_preset:
|
||||||
text: Saab kasutada postituse süntaksi, näiteks URLe, silte ja mainimisi
|
text: Saad kasutada postituse süntaksi, näiteks võrguaadresse, teemaviiteid ja mainimisi
|
||||||
title: Valikuline. Ei ole nähtav saajale
|
title: Valikuline. Ei ole nähtav saajale
|
||||||
admin_account_action:
|
admin_account_action:
|
||||||
include_statuses: Kasutaja näeb, millised postitused on põhjustanud moderaatori otsuse või hoiatuse
|
include_statuses: Kasutaja näeb, millised postitused on põhjustanud moderaatori otsuse või hoiatuse
|
||||||
|
|
@ -77,7 +77,7 @@ et:
|
||||||
domain: See võib olla e-postiaadressis näha olev domeen või MX-kirje, mida aadress kasutab. Kontroll toimub liitumise käigus.
|
domain: See võib olla e-postiaadressis näha olev domeen või MX-kirje, mida aadress kasutab. Kontroll toimub liitumise käigus.
|
||||||
with_dns_records: Püütakse lahendada selle domeeni DNS-kirjed ja ühtlasi blokeerida ka selle tulemused
|
with_dns_records: Püütakse lahendada selle domeeni DNS-kirjed ja ühtlasi blokeerida ka selle tulemused
|
||||||
featured_tag:
|
featured_tag:
|
||||||
name: 'Siin on mõned nendest siltidest, mida oled viimati kasutanud:'
|
name: 'Siin on mõned nendest teemaviiteid, mida oled viimati kasutanud:'
|
||||||
filters:
|
filters:
|
||||||
action: Vali tegevus, kui postitus vastab filtrile
|
action: Vali tegevus, kui postitus vastab filtrile
|
||||||
actions:
|
actions:
|
||||||
|
|
@ -110,7 +110,7 @@ et:
|
||||||
theme: Teema, mida näevad sisenemata ning uued kasutajad.
|
theme: Teema, mida näevad sisenemata ning uued kasutajad.
|
||||||
thumbnail: Umbes 2:1 mõõdus pilt serveri informatsiooni kõrval.
|
thumbnail: Umbes 2:1 mõõdus pilt serveri informatsiooni kõrval.
|
||||||
trendable_by_default: Populaarse sisu ülevaatuse vahele jätmine. Pärast seda on siiski võimalik üksikuid üksusi trendidest eemaldada.
|
trendable_by_default: Populaarse sisu ülevaatuse vahele jätmine. Pärast seda on siiski võimalik üksikuid üksusi trendidest eemaldada.
|
||||||
trends: Trendid näitavad, millised postitused, sildid ja uudislood koguvad sinu serveris tähelepanu.
|
trends: Trendid näitavad, millised postitused, teemaviited ja uudislood koguvad sinu serveris tähelepanu.
|
||||||
form_challenge:
|
form_challenge:
|
||||||
current_password: Turvalisse alasse sisenemine
|
current_password: Turvalisse alasse sisenemine
|
||||||
imports:
|
imports:
|
||||||
|
|
@ -272,7 +272,7 @@ et:
|
||||||
email_domain_block:
|
email_domain_block:
|
||||||
with_dns_records: Kaasa domeeni MX-kirjed ning IP-aadressid
|
with_dns_records: Kaasa domeeni MX-kirjed ning IP-aadressid
|
||||||
featured_tag:
|
featured_tag:
|
||||||
name: Silt
|
name: Teemaviide
|
||||||
filters:
|
filters:
|
||||||
actions:
|
actions:
|
||||||
blur: Peida hoiatusega meedia
|
blur: Peida hoiatusega meedia
|
||||||
|
|
@ -353,10 +353,10 @@ et:
|
||||||
indexable: Kaasa profiilileht otsimootoritesse
|
indexable: Kaasa profiilileht otsimootoritesse
|
||||||
show_application: Näita, millisest äpist postituse saatsid
|
show_application: Näita, millisest äpist postituse saatsid
|
||||||
tag:
|
tag:
|
||||||
listable: Luba sellel sildil ilmuda profiilide kataloogis
|
listable: Luba sellel teemaviitel ilmuda profiilide kataloogis
|
||||||
name: Silt
|
name: Teemaviide
|
||||||
trendable: Luba sellel sildil trendida
|
trendable: Luba sellel teemaviitel olla nähtav viimaste trendide all
|
||||||
usable: Luba seda märksõna postitustes kasutada lokaalselt
|
usable: Luba seda teemaviidet postitustes kasutada lokaalselt
|
||||||
terms_of_service:
|
terms_of_service:
|
||||||
changelog: Mis on muutunud?
|
changelog: Mis on muutunud?
|
||||||
effective_date: Jõustumise kuupäev
|
effective_date: Jõustumise kuupäev
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ pt-BR:
|
||||||
setting_expand_spoilers: Sempre expandir toots com Aviso de Conteúdo
|
setting_expand_spoilers: Sempre expandir toots com Aviso de Conteúdo
|
||||||
setting_hide_network: Ocultar suas relações
|
setting_hide_network: Ocultar suas relações
|
||||||
setting_missing_alt_text_modal: Avise-me antes de publicar mídia sem texto alternado
|
setting_missing_alt_text_modal: Avise-me antes de publicar mídia sem texto alternado
|
||||||
setting_quick_boosting: Ativar aceleração rápida
|
setting_quick_boosting: Ativar impulsionamento rápido
|
||||||
setting_reduce_motion: Reduzir animações
|
setting_reduce_motion: Reduzir animações
|
||||||
setting_system_font_ui: Usar fonte padrão do sistema
|
setting_system_font_ui: Usar fonte padrão do sistema
|
||||||
setting_system_scrollbars_ui: Usar barra de rolagem padrão do sistema
|
setting_system_scrollbars_ui: Usar barra de rolagem padrão do sistema
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,9 @@ sl:
|
||||||
setting_always_send_emails: Vedno pošlji e-obvestila
|
setting_always_send_emails: Vedno pošlji e-obvestila
|
||||||
setting_auto_play_gif: Samodejno predvajanje animiranih GIF-ov
|
setting_auto_play_gif: Samodejno predvajanje animiranih GIF-ov
|
||||||
setting_default_language: Jezik objavljanja
|
setting_default_language: Jezik objavljanja
|
||||||
|
setting_default_quote_policy: Kdo lahko citira
|
||||||
setting_default_sensitive: Vedno označi medije kot občutljive
|
setting_default_sensitive: Vedno označi medije kot občutljive
|
||||||
|
setting_delete_modal: Pred brisanjem objave me opozori
|
||||||
setting_disable_hover_cards: Onemogoči predogled profila pod kazalcem
|
setting_disable_hover_cards: Onemogoči predogled profila pod kazalcem
|
||||||
setting_disable_swiping: Onemogoči poteze drsanja
|
setting_disable_swiping: Onemogoči poteze drsanja
|
||||||
setting_display_media: Prikaz medijev
|
setting_display_media: Prikaz medijev
|
||||||
|
|
@ -305,6 +307,7 @@ sl:
|
||||||
follow_request: Pošlji e-pošto, ko vam nekdo želi slediti
|
follow_request: Pošlji e-pošto, ko vam nekdo želi slediti
|
||||||
mention: Pošlji e-pošto, ko vas nekdo omeni
|
mention: Pošlji e-pošto, ko vas nekdo omeni
|
||||||
pending_account: Pošlji e-pošto, ko je potreben pregled novega računa
|
pending_account: Pošlji e-pošto, ko je potreben pregled novega računa
|
||||||
|
quote: Nekdo vas je citiral
|
||||||
reblog: Pošlji e-sporočilo, ko nekdo izpostavi vašo objavo
|
reblog: Pošlji e-sporočilo, ko nekdo izpostavi vašo objavo
|
||||||
report: Novo poročilo je oddano
|
report: Novo poročilo je oddano
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
@ -340,7 +343,9 @@ sl:
|
||||||
jurisdiction: Pravna pristojnost
|
jurisdiction: Pravna pristojnost
|
||||||
min_age: Najmanjša starost
|
min_age: Najmanjša starost
|
||||||
user:
|
user:
|
||||||
|
date_of_birth_1i: Leto
|
||||||
date_of_birth_2i: Mesec
|
date_of_birth_2i: Mesec
|
||||||
|
date_of_birth_3i: Dan
|
||||||
role: Vloga
|
role: Vloga
|
||||||
time_zone: Časovni pas
|
time_zone: Časovni pas
|
||||||
user_role:
|
user_role:
|
||||||
|
|
@ -349,6 +354,9 @@ sl:
|
||||||
name: Ime
|
name: Ime
|
||||||
permissions_as_keys: Pravice
|
permissions_as_keys: Pravice
|
||||||
position: Prioriteta
|
position: Prioriteta
|
||||||
|
username_block:
|
||||||
|
allow_with_approval: Dovoli registracije z odobritvijo
|
||||||
|
comparison: Metoda primerjave
|
||||||
webhook:
|
webhook:
|
||||||
events: Omogočeni dogodki
|
events: Omogočeni dogodki
|
||||||
template: Predloga obremenitev
|
template: Predloga obremenitev
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddThumbnailStorageSchemaVersion < ActiveRecord::Migration[8.0]
|
||||||
|
def change
|
||||||
|
add_column :media_attachments, :thumbnail_storage_schema_version, :integer
|
||||||
|
end
|
||||||
|
end
|
||||||
19
db/migrate/20251118115657_create_collections.rb
Normal file
19
db/migrate/20251118115657_create_collections.rb
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class CreateCollections < ActiveRecord::Migration[8.0]
|
||||||
|
def change
|
||||||
|
create_table :collections do |t|
|
||||||
|
t.references :account, null: false, foreign_key: true
|
||||||
|
t.string :name, null: false
|
||||||
|
t.text :description, null: false
|
||||||
|
t.string :uri
|
||||||
|
t.boolean :local, null: false # rubocop:disable Rails/ThreeStateBooleanColumn
|
||||||
|
t.boolean :sensitive, null: false # rubocop:disable Rails/ThreeStateBooleanColumn
|
||||||
|
t.boolean :discoverable, null: false # rubocop:disable Rails/ThreeStateBooleanColumn
|
||||||
|
t.references :tag, foreign_key: true
|
||||||
|
t.integer :original_number_of_items
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
18
db/migrate/20251119093332_create_collection_items.rb
Normal file
18
db/migrate/20251119093332_create_collection_items.rb
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class CreateCollectionItems < ActiveRecord::Migration[8.0]
|
||||||
|
def change
|
||||||
|
create_table :collection_items do |t|
|
||||||
|
t.references :collection, null: false, foreign_key: { on_delete: :cascade }
|
||||||
|
t.references :account, foreign_key: true
|
||||||
|
t.integer :position, null: false, default: 1
|
||||||
|
t.string :object_uri, index: { unique: true, where: 'activity_uri IS NOT NULL' }
|
||||||
|
t.string :approval_uri, index: { unique: true, where: 'approval_uri IS NOT NULL' }
|
||||||
|
t.string :activity_uri
|
||||||
|
t.datetime :approval_last_verified_at
|
||||||
|
t.integer :state, null: false, default: 0
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
40
db/schema.rb
40
db/schema.rb
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[8.0].define(version: 2025_10_23_210145) do
|
ActiveRecord::Schema[8.0].define(version: 2025_11_19_093332) do
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "pg_catalog.plpgsql"
|
enable_extension "pg_catalog.plpgsql"
|
||||||
|
|
||||||
|
|
@ -351,6 +351,39 @@ ActiveRecord::Schema[8.0].define(version: 2025_10_23_210145) do
|
||||||
t.index ["reference_account_id"], name: "index_canonical_email_blocks_on_reference_account_id"
|
t.index ["reference_account_id"], name: "index_canonical_email_blocks_on_reference_account_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "collection_items", force: :cascade do |t|
|
||||||
|
t.bigint "collection_id", null: false
|
||||||
|
t.bigint "account_id"
|
||||||
|
t.integer "position", default: 1, null: false
|
||||||
|
t.string "object_uri"
|
||||||
|
t.string "approval_uri"
|
||||||
|
t.string "activity_uri"
|
||||||
|
t.datetime "approval_last_verified_at"
|
||||||
|
t.integer "state", default: 0, null: false
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
t.index ["account_id"], name: "index_collection_items_on_account_id"
|
||||||
|
t.index ["approval_uri"], name: "index_collection_items_on_approval_uri", unique: true, where: "(approval_uri IS NOT NULL)"
|
||||||
|
t.index ["collection_id"], name: "index_collection_items_on_collection_id"
|
||||||
|
t.index ["object_uri"], name: "index_collection_items_on_object_uri", unique: true, where: "(activity_uri IS NOT NULL)"
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "collections", force: :cascade do |t|
|
||||||
|
t.bigint "account_id", null: false
|
||||||
|
t.string "name", null: false
|
||||||
|
t.text "description", null: false
|
||||||
|
t.string "uri"
|
||||||
|
t.boolean "local", null: false
|
||||||
|
t.boolean "sensitive", null: false
|
||||||
|
t.boolean "discoverable", null: false
|
||||||
|
t.bigint "tag_id"
|
||||||
|
t.integer "original_number_of_items"
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
t.index ["account_id"], name: "index_collections_on_account_id"
|
||||||
|
t.index ["tag_id"], name: "index_collections_on_tag_id"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "conversation_mutes", force: :cascade do |t|
|
create_table "conversation_mutes", force: :cascade do |t|
|
||||||
t.bigint "conversation_id", null: false
|
t.bigint "conversation_id", null: false
|
||||||
t.bigint "account_id", null: false
|
t.bigint "account_id", null: false
|
||||||
|
|
@ -694,6 +727,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_10_23_210145) do
|
||||||
t.integer "thumbnail_file_size"
|
t.integer "thumbnail_file_size"
|
||||||
t.datetime "thumbnail_updated_at", precision: nil
|
t.datetime "thumbnail_updated_at", precision: nil
|
||||||
t.string "thumbnail_remote_url"
|
t.string "thumbnail_remote_url"
|
||||||
|
t.integer "thumbnail_storage_schema_version"
|
||||||
t.index ["account_id", "status_id"], name: "index_media_attachments_on_account_id_and_status_id", order: { status_id: :desc }
|
t.index ["account_id", "status_id"], name: "index_media_attachments_on_account_id_and_status_id", order: { status_id: :desc }
|
||||||
t.index ["scheduled_status_id"], name: "index_media_attachments_on_scheduled_status_id", where: "(scheduled_status_id IS NOT NULL)"
|
t.index ["scheduled_status_id"], name: "index_media_attachments_on_scheduled_status_id", where: "(scheduled_status_id IS NOT NULL)"
|
||||||
t.index ["shortcode"], name: "index_media_attachments_on_shortcode", unique: true, opclass: :text_pattern_ops, where: "(shortcode IS NOT NULL)"
|
t.index ["shortcode"], name: "index_media_attachments_on_shortcode", unique: true, opclass: :text_pattern_ops, where: "(shortcode IS NOT NULL)"
|
||||||
|
|
@ -1386,6 +1420,10 @@ ActiveRecord::Schema[8.0].define(version: 2025_10_23_210145) do
|
||||||
add_foreign_key "bulk_import_rows", "bulk_imports", on_delete: :cascade
|
add_foreign_key "bulk_import_rows", "bulk_imports", on_delete: :cascade
|
||||||
add_foreign_key "bulk_imports", "accounts", on_delete: :cascade
|
add_foreign_key "bulk_imports", "accounts", on_delete: :cascade
|
||||||
add_foreign_key "canonical_email_blocks", "accounts", column: "reference_account_id", on_delete: :cascade
|
add_foreign_key "canonical_email_blocks", "accounts", column: "reference_account_id", on_delete: :cascade
|
||||||
|
add_foreign_key "collection_items", "accounts"
|
||||||
|
add_foreign_key "collection_items", "collections", on_delete: :cascade
|
||||||
|
add_foreign_key "collections", "accounts"
|
||||||
|
add_foreign_key "collections", "tags"
|
||||||
add_foreign_key "conversation_mutes", "accounts", name: "fk_225b4212bb", on_delete: :cascade
|
add_foreign_key "conversation_mutes", "accounts", name: "fk_225b4212bb", on_delete: :cascade
|
||||||
add_foreign_key "conversation_mutes", "conversations", on_delete: :cascade
|
add_foreign_key "conversation_mutes", "conversations", on_delete: :cascade
|
||||||
add_foreign_key "custom_filter_keywords", "custom_filters", on_delete: :cascade
|
add_foreign_key "custom_filter_keywords", "custom_filters", on_delete: :cascade
|
||||||
|
|
|
||||||
|
|
@ -17,3 +17,7 @@ Fabricator(:account) do
|
||||||
discoverable true
|
discoverable true
|
||||||
indexable true
|
indexable true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Fabricator(:remote_account, from: :account) do
|
||||||
|
domain 'example.com'
|
||||||
|
end
|
||||||
|
|
|
||||||
10
spec/fabricators/collection_fabricator.rb
Normal file
10
spec/fabricators/collection_fabricator.rb
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
Fabricator(:collection) do
|
||||||
|
account { Fabricate.build(:account) }
|
||||||
|
name { sequence(:name) { |i| "Collection ##{i}" } }
|
||||||
|
description 'People to follow'
|
||||||
|
local true
|
||||||
|
sensitive false
|
||||||
|
discoverable true
|
||||||
|
end
|
||||||
15
spec/fabricators/collection_item_fabricator.rb
Normal file
15
spec/fabricators/collection_item_fabricator.rb
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
Fabricator(:collection_item) do
|
||||||
|
collection { Fabricate.build(:collection) }
|
||||||
|
account { Fabricate.build(:account) }
|
||||||
|
position 1
|
||||||
|
state :accepted
|
||||||
|
end
|
||||||
|
|
||||||
|
Fabricator(:unverified_remote_collection_item, from: :collection_item) do
|
||||||
|
account nil
|
||||||
|
state :pending
|
||||||
|
object_uri { Fabricate.build(:remote_account).uri }
|
||||||
|
approval_uri { sequence(:uri) { |i| "https://example.com/authorizations/#{i}" } }
|
||||||
|
end
|
||||||
41
spec/models/collection_item_spec.rb
Normal file
41
spec/models/collection_item_spec.rb
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe CollectionItem do
|
||||||
|
describe 'Validations' do
|
||||||
|
subject { Fabricate.build(:collection_item) }
|
||||||
|
|
||||||
|
it { is_expected.to define_enum_for(:state) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_numericality_of(:position).only_integer.is_greater_than(0) }
|
||||||
|
|
||||||
|
context 'when account inclusion is accepted' do
|
||||||
|
subject { Fabricate.build(:collection_item, state: :accepted) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:account) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when item is local and account is remote' do
|
||||||
|
subject { Fabricate.build(:collection_item, account: remote_account) }
|
||||||
|
|
||||||
|
let(:remote_account) { Fabricate.build(:remote_account) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:activity_uri) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when item is not local' do
|
||||||
|
subject { Fabricate.build(:collection_item, collection: remote_collection) }
|
||||||
|
|
||||||
|
let(:remote_collection) { Fabricate.build(:collection, local: false) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_absence_of(:approval_uri) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when account is not present' do
|
||||||
|
subject { Fabricate.build(:unverified_remote_collection_item) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:object_uri) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
45
spec/models/collection_spec.rb
Normal file
45
spec/models/collection_spec.rb
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Collection do
|
||||||
|
describe 'Validations' do
|
||||||
|
subject { Fabricate.build :collection }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:name) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:description) }
|
||||||
|
|
||||||
|
context 'when collection is remote' do
|
||||||
|
subject { Fabricate.build :collection, local: false }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:uri) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:original_number_of_items) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when using a hashtag as category' do
|
||||||
|
subject { Fabricate.build(:collection, tag:) }
|
||||||
|
|
||||||
|
context 'when hashtag is usable' do
|
||||||
|
let(:tag) { Fabricate.build(:tag) }
|
||||||
|
|
||||||
|
it { is_expected.to be_valid }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when hashtag is not usable' do
|
||||||
|
let(:tag) { Fabricate.build(:tag, usable: false) }
|
||||||
|
|
||||||
|
it { is_expected.to_not be_valid }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when there are more items than allowed' do
|
||||||
|
subject { Fabricate.build(:collection, collection_items:) }
|
||||||
|
|
||||||
|
let(:collection_items) { Fabricate.build_times(described_class::MAX_ITEMS + 1, :collection_item, collection: nil) }
|
||||||
|
|
||||||
|
it { is_expected.to_not be_valid }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -87,4 +87,17 @@ RSpec.describe 'Media' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'GET /media/:medium_id/player' do
|
||||||
|
context 'when media type is not large format type' do
|
||||||
|
let(:media) { Fabricate :media_attachment }
|
||||||
|
|
||||||
|
it 'responds with not found' do
|
||||||
|
get medium_player_path(media)
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -4,19 +4,47 @@ require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe 'Media' do
|
RSpec.describe 'Media' do
|
||||||
describe 'Player page' do
|
describe 'Player page' do
|
||||||
|
let(:status) { Fabricate :status }
|
||||||
|
|
||||||
|
before { status.media_attachments << media }
|
||||||
|
|
||||||
context 'when signed in' do
|
context 'when signed in' do
|
||||||
before { sign_in Fabricate(:user) }
|
before { sign_in Fabricate(:user) }
|
||||||
|
|
||||||
it 'visits the media player page and renders the media' do
|
context 'when media type is video' do
|
||||||
status = Fabricate :status
|
let(:media) { Fabricate :media_attachment, type: :video }
|
||||||
media = Fabricate :media_attachment, type: :video
|
|
||||||
status.media_attachments << media
|
|
||||||
|
|
||||||
visit medium_player_path(media)
|
it 'visits the player page and renders media' do
|
||||||
|
visit medium_player_path(media)
|
||||||
|
|
||||||
expect(page)
|
expect(page)
|
||||||
.to have_css('body', class: 'player')
|
.to have_css('body', class: 'player')
|
||||||
.and have_css('div[data-component="Video"]')
|
.and have_css('div[data-component="Video"] video[controls="controls"] source')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when media type is gifv' do
|
||||||
|
let(:media) { Fabricate :media_attachment, type: :gifv }
|
||||||
|
|
||||||
|
it 'visits the player page and renders media' do
|
||||||
|
visit medium_player_path(media)
|
||||||
|
|
||||||
|
expect(page)
|
||||||
|
.to have_css('body', class: 'player')
|
||||||
|
.and have_css('div[data-component="MediaGallery"] video[loop="loop"] source')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when media type is audio' do
|
||||||
|
let(:media) { Fabricate :media_attachment, type: :audio }
|
||||||
|
|
||||||
|
it 'visits the player page and renders media' do
|
||||||
|
visit medium_player_path(media)
|
||||||
|
|
||||||
|
expect(page)
|
||||||
|
.to have_css('body', class: 'player')
|
||||||
|
.and have_css('div[data-component="Audio"] audio source')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
12
yarn.lock
12
yarn.lock
|
|
@ -6062,9 +6062,9 @@ __metadata:
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"core-js@npm:^3.30.2, core-js@npm:^3.45.0":
|
"core-js@npm:^3.30.2, core-js@npm:^3.45.0":
|
||||||
version: 3.46.0
|
version: 3.47.0
|
||||||
resolution: "core-js@npm:3.46.0"
|
resolution: "core-js@npm:3.47.0"
|
||||||
checksum: 10c0/12d559d39a58227881bc6c86c36d24dcfbe2d56e52dac42e35e8643278172596ab67f57ede98baf40b153ca1b830f37420ea32c3f7417c0c5a1fed46438ae187
|
checksum: 10c0/9b1a7088b7c660c7b8f1d4c90bb1816a8d5352ebdcb7bc742e3a0e4eb803316b5aa17bacb8769522342196351a5430178f46914644f2bfdb94ce0ced3c7fd523
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|
@ -13988,8 +13988,8 @@ __metadata:
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"vite@npm:^6.0.0 || ^7.0.0, vite@npm:^7.1.1":
|
"vite@npm:^6.0.0 || ^7.0.0, vite@npm:^7.1.1":
|
||||||
version: 7.2.2
|
version: 7.2.4
|
||||||
resolution: "vite@npm:7.2.2"
|
resolution: "vite@npm:7.2.4"
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: "npm:^0.25.0"
|
esbuild: "npm:^0.25.0"
|
||||||
fdir: "npm:^6.5.0"
|
fdir: "npm:^6.5.0"
|
||||||
|
|
@ -14038,7 +14038,7 @@ __metadata:
|
||||||
optional: true
|
optional: true
|
||||||
bin:
|
bin:
|
||||||
vite: bin/vite.js
|
vite: bin/vite.js
|
||||||
checksum: 10c0/9c76ee441f8dbec645ddaecc28d1f9cf35670ffa91cff69af7b1d5081545331603f0b1289d437b2fa8dc43cdc77b4d96b5bd9c9aed66310f490cb1a06f9c814c
|
checksum: 10c0/26aa0cad01d6e00f17c837b2a0587ab52f6bd0d0e64606b4220cfc58fa5fa76a4095ef3ea27c886bea542a346363912c4fad9f9462ef1e6757262fedfd5196b2
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user