Merge git://github.com/tootsuite/mastodon into tootsuite-master
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import detectPassiveEvents from 'detect-passive-events';
|
||||
import scrollTop from '../scroll';
|
||||
|
||||
export default class Column extends React.PureComponent {
|
||||
@@ -30,16 +31,19 @@ export default class Column extends React.PureComponent {
|
||||
this.node = c;
|
||||
}
|
||||
|
||||
componentDidMount () {
|
||||
this.node.addEventListener('wheel', this.handleWheel, detectPassiveEvents ? { passive: true } : false);
|
||||
}
|
||||
|
||||
componentWillUnmount () {
|
||||
this.node.removeEventListener('wheel', this.handleWheel);
|
||||
}
|
||||
|
||||
render () {
|
||||
const { children } = this.props;
|
||||
|
||||
return (
|
||||
<div
|
||||
role='region'
|
||||
className='column'
|
||||
ref={this.setRef}
|
||||
onWheel={this.handleWheel}
|
||||
>
|
||||
<div role='region' className='column' ref={this.setRef}>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -3,6 +3,7 @@ import { FormattedMessage } from 'react-intl';
|
||||
|
||||
const LoadingIndicator = () => (
|
||||
<div className='loading-indicator'>
|
||||
<div className='loading-indicator__figure' />
|
||||
<FormattedMessage id='loading_indicator.label' defaultMessage='Loading...' />
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -15,6 +15,7 @@ const messages = defineMessages({
|
||||
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
|
||||
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
|
||||
reply: { id: 'status.reply', defaultMessage: 'Reply' },
|
||||
share: { id: 'status.share', defaultMessage: 'Share' },
|
||||
replyAll: { id: 'status.replyAll', defaultMessage: 'Reply to thread' },
|
||||
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
|
||||
cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
|
||||
@@ -60,6 +61,13 @@ export default class StatusActionBar extends ImmutablePureComponent {
|
||||
this.props.onReply(this.props.status, this.context.router.history);
|
||||
}
|
||||
|
||||
handleShareClick = () => {
|
||||
navigator.share({
|
||||
text: this.props.status.get('search_index'),
|
||||
url: this.props.status.get('url'),
|
||||
});
|
||||
}
|
||||
|
||||
handleFavouriteClick = () => {
|
||||
this.props.onFavourite(this.props.status);
|
||||
}
|
||||
@@ -139,11 +147,16 @@ export default class StatusActionBar extends ImmutablePureComponent {
|
||||
replyTitle = intl.formatMessage(messages.replyAll);
|
||||
}
|
||||
|
||||
const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
|
||||
<IconButton className='status__action-bar-button' title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShareClick} />
|
||||
);
|
||||
|
||||
return (
|
||||
<div className='status__action-bar'>
|
||||
<IconButton className='status__action-bar-button' disabled={anonymousAccess} title={replyTitle} icon={replyIcon} onClick={this.handleReplyClick} />
|
||||
<IconButton className='status__action-bar-button' disabled={anonymousAccess || reblogDisabled} active={status.get('reblogged')} title={reblogDisabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} />
|
||||
<IconButton className='status__action-bar-button star-icon' disabled={anonymousAccess} animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} />
|
||||
{shareButton}
|
||||
|
||||
<div className='status__action-bar-dropdown'>
|
||||
<DropdownMenu disabled={anonymousAccess} items={menu} icon='ellipsis-h' size={18} direction='right' ariaLabel='More' />
|
||||
|
||||
@@ -31,16 +31,18 @@ export default class StatusList extends ImmutablePureComponent {
|
||||
intersectionObserverWrapper = new IntersectionObserverWrapper();
|
||||
|
||||
handleScroll = debounce(() => {
|
||||
const { scrollTop, scrollHeight, clientHeight } = this.node;
|
||||
const offset = scrollHeight - scrollTop - clientHeight;
|
||||
this._oldScrollPosition = scrollHeight - scrollTop;
|
||||
if (this.node) {
|
||||
const { scrollTop, scrollHeight, clientHeight } = this.node;
|
||||
const offset = scrollHeight - scrollTop - clientHeight;
|
||||
this._oldScrollPosition = scrollHeight - scrollTop;
|
||||
|
||||
if (250 > offset && this.props.onScrollToBottom && !this.props.isLoading) {
|
||||
this.props.onScrollToBottom();
|
||||
} else if (scrollTop < 100 && this.props.onScrollToTop) {
|
||||
this.props.onScrollToTop();
|
||||
} else if (this.props.onScroll) {
|
||||
this.props.onScroll();
|
||||
if (250 > offset && this.props.onScrollToBottom && !this.props.isLoading) {
|
||||
this.props.onScrollToBottom();
|
||||
} else if (scrollTop < 100 && this.props.onScrollToTop) {
|
||||
this.props.onScrollToTop();
|
||||
} else if (this.props.onScroll) {
|
||||
this.props.onScroll();
|
||||
}
|
||||
}
|
||||
}, 200, {
|
||||
trailing: true,
|
||||
|
||||
@@ -16,7 +16,6 @@ const messages = defineMessages({
|
||||
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
||||
report: { id: 'account.report', defaultMessage: 'Report @{name}' },
|
||||
media: { id: 'account.media', defaultMessage: 'Media' },
|
||||
disclaimer: { id: 'account.disclaimer', defaultMessage: 'This user is from another instance. This number may be larger.' },
|
||||
blockDomain: { id: 'account.block_domain', defaultMessage: 'Hide everything from {domain}' },
|
||||
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },
|
||||
});
|
||||
@@ -68,7 +67,19 @@ export default class ActionBar extends React.PureComponent {
|
||||
|
||||
if (account.get('acct') !== account.get('username')) {
|
||||
const domain = account.get('acct').split('@')[1];
|
||||
extraInfo = <abbr title={intl.formatMessage(messages.disclaimer)}>*</abbr>;
|
||||
|
||||
extraInfo = (
|
||||
<div className='account__disclaimer'>
|
||||
<FormattedMessage
|
||||
id='account.disclaimer_full'
|
||||
defaultMessage="Information below may reflect the user's profile incompletely."
|
||||
/>
|
||||
{' '}
|
||||
<a target='_blank' rel='noopener' href={account.get('url')}>
|
||||
<FormattedMessage id='account.view_full_profile' defaultMessage='View full profile' />
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
|
||||
menu.push(null);
|
||||
|
||||
@@ -80,26 +91,30 @@ export default class ActionBar extends React.PureComponent {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='account__action-bar'>
|
||||
<div className='account__action-bar-dropdown'>
|
||||
<DropdownMenu items={menu} icon='bars' size={24} direction='right' />
|
||||
</div>
|
||||
<div>
|
||||
{extraInfo}
|
||||
|
||||
<div className='account__action-bar-links'>
|
||||
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}`}>
|
||||
<span><FormattedMessage id='account.posts' defaultMessage='Posts' /></span>
|
||||
<strong><FormattedNumber value={account.get('statuses_count')} /> {extraInfo}</strong>
|
||||
</Link>
|
||||
<div className='account__action-bar'>
|
||||
<div className='account__action-bar-dropdown'>
|
||||
<DropdownMenu items={menu} icon='bars' size={24} direction='right' />
|
||||
</div>
|
||||
|
||||
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}/following`}>
|
||||
<span><FormattedMessage id='account.follows' defaultMessage='Follows' /></span>
|
||||
<strong><FormattedNumber value={account.get('following_count')} /> {extraInfo}</strong>
|
||||
</Link>
|
||||
<div className='account__action-bar-links'>
|
||||
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}`}>
|
||||
<span><FormattedMessage id='account.posts' defaultMessage='Posts' /></span>
|
||||
<strong><FormattedNumber value={account.get('statuses_count')} /></strong>
|
||||
</Link>
|
||||
|
||||
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}/followers`}>
|
||||
<span><FormattedMessage id='account.followers' defaultMessage='Followers' /></span>
|
||||
<strong><FormattedNumber value={account.get('followers_count')} /> {extraInfo}</strong>
|
||||
</Link>
|
||||
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}/following`}>
|
||||
<span><FormattedMessage id='account.follows' defaultMessage='Follows' /></span>
|
||||
<strong><FormattedNumber value={account.get('following_count')} /></strong>
|
||||
</Link>
|
||||
|
||||
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}/followers`}>
|
||||
<span><FormattedMessage id='account.followers' defaultMessage='Followers' /></span>
|
||||
<strong><FormattedNumber value={account.get('followers_count')} /></strong>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -16,13 +16,14 @@ import SensitiveButtonContainer from '../containers/sensitive_button_container';
|
||||
import EmojiPickerDropdown from './emoji_picker_dropdown';
|
||||
import UploadFormContainer from '../containers/upload_form_container';
|
||||
import WarningContainer from '../containers/warning_container';
|
||||
import { isMobile } from '../../../is_mobile';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { length } from 'stringz';
|
||||
import { isMobile } from '../../../is_mobile';
|
||||
|
||||
const messages = defineMessages({
|
||||
placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' },
|
||||
spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Content warning' },
|
||||
spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' },
|
||||
publish: { id: 'compose_form.publish', defaultMessage: 'Toot' },
|
||||
publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}!' },
|
||||
});
|
||||
|
||||
@@ -52,14 +52,8 @@ class Bundle extends React.Component {
|
||||
load = (props) => {
|
||||
const { fetchComponent, onFetch, onFetchSuccess, onFetchFail, renderDelay } = props || this.props;
|
||||
|
||||
this.setState({ mod: undefined });
|
||||
onFetch();
|
||||
|
||||
if (renderDelay !== 0) {
|
||||
this.timestamp = new Date();
|
||||
this.timeout = setTimeout(() => this.setState({ forceRender: true }), renderDelay);
|
||||
}
|
||||
|
||||
if (Bundle.cache[fetchComponent.name]) {
|
||||
const mod = Bundle.cache[fetchComponent.name];
|
||||
|
||||
@@ -68,6 +62,13 @@ class Bundle extends React.Component {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
this.setState({ mod: undefined });
|
||||
|
||||
if (renderDelay !== 0) {
|
||||
this.timestamp = new Date();
|
||||
this.timeout = setTimeout(() => this.setState({ forceRender: true }), renderDelay);
|
||||
}
|
||||
|
||||
return fetchComponent()
|
||||
.then((mod) => {
|
||||
Bundle.cache[fetchComponent.name] = mod;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { injectIntl } from 'react-intl';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
|
||||
@@ -21,6 +22,7 @@ const componentMap = {
|
||||
'FAVOURITES': FavouritedStatuses,
|
||||
};
|
||||
|
||||
@injectIntl
|
||||
export default class ColumnsArea extends ImmutablePureComponent {
|
||||
|
||||
static contextTypes = {
|
||||
@@ -28,6 +30,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
intl: PropTypes.object.isRequired,
|
||||
columns: ImmutablePropTypes.list.isRequired,
|
||||
singleColumn: PropTypes.bool,
|
||||
children: PropTypes.node,
|
||||
@@ -64,8 +67,8 @@ export default class ColumnsArea extends ImmutablePureComponent {
|
||||
|
||||
renderView = (link, index) => {
|
||||
const columnIndex = getIndex(this.context.router.history.location.pathname);
|
||||
const title = link.props.children[1] && React.cloneElement(link.props.children[1]);
|
||||
const icon = (link.props.children[0] || link.props.children).props.className.split(' ')[2].split('-')[1];
|
||||
const title = this.props.intl.formatMessage({ id: link.props['data-preview-title-id'] });
|
||||
const icon = link.props['data-preview-icon'];
|
||||
|
||||
const view = (index === columnIndex) ?
|
||||
React.cloneElement(this.props.children) :
|
||||
|
||||
@@ -3,14 +3,14 @@ import NavLink from 'react-router-dom/NavLink';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
export const links = [
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' to='/statuses/new'><i className='fa fa-fw fa-pencil' /><FormattedMessage id='tabs_bar.compose' defaultMessage='Compose' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' to='/timelines/home'><i className='fa fa-fw fa-home' /><FormattedMessage id='tabs_bar.home' defaultMessage='Home' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' to='/notifications'><i className='fa fa-fw fa-bell' /><FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' to='/statuses/new' data-preview-title-id='tabs_bar.compose' data-preview-icon='pencil' ><i className='fa fa-fw fa-pencil' /><FormattedMessage id='tabs_bar.compose' defaultMessage='Compose' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' to='/timelines/home' data-preview-title-id='column.home' data-preview-icon='home' ><i className='fa fa-fw fa-home' /><FormattedMessage id='tabs_bar.home' defaultMessage='Home' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' to='/notifications' data-preview-title-id='column.notifications' data-preview-icon='bell' ><i className='fa fa-fw fa-bell' /><FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></NavLink>,
|
||||
|
||||
<NavLink className='tabs-bar__link secondary' activeClassName='active' to='/timelines/public/local'><i className='fa fa-fw fa-users' /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link secondary' activeClassName='active' exact to='/timelines/public'><i className='fa fa-fw fa-globe' /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link secondary' activeClassName='active' to='/timelines/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><i className='fa fa-fw fa-users' /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link secondary' activeClassName='active' exact to='/timelines/public' data-preview-title-id='column.public' data-preview-icon='globe' ><i className='fa fa-fw fa-globe' /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>,
|
||||
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' style={{ flexGrow: '0', flexBasis: '30px' }} to='/getting-started'><i className='fa fa-fw fa-asterisk' /></NavLink>,
|
||||
<NavLink className='tabs-bar__link primary' activeClassName='active' style={{ flexGrow: '0', flexBasis: '30px' }} to='/getting-started' data-preview-title-id='tabs_bar.federated_timeline' data-preview-icon='asterisk' ><i className='fa fa-fw fa-asterisk' /></NavLink>,
|
||||
];
|
||||
|
||||
export function getIndex (path) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "حظر @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "هذا المستخدم من مثيل خادم آخر. قد يكون هذا الرقم أكبر.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "تعديل الملف الشخصي",
|
||||
"account.follow": "تابِع",
|
||||
"account.followers": "المتابعون",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "إلغاء المتابعة",
|
||||
"account.unmute": "إلغاء الكتم عن @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "يمكنك ضغط {combo} لتخطّي هذه في المرّة القادمة",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Блокирай",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "This user is from another instance. This number may be larger.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Редактирай профила си",
|
||||
"account.follow": "Последвай",
|
||||
"account.followers": "Последователи",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Не следвай",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Bloquejar @{name}",
|
||||
"account.block_domain": "Amagar tot de {domain}",
|
||||
"account.disclaimer": "Aquest usuari és d'un altra instància. Aquest número podria ser més gran.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
"account.follow": "Seguir",
|
||||
"account.followers": "Seguidors",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Mostra {domain}",
|
||||
"account.unfollow": "Deixar de seguir",
|
||||
"account.unmute": "Treure silenci de @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Pots premer {combo} per saltar-te això el proper cop",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "@{name} blocken",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "Dieser Benutzer ist von einer anderen Instanz. Diese Zahl könnte größer sein.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Profil bearbeiten",
|
||||
"account.follow": "Folgen",
|
||||
"account.followers": "Folgende",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Entfolgen",
|
||||
"account.unmute": "@{name} nicht mehr stummschalten",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Du kannst {combo} drücken, um dies beim nächsten Mal zu überspringen",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -358,10 +358,6 @@
|
||||
"defaultMessage": "Media",
|
||||
"id": "account.media"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "This user is from another instance. This number may be larger.",
|
||||
"id": "account.disclaimer"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Hide everything from {domain}",
|
||||
"id": "account.block_domain"
|
||||
@@ -370,6 +366,14 @@
|
||||
"defaultMessage": "Unhide {domain}",
|
||||
"id": "account.unblock_domain"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Information below may reflect the user's profile incompletely.",
|
||||
"id": "account.disclaimer_full"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "View full profile",
|
||||
"id": "account.view_full_profile"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Posts",
|
||||
"id": "account.posts"
|
||||
@@ -452,7 +456,7 @@
|
||||
"id": "compose_form.placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Content warning",
|
||||
"defaultMessage": "Write your warning here",
|
||||
"id": "compose_form.spoiler_placeholder"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Block @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "This user is from another instance. This number may be larger.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Edit profile",
|
||||
"account.follow": "Follow",
|
||||
"account.followers": "Followers",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Unfollow",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
@@ -45,7 +46,7 @@
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive": "Mark media as sensitive",
|
||||
"compose_form.spoiler": "Hide text behind warning",
|
||||
"compose_form.spoiler_placeholder": "Content warning",
|
||||
"compose_form.spoiler_placeholder": "Write your warning here",
|
||||
"confirmation_modal.cancel": "Cancel",
|
||||
"confirmations.block.confirm": "Block",
|
||||
"confirmations.block.message": "Are you sure you want to block {name}?",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Bloki @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "This user is from another instance. This number may be larger.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Redakti la profilon",
|
||||
"account.follow": "Sekvi",
|
||||
"account.followers": "Sekvantoj",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Malsekvi",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Bloquear",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "This user is from another instance. This number may be larger.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
"account.follow": "Seguir",
|
||||
"account.followers": "Seguidores",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Dejar de seguir",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "مسدودسازی @{name}",
|
||||
"account.block_domain": "پنهانسازی همه چیز از سرور {domain}",
|
||||
"account.disclaimer": "این کاربر عضو سرور متفاوتی است. شاید عدد واقعی بیشتر از این باشد.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "ویرایش نمایه",
|
||||
"account.follow": "پی بگیرید",
|
||||
"account.followers": "پیگیران",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "رفع پنهانسازی از {domain}",
|
||||
"account.unfollow": "پایان پیگیری",
|
||||
"account.unmute": "باصدا کردن @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Estä @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "This user is from another instance. This number may be larger.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Muokkaa",
|
||||
"account.follow": "Seuraa",
|
||||
"account.followers": "Seuraajia",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Lopeta seuraaminen",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Bloquer",
|
||||
"account.block_domain": "Tout masquer de {domain}",
|
||||
"account.disclaimer": "Ce compte est situé sur une autre instance. Les nombres peuvent être plus grands.",
|
||||
"account.disclaimer_full": "Les données ci-dessous peuvent ne pas refléter ce profil dans sa totalité.",
|
||||
"account.edit_profile": "Modifier le profil",
|
||||
"account.follow": "Suivre",
|
||||
"account.followers": "Abonné⋅e⋅s",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Ne plus masquer {domain}",
|
||||
"account.unfollow": "Ne plus suivre",
|
||||
"account.unmute": "Ne plus masquer",
|
||||
"account.view_full_profile": "Afficher le profil complet",
|
||||
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour pouvoir passer ceci, la prochaine fois",
|
||||
"bundle_column_error.body": "Une erreur s'est produite lors du chargement de ce composant.",
|
||||
"bundle_column_error.retry": "Réessayer",
|
||||
@@ -41,11 +42,11 @@
|
||||
"compose_form.lock_disclaimer.lock": "verrouillé",
|
||||
"compose_form.placeholder": "Qu’avez-vous en tête ?",
|
||||
"compose_form.privacy_disclaimer": "Votre statut privé va être transmis aux personnes mentionnées sur {domains}. Avez-vous confiance en {domainsCount, plural, one {ce serveur} other {ces serveurs}} pour ne pas divulguer votre statut ? Les statuts privés ne fonctionnent que sur les instances de Mastodon. Si {domains} {domainsCount, plural, one {n’est pas une instance de Mastodon} other {ne sont pas des instances de Mastodon}}, il n’y aura aucune indication que votre statut est privé, et il pourrait être partagé ou rendu visible d’une autre manière à d’autres personnes imprévues.",
|
||||
"compose_form.publish": "Pouet ",
|
||||
"compose_form.publish": "Pouet ",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive": "Marquer le média comme délicat",
|
||||
"compose_form.sensitive": "Marquer le média comme sensible",
|
||||
"compose_form.spoiler": "Masquer le texte derrière un avertissement",
|
||||
"compose_form.spoiler_placeholder": "Avertissement",
|
||||
"compose_form.spoiler_placeholder": "Écrivez ici votre avertissement",
|
||||
"confirmation_modal.cancel": "Annuler",
|
||||
"confirmations.block.confirm": "Bloquer",
|
||||
"confirmations.block.message": "Confirmez vous le blocage de {name} ?",
|
||||
@@ -68,13 +69,13 @@
|
||||
"emoji_button.symbols": "Symboles",
|
||||
"emoji_button.travel": "Lieux et voyages",
|
||||
"empty_column.community": "Le fil public local est vide. Écrivez-donc quelque chose pour le remplir !",
|
||||
"empty_column.hashtag": "Il n’y a encore aucun contenu relatif à ce hashtag",
|
||||
"empty_column.hashtag": "Il n’y a encore aucun contenu associé à ce hashtag",
|
||||
"empty_column.home": "Vous ne suivez encore personne. Visitez {public} ou bien utilisez la recherche pour vous connecter à d’autres utilisateur⋅ice⋅s.",
|
||||
"empty_column.home.inactivity": "Votre accueil est vide. Si vous ne vous êtes pas connecté⋅e depuis un moment, il se remplira automatiquement très bientôt.",
|
||||
"empty_column.home.public_timeline": "le fil public",
|
||||
"empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres utilisateur⋅ice⋅s pour débuter la conversation.",
|
||||
"empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice⋅s d’autres instances pour remplir le fil public.",
|
||||
"follow_request.authorize": "Autoriser",
|
||||
"follow_request.authorize": "Accepter",
|
||||
"follow_request.reject": "Rejeter",
|
||||
"getting_started.appsshort": "Applications",
|
||||
"getting_started.faq": "FAQ",
|
||||
@@ -126,8 +127,8 @@
|
||||
"onboarding.page_one.welcome": "Bienvenue sur Mastodon !",
|
||||
"onboarding.page_six.admin": "L’administrateur⋅trice de votre instance est {admin}",
|
||||
"onboarding.page_six.almost_done": "Nous y sommes presque…",
|
||||
"onboarding.page_six.appetoot": "Bon Appetoot!",
|
||||
"onboarding.page_six.apps_available": "De nombreuses {apps} sont disponibles pour iOS, Android et autres. Et maintenant… Bon Appetoot!",
|
||||
"onboarding.page_six.appetoot": "Bon Appétoot!",
|
||||
"onboarding.page_six.apps_available": "De nombreuses {apps} sont disponibles pour iOS, Android et autres. Et maintenant… Bon Appétoot!",
|
||||
"onboarding.page_six.github": "Mastodon est un logiciel libre, gratuit et open-source. Vous pouvez rapporter des bogues, suggérer des fonctionnalités, ou contribuer à son développement sur {github}.",
|
||||
"onboarding.page_six.guidelines": "règles de la communauté",
|
||||
"onboarding.page_six.read_guidelines": "S’il vous plaît, n’oubliez pas de lire les {guidelines} !",
|
||||
@@ -151,7 +152,7 @@
|
||||
"report.target": "Signalement",
|
||||
"search.placeholder": "Rechercher",
|
||||
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
|
||||
"standalone.public_title": "Coup d'oeil",
|
||||
"standalone.public_title": "Coup d'œil",
|
||||
"status.cannot_reblog": "Cette publication ne peut être boostée",
|
||||
"status.delete": "Effacer",
|
||||
"status.favourite": "Ajouter aux favoris",
|
||||
@@ -165,8 +166,8 @@
|
||||
"status.reply": "Répondre",
|
||||
"status.replyAll": "Répondre au fil",
|
||||
"status.report": "Signaler @{name}",
|
||||
"status.sensitive_toggle": "Cliquer pour dévoiler",
|
||||
"status.sensitive_warning": "Contenu délicat",
|
||||
"status.sensitive_toggle": "Cliquer pour afficher",
|
||||
"status.sensitive_warning": "Contenu sensible",
|
||||
"status.show_less": "Replier",
|
||||
"status.show_more": "Déplier",
|
||||
"status.unmute_conversation": "Ne plus masquer la conversation",
|
||||
@@ -180,7 +181,7 @@
|
||||
"upload_form.undo": "Annuler",
|
||||
"upload_progress.label": "Envoi en cours…",
|
||||
"video_player.expand": "Agrandir la vidéo",
|
||||
"video_player.toggle_sound": "Mettre/Couper le son",
|
||||
"video_player.toggle_sound": "Activer/Désactiver le son",
|
||||
"video_player.toggle_visible": "Afficher/Cacher la vidéo",
|
||||
"video_player.video_error": "Erreur lors de la lecture de la vidéo"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "חסימת @{name}",
|
||||
"account.block_domain": "להסתיר הכל מהקהילה {domain}",
|
||||
"account.disclaimer": "משתמש זה מגיע מקהילה אחרת. המספר הזה עשוי להיות גדול יותר.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "עריכת פרופיל",
|
||||
"account.follow": "מעקב",
|
||||
"account.followers": "עוקבים",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "הסר חסימה מקהילת {domain}",
|
||||
"account.unfollow": "הפסקת מעקב",
|
||||
"account.unmute": "הפסקת השתקת @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blokiraj @{name}",
|
||||
"account.block_domain": "Sakrij sve sa {domain}",
|
||||
"account.disclaimer": "Ovaj korisnik je sa druge instance. Ovaj broj bi mogao biti veći.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Uredi profil",
|
||||
"account.follow": "Slijedi",
|
||||
"account.followers": "Sljedbenici",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Otkrij {domain}",
|
||||
"account.unfollow": "Prestani slijediti",
|
||||
"account.unmute": "Poništi utišavanje @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Možeš pritisnuti {combo} kako bi ovo preskočio sljedeći put",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blokkolás",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "This user is from another instance. This number may be larger.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Profil szerkesztése",
|
||||
"account.follow": "Követés",
|
||||
"account.followers": "Követők",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Követés abbahagyása",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blokir @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "Pengguna ini berasal dari server lain. Angka berikut mungkin lebih besar.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Ubah profil",
|
||||
"account.follow": "Ikuti",
|
||||
"account.followers": "Pengikut",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Berhenti mengikuti",
|
||||
"account.unmute": "Berhenti membisukan @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blokusar @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "Ca uzero esas de altra instaluro. Ca nombro forsan esas plu granda.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Modifikar profilo",
|
||||
"account.follow": "Sequar",
|
||||
"account.followers": "Sequanti",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Ne plus sequar",
|
||||
"account.unmute": "Ne plus celar @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blocca @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "Questo utente si trova su un altro server. Questo numero potrebbe essere maggiore.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Modifica profilo",
|
||||
"account.follow": "Segui",
|
||||
"account.followers": "Seguaci",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Non seguire",
|
||||
"account.unmute": "Non silenziare @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "ブロック",
|
||||
"account.block_domain": "{domain}全体を非表示",
|
||||
"account.disclaimer": "このユーザーは他のインスタンスに所属しているため、数字が正確で無い場合があります。",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "プロフィールを編集",
|
||||
"account.follow": "フォロー",
|
||||
"account.followers": "フォロワー",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "{domain}を表示",
|
||||
"account.unfollow": "フォロー解除",
|
||||
"account.unmute": "ミュート解除",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "次からは{combo}を押せば、これをスキップできます。",
|
||||
"bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。",
|
||||
"bundle_column_error.retry": "再試行",
|
||||
@@ -45,7 +46,7 @@
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive": "メディアを閲覧注意としてマークする",
|
||||
"compose_form.spoiler": "テキストを隠す",
|
||||
"compose_form.spoiler_placeholder": "警告",
|
||||
"compose_form.spoiler_placeholder": "ここに警告を書いてください",
|
||||
"confirmation_modal.cancel": "キャンセル",
|
||||
"confirmations.block.confirm": "ブロック",
|
||||
"confirmations.block.message": "本当に{name}をブロックしますか?",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "차단",
|
||||
"account.block_domain": "{domain} 전체를 숨김",
|
||||
"account.disclaimer": "이 사용자는 다른 인스턴스에 소속되어 있으므로, 수치가 정확하지 않을 수도 있습니다.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "프로필 편집",
|
||||
"account.follow": "팔로우",
|
||||
"account.followers": "팔로워",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "{domain} 숨김 해제",
|
||||
"account.unfollow": "팔로우 해제",
|
||||
"account.unmute": "뮤트 해제",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "다음부터 {combo}를 누르면 이 과정을 건너뛸 수 있습니다.",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blokkeer @{name}",
|
||||
"account.block_domain": "Negeer alles van {domain}",
|
||||
"account.disclaimer": "Deze gebruiker zit op een andere server. Dit getal kan hoger zijn.",
|
||||
"account.disclaimer_full": "De informatie hieronder kan mogelijk een incompleet beeld geven van dit gebruikersprofiel.",
|
||||
"account.edit_profile": "Profiel bewerken",
|
||||
"account.follow": "Volgen",
|
||||
"account.followers": "Volgers",
|
||||
@@ -17,13 +17,14 @@
|
||||
"account.unblock_domain": "{domain} niet meer negeren",
|
||||
"account.unfollow": "Ontvolgen",
|
||||
"account.unmute": "@{name} niet meer negeren",
|
||||
"account.view_full_profile": "Volledig profiel tonen",
|
||||
"boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
"bundle_column_error.title": "Network error",
|
||||
"bundle_modal_error.close": "Close",
|
||||
"bundle_modal_error.message": "Something went wrong while loading this component.",
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"bundle_column_error.body": "Tijdens het laden van dit onderdeel is er iets fout gegaan.",
|
||||
"bundle_column_error.retry": "Opnieuw proberen",
|
||||
"bundle_column_error.title": "Netwerkfout",
|
||||
"bundle_modal_error.close": "Sluiten",
|
||||
"bundle_modal_error.message": "Tijdens het laden van dit onderdeel is er iets fout gegaan.",
|
||||
"bundle_modal_error.retry": "Opnieuw proberen",
|
||||
"column.blocks": "Geblokkeerde gebruikers",
|
||||
"column.community": "Lokale tijdlijn",
|
||||
"column.favourites": "Favorieten",
|
||||
@@ -43,20 +44,20 @@
|
||||
"compose_form.privacy_disclaimer": "Jouw privétoot wordt afgeleverd aan de vermelde gebruikers op {domains}. Vertrouw jij {domainsCount, plural, one {die server} other {die servers}}? Het privé plaatsen van toots werkt alleen op Mastodon-servers. Wanneer {domains} {domainsCount, plural, one {geen Mastodon-server is} other {geen Mastodon-servers zijn}}, dan wordt er niet aangegeven dat de toot privé is, waardoor het kan worden geboost of op een andere manier zichtbaar wordt gemaakt voor mensen waarvoor het niet was bedoeld.",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive": "Media als gevoelig markeren",
|
||||
"compose_form.sensitive": "Media als gevoelig markeren (nsfw)",
|
||||
"compose_form.spoiler": "Tekst achter waarschuwing verbergen",
|
||||
"compose_form.spoiler_placeholder": "Waarschuwingstekst",
|
||||
"confirmation_modal.cancel": "Annuleren",
|
||||
"confirmations.block.confirm": "Blokkeren",
|
||||
"confirmations.block.message": "Weet je zeker dat je {name} wilt blokkeren?",
|
||||
"confirmations.block.message": "Weet je het zeker dat je {name} wilt blokkeren?",
|
||||
"confirmations.delete.confirm": "Verwijderen",
|
||||
"confirmations.delete.message": "Weet je zeker dat je deze toot wilt verwijderen?",
|
||||
"confirmations.delete.message": "Weet je het zeker dat je deze toot wilt verwijderen?",
|
||||
"confirmations.domain_block.confirm": "Negeer alles van deze server",
|
||||
"confirmations.domain_block.message": "Weet je het echt, echt zeker dat je alles van {domain} wil negeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en gewenst.",
|
||||
"confirmations.mute.confirm": "Negeren",
|
||||
"confirmations.mute.message": "Weet je zeker dat je {name} wilt negeren?",
|
||||
"confirmations.unfollow.confirm": "Unfollow",
|
||||
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
|
||||
"confirmations.mute.message": "Weet je het zeker dat je {name} wilt negeren?",
|
||||
"confirmations.unfollow.confirm": "Ontvolgen",
|
||||
"confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?",
|
||||
"emoji_button.activity": "Activiteiten",
|
||||
"emoji_button.flags": "Vlaggen",
|
||||
"emoji_button.food": "Eten en drinken",
|
||||
@@ -67,7 +68,7 @@
|
||||
"emoji_button.search": "Zoeken...",
|
||||
"emoji_button.symbols": "Symbolen",
|
||||
"emoji_button.travel": "Reizen en plekken",
|
||||
"empty_column.community": "De lokale tijdlijn is leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
|
||||
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
|
||||
"empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.",
|
||||
"empty_column.home": "Jij volgt nog niemand. Bezoek {public} of gebruik het zoekvenster om andere mensen te ontmoeten.",
|
||||
"empty_column.home.inactivity": "Deze tijdlijn is leeg. Wanneer je een tijdje inactief bent geweest wordt deze snel opnieuw aangemaakt.",
|
||||
@@ -106,13 +107,13 @@
|
||||
"notification.mention": "{name} vermeldde jou",
|
||||
"notification.reblog": "{name} boostte jouw toot",
|
||||
"notifications.clear": "Meldingen verwijderen",
|
||||
"notifications.clear_confirmation": "Weet je zeker dat je al jouw meldingen wilt verwijderen?",
|
||||
"notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?",
|
||||
"notifications.column_settings.alert": "Desktopmeldingen",
|
||||
"notifications.column_settings.favourite": "Favorieten:",
|
||||
"notifications.column_settings.follow": "Nieuwe volgers:",
|
||||
"notifications.column_settings.mention": "Vermeldingen:",
|
||||
"notifications.column_settings.push": "Push notifications",
|
||||
"notifications.column_settings.push_meta": "This device",
|
||||
"notifications.column_settings.push": "Pushmeldingen",
|
||||
"notifications.column_settings.push_meta": "Dit apparaat",
|
||||
"notifications.column_settings.reblog": "Boosts:",
|
||||
"notifications.column_settings.show": "In kolom tonen",
|
||||
"notifications.column_settings.sound": "Geluid afspelen",
|
||||
@@ -146,12 +147,12 @@
|
||||
"privacy.unlisted.long": "Niet op openbare tijdlijnen tonen",
|
||||
"privacy.unlisted.short": "Minder openbaar",
|
||||
"reply_indicator.cancel": "Annuleren",
|
||||
"report.heading": "Rapporteren",
|
||||
"report.placeholder": "Extra opmerkingen",
|
||||
"report.submit": "Verzenden",
|
||||
"report.target": "Rapporteren van",
|
||||
"search.placeholder": "Zoeken",
|
||||
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
|
||||
"standalone.public_title": "A look inside...",
|
||||
"status.cannot_reblog": "Deze toot kan niet geboost worden",
|
||||
"status.delete": "Verwijderen",
|
||||
"status.favourite": "Favoriet",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blokkér @{name}",
|
||||
"account.block_domain": "Skjul alt fra {domain}",
|
||||
"account.disclaimer": "Denne brukeren er fra en annen instans. Dette tallet kan være høyere.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Rediger profil",
|
||||
"account.follow": "Følg",
|
||||
"account.followers": "Følgere",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Vis {domain}",
|
||||
"account.unfollow": "Avfølg",
|
||||
"account.unmute": "Avdemp @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blocar @{name}",
|
||||
"account.block_domain": "Tot amagar del domeni {domain}",
|
||||
"account.disclaimer": "Aqueste compte es sus una autra instància. Los nombres pòdon èsser mai grandes.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Modificar lo perfil",
|
||||
"account.follow": "Sègre",
|
||||
"account.followers": "Seguidors",
|
||||
@@ -17,19 +17,20 @@
|
||||
"account.unblock_domain": "Desblocar {domain}",
|
||||
"account.unfollow": "Quitar de sègre",
|
||||
"account.unmute": "Quitar de rescondre @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
"bundle_column_error.title": "Network error",
|
||||
"bundle_modal_error.close": "Close",
|
||||
"bundle_modal_error.message": "Something went wrong while loading this component.",
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"bundle_column_error.body": "Quicòm a fach meuca pendent lo cargament d’aqueste compausant.",
|
||||
"bundle_column_error.retry": "Tornar ensejar",
|
||||
"bundle_column_error.title": "Error de ret",
|
||||
"bundle_modal_error.close": "Tampar",
|
||||
"bundle_modal_error.message": "Quicòm a fach meuca pendent lo cargament d’aqueste compausant.",
|
||||
"bundle_modal_error.retry": "Tornar ensejar",
|
||||
"column.blocks": "Personas blocadas",
|
||||
"column.community": "Flux d’actualitat public local",
|
||||
"column.community": "Flux public local",
|
||||
"column.favourites": "Favorits",
|
||||
"column.follow_requests": "Demandas d’abonament",
|
||||
"column.home": "Acuèlh",
|
||||
"column.mutes": "Personas mesas en silenci",
|
||||
"column.mutes": "Personas en silenci",
|
||||
"column.notifications": "Notificacions",
|
||||
"column.public": "Flux public global",
|
||||
"column_back_button.label": "Tornar",
|
||||
@@ -55,8 +56,8 @@
|
||||
"confirmations.domain_block.message": "Sètz segur segur de voler blocar complètament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.",
|
||||
"confirmations.mute.confirm": "Metre en silenci",
|
||||
"confirmations.mute.message": "Sètz segur de voler metre en silenci {name} ?",
|
||||
"confirmations.unfollow.confirm": "Unfollow",
|
||||
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
|
||||
"confirmations.unfollow.confirm": "Quitar de sègre",
|
||||
"confirmations.unfollow.message": "Volètz vertadièrament quitar de sègre {name} ?",
|
||||
"emoji_button.activity": "Activitat",
|
||||
"emoji_button.flags": "Drapèus",
|
||||
"emoji_button.food": "Beure e manjar",
|
||||
@@ -69,7 +70,7 @@
|
||||
"emoji_button.travel": "Viatges & lòcs",
|
||||
"empty_column.community": "Lo flux public local es void. Escribètz quicòm per lo garnir !",
|
||||
"empty_column.hashtag": "I a pas encara de contengut ligat a aqueste hashtag",
|
||||
"empty_column.home": "Pel moment segètz pas segun. Visitatz {public} o utilizatz la recèrca per vos connectar a d’autras personas.",
|
||||
"empty_column.home": "Pel moment segètz pas degun. Visitatz {public} o utilizatz la recèrca per vos connectar a d’autras personas.",
|
||||
"empty_column.home.inactivity": "Vòstra pagina d’acuèlh es voida. Se sètz estat inactiu per un moment, serà tornada generar per vos dins una estona.",
|
||||
"empty_column.home.public_timeline": "lo flux public",
|
||||
"empty_column.notifications": "Avètz pas encara de notificacions. Respondètz a qualqu’un per començar una conversacion.",
|
||||
@@ -111,8 +112,8 @@
|
||||
"notifications.column_settings.favourite": "Favorits :",
|
||||
"notifications.column_settings.follow": "Nòus seguidors :",
|
||||
"notifications.column_settings.mention": "Mencions :",
|
||||
"notifications.column_settings.push": "Push notifications",
|
||||
"notifications.column_settings.push_meta": "This device",
|
||||
"notifications.column_settings.push": "Notificacions",
|
||||
"notifications.column_settings.push_meta": "Aqueste periferic",
|
||||
"notifications.column_settings.reblog": "Partatges :",
|
||||
"notifications.column_settings.show": "Mostrar dins la colomna",
|
||||
"notifications.column_settings.sound": "Emetre un son",
|
||||
@@ -125,7 +126,7 @@
|
||||
"onboarding.page_one.handle": "Sètz sus {domain}, doncas vòstre identificant complet es {handle}",
|
||||
"onboarding.page_one.welcome": "Benvengut a Mastodon !",
|
||||
"onboarding.page_six.admin": "Vòstre administrator d’instància es {admin}.",
|
||||
"onboarding.page_six.almost_done": "Gaireben acabat...",
|
||||
"onboarding.page_six.almost_done": "Gaireben acabat…",
|
||||
"onboarding.page_six.appetoot": "Bon Appetoot!",
|
||||
"onboarding.page_six.apps_available": "I a d’aplicacions per mobil per iOS, Android e mai.",
|
||||
"onboarding.page_six.github": "Mastodon es un logicial liure e open-source. Podètz senhalar de bugs, demandar de foncionalitats e contribuir al còdi sus {github}.",
|
||||
@@ -151,14 +152,14 @@
|
||||
"report.target": "Senhalar {target}",
|
||||
"search.placeholder": "Recercar",
|
||||
"search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
|
||||
"standalone.public_title": "A look inside...",
|
||||
"standalone.public_title": "Una ulhada dedins…",
|
||||
"status.cannot_reblog": "Aqueste estatut pòt pas èsser partejat",
|
||||
"status.delete": "Escafar",
|
||||
"status.favourite": "Apondre als favorits",
|
||||
"status.load_more": "Cargar mai",
|
||||
"status.media_hidden": "Mèdia rescondut",
|
||||
"status.mention": "Mencionar",
|
||||
"status.mute_conversation": "Mute conversation",
|
||||
"status.mute_conversation": "Rescondre la conversacion",
|
||||
"status.open": "Desplegar aqueste estatut",
|
||||
"status.reblog": "Partejar",
|
||||
"status.reblogged_by": "{name} a partejat :",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Blokuj @{name}",
|
||||
"account.block_domain": "Blokuj wszystko z {domain}",
|
||||
"account.disclaimer": "Ten użytkownik pochodzi z innej instancji. Ta liczba może być większa.",
|
||||
"account.disclaimer_full": "Poniższe informacje mogą nie odwzorowywać bezbłędnie profilu użytkownika.",
|
||||
"account.edit_profile": "Edytuj profil",
|
||||
"account.follow": "Śledź",
|
||||
"account.followers": "Śledzący",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Odblokuj domenę {domain}",
|
||||
"account.unfollow": "Przestań śledzić",
|
||||
"account.unmute": "Cofnij wyciszenie @{name}",
|
||||
"account.view_full_profile": "Wyświetl pełny profil",
|
||||
"boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem",
|
||||
"bundle_column_error.body": "Coś poszło nie tak podczas ładowania tego składnika.",
|
||||
"bundle_column_error.retry": "Spróbuj ponownie",
|
||||
@@ -45,7 +46,7 @@
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive": "Oznacz treści jako wrażliwe",
|
||||
"compose_form.spoiler": "Ukryj tekst za ostrzeżeniem",
|
||||
"compose_form.spoiler_placeholder": "Ostrzeżenie o zawartości",
|
||||
"compose_form.spoiler_placeholder": "Wprowadź swoje ostrzeżenie o zawartości",
|
||||
"confirmation_modal.cancel": "Anuluj",
|
||||
"confirmations.block.confirm": "Zablokuj",
|
||||
"confirmations.block.message": "Czy na pewno chcesz zablokować {name}?",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Bloquear @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "Essa conta está localizado em outra instância. Os nomes podem ser maiores.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
"account.follow": "Seguir",
|
||||
"account.followers": "Seguidores",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Deixar de seguir",
|
||||
"account.unmute": "Não silenciar @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Pode clicar {combo} para não voltar a ver",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Bloquear @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "Essa conta está localizado em outra instância. Os nomes podem ser maiores.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
"account.follow": "Seguir",
|
||||
"account.followers": "Seguidores",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Deixar de seguir",
|
||||
"account.unmute": "Não silenciar @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Pode clicar {combo} para não voltar a ver",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Блокировать",
|
||||
"account.block_domain": "Блокировать все с {domain}",
|
||||
"account.disclaimer": "Это пользователь с другого узла. Число может быть больше.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Изменить профиль",
|
||||
"account.follow": "Подписаться",
|
||||
"account.followers": "Подписаны",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Разблокировать {domain}",
|
||||
"account.unfollow": "Отписаться",
|
||||
"account.unmute": "Снять глушение",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Нажмите {combo}, чтобы пропустить это в следующий раз",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
@@ -45,7 +46,7 @@
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive": "Отметить как чувствительный контент",
|
||||
"compose_form.spoiler": "Скрыть текст за предупреждением",
|
||||
"compose_form.spoiler_placeholder": "Предупреждение о скрытом тексте",
|
||||
"compose_form.spoiler_placeholder": "Напишите свое предупреждение здесь",
|
||||
"confirmation_modal.cancel": "Отмена",
|
||||
"confirmations.block.confirm": "Заблокировать",
|
||||
"confirmations.block.message": "Вы уверены, что хотите заблокировать {name}?",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Block @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "This user is from another instance. This number may be larger.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Edit profile",
|
||||
"account.follow": "Follow",
|
||||
"account.followers": "Followers",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Unfollow",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Engelle @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "Bu kullanıcının hesabı farklı sunucuda bulunduğu için bu sayı daha fazla olabilir.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Profili düzenle",
|
||||
"account.follow": "Takip et",
|
||||
"account.followers": "Takipçiler",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "Takipten vazgeç",
|
||||
"account.unmute": "Sesi aç @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Bir dahaki sefere {combo} tuşuna basabilirsiniz",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "Заблокувати",
|
||||
"account.block_domain": "Заглушити {domain}",
|
||||
"account.disclaimer": "Це користувач з іншої інстанції. Число може бути більше.",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "Налаштування профілю",
|
||||
"account.follow": "Підписатися",
|
||||
"account.followers": "Підписники",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Розблокувати {domain}",
|
||||
"account.unfollow": "Відписатися",
|
||||
"account.unmute": "Зняти глушення",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "屏蔽 @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "由于这个账户处于另一个服务器实例上,实际数字会比这个更多。",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "修改个人资料",
|
||||
"account.follow": "关注",
|
||||
"account.followers": "关注者",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "取消关注",
|
||||
"account.unmute": "取消 @{name} 的静音",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "如你想在下次路过时显示,请按{combo},",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "封鎖 @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.disclaimer": "由於這個用戶在另一個服務站,實際數字會比這個更多。",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "修改個人資料",
|
||||
"account.follow": "關注",
|
||||
"account.followers": "關注的人",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unfollow": "取消關注",
|
||||
"account.unmute": "取消 @{name} 的靜音",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "如你想在下次路過這顯示,請按{combo},",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.block": "封鎖 @{name}",
|
||||
"account.block_domain": "隱藏來自 {domain} 的一切",
|
||||
"account.disclaimer": "這使用者來自其他副本,實際數字可能更大。",
|
||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
||||
"account.edit_profile": "編輯用戶資訊",
|
||||
"account.follow": "關注",
|
||||
"account.followers": "專注者",
|
||||
@@ -17,6 +17,7 @@
|
||||
"account.unblock_domain": "不再隱藏 {domain}",
|
||||
"account.unfollow": "取消關注",
|
||||
"account.unmute": "不再消音 @{name}",
|
||||
"account.view_full_profile": "View full profile",
|
||||
"boost_modal.combo": "下次你可以按 {combo} 來跳過",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
|
||||
@@ -37,7 +37,7 @@ const unsubscribe = ({ registration, subscription }) =>
|
||||
|
||||
const sendSubscriptionToBackend = (subscription) =>
|
||||
axios.post('/api/web/push_subscriptions', {
|
||||
data: subscription,
|
||||
subscription,
|
||||
}).then(response => response.data);
|
||||
|
||||
// Last one checks for payload support: https://web-push-book.gauntface.com/chapter-06/01-non-standards-browsers/#no-payload
|
||||
|
||||
Reference in New Issue
Block a user