Merge 2.5.0rc1 from upstream

This commit is contained in:
Mike Barnes 2018-08-31 23:36:49 +10:00
commit c29f828897
520 changed files with 15340 additions and 5799 deletions

View file

@ -30,6 +30,14 @@ export const ACCOUNT_UNMUTE_REQUEST = 'ACCOUNT_UNMUTE_REQUEST';
export const ACCOUNT_UNMUTE_SUCCESS = 'ACCOUNT_UNMUTE_SUCCESS';
export const ACCOUNT_UNMUTE_FAIL = 'ACCOUNT_UNMUTE_FAIL';
export const ACCOUNT_PIN_REQUEST = 'ACCOUNT_PIN_REQUEST';
export const ACCOUNT_PIN_SUCCESS = 'ACCOUNT_PIN_SUCCESS';
export const ACCOUNT_PIN_FAIL = 'ACCOUNT_PIN_FAIL';
export const ACCOUNT_UNPIN_REQUEST = 'ACCOUNT_UNPIN_REQUEST';
export const ACCOUNT_UNPIN_SUCCESS = 'ACCOUNT_UNPIN_SUCCESS';
export const ACCOUNT_UNPIN_FAIL = 'ACCOUNT_UNPIN_FAIL';
export const FOLLOWERS_FETCH_REQUEST = 'FOLLOWERS_FETCH_REQUEST';
export const FOLLOWERS_FETCH_SUCCESS = 'FOLLOWERS_FETCH_SUCCESS';
export const FOLLOWERS_FETCH_FAIL = 'FOLLOWERS_FETCH_FAIL';
@ -694,3 +702,69 @@ export function rejectFollowRequestFail(id, error) {
error,
};
};
export function pinAccount(id) {
return (dispatch, getState) => {
dispatch(pinAccountRequest(id));
api(getState).post(`/api/v1/accounts/${id}/pin`).then(response => {
dispatch(pinAccountSuccess(response.data));
}).catch(error => {
dispatch(pinAccountFail(error));
});
};
};
export function unpinAccount(id) {
return (dispatch, getState) => {
dispatch(unpinAccountRequest(id));
api(getState).post(`/api/v1/accounts/${id}/unpin`).then(response => {
dispatch(unpinAccountSuccess(response.data));
}).catch(error => {
dispatch(unpinAccountFail(error));
});
};
};
export function pinAccountRequest(id) {
return {
type: ACCOUNT_PIN_REQUEST,
id,
};
};
export function pinAccountSuccess(relationship) {
return {
type: ACCOUNT_PIN_SUCCESS,
relationship,
};
};
export function pinAccountFail(error) {
return {
type: ACCOUNT_PIN_FAIL,
error,
};
};
export function unpinAccountRequest(id) {
return {
type: ACCOUNT_UNPIN_REQUEST,
id,
};
};
export function unpinAccountSuccess(relationship) {
return {
type: ACCOUNT_UNPIN_SUCCESS,
relationship,
};
};
export function unpinAccountFail(error) {
return {
type: ACCOUNT_UNPIN_FAIL,
error,
};
};

View file

@ -130,7 +130,7 @@ export function submitCompose() {
'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']),
},
}).then(function (response) {
dispatch(insertIntoTagHistory(response.data.tags));
dispatch(insertIntoTagHistory(response.data.tags, status));
dispatch(submitComposeSuccess({ ...response.data }));
// To make the app more responsive, immediately get the status into the columns
@ -390,13 +390,13 @@ export function hydrateCompose() {
};
}
function insertIntoTagHistory(tags) {
function insertIntoTagHistory(recognizedTags, text) {
return (dispatch, getState) => {
const state = getState();
const oldHistory = state.getIn(['compose', 'tagHistory']);
const me = state.getIn(['meta', 'me']);
const names = tags.map(({ name }) => name);
const intersectedOldHistory = oldHistory.filter(name => !names.includes(name));
const names = recognizedTags.map(tag => text.match(new RegExp(`#${tag.name}`, 'i'))[0].slice(1));
const intersectedOldHistory = oldHistory.filter(name => names.findIndex(newName => newName.toLowerCase() === name.toLowerCase()) === -1);
names.push(...intersectedOldHistory.toJS());

View file

@ -128,7 +128,7 @@ export function expandDomainBlocks() {
return (dispatch, getState) => {
const url = getState().getIn(['domain_lists', 'blocks', 'next']);
if (url === null) {
if (!url) {
return;
}

View file

@ -140,7 +140,7 @@ export function redraft(status) {
};
};
export function deleteStatus(id, withRedraft = false) {
export function deleteStatus(id, router, withRedraft = false) {
return (dispatch, getState) => {
const status = getState().getIn(['statuses', id]);
@ -153,6 +153,10 @@ export function deleteStatus(id, withRedraft = false) {
if (withRedraft) {
dispatch(redraft(status));
if (!getState().getIn(['compose', 'mounted'])) {
router.push('/statuses/new');
}
}
}).catch(error => {
dispatch(deleteStatusFail(id, error));

View file

@ -55,7 +55,7 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) {
return;
}
if (!params.max_id && timeline.get('items', ImmutableList()).size > 0) {
if (!params.max_id && !params.pinned && timeline.get('items', ImmutableList()).size > 0) {
params.since_id = timeline.getIn(['items', 0]);
}

View file

@ -0,0 +1,8 @@
import Rails from 'rails-ujs';
export function start() {
require('font-awesome/css/font-awesome.css');
require.context('../images/', true);
Rails.start();
};

View file

@ -7,6 +7,7 @@ export default class Column extends React.PureComponent {
static propTypes = {
children: PropTypes.node,
label: PropTypes.string,
};
scrollTop () {
@ -40,10 +41,10 @@ export default class Column extends React.PureComponent {
}
render () {
const { children } = this.props;
const { label, children } = this.props;
return (
<div role='region' className='column' ref={this.setRef}>
<div role='region' aria-label={label} className='column' ref={this.setRef}>
{children}
</div>
);

View file

@ -137,7 +137,7 @@ class DropdownMenu extends React.PureComponent {
// It should not be transformed when mounting because the resulting
// size will be used to determine the coordinate of the menu by
// react-overlays
<div className='dropdown-menu' style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} ref={this.setRef}>
<div className={`dropdown-menu ${placement}`} style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} ref={this.setRef}>
<div className={`dropdown-menu__arrow ${placement}`} style={{ left: arrowOffsetLeft, top: arrowOffsetTop }} />
<ul>
@ -226,6 +226,12 @@ export default class Dropdown extends React.PureComponent {
return this.target;
}
componentWillUnmount = () => {
if (this.state.id === this.props.openDropdownId) {
this.handleClose();
}
}
render () {
const { icon, items, size, title, disabled, dropdownPlacement, openDropdownId } = this.props;
const open = this.state.id === openDropdownId;

View file

@ -50,6 +50,7 @@ export default class ExtendedVideoPlayer extends React.PureComponent {
role='button'
tabIndex='0'
aria-label={alt}
title={alt}
muted={muted}
controls={controls}
loop={!controls}

View file

@ -109,7 +109,7 @@ export default class IntersectionObserverArticle extends React.Component {
return (
<article
ref={this.handleRef}
aria-posinset={index}
aria-posinset={index + 1}
aria-setsize={listLength}
style={{ height: `${this.height || cachedHeight}px`, opacity: 0, overflow: 'hidden' }}
data-id={id}
@ -121,7 +121,7 @@ export default class IntersectionObserverArticle extends React.Component {
}
return (
<article ref={this.handleRef} aria-posinset={index} aria-setsize={listLength} data-id={id} tabIndex='0'>
<article ref={this.handleRef} aria-posinset={index + 1} aria-setsize={listLength} data-id={id} tabIndex='0'>
{children && React.cloneElement(children, { hidden: false })}
</article>
);

View file

@ -50,7 +50,7 @@ class Item extends React.PureComponent {
handleClick = (e) => {
const { index, onClick } = this.props;
if (e.button === 0) {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
onClick(index);
}
@ -154,6 +154,7 @@ class Item extends React.PureComponent {
<video
className='media-gallery__item-gifv-thumbnail'
aria-label={attachment.get('description')}
title={attachment.get('description')}
role='application'
src={attachment.get('url')}
onClick={this.handleClick}

View file

@ -60,6 +60,32 @@ const getUnitDelay = units => {
}
};
export const timeAgoString = (intl, date, now, year) => {
const delta = now - date.getTime();
let relativeTime;
if (delta < 10 * SECOND) {
relativeTime = intl.formatMessage(messages.just_now);
} else if (delta < 7 * DAY) {
if (delta < MINUTE) {
relativeTime = intl.formatMessage(messages.seconds, { number: Math.floor(delta / SECOND) });
} else if (delta < HOUR) {
relativeTime = intl.formatMessage(messages.minutes, { number: Math.floor(delta / MINUTE) });
} else if (delta < DAY) {
relativeTime = intl.formatMessage(messages.hours, { number: Math.floor(delta / HOUR) });
} else {
relativeTime = intl.formatMessage(messages.days, { number: Math.floor(delta / DAY) });
}
} else if (date.getFullYear() === year) {
relativeTime = intl.formatDate(date, shortDateFormatOptions);
} else {
relativeTime = intl.formatDate(date, { ...shortDateFormatOptions, year: 'numeric' });
}
return relativeTime;
};
@injectIntl
export default class RelativeTimestamp extends React.Component {
@ -121,28 +147,8 @@ export default class RelativeTimestamp extends React.Component {
render () {
const { timestamp, intl, year } = this.props;
const date = new Date(timestamp);
const delta = this.state.now - date.getTime();
let relativeTime;
if (delta < 10 * SECOND) {
relativeTime = intl.formatMessage(messages.just_now);
} else if (delta < 7 * DAY) {
if (delta < MINUTE) {
relativeTime = intl.formatMessage(messages.seconds, { number: Math.floor(delta / SECOND) });
} else if (delta < HOUR) {
relativeTime = intl.formatMessage(messages.minutes, { number: Math.floor(delta / MINUTE) });
} else if (delta < DAY) {
relativeTime = intl.formatMessage(messages.hours, { number: Math.floor(delta / HOUR) });
} else {
relativeTime = intl.formatMessage(messages.days, { number: Math.floor(delta / DAY) });
}
} else if (date.getFullYear() === year) {
relativeTime = intl.formatDate(date, shortDateFormatOptions);
} else {
relativeTime = intl.formatDate(date, { ...shortDateFormatOptions, year: 'numeric' });
}
const date = new Date(timestamp);
const relativeTime = timeAgoString(intl, date, this.state.now, year);
return (
<time dateTime={timestamp} title={intl.formatDate(date, dateFormatOptions)}>

View file

@ -8,7 +8,7 @@ import DisplayName from './display_name';
import StatusContent from './status_content';
import StatusActionBar from './status_action_bar';
import AttachmentList from './attachment_list';
import { FormattedMessage } from 'react-intl';
import { injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { MediaGallery, Video } from '../features/ui/util/async-components';
import { HotKeys } from 'react-hotkeys';
@ -18,6 +18,24 @@ import classNames from 'classnames';
// to use the progress bar to show download progress
import Bundle from '../features/ui/components/bundle';
export const textForScreenReader = (intl, status, rebloggedByText = false) => {
const displayName = status.getIn(['account', 'display_name']);
const values = [
displayName.length === 0 ? status.getIn(['account', 'acct']).split('@')[0] : displayName,
status.get('spoiler_text') && status.get('hidden') ? status.get('spoiler_text') : status.get('search_index').slice(status.get('spoiler_text').length),
intl.formatDate(status.get('created_at'), { hour: '2-digit', minute: '2-digit', month: 'short', day: 'numeric' }),
status.getIn(['account', 'acct']),
];
if (rebloggedByText) {
values.push(rebloggedByText);
}
return values.join(', ');
};
@injectIntl
export default class Status extends ImmutablePureComponent {
static contextTypes = {
@ -65,7 +83,7 @@ export default class Status extends ImmutablePureComponent {
}
handleAccountClick = (e) => {
if (this.context.router && e.button === 0) {
if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
const id = e.currentTarget.getAttribute('data-id');
e.preventDefault();
this.context.router.history.push(`/accounts/${id}`);
@ -138,9 +156,9 @@ export default class Status extends ImmutablePureComponent {
render () {
let media = null;
let statusAvatar, prepend;
let statusAvatar, prepend, rebloggedByText;
const { hidden, featured } = this.props;
const { intl, hidden, featured } = this.props;
let { status, account, ...other } = this.props;
@ -189,6 +207,8 @@ export default class Status extends ImmutablePureComponent {
</div>
);
rebloggedByText = intl.formatMessage({ id: 'status.reblogged_by', defaultMessage: '{name} boosted' }, { name: status.getIn(['account', 'acct']) });
account = status.get('account');
status = status.get('reblog');
}
@ -210,6 +230,7 @@ export default class Status extends ImmutablePureComponent {
<Component
preview={video.get('preview_url')}
src={video.get('url')}
alt={video.get('description')}
width={239}
height={110}
inline
@ -248,7 +269,7 @@ export default class Status extends ImmutablePureComponent {
return (
<HotKeys handlers={handlers}>
<div className={classNames('status__wrapper', `status__wrapper-${status.get('visibility')}`, { focusable: !this.props.muted })} tabIndex={this.props.muted ? null : 0} data-featured={featured ? 'true' : null}>
<div className={classNames('status__wrapper', `status__wrapper-${status.get('visibility')}`, { focusable: !this.props.muted })} tabIndex={this.props.muted ? null : 0} data-featured={featured ? 'true' : null} aria-label={textForScreenReader(intl, status, rebloggedByText, !status.get('hidden'))}>
{prepend}
<div className={classNames('status', `status-${status.get('visibility')}`, { muted: this.props.muted })} data-id={status.get('id')}>

View file

@ -32,6 +32,16 @@ const messages = defineMessages({
embed: { id: 'status.embed', defaultMessage: 'Embed' },
});
const obfuscatedCount = count => {
if (count < 0) {
return 0;
} else if (count <= 1) {
return count;
} else {
return '1+';
}
};
@injectIntl
export default class StatusActionBar extends ImmutablePureComponent {
@ -86,11 +96,11 @@ export default class StatusActionBar extends ImmutablePureComponent {
}
handleDeleteClick = () => {
this.props.onDelete(this.props.status);
this.props.onDelete(this.props.status, this.context.router.history);
}
handleRedraftClick = () => {
this.props.onDelete(this.props.status, true);
this.props.onDelete(this.props.status, this.context.router.history, true);
}
handlePinClick = () => {
@ -194,7 +204,7 @@ export default class StatusActionBar extends ImmutablePureComponent {
return (
<div className='status__action-bar'>
<IconButton className='status__action-bar-button' disabled={anonymousAccess} title={replyTitle} icon={replyIcon} onClick={this.handleReplyClick} />
<div className='status__action-bar__counter'><IconButton className='status__action-bar-button' disabled={anonymousAccess} title={replyTitle} icon={replyIcon} onClick={this.handleReplyClick} /><span className='status__action-bar__counter__label' >{obfuscatedCount(status.get('replies_count'))}</span></div>
<IconButton className='status__action-bar-button' disabled={anonymousAccess || !publicStatus} active={status.get('reblogged')} pressed={status.get('reblogged')} title={!publicStatus ? 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')} pressed={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} />
{shareButton}

View file

@ -64,7 +64,7 @@ export default class StatusContent extends React.PureComponent {
}
onMentionClick = (mention, e) => {
if (this.context.router && e.button === 0) {
if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.context.router.history.push(`/accounts/${mention.get('id')}`);
}
@ -73,7 +73,7 @@ export default class StatusContent extends React.PureComponent {
onHashtagClick = (hashtag, e) => {
hashtag = hashtag.replace(/^#/, '').toLowerCase();
if (this.context.router && e.button === 0) {
if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.context.router.history.push(`/timelines/tag/${hashtag}`);
}

View file

@ -1,12 +1,12 @@
import { debounce } from 'lodash';
import React from 'react';
import { FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import StatusContainer from '../containers/status_container';
import ImmutablePureComponent from 'react-immutable-pure-component';
import LoadGap from './load_gap';
import ScrollableList from './scrollable_list';
import { FormattedMessage } from 'react-intl';
export default class StatusList extends ImmutablePureComponent {
@ -71,7 +71,7 @@ export default class StatusList extends ImmutablePureComponent {
}
render () {
const { statusIds, featuredStatusIds, onLoadMore, timelineId, ...other } = this.props;
const { statusIds, featuredStatusIds, shouldUpdateScroll, onLoadMore, timelineId, ...other } = this.props;
const { isLoading, isPartial } = other;
if (isPartial) {
@ -122,7 +122,7 @@ export default class StatusList extends ImmutablePureComponent {
}
return (
<ScrollableList {...other} onLoadMore={onLoadMore && this.handleLoadOlder} ref={this.setRef}>
<ScrollableList {...other} onLoadMore={onLoadMore && this.handleLoadOlder} shouldUpdateScroll={shouldUpdateScroll} ref={this.setRef}>
{scrollableContent}
</ScrollableList>
);

View file

@ -38,13 +38,6 @@ export default class Mastodon extends React.PureComponent {
window.setTimeout(() => Notification.requestPermission(), 60 * 1000);
}
// Protocol handler
// Ask after 5 minutes
if (typeof navigator.registerProtocolHandler !== 'undefined') {
const handlerUrl = window.location.protocol + '//' + window.location.host + '/intent?uri=%s';
window.setTimeout(() => navigator.registerProtocolHandler('web+mastodon', handlerUrl, 'Mastodon'), 5 * 60 * 1000);
}
store.dispatch(showOnboardingOnce());
}

View file

@ -29,19 +29,19 @@ export default class MediaContainer extends PureComponent {
};
handleOpenMedia = (media, index) => {
document.body.classList.add('media-standalone__body');
document.body.classList.add('with-modals--active');
this.setState({ media, index });
}
handleOpenVideo = (video, time) => {
const media = ImmutableList([video]);
document.body.classList.add('media-standalone__body');
document.body.classList.add('with-modals--active');
this.setState({ media, time });
}
handleCloseMedia = () => {
document.body.classList.remove('media-standalone__body');
document.body.classList.remove('with-modals--active');
this.setState({ media: null, index: null, time: null });
}

View file

@ -34,7 +34,7 @@ const messages = defineMessages({
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' },
redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' },
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.' },
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.' },
blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
});
@ -93,14 +93,14 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
}));
},
onDelete (status, withRedraft = false) {
onDelete (status, history, withRedraft = false) {
if (!deleteModal) {
dispatch(deleteStatus(status.get('id'), withRedraft));
dispatch(deleteStatus(status.get('id'), history, withRedraft));
} else {
dispatch(openModal('CONFIRM', {
message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage),
confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm),
onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)),
onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)),
}));
}
},

View file

@ -32,6 +32,8 @@ const messages = defineMessages({
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
endorse: { id: 'account.endorse', defaultMessage: 'Feature on profile' },
unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' },
});
@injectIntl
@ -48,6 +50,7 @@ export default class ActionBar extends React.PureComponent {
onMute: PropTypes.func.isRequired,
onBlockDomain: PropTypes.func.isRequired,
onUnblockDomain: PropTypes.func.isRequired,
onEndorseToggle: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
};
@ -93,6 +96,9 @@ export default class ActionBar extends React.PureComponent {
} else {
menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
}
menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
menu.push(null);
}
if (account.getIn(['relationship', 'muting'])) {
@ -141,18 +147,18 @@ export default class ActionBar extends React.PureComponent {
<div className='account__action-bar'>
<div className='account__action-bar-links'>
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}`}>
<span><FormattedMessage id='account.posts' defaultMessage='Toots' /></span>
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}`} title={intl.formatNumber(account.get('statuses_count'))}>
<FormattedMessage id='account.posts' defaultMessage='Toots' />
<strong>{shortNumberFormat(account.get('statuses_count'))}</strong>
</Link>
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}/following`}>
<span><FormattedMessage id='account.follows' defaultMessage='Follows' /></span>
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}/following`} title={intl.formatNumber(account.get('following_count'))}>
<FormattedMessage id='account.follows' defaultMessage='Follows' />
<strong>{shortNumberFormat(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>
<Link className='account__action-bar__tab' to={`/accounts/${account.get('id')}/followers`} title={intl.formatNumber(account.get('followers_count'))}>
<FormattedMessage id='account.followers' defaultMessage='Followers' />
<strong>{shortNumberFormat(account.get('followers_count'))}</strong>
</Link>
</div>

View file

@ -104,7 +104,9 @@ export default class Header extends ImmutablePureComponent {
}
if (me !== account.get('id')) {
if (account.getIn(['relationship', 'requested'])) {
if (!account.get('relationship')) { // Wait until the relationship is loaded
actionBtn = '';
} else if (account.getIn(['relationship', 'requested'])) {
actionBtn = (
<div className='account--action-button'>
<IconButton size={26} active icon='hourglass' title={intl.formatMessage(messages.requested)} onClick={this.props.onFollow} />

View file

@ -23,6 +23,7 @@ const mapStateToProps = (state, props) => ({
class LoadMoreMedia extends ImmutablePureComponent {
static propTypes = {
shouldUpdateScroll: PropTypes.func,
maxId: PropTypes.string,
onLoadMore: PropTypes.func.isRequired,
};
@ -90,7 +91,7 @@ export default class AccountGallery extends ImmutablePureComponent {
}
render () {
const { medias, isLoading, hasMore } = this.props;
const { medias, shouldUpdateScroll, isLoading, hasMore } = this.props;
let loadOlder = null;
@ -110,7 +111,7 @@ export default class AccountGallery extends ImmutablePureComponent {
<Column>
<ColumnBackButton />
<ScrollContainer scrollKey='account_gallery'>
<ScrollContainer scrollKey='account_gallery' shouldUpdateScroll={shouldUpdateScroll}>
<div className='scrollable' onScroll={this.handleScroll}>
<HeaderContainer accountId={this.props.params.accountId} />

View file

@ -22,6 +22,7 @@ export default class Header extends ImmutablePureComponent {
onMute: PropTypes.func.isRequired,
onBlockDomain: PropTypes.func.isRequired,
onUnblockDomain: PropTypes.func.isRequired,
onEndorseToggle: PropTypes.func.isRequired,
hideTabs: PropTypes.bool,
};
@ -73,6 +74,10 @@ export default class Header extends ImmutablePureComponent {
this.props.onUnblockDomain(domain);
}
handleEndorseToggle = () => {
this.props.onEndorseToggle(this.props.account);
}
render () {
const { account, hideTabs } = this.props;
@ -100,6 +105,7 @@ export default class Header extends ImmutablePureComponent {
onMute={this.handleMute}
onBlockDomain={this.handleBlockDomain}
onUnblockDomain={this.handleUnblockDomain}
onEndorseToggle={this.handleEndorseToggle}
/>
{!hideTabs && (

View file

@ -8,6 +8,8 @@ import {
blockAccount,
unblockAccount,
unmuteAccount,
pinAccount,
unpinAccount,
} from '../../../actions/accounts';
import {
mentionCompose,
@ -82,6 +84,14 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
}
},
onEndorseToggle (account) {
if (account.getIn(['relationship', 'endorsed'])) {
dispatch(unpinAccount(account.get('id')));
} else {
dispatch(pinAccount(account.get('id')));
}
},
onReport (account) {
dispatch(initReport(account));
},

View file

@ -29,6 +29,7 @@ export default class AccountTimeline extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
statusIds: ImmutablePropTypes.list,
featuredStatusIds: ImmutablePropTypes.list,
isLoading: PropTypes.bool,
@ -61,7 +62,7 @@ export default class AccountTimeline extends ImmutablePureComponent {
}
render () {
const { statusIds, featuredStatusIds, isLoading, hasMore } = this.props;
const { shouldUpdateScroll, statusIds, featuredStatusIds, isLoading, hasMore } = this.props;
if (!statusIds && isLoading) {
return (
@ -83,6 +84,7 @@ export default class AccountTimeline extends ImmutablePureComponent {
isLoading={isLoading}
hasMore={hasMore}
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -1,15 +1,16 @@
import React from 'react';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import PropTypes from 'prop-types';
import LoadingIndicator from '../../components/loading_indicator';
import { ScrollContainer } from 'react-router-scroll-4';
import Column from '../ui/components/column';
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import AccountContainer from '../../containers/account_container';
import { fetchBlocks, expandBlocks } from '../../actions/blocks';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ScrollableList from '../../components/scrollable_list';
const messages = defineMessages({
heading: { id: 'column.blocks', defaultMessage: 'Blocked users' },
@ -26,6 +27,7 @@ export default class Blocks extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
accountIds: ImmutablePropTypes.list,
intl: PropTypes.object.isRequired,
};
@ -34,16 +36,12 @@ export default class Blocks extends ImmutablePureComponent {
this.props.dispatch(fetchBlocks());
}
handleScroll = (e) => {
const { scrollTop, scrollHeight, clientHeight } = e.target;
if (scrollTop === scrollHeight - clientHeight) {
this.props.dispatch(expandBlocks());
}
}
handleLoadMore = debounce(() => {
this.props.dispatch(expandBlocks());
}, 300, { leading: true });
render () {
const { intl, accountIds } = this.props;
const { intl, accountIds, shouldUpdateScroll } = this.props;
if (!accountIds) {
return (
@ -53,16 +51,21 @@ export default class Blocks extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.blocks' defaultMessage="You haven't blocked any users yet." />;
return (
<Column icon='ban' heading={intl.formatMessage(messages.heading)}>
<ColumnBackButtonSlim />
<ScrollContainer scrollKey='blocks'>
<div className='scrollable' onScroll={this.handleScroll}>
{accountIds.map(id =>
<AccountContainer key={id} id={id} />
)}
</div>
</ScrollContainer>
<ScrollableList
scrollKey='blocks'
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} />
)}
</ScrollableList>
</Column>
);
}

View file

@ -39,6 +39,7 @@ export default class CommunityTimeline extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
columnId: PropTypes.string,
intl: PropTypes.object.isRequired,
hasUnread: PropTypes.bool,
@ -100,11 +101,11 @@ export default class CommunityTimeline extends React.PureComponent {
}
render () {
const { intl, hasUnread, columnId, multiColumn, onlyMedia } = this.props;
const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn, onlyMedia } = this.props;
const pinned = !!columnId;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='users'
active={hasUnread}
@ -124,6 +125,7 @@ export default class CommunityTimeline extends React.PureComponent {
timelineId={`community${onlyMedia ? ':media' : ''}`}
onLoadMore={this.handleLoadMore}
emptyMessage={<FormattedMessage id='empty_column.community' defaultMessage='The local timeline is empty. Write something publicly to get the ball rolling!' />}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -28,6 +28,7 @@ class PrivacyDropdownMenu extends React.PureComponent {
style: PropTypes.object,
items: PropTypes.array.isRequired,
value: PropTypes.string.isRequired,
placement: PropTypes.string.isRequired,
onClose: PropTypes.func.isRequired,
onChange: PropTypes.func.isRequired,
};
@ -119,7 +120,7 @@ class PrivacyDropdownMenu extends React.PureComponent {
render () {
const { mounted } = this.state;
const { style, items, value } = this.props;
const { style, items, placement, value } = this.props;
return (
<Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>
@ -127,7 +128,7 @@ class PrivacyDropdownMenu extends React.PureComponent {
// It should not be transformed when mounting because the resulting
// size will be used to determine the coordinate of the menu by
// react-overlays
<div className='privacy-dropdown__dropdown' style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} role='listbox' ref={this.setRef}>
<div className={`privacy-dropdown__dropdown ${placement}`} style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} role='listbox' ref={this.setRef}>
{items.map(item => (
<div role='option' tabIndex='0' key={item.value} data-index={item.value} onKeyDown={this.handleKeyDown} onClick={this.handleClick} className={classNames('privacy-dropdown__option', { active: item.value === value })} aria-selected={item.value === value} ref={item.value === value ? this.setFocusRef : null}>
<div className='privacy-dropdown__option__icon'>
@ -226,7 +227,7 @@ export default class PrivacyDropdown extends React.PureComponent {
const valueOption = this.options.find(item => item.value === value);
return (
<div className={classNames('privacy-dropdown', { active: open })} onKeyDown={this.handleKeyDown}>
<div className={classNames('privacy-dropdown', placement, { active: open })} onKeyDown={this.handleKeyDown}>
<div className={classNames('privacy-dropdown__value', { active: this.options.indexOf(valueOption) === 0 })}>
<IconButton
className='privacy-dropdown__value-icon'
@ -247,6 +248,7 @@ export default class PrivacyDropdown extends React.PureComponent {
value={value}
onClose={this.handleClose}
onChange={this.handleChange}
placement={placement}
/>
</Overlay>
</div>

View file

@ -30,7 +30,7 @@ export default class ReplyIndicator extends ImmutablePureComponent {
}
handleAccountClick = (e) => {
if (e.button === 0) {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);
}

View file

@ -20,6 +20,7 @@ export default class Upload extends ImmutablePureComponent {
onUndo: PropTypes.func.isRequired,
onDescriptionChange: PropTypes.func.isRequired,
onOpenFocalPoint: PropTypes.func.isRequired,
onSubmit: PropTypes.func.isRequired,
};
state = {
@ -28,6 +29,17 @@ export default class Upload extends ImmutablePureComponent {
dirtyDescription: null,
};
handleKeyDown = (e) => {
if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) {
this.handleSubmit();
}
}
handleSubmit = () => {
this.handleInputBlur();
this.props.onSubmit();
}
handleUndoClick = () => {
this.props.onUndo(this.props.media.get('id'));
}
@ -93,6 +105,7 @@ export default class Upload extends ImmutablePureComponent {
onFocus={this.handleInputFocus}
onChange={this.handleInputChange}
onBlur={this.handleInputBlur}
onKeyDown={this.handleKeyDown}
/>
</label>
</div>

View file

@ -7,7 +7,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import ImmutablePropTypes from 'react-immutable-proptypes';
const messages = defineMessages({
upload: { id: 'upload_button.label', defaultMessage: 'Add media' },
upload: { id: 'upload_button.label', defaultMessage: 'Add media (JPEG, PNG, GIF, WebM, MP4)' },
});
const makeMapStateToProps = () => {

View file

@ -2,6 +2,7 @@ import { connect } from 'react-redux';
import Upload from '../components/upload';
import { undoUploadCompose, changeUploadCompose } from '../../../actions/compose';
import { openModal } from '../../../actions/modal';
import { submitCompose } from '../../../actions/compose';
const mapStateToProps = (state, { id }) => ({
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
@ -21,6 +22,10 @@ const mapDispatchToProps = dispatch => ({
dispatch(openModal('FOCAL_POINT', { id }));
},
onSubmit () {
dispatch(submitCompose());
},
});
export default connect(mapStateToProps, mapDispatchToProps)(Upload);

View file

@ -22,6 +22,7 @@ const messages = defineMessages({
community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },
});
const mapStateToProps = (state, ownProps) => ({
@ -95,7 +96,7 @@ export default class Compose extends React.PureComponent {
}
return (
<div className='drawer'>
<div className='drawer' role='region' aria-label={intl.formatMessage(messages.compose)}>
{header}
{(multiColumn || isSearchPage) && <SearchContainer /> }

View file

@ -23,6 +23,7 @@ export default class DirectTimeline extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
columnId: PropTypes.string,
intl: PropTypes.object.isRequired,
hasUnread: PropTypes.bool,
@ -71,11 +72,11 @@ export default class DirectTimeline extends React.PureComponent {
}
render () {
const { intl, hasUnread, columnId, multiColumn } = this.props;
const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn } = this.props;
const pinned = !!columnId;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='envelope'
active={hasUnread}
@ -93,6 +94,7 @@ export default class DirectTimeline extends React.PureComponent {
timelineId='direct'
onLoadMore={this.handleLoadMore}
emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -1,15 +1,15 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from '../../components/loading_indicator';
import Column from '../ui/components/column';
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import DomainContainer from '../../containers/domain_container';
import { fetchDomainBlocks, expandDomainBlocks } from '../../actions/domain_blocks';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { debounce } from 'lodash';
import ScrollableList from '../../components/scrollable_list';
const messages = defineMessages({
@ -28,6 +28,7 @@ export default class Blocks extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
domains: ImmutablePropTypes.orderedSet,
intl: PropTypes.object.isRequired,
};
@ -41,7 +42,7 @@ export default class Blocks extends ImmutablePureComponent {
}, 300, { leading: true });
render () {
const { intl, domains } = this.props;
const { intl, domains, shouldUpdateScroll } = this.props;
if (!domains) {
return (
@ -51,10 +52,17 @@ export default class Blocks extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.domain_blocks' defaultMessage='There are no hidden domains yet.' />;
return (
<Column icon='minus-circle' heading={intl.formatMessage(messages.heading)}>
<ColumnBackButtonSlim />
<ScrollableList scrollKey='domain_blocks' onLoadMore={this.handleLoadMore}>
<ScrollableList
scrollKey='domain_blocks'
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{domains.map(domain =>
<DomainContainer key={domain} domain={domain} />
)}

View file

@ -7,7 +7,7 @@ import Column from '../ui/components/column';
import ColumnHeader from '../../components/column_header';
import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
import StatusList from '../../components/status_list';
import { defineMessages, injectIntl } from 'react-intl';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { debounce } from 'lodash';
@ -27,6 +27,7 @@ export default class Favourites extends ImmutablePureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
statusIds: ImmutablePropTypes.list.isRequired,
intl: PropTypes.object.isRequired,
columnId: PropTypes.string,
@ -67,11 +68,13 @@ export default class Favourites extends ImmutablePureComponent {
}, 300, { leading: true })
render () {
const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
const { intl, shouldUpdateScroll, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
const pinned = !!columnId;
const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite toots yet. When you favourite one, it will show up here." />;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={intl.formatMessage(messages.heading)}>
<ColumnHeader
icon='star'
title={intl.formatMessage(messages.heading)}
@ -90,6 +93,8 @@ export default class Favourites extends ImmutablePureComponent {
hasMore={hasMore}
isLoading={isLoading}
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
/>
</Column>
);

View file

@ -1,14 +1,15 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import LoadingIndicator from '../../components/loading_indicator';
import { fetchFavourites } from '../../actions/interactions';
import { ScrollContainer } from 'react-router-scroll-4';
import { FormattedMessage } from 'react-intl';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ScrollableList from '../../components/scrollable_list';
const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'favourited_by', props.params.statusId]),
@ -20,6 +21,7 @@ export default class Favourites extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
accountIds: ImmutablePropTypes.list,
};
@ -34,7 +36,7 @@ export default class Favourites extends ImmutablePureComponent {
}
render () {
const { accountIds } = this.props;
const { shouldUpdateScroll, accountIds } = this.props;
if (!accountIds) {
return (
@ -44,15 +46,21 @@ export default class Favourites extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this toot yet. When someone does, they will show up here.' />;
return (
<Column>
<ColumnBackButton />
<ScrollContainer scrollKey='favourites'>
<div className='scrollable'>
{accountIds.map(id => <AccountContainer key={id} id={id} withNote={false} />)}
</div>
</ScrollContainer>
<ScrollableList
scrollKey='favourites'
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} withNote={false} />
)}
</ScrollableList>
</Column>
);
}

View file

@ -1,15 +1,16 @@
import React from 'react';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from '../../components/loading_indicator';
import { ScrollContainer } from 'react-router-scroll-4';
import Column from '../ui/components/column';
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import AccountAuthorizeContainer from './containers/account_authorize_container';
import { fetchFollowRequests, expandFollowRequests } from '../../actions/accounts';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ScrollableList from '../../components/scrollable_list';
const messages = defineMessages({
heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' },
@ -26,6 +27,7 @@ export default class FollowRequests extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
accountIds: ImmutablePropTypes.list,
intl: PropTypes.object.isRequired,
};
@ -34,16 +36,12 @@ export default class FollowRequests extends ImmutablePureComponent {
this.props.dispatch(fetchFollowRequests());
}
handleScroll = (e) => {
const { scrollTop, scrollHeight, clientHeight } = e.target;
if (scrollTop === scrollHeight - clientHeight) {
this.props.dispatch(expandFollowRequests());
}
}
handleLoadMore = debounce(() => {
this.props.dispatch(expandFollowRequests());
}, 300, { leading: true });
render () {
const { intl, accountIds } = this.props;
const { intl, shouldUpdateScroll, accountIds } = this.props;
if (!accountIds) {
return (
@ -53,17 +51,21 @@ export default class FollowRequests extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.follow_requests' defaultMessage="You don't have any follow requests yet. When you receive one, it will show up here." />;
return (
<Column icon='users' heading={intl.formatMessage(messages.heading)}>
<ColumnBackButtonSlim />
<ScrollContainer scrollKey='follow_requests'>
<div className='scrollable' onScroll={this.handleScroll}>
{accountIds.map(id =>
<AccountAuthorizeContainer key={id} id={id} />
)}
</div>
</ScrollContainer>
<ScrollableList
scrollKey='follow_requests'
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{accountIds.map(id =>
<AccountAuthorizeContainer key={id} id={id} />
)}
</ScrollableList>
</Column>
);
}

View file

@ -1,20 +1,21 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from '../../components/loading_indicator';
import {
fetchAccount,
fetchFollowers,
expandFollowers,
} from '../../actions/accounts';
import { ScrollContainer } from 'react-router-scroll-4';
import { FormattedMessage } from 'react-intl';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
import HeaderContainer from '../account_timeline/containers/header_container';
import LoadMore from '../../components/load_more';
import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ScrollableList from '../../components/scrollable_list';
const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'followers', props.params.accountId, 'items']),
@ -27,6 +28,7 @@ export default class Followers extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
accountIds: ImmutablePropTypes.list,
hasMore: PropTypes.bool,
};
@ -43,23 +45,12 @@ export default class Followers extends ImmutablePureComponent {
}
}
handleScroll = (e) => {
const { scrollTop, scrollHeight, clientHeight } = e.target;
if (scrollTop === scrollHeight - clientHeight && this.props.hasMore) {
this.props.dispatch(expandFollowers(this.props.params.accountId));
}
}
handleLoadMore = (e) => {
e.preventDefault();
handleLoadMore = debounce(() => {
this.props.dispatch(expandFollowers(this.props.params.accountId));
}
}, 300, { leading: true });
render () {
const { accountIds, hasMore } = this.props;
let loadMore = null;
const { shouldUpdateScroll, accountIds, hasMore } = this.props;
if (!accountIds) {
return (
@ -69,23 +60,25 @@ export default class Followers extends ImmutablePureComponent {
);
}
if (hasMore) {
loadMore = <LoadMore onClick={this.handleLoadMore} />;
}
const emptyMessage = <FormattedMessage id='account.followers.empty' defaultMessage='No one follows this user yet.' />;
return (
<Column>
<ColumnBackButton />
<ScrollContainer scrollKey='followers'>
<div className='scrollable' onScroll={this.handleScroll}>
<div className='followers'>
<HeaderContainer accountId={this.props.params.accountId} hideTabs />
{accountIds.map(id => <AccountContainer key={id} id={id} withNote={false} />)}
{loadMore}
</div>
</div>
</ScrollContainer>
<HeaderContainer accountId={this.props.params.accountId} hideTabs />
<ScrollableList
scrollKey='followers'
hasMore={hasMore}
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} withNote={false} />
)}
</ScrollableList>
</Column>
);
}

View file

@ -1,20 +1,21 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from '../../components/loading_indicator';
import {
fetchAccount,
fetchFollowing,
expandFollowing,
} from '../../actions/accounts';
import { ScrollContainer } from 'react-router-scroll-4';
import { FormattedMessage } from 'react-intl';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
import HeaderContainer from '../account_timeline/containers/header_container';
import LoadMore from '../../components/load_more';
import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ScrollableList from '../../components/scrollable_list';
const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'following', props.params.accountId, 'items']),
@ -27,6 +28,7 @@ export default class Following extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
accountIds: ImmutablePropTypes.list,
hasMore: PropTypes.bool,
};
@ -43,23 +45,12 @@ export default class Following extends ImmutablePureComponent {
}
}
handleScroll = (e) => {
const { scrollTop, scrollHeight, clientHeight } = e.target;
if (scrollTop === scrollHeight - clientHeight && this.props.hasMore) {
this.props.dispatch(expandFollowing(this.props.params.accountId));
}
}
handleLoadMore = (e) => {
e.preventDefault();
handleLoadMore = debounce(() => {
this.props.dispatch(expandFollowing(this.props.params.accountId));
}
}, 300, { leading: true });
render () {
const { accountIds, hasMore } = this.props;
let loadMore = null;
const { shouldUpdateScroll, accountIds, hasMore } = this.props;
if (!accountIds) {
return (
@ -69,23 +60,25 @@ export default class Following extends ImmutablePureComponent {
);
}
if (hasMore) {
loadMore = <LoadMore onClick={this.handleLoadMore} />;
}
const emptyMessage = <FormattedMessage id='account.follows.empty' defaultMessage="This user doesn't follow anyone yet." />;
return (
<Column>
<ColumnBackButton />
<ScrollContainer scrollKey='following'>
<div className='scrollable' onScroll={this.handleScroll}>
<div className='following'>
<HeaderContainer accountId={this.props.params.accountId} hideTabs />
{accountIds.map(id => <AccountContainer key={id} id={id} withNote={false} />)}
{loadMore}
</div>
</div>
</ScrollContainer>
<HeaderContainer accountId={this.props.params.accountId} hideTabs />
<ScrollableList
scrollKey='following'
hasMore={hasMore}
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} withNote={false} />
)}
</ScrollableList>
</Column>
);
}

View file

@ -7,7 +7,7 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { me, invitesEnabled } from '../../initial_state';
import { me, invitesEnabled, version } from '../../initial_state';
import { fetchFollowRequests } from '../../actions/accounts';
import { List as ImmutableList } from 'immutable';
import { Link } from 'react-router-dom';
@ -31,6 +31,7 @@ const messages = defineMessages({
discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },
personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },
security: { id: 'navigation_bar.security', defaultMessage: 'Security' },
menu: { id: 'getting_started.heading', defaultMessage: 'Getting started' },
});
const mapStateToProps = state => ({
@ -115,7 +116,7 @@ export default class GettingStarted extends ImmutablePureComponent {
}
return (
<Column>
<Column label={intl.formatMessage(messages.menu)}>
{multiColumn && <div className='column-header__wrapper'>
<h1 className='column-header'>
<button>
@ -139,6 +140,7 @@ export default class GettingStarted extends ImmutablePureComponent {
{multiColumn && <li><Link to='/keyboard-shortcuts'><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></Link> · </li>}
<li><a href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security' /></a> · </li>
<li><a href='/about/more' target='_blank'><FormattedMessage id='navigation_bar.info' defaultMessage='About this instance' /></a> · </li>
<li><a href='https://joinmastodon.org/apps' target='_blank'><FormattedMessage id='navigation_bar.apps' defaultMessage='Mobile apps' /></a> · </li>
<li><a href='/terms' target='_blank'><FormattedMessage id='getting_started.terms' defaultMessage='Terms of service' /></a> · </li>
<li><a href='/settings/applications' target='_blank'><FormattedMessage id='getting_started.developers' defaultMessage='Developers' /></a> · </li>
<li><a href='https://github.com/tootsuite/documentation#documentation' target='_blank'><FormattedMessage id='getting_started.documentation' defaultMessage='Documentation' /></a> · </li>
@ -149,7 +151,7 @@ export default class GettingStarted extends ImmutablePureComponent {
<FormattedMessage
id='getting_started.open_source_notice'
defaultMessage='Mastodon is open source software. You can contribute or report issues on GitHub at {github}.'
values={{ github: <a href='https://github.com/tootsuite/mastodon' rel='noopener' target='_blank'>tootsuite/mastodon</a> }}
values={{ github: <span><a href='https://github.com/tootsuite/mastodon' rel='noopener' target='_blank'>tootsuite/mastodon</a> (v{version})</span> }}
/>
</p>
</div>

View file

@ -20,6 +20,7 @@ export default class HashtagTimeline extends React.PureComponent {
params: PropTypes.object.isRequired,
columnId: PropTypes.string,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
hasUnread: PropTypes.bool,
multiColumn: PropTypes.bool,
};
@ -83,12 +84,12 @@ export default class HashtagTimeline extends React.PureComponent {
}
render () {
const { hasUnread, columnId, multiColumn } = this.props;
const { shouldUpdateScroll, hasUnread, columnId, multiColumn } = this.props;
const { id } = this.props.params;
const pinned = !!columnId;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={`#${id}`}>
<ColumnHeader
icon='hashtag'
active={hasUnread}
@ -107,6 +108,7 @@ export default class HashtagTimeline extends React.PureComponent {
timelineId={`hashtag:${id}`}
onLoadMore={this.handleLoadMore}
emptyMessage={<FormattedMessage id='empty_column.hashtag' defaultMessage='There is nothing in this hashtag yet.' />}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -25,6 +25,7 @@ export default class HomeTimeline extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
intl: PropTypes.object.isRequired,
hasUnread: PropTypes.bool,
isPartial: PropTypes.bool,
@ -93,11 +94,11 @@ export default class HomeTimeline extends React.PureComponent {
}
render () {
const { intl, hasUnread, columnId, multiColumn } = this.props;
const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn } = this.props;
const pinned = !!columnId;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='home'
active={hasUnread}
@ -117,6 +118,7 @@ export default class HomeTimeline extends React.PureComponent {
onLoadMore={this.handleLoadMore}
timelineId='home'
emptyMessage={<FormattedMessage id='empty_column.home' defaultMessage='Your home timeline is empty! Visit {public} or use search to get started and meet other users.' values={{ public: <Link to='/timelines/public'><FormattedMessage id='empty_column.home.public_timeline' defaultMessage='the public timeline' /></Link> }} />}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -40,6 +40,10 @@ export default class KeyboardShortcuts extends ImmutablePureComponent {
<td><kbd>m</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.mention' defaultMessage='to mention author' /></td>
</tr>
<tr>
<td><kbd>p</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.profile' defaultMessage="to open author's profile" /></td>
</tr>
<tr>
<td><kbd>f</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.favourite' defaultMessage='to favourite' /></td>
@ -49,7 +53,7 @@ export default class KeyboardShortcuts extends ImmutablePureComponent {
<td><FormattedMessage id='keyboard_shortcuts.boost' defaultMessage='to boost' /></td>
</tr>
<tr>
<td><kbd>enter</kbd></td>
<td><kbd>enter</kbd>, <kbd>o</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.enter' defaultMessage='to open status' /></td>
</tr>
<tr>
@ -57,11 +61,11 @@ export default class KeyboardShortcuts extends ImmutablePureComponent {
<td><FormattedMessage id='keyboard_shortcuts.toggle_hidden' defaultMessage='to show/hide text behind CW' /></td>
</tr>
<tr>
<td><kbd>up</kbd></td>
<td><kbd>up</kbd>, <kbd>k</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.up' defaultMessage='to move up in the list' /></td>
</tr>
<tr>
<td><kbd>down</kbd></td>
<td><kbd>down</kbd>, <kbd>j</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.down' defaultMessage='to move down in the list' /></td>
</tr>
<tr>
@ -88,6 +92,54 @@ export default class KeyboardShortcuts extends ImmutablePureComponent {
<td><kbd>esc</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.unfocus' defaultMessage='to un-focus compose textarea/search' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>h</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.home' defaultMessage='to open home timeline' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>n</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.notifications' defaultMessage='to open notifications column' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>l</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.local' defaultMessage='to open local timeline' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>t</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.federated' defaultMessage='to open federated timeline' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>d</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.direct' defaultMessage='to open direct messages column' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>s</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.start' defaultMessage='to open "get started" column' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>f</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.favourites' defaultMessage='to open favourites list' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>p</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.pinned' defaultMessage='to open pinned toots list' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>u</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.my_profile' defaultMessage='to open your profile' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>b</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.blocked' defaultMessage='to open blocked users list' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>m</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.muted' defaultMessage='to open muted users list' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>r</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.requests' defaultMessage='to open follow requests list' /></td>
</tr>
<tr>
<td><kbd>?</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.legend' defaultMessage='to display this legend' /></td>

View file

@ -35,6 +35,7 @@ export default class ListTimeline extends React.PureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
columnId: PropTypes.string,
hasUnread: PropTypes.bool,
multiColumn: PropTypes.bool,
@ -112,7 +113,7 @@ export default class ListTimeline extends React.PureComponent {
}
render () {
const { hasUnread, columnId, multiColumn, list } = this.props;
const { shouldUpdateScroll, hasUnread, columnId, multiColumn, list } = this.props;
const { id } = this.props.params;
const pinned = !!columnId;
const title = list ? list.get('title') : id;
@ -136,7 +137,7 @@ export default class ListTimeline extends React.PureComponent {
}
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={title}>
<ColumnHeader
icon='list-ul'
active={hasUnread}
@ -166,6 +167,7 @@ export default class ListTimeline extends React.PureComponent {
timelineId={`list:${id}`}
onLoadMore={this.handleLoadMore}
emptyMessage={<FormattedMessage id='empty_column.list' defaultMessage='There is nothing in this list yet. When members of this list post new statuses, they will appear here.' />}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -6,12 +6,13 @@ import LoadingIndicator from '../../components/loading_indicator';
import Column from '../ui/components/column';
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import { fetchLists } from '../../actions/lists';
import { defineMessages, injectIntl } from 'react-intl';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ColumnLink from '../ui/components/column_link';
import ColumnSubheading from '../ui/components/column_subheading';
import NewListForm from './components/new_list_form';
import { createSelector } from 'reselect';
import ScrollableList from '../../components/scrollable_list';
const messages = defineMessages({
heading: { id: 'column.lists', defaultMessage: 'Lists' },
@ -46,7 +47,7 @@ export default class Lists extends ImmutablePureComponent {
}
render () {
const { intl, lists } = this.props;
const { intl, shouldUpdateScroll, lists } = this.props;
if (!lists) {
return (
@ -56,19 +57,24 @@ export default class Lists extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.lists' defaultMessage="You don't have any lists yet. When you create one, it will show up here." />;
return (
<Column icon='list-ul' heading={intl.formatMessage(messages.heading)}>
<ColumnBackButtonSlim />
<NewListForm />
<div className='scrollable'>
<ColumnSubheading text={intl.formatMessage(messages.subheading)} />
<ColumnSubheading text={intl.formatMessage(messages.subheading)} />
<ScrollableList
scrollKey='lists'
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{lists.map(list =>
<ColumnLink key={list.get('id')} to={`/timelines/list/${list.get('id')}`} icon='list-ul' text={list.get('title')} />
)}
</div>
</ScrollableList>
</Column>
);
}

View file

@ -1,15 +1,16 @@
import React from 'react';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from '../../components/loading_indicator';
import { ScrollContainer } from 'react-router-scroll-4';
import Column from '../ui/components/column';
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import AccountContainer from '../../containers/account_container';
import { fetchMutes, expandMutes } from '../../actions/mutes';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ScrollableList from '../../components/scrollable_list';
const messages = defineMessages({
heading: { id: 'column.mutes', defaultMessage: 'Muted users' },
@ -26,6 +27,7 @@ export default class Mutes extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
accountIds: ImmutablePropTypes.list,
intl: PropTypes.object.isRequired,
};
@ -34,16 +36,12 @@ export default class Mutes extends ImmutablePureComponent {
this.props.dispatch(fetchMutes());
}
handleScroll = (e) => {
const { scrollTop, scrollHeight, clientHeight } = e.target;
if (scrollTop === scrollHeight - clientHeight) {
this.props.dispatch(expandMutes());
}
}
handleLoadMore = debounce(() => {
this.props.dispatch(expandMutes());
}, 300, { leading: true });
render () {
const { intl, accountIds } = this.props;
const { intl, shouldUpdateScroll, accountIds } = this.props;
if (!accountIds) {
return (
@ -53,16 +51,21 @@ export default class Mutes extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.mutes' defaultMessage="You haven't muted any users yet." />;
return (
<Column icon='volume-off' heading={intl.formatMessage(messages.heading)}>
<ColumnBackButtonSlim />
<ScrollContainer scrollKey='mutes'>
<div className='scrollable mutes' onScroll={this.handleScroll}>
{accountIds.map(id =>
<AccountContainer key={id} id={id} />
)}
</div>
</ScrollContainer>
<ScrollableList
scrollKey='mutes'
onLoadMore={this.handleLoadMore}
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} />
)}
</ScrollableList>
</Column>
);
}

View file

@ -3,11 +3,20 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import StatusContainer from '../../../containers/status_container';
import AccountContainer from '../../../containers/account_container';
import { FormattedMessage } from 'react-intl';
import { injectIntl, FormattedMessage } from 'react-intl';
import Permalink from '../../../components/permalink';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { HotKeys } from 'react-hotkeys';
const notificationForScreenReader = (intl, message, timestamp) => {
const output = [message];
output.push(intl.formatDate(timestamp, { hour: '2-digit', minute: '2-digit', month: 'short', day: 'numeric' }));
return output.join(', ');
};
@injectIntl
export default class Notification extends ImmutablePureComponent {
static contextTypes = {
@ -20,6 +29,7 @@ export default class Notification extends ImmutablePureComponent {
onMoveUp: PropTypes.func.isRequired,
onMoveDown: PropTypes.func.isRequired,
onMention: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
};
handleMoveUp = () => {
@ -65,10 +75,12 @@ export default class Notification extends ImmutablePureComponent {
};
}
renderFollow (account, link) {
renderFollow (notification, account, link) {
const { intl } = this.props;
return (
<HotKeys handlers={this.getHandlers()}>
<div className='notification notification-follow focusable' tabIndex='0'>
<div className='notification notification-follow focusable' tabIndex='0' aria-label={notificationForScreenReader(intl, intl.formatMessage({ id: 'notification.follow', defaultMessage: '{name} followed you' }, { name: account.get('acct') }), notification.get('created_at'))}>
<div className='notification__message'>
<div className='notification__favourite-icon-wrapper'>
<i className='fa fa-fw fa-user-plus' />
@ -97,9 +109,11 @@ export default class Notification extends ImmutablePureComponent {
}
renderFavourite (notification, link) {
const { intl } = this.props;
return (
<HotKeys handlers={this.getHandlers()}>
<div className='notification notification-favourite focusable' tabIndex='0'>
<div className='notification notification-favourite focusable' tabIndex='0' aria-label={notificationForScreenReader(intl, intl.formatMessage({ id: 'notification.favourite', defaultMessage: '{name} favourited your status' }, { name: notification.getIn(['account', 'acct']) }), notification.get('created_at'))}>
<div className='notification__message'>
<div className='notification__favourite-icon-wrapper'>
<i className='fa fa-fw fa-star star-icon' />
@ -114,9 +128,11 @@ export default class Notification extends ImmutablePureComponent {
}
renderReblog (notification, link) {
const { intl } = this.props;
return (
<HotKeys handlers={this.getHandlers()}>
<div className='notification notification-reblog focusable' tabIndex='0'>
<div className='notification notification-reblog focusable' tabIndex='0' aria-label={notificationForScreenReader(intl, intl.formatMessage({ id: 'notification.reblog', defaultMessage: '{name} boosted your status' }, { name: notification.getIn(['account', 'acct']) }), notification.get('created_at'))}>
<div className='notification__message'>
<div className='notification__favourite-icon-wrapper'>
<i className='fa fa-fw fa-retweet' />
@ -138,7 +154,7 @@ export default class Notification extends ImmutablePureComponent {
switch(notification.get('type')) {
case 'follow':
return this.renderFollow(account, link);
return this.renderFollow(notification, account, link);
case 'mention':
return this.renderMention(notification);
case 'favourite':

View file

@ -165,7 +165,7 @@ export default class Notifications extends React.PureComponent {
);
return (
<Column ref={this.setColumnRef}>
<Column ref={this.setColumnRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='bell'
active={isUnread}

View file

@ -24,6 +24,7 @@ export default class PinnedStatuses extends ImmutablePureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
statusIds: ImmutablePropTypes.list.isRequired,
intl: PropTypes.object.isRequired,
hasMore: PropTypes.bool.isRequired,
@ -42,7 +43,7 @@ export default class PinnedStatuses extends ImmutablePureComponent {
}
render () {
const { intl, statusIds, hasMore } = this.props;
const { intl, shouldUpdateScroll, statusIds, hasMore } = this.props;
return (
<Column icon='thumb-tack' heading={intl.formatMessage(messages.heading)} ref={this.setRef}>
@ -51,6 +52,7 @@ export default class PinnedStatuses extends ImmutablePureComponent {
statusIds={statusIds}
scrollKey='pinned_statuses'
hasMore={hasMore}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -39,6 +39,7 @@ export default class PublicTimeline extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
intl: PropTypes.object.isRequired,
columnId: PropTypes.string,
multiColumn: PropTypes.bool,
@ -107,11 +108,11 @@ export default class PublicTimeline extends React.PureComponent {
}
render () {
const { intl, columnId, hasUnread, multiColumn, onlyMedia } = this.props;
const { intl, shouldUpdateScroll, columnId, hasUnread, multiColumn, onlyMedia } = this.props;
const pinned = !!columnId;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='globe'
active={hasUnread}
@ -131,6 +132,7 @@ export default class PublicTimeline extends React.PureComponent {
trackScroll={!pinned}
scrollKey={`public_timeline-${columnId}`}
emptyMessage={<FormattedMessage id='empty_column.public' defaultMessage='There is nothing here! Write something publicly, or manually follow users from other instances to fill it up' />}
shouldUpdateScroll={shouldUpdateScroll}
/>
</Column>
);

View file

@ -1,14 +1,15 @@
import React from 'react';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import LoadingIndicator from '../../components/loading_indicator';
import { fetchReblogs } from '../../actions/interactions';
import { ScrollContainer } from 'react-router-scroll-4';
import { FormattedMessage } from 'react-intl';
import AccountContainer from '../../containers/account_container';
import Column from '../ui/components/column';
import ColumnBackButton from '../../components/column_back_button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import ScrollableList from '../../components/scrollable_list';
const mapStateToProps = (state, props) => ({
accountIds: state.getIn(['user_lists', 'reblogged_by', props.params.statusId]),
@ -20,6 +21,7 @@ export default class Reblogs extends ImmutablePureComponent {
static propTypes = {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
shouldUpdateScroll: PropTypes.func,
accountIds: ImmutablePropTypes.list,
};
@ -34,7 +36,7 @@ export default class Reblogs extends ImmutablePureComponent {
}
render () {
const { accountIds } = this.props;
const { shouldUpdateScroll, accountIds } = this.props;
if (!accountIds) {
return (
@ -44,15 +46,21 @@ export default class Reblogs extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this toot yet. When someone does, they will show up here.' />;
return (
<Column>
<ColumnBackButton />
<ScrollContainer scrollKey='reblogs'>
<div className='scrollable reblogs'>
{accountIds.map(id => <AccountContainer key={id} id={id} withNote={false} />)}
</div>
</ScrollContainer>
<ScrollableList
scrollKey='reblogs'
shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} withNote={false} />
)}
</ScrollableList>
</Column>
);
}

View file

@ -36,6 +36,7 @@ export default class StatusCheckBox extends React.PureComponent {
<Component
preview={video.get('preview_url')}
src={video.get('url')}
alt={video.get('description')}
width={239}
height={110}
inline

View file

@ -51,7 +51,7 @@ export default class CommunityTimeline extends React.PureComponent {
const { intl } = this.props;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='users'
title={intl.formatMessage(messages.title)}

View file

@ -51,7 +51,7 @@ export default class PublicTimeline extends React.PureComponent {
const { intl } = this.props;
return (
<Column ref={this.setRef}>
<Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='globe'
title={intl.formatMessage(messages.title)}

View file

@ -65,11 +65,11 @@ export default class ActionBar extends React.PureComponent {
}
handleDeleteClick = () => {
this.props.onDelete(this.props.status);
this.props.onDelete(this.props.status, this.context.router.history);
}
handleRedraftClick = () => {
this.props.onDelete(this.props.status, true);
this.props.onDelete(this.props.status, this.context.router.history, true);
}
handleDirectClick = () => {

View file

@ -26,7 +26,7 @@ export default class DetailedStatus extends ImmutablePureComponent {
};
handleAccountClick = (e) => {
if (e.button === 0) {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);
}
@ -60,6 +60,7 @@ export default class DetailedStatus extends ImmutablePureComponent {
<Video
preview={video.get('preview_url')}
src={video.get('url')}
alt={video.get('description')}
width={300}
height={150}
inline

View file

@ -42,16 +42,18 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { HotKeys } from 'react-hotkeys';
import { boostModal, deleteModal } from '../../initial_state';
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../../features/ui/util/fullscreen';
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';
import { textForScreenReader } from '../../components/status';
const messages = defineMessages({
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' },
redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' },
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.' },
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.' },
blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },
hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' },
detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },
});
const makeMapStateToProps = () => {
@ -174,16 +176,16 @@ export default class Status extends ImmutablePureComponent {
}
}
handleDeleteClick = (status, withRedraft = false) => {
handleDeleteClick = (status, history, withRedraft = false) => {
const { dispatch, intl } = this.props;
if (!deleteModal) {
dispatch(deleteStatus(status.get('id'), withRedraft));
dispatch(deleteStatus(status.get('id'), history, withRedraft));
} else {
dispatch(openModal('CONFIRM', {
message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage),
confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm),
onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)),
onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)),
}));
}
}
@ -355,7 +357,9 @@ export default class Status extends ImmutablePureComponent {
if (status && ancestorsIds && ancestorsIds.size > 0) {
const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];
element.scrollIntoView(true);
window.requestAnimationFrame(() => {
element.scrollIntoView(true);
});
this._scrolledIntoView = true;
}
}
@ -370,7 +374,7 @@ export default class Status extends ImmutablePureComponent {
render () {
let ancestors, descendants;
const { status, ancestorsIds, descendantsIds, intl } = this.props;
const { shouldUpdateScroll, status, ancestorsIds, descendantsIds, intl } = this.props;
const { fullscreen } = this.state;
if (status === null) {
@ -402,7 +406,7 @@ export default class Status extends ImmutablePureComponent {
};
return (
<Column>
<Column label={intl.formatMessage(messages.detailedStatus)}>
<ColumnHeader
showBackButton
extraButton={(
@ -410,12 +414,12 @@ export default class Status extends ImmutablePureComponent {
)}
/>
<ScrollContainer scrollKey='thread'>
<ScrollContainer scrollKey='thread' shouldUpdateScroll={shouldUpdateScroll}>
<div className={classNames('scrollable', 'detailed-status__wrapper', { fullscreen })} ref={this.setRef}>
{ancestors}
<HotKeys handlers={handlers}>
<div className='focusable' tabIndex='0'>
<div className='focusable' tabIndex='0' aria-label={textForScreenReader(intl, status, false, !status.get('hidden'))}>
<DetailedStatus
status={status}
onOpenVideo={this.handleOpenVideo}

View file

@ -1,66 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
import { injectIntl, defineMessages } from 'react-intl';
import Column from '../ui/components/column';
import ColumnHeader from '../../components/column_header';
import Hashtag from '../../components/hashtag';
import classNames from 'classnames';
import { fetchTrends } from '../../actions/trends';
const messages = defineMessages({
title: { id: 'trends.header', defaultMessage: 'Trending now' },
refreshTrends: { id: 'trends.refresh', defaultMessage: 'Refresh trends' },
});
const mapStateToProps = state => ({
trends: state.getIn(['trends', 'items']),
loading: state.getIn(['trends', 'isLoading']),
});
const mapDispatchToProps = dispatch => ({
fetchTrends: () => dispatch(fetchTrends()),
});
@connect(mapStateToProps, mapDispatchToProps)
@injectIntl
export default class Trends extends ImmutablePureComponent {
static propTypes = {
intl: PropTypes.object.isRequired,
trends: ImmutablePropTypes.list,
fetchTrends: PropTypes.func.isRequired,
loading: PropTypes.bool,
};
componentDidMount () {
this.props.fetchTrends();
}
handleRefresh = () => {
this.props.fetchTrends();
}
render () {
const { trends, loading, intl } = this.props;
return (
<Column>
<ColumnHeader
icon='fire'
title={intl.formatMessage(messages.title)}
extraButton={(
<button className='column-header__button' title={intl.formatMessage(messages.refreshTrends)} aria-label={intl.formatMessage(messages.refreshTrends)} onClick={this.handleRefresh}><i className={classNames('fa', 'fa-refresh', { 'fa-spin': loading })} /></button>
)}
/>
<div className='scrollable'>
{trends && trends.map(hashtag => <Hashtag key={hashtag.get('name')} hashtag={hashtag} />)}
</div>
</Column>
);
}
}

View file

@ -37,7 +37,7 @@ export default class BoostModal extends ImmutablePureComponent {
}
handleAccountClick = (e) => {
if (e.button === 0) {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.props.onClose();
this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);

View file

@ -1,6 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { LoadingBar } from 'react-redux-loading-bar';
import ZoomableImage from './zoomable_image';
export default class ImageLoader extends React.PureComponent {
@ -23,6 +24,7 @@ export default class ImageLoader extends React.PureComponent {
state = {
loading: true,
error: false,
width: null,
}
removers = [];
@ -122,6 +124,7 @@ export default class ImageLoader extends React.PureComponent {
setCanvasRef = c => {
this.canvas = c;
if (c) this.setState({ width: c.offsetWidth });
}
render () {
@ -135,6 +138,7 @@ export default class ImageLoader extends React.PureComponent {
return (
<div className={className}>
<LoadingBar loading={loading ? 1 : 0} className='loading-bar' style={{ width: this.state.width || width }} />
{loading ? (
<canvas
className='image-loader__preview-canvas'

View file

@ -16,7 +16,7 @@ const messages = defineMessages({
next: { id: 'lightbox.next', defaultMessage: 'Next' },
});
const previewState = 'previewMediaModal';
export const previewState = 'previewMediaModal';
@injectIntl
export default class MediaModal extends ImmutablePureComponent {
@ -54,19 +54,23 @@ export default class MediaModal extends ImmutablePureComponent {
this.setState({ index: index % this.props.media.size });
}
handleKeyUp = (e) => {
handleKeyDown = (e) => {
switch(e.key) {
case 'ArrowLeft':
this.handlePrevClick();
e.preventDefault();
e.stopPropagation();
break;
case 'ArrowRight':
this.handleNextClick();
e.preventDefault();
e.stopPropagation();
break;
}
}
componentDidMount () {
window.addEventListener('keyup', this.handleKeyUp, false);
window.addEventListener('keydown', this.handleKeyDown, false);
if (this.context.router) {
const history = this.context.router.history;
history.push(history.location.pathname, previewState);
@ -77,7 +81,7 @@ export default class MediaModal extends ImmutablePureComponent {
}
componentWillUnmount () {
window.removeEventListener('keyup', this.handleKeyUp);
window.removeEventListener('keydown', this.handleKeyDown);
if (this.context.router) {
this.unlistenHistory();

View file

@ -41,14 +41,15 @@ export default class ModalRoot extends React.PureComponent {
};
getSnapshotBeforeUpdate () {
const visible = !!this.props.type;
return {
overflowY: visible ? 'hidden' : null,
};
return { visible: !!this.props.type };
}
componentDidUpdate (prevProps, prevState, { overflowY }) {
document.body.style.overflowY = overflowY;
componentDidUpdate (prevProps, prevState, { visible }) {
if (visible) {
document.body.classList.add('with-modals--active');
} else {
document.body.classList.remove('with-modals--active');
}
}
renderLoading = modalId => () => {

View file

@ -1,12 +1,14 @@
import classNames from 'classnames';
import React from 'react';
import NotificationsContainer from './containers/notifications_container';
import { HotKeys } from 'react-hotkeys';
import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
import { Redirect, withRouter } from 'react-router-dom';
import PropTypes from 'prop-types';
import NotificationsContainer from './containers/notifications_container';
import LoadingBarContainer from './containers/loading_bar_container';
import TabsBar from './components/tabs_bar';
import ModalContainer from './containers/modal_container';
import { connect } from 'react-redux';
import { Redirect, withRouter } from 'react-router-dom';
import { isMobile } from '../../is_mobile';
import { debounce } from 'lodash';
import { uploadCompose, resetCompose } from '../../actions/compose';
@ -44,9 +46,8 @@ import {
PinnedStatuses,
Lists,
} from './util/async-components';
import { HotKeys } from 'react-hotkeys';
import { me } from '../../initial_state';
import { defineMessages, injectIntl } from 'react-intl';
import { previewState } from './components/media_modal';
// Dummy import, to make sure that <Status /> ends up in the application bundle.
// Without this it ends up in ~8 very commonly used bundles.
@ -88,6 +89,7 @@ const keyMap = {
goToProfile: 'g u',
goToBlocked: 'g b',
goToMuted: 'g m',
goToRequests: 'g r',
toggleHidden: 'x',
};
@ -117,6 +119,10 @@ class SwitchingColumnsArea extends React.PureComponent {
window.removeEventListener('resize', this.handleResize);
}
shouldUpdateScroll (_, { location }) {
return location.state !== previewState;
}
handleResize = debounce(() => {
// The cached heights are no longer accurate, invalidate
this.props.onLayoutChange();
@ -141,37 +147,37 @@ class SwitchingColumnsArea extends React.PureComponent {
{redirect}
<WrappedRoute path='/getting-started' component={GettingStarted} content={children} />
<WrappedRoute path='/keyboard-shortcuts' component={KeyboardShortcuts} content={children} />
<WrappedRoute path='/timelines/home' component={HomeTimeline} content={children} />
<WrappedRoute path='/timelines/public' exact component={PublicTimeline} content={children} />
<WrappedRoute path='/timelines/public/media' component={PublicTimeline} content={children} componentParams={{ onlyMedia: true }} />
<WrappedRoute path='/timelines/public/local' exact component={CommunityTimeline} content={children} />
<WrappedRoute path='/timelines/public/local/media' component={CommunityTimeline} content={children} componentParams={{ onlyMedia: true }} />
<WrappedRoute path='/timelines/direct' component={DirectTimeline} content={children} />
<WrappedRoute path='/timelines/tag/:id' component={HashtagTimeline} content={children} />
<WrappedRoute path='/timelines/list/:id' component={ListTimeline} content={children} />
<WrappedRoute path='/timelines/home' component={HomeTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/timelines/public' exact component={PublicTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/timelines/public/media' component={PublicTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll, onlyMedia: true }} />
<WrappedRoute path='/timelines/public/local' exact component={CommunityTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/timelines/public/local/media' component={CommunityTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll, onlyMedia: true }} />
<WrappedRoute path='/timelines/direct' component={DirectTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/timelines/tag/:id' component={HashtagTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/timelines/list/:id' component={ListTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/notifications' component={Notifications} content={children} />
<WrappedRoute path='/favourites' component={FavouritedStatuses} content={children} />
<WrappedRoute path='/pinned' component={PinnedStatuses} content={children} />
<WrappedRoute path='/notifications' component={Notifications} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/favourites' component={FavouritedStatuses} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/pinned' component={PinnedStatuses} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/search' component={Compose} content={children} componentParams={{ isSearchPage: true }} />
<WrappedRoute path='/statuses/new' component={Compose} content={children} />
<WrappedRoute path='/statuses/:statusId' exact component={Status} content={children} />
<WrappedRoute path='/statuses/:statusId/reblogs' component={Reblogs} content={children} />
<WrappedRoute path='/statuses/:statusId/favourites' component={Favourites} content={children} />
<WrappedRoute path='/statuses/:statusId' exact component={Status} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/statuses/:statusId/reblogs' component={Reblogs} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/statuses/:statusId/favourites' component={Favourites} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/accounts/:accountId' exact component={AccountTimeline} content={children} />
<WrappedRoute path='/accounts/:accountId/with_replies' component={AccountTimeline} content={children} componentParams={{ withReplies: true }} />
<WrappedRoute path='/accounts/:accountId/followers' component={Followers} content={children} />
<WrappedRoute path='/accounts/:accountId/following' component={Following} content={children} />
<WrappedRoute path='/accounts/:accountId/media' component={AccountGallery} content={children} />
<WrappedRoute path='/accounts/:accountId' exact component={AccountTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/accounts/:accountId/with_replies' component={AccountTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll, withReplies: true }} />
<WrappedRoute path='/accounts/:accountId/followers' component={Followers} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/accounts/:accountId/following' component={Following} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/accounts/:accountId/media' component={AccountGallery} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/follow_requests' component={FollowRequests} content={children} />
<WrappedRoute path='/blocks' component={Blocks} content={children} />
<WrappedRoute path='/domain_blocks' component={DomainBlocks} content={children} />
<WrappedRoute path='/mutes' component={Mutes} content={children} />
<WrappedRoute path='/lists' component={Lists} content={children} />
<WrappedRoute path='/follow_requests' component={FollowRequests} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/blocks' component={Blocks} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/domain_blocks' component={DomainBlocks} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/mutes' component={Mutes} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute path='/lists' component={Lists} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />
<WrappedRoute component={GenericNotFound} content={children} />
</WrappedSwitch>
@ -422,6 +428,10 @@ export default class UI extends React.PureComponent {
this.context.router.history.push('/mutes');
}
handleHotkeyGoToRequests = () => {
this.context.router.history.push('/follow_requests');
}
render () {
const { draggingOver } = this.state;
const { children, isComposing, location, dropdownMenuIsOpen } = this.props;
@ -444,6 +454,7 @@ export default class UI extends React.PureComponent {
goToProfile: this.handleHotkeyGoToProfile,
goToBlocked: this.handleHotkeyGoToBlocked,
goToMuted: this.handleHotkeyGoToMuted,
goToRequests: this.handleHotkeyGoToRequests,
};
return (

View file

@ -158,6 +158,9 @@ export default class Video extends React.PureComponent {
this.setState({ dragging: true });
this.video.pause();
this.handleMouseMove(e);
e.preventDefault();
e.stopPropagation();
}
handleMouseUp = () => {
@ -174,8 +177,10 @@ export default class Video extends React.PureComponent {
const { x } = getPointerPosition(this.seek, e);
const currentTime = Math.floor(this.video.duration * x);
this.video.currentTime = currentTime;
this.setState({ currentTime });
if (!isNaN(currentTime)) {
this.video.currentTime = currentTime;
this.setState({ currentTime });
}
}, 60);
togglePlay = () => {
@ -281,6 +286,15 @@ export default class Video extends React.PureComponent {
playerStyle.height = height;
}
let preload;
if (startTime || fullscreen || dragging) {
preload = 'auto';
} else if (detailed) {
preload = 'metadata';
} else {
preload = 'none';
}
return (
<div
role='menuitem'
@ -296,11 +310,12 @@ export default class Video extends React.PureComponent {
ref={this.setVideoRef}
src={src}
poster={preview}
preload={startTime ? 'auto' : 'none'}
preload={preload}
loop
role='button'
tabIndex='0'
aria-label={alt}
title={alt}
width={width}
height={height}
onClick={this.togglePlay}

View file

@ -12,5 +12,6 @@ export const deleteModal = getMeta('delete_modal');
export const me = getMeta('me');
export const searchEnabled = getMeta('search_enabled');
export const invitesEnabled = getMeta('invites_enabled');
export const version = getMeta('version');
export default initialState;

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "قد لا تعكس المعلومات أدناه الملف الشخصي الكامل للمستخدم.",
"account.domain_blocked": "النطاق مخفي",
"account.edit_profile": "تعديل الملف الشخصي",
"account.endorse": "إبرازه على الملف الشخصي",
"account.follow": "تابِع",
"account.followers": "المتابعون",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "يتبع",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "يتابعك",
"account.hide_reblogs": "إخفاء ترقيات @{name}",
"account.media": "وسائط",
@ -26,6 +29,7 @@
"account.show_reblogs": "عرض ترقيات @{name}",
"account.unblock": "إلغاء الحظر عن @{name}",
"account.unblock_domain": "فك حظر {domain}",
"account.unendorse": "إزالة ترويجه مِن الملف الشخصي",
"account.unfollow": "إلغاء المتابعة",
"account.unmute": "إلغاء الكتم عن @{name}",
"account.unmute_notifications": "إلغاء كتم إخطارات @{name}",
@ -88,7 +92,7 @@
"confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته ؟ سوف تفقد جميع الردود و الترقيات و المفضلة المتصلة به.",
"confirmations.unfollow.confirm": "إلغاء المتابعة",
"confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟",
"embed.instructions": "يمكنكم إدماج هذه الحالة على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
"embed.preview": "هكذا ما سوف يبدو عليه :",
"emoji_button.activity": "الأنشطة",
"emoji_button.custom": "مخصص",
@ -104,12 +108,19 @@
"emoji_button.search_results": "نتائج البحث",
"emoji_button.symbols": "رموز",
"emoji_button.travel": "أماكن و أسفار",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "الخط الزمني المحلي فارغ. أكتب شيئا ما للعامة كبداية !",
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "ليس هناك بعدُ أي محتوى ذو علاقة بهذا الوسم.",
"empty_column.home": "إنك لا تتبع بعد أي شخص إلى حد الآن. زر {public} أو استخدام حقل البحث لكي تبدأ على التعرف على مستخدمين آخرين.",
"empty_column.home": "إنّ الخيط الزمني لصفحتك الرئيسية فارغ. قم بزيارة {public} أو استخدم حقل البحث لكي تكتشف مستخدمين آخرين.",
"empty_column.home.public_timeline": "الخيط العام",
"empty_column.list": "هذه القائمة فارغة مؤقتا و لكن سوف تمتلئ تدريجيا عندما يبدأ الأعضاء المُنتَمين إليها بنشر تبويقات.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "لم تتلق أي إشعار بعدُ. تفاعل مع المستخدمين الآخرين لإنشاء محادثة.",
"empty_column.public": "لا يوجد أي شيء هنا ! قم بنشر شيء ما للعامة، أو إتبع مستخدمين آخرين في الخوادم المثيلة الأخرى لملء خيط المحادثات العام",
"follow_request.authorize": "ترخيص",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "مفتاح الإختصار",
"keyboard_shortcuts.legend": "لعرض هذا المفتاح",
"keyboard_shortcuts.mention": "لذِكر الناشر",
"keyboard_shortcuts.profile": "لفتح رابط الناشر",
"keyboard_shortcuts.reply": "للردّ",
"keyboard_shortcuts.search": "للتركيز على البحث",
"keyboard_shortcuts.toggle_hidden": "لعرض أو إخفاء النص مِن وراء التحذير",
@ -159,14 +171,16 @@
"missing_indicator.label": "تعذر العثور عليه",
"missing_indicator.sublabel": "تعذر العثور على هذا المورد",
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "الحسابات المحجوبة",
"navigation_bar.community_timeline": "الخيط العام المحلي",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "الرسائل المباشِرة",
"navigation_bar.discover": "إكتشف",
"navigation_bar.domain_blocks": "النطاقات المخفية",
"navigation_bar.edit_profile": "تعديل الملف الشخصي",
"navigation_bar.favourites": "المفضلة",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "الكلمات المكتومة",
"navigation_bar.follow_requests": "طلبات المتابعة",
"navigation_bar.info": "معلومات إضافية",
"navigation_bar.keyboard_shortcuts": "إختصارات لوحة المفاتيح",
@ -178,7 +192,7 @@
"navigation_bar.preferences": "التفضيلات",
"navigation_bar.public_timeline": "الخيط العام الموحد",
"navigation_bar.security": "الأمان",
"notification.favourite": "{name} أعجب بمنشورك",
"notification.favourite": "أُعجِب {name} بمنشورك",
"notification.follow": "{name} يتابعك",
"notification.mention": "{name} ذكرك",
"notification.reblog": "{name} قام بترقية تبويقك",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "إلغاء الترقية",
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
"status.delete": "إحذف",
"status.detailed_status": "Detailed conversation view",
"status.direct": "رسالة خاصة إلى @{name}",
"status.embed": "إدماج",
"status.favourite": "أضف إلى المفضلة",
@ -269,7 +284,8 @@
"status.pinned": "تبويق مثبَّت",
"status.reblog": "رَقِّي",
"status.reblog_private": "القيام بالترقية إلى الجمهور الأصلي",
"status.reblogged_by": "{name} رقى",
"status.reblogged_by": "رقّاه {name}",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "إزالة و إعادة الصياغة",
"status.reply": "ردّ",
"status.replyAll": "رُد على الخيط",

View file

@ -0,0 +1,324 @@
{
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
"account.block_domain": "Hide everything from {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct message @{name}",
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Edit profile",
"account.endorse": "Feature on profile",
"account.follow": "Follow",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Follows",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.report": "Report @{name}",
"account.requested": "Awaiting approval. Click to cancel follow request",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unhide {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.view_full_profile": "View full profile",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"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",
"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",
"column.blocks": "Blocked users",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.domain_blocks": "Hidden domains",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.notifications": "Notifications",
"column.pins": "Pinned toot",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_header.hide_settings": "Hide settings",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"community.column_settings.media_only": "Media Only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
"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}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
"emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
"empty_column.home.public_timeline": "the public timeline",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
"getting_started.documentation": "Documentation",
"getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Getting started",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
"getting_started.security": "Security",
"getting_started.terms": "Terms of service",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.boost": "to boost",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
"media_gallery.toggle_visible": "Toggle visibility",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
"navigation_bar.info": "About this instance",
"navigation_bar.keyboard_shortcuts": "Hotkeys",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.push_meta": "This device",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
"notifications.group": "{count} notifications",
"onboarding.done": "Done",
"onboarding.next": "Next",
"onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
"onboarding.page_four.home": "The home timeline shows posts from people you follow.",
"onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
"onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
"onboarding.page_one.full_handle": "Your full handle",
"onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
"onboarding.page_one.welcome": "Welcome to Mastodon!",
"onboarding.page_six.admin": "Your instance's admin is {admin}.",
"onboarding.page_six.almost_done": "Almost done...",
"onboarding.page_six.appetoot": "Bon Appetoot!",
"onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
"onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
"onboarding.page_six.guidelines": "community guidelines",
"onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
"onboarding.page_six.various_app": "mobile apps",
"onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
"onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
"onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
"onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Post to public timelines",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
"relative_time.just_now": "now",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"reply_indicator.cancel": "Cancel",
"report.forward": "Forward to {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
"report.placeholder": "Additional comments",
"report.submit": "Submit",
"report.target": "Report {target}",
"search.placeholder": "Search",
"search_popout.search_format": "Advanced search format",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "status",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.load_more": "Load more",
"status.media_hidden": "Media hidden",
"status.mention": "Mention @{name}",
"status.more": "More",
"status.mute": "Mute @{name}",
"status.mute_conversation": "Mute conversation",
"status.open": "Expand this status",
"status.pin": "Pin on profile",
"status.pinned": "Pinned toot",
"status.reblog": "Boost",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_toggle": "Click to view",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.home": "Home",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Delete",
"upload_progress.label": "Uploading...",
"video.close": "Close video",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",
"video.hide": "Hide video",
"video.mute": "Mute sound",
"video.pause": "Pause",
"video.play": "Play",
"video.unmute": "Unmute sound"
}

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Редактирай профила си",
"account.endorse": "Feature on profile",
"account.follow": "Последвай",
"account.followers": "Последователи",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Следвам",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Твой последовател",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Не блокирай",
"account.unblock_domain": "Unhide {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Не следвай",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
"empty_column.home.public_timeline": "the public timeline",
"empty_column.list": "There is nothing in this list yet.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
"follow_request.authorize": "Authorize",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.delete": "Изтриване",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Предпочитани",
@ -270,6 +285,7 @@
"status.reblog": "Споделяне",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} сподели",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Отговор",
"status.replyAll": "Reply to thread",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "La informació següent pot reflectir incompleta el perfil de l'usuari.",
"account.domain_blocked": "Domini ocult",
"account.edit_profile": "Editar el perfil",
"account.endorse": "Feature on profile",
"account.follow": "Segueix",
"account.followers": "Seguidors",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Seguint",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Et segueix",
"account.hide_reblogs": "Amaga els impulsos de @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Mostra els impulsos de @{name}",
"account.unblock": "Desbloca @{name}",
"account.unblock_domain": "Mostra {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Deixa de seguir",
"account.unmute": "Treure silenci de @{name}",
"account.unmute_notifications": "Activar notificacions de @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Resultats de la cerca",
"emoji_button.symbols": "Símbols",
"emoji_button.travel": "Viatges i Llocs",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per fer rodar la pilota!",
"empty_column.direct": "Encara no tens missatges directes. Quan enviïs o rebis un, es mostrarà aquí.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Encara no hi ha res amb aquesta etiqueta.",
"empty_column.home": "Encara no segueixes ningú. Visita {public} o fes cerca per començar i conèixer altres usuaris.",
"empty_column.home.public_timeline": "la línia de temps pública",
"empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres d'aquesta llista publiquin nous estats, apareixeran aquí.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
"empty_column.public": "No hi ha res aquí! Escriu alguna cosa públicament o segueix manualment usuaris d'altres instàncies per omplir-ho",
"follow_request.authorize": "Autoritzar",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Tecla d'accés directe",
"keyboard_shortcuts.legend": "per a mostrar aquesta llegenda",
"keyboard_shortcuts.mention": "per esmentar l'autor",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "respondre",
"keyboard_shortcuts.search": "per centrar la cerca",
"keyboard_shortcuts.toggle_hidden": "per a mostrar/amagar text sota CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "No trobat",
"missing_indicator.sublabel": "Aquest recurs no pot ser trobat",
"mute_modal.hide_notifications": "Amagar notificacions d'aquest usuari?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Usuaris bloquejats",
"navigation_bar.community_timeline": "Línia de temps Local",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Missatges directes",
"navigation_bar.discover": "Descobreix",
"navigation_bar.domain_blocks": "Dominis ocults",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Desfer l'impuls",
"status.cannot_reblog": "Aquesta publicació no pot ser retootejada",
"status.delete": "Esborrar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Missatge directe @{name}",
"status.embed": "Incrustar",
"status.favourite": "Favorit",
@ -270,6 +285,7 @@
"status.reblog": "Impuls",
"status.reblog_private": "Impulsar a l'audiència original",
"status.reblogged_by": "{name} ha retootejat",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Esborrar i reescriure",
"status.reply": "Respondre",
"status.replyAll": "Respondre al tema",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Ghjè pussibule chì linfurmazione quì sottu ùn rifletta micca u prufile sanu di lutilizatore.",
"account.domain_blocked": "Duminiu piattatu",
"account.edit_profile": "Mudificà u prufile",
"account.endorse": "Feature on profile",
"account.follow": "Siguità",
"account.followers": "Abbunati",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Abbunamenti",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Vi seguita",
"account.hide_reblogs": "Piattà spartere da @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Vede spartere da @{name}",
"account.unblock": "Sbluccà @{name}",
"account.unblock_domain": "Ùn piattà più {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Ùn siguità più",
"account.unmute": "Ùn piattà più @{name}",
"account.unmute_notifications": "Ùn piattà più nutificazione da @{name}",
@ -59,9 +63,9 @@
"column_header.show_settings": "Mustrà i parametri",
"column_header.unpin": "Spuntarulà",
"column_subheading.settings": "Parametri",
"community.column_settings.media_only": "Media Only",
"community.column_settings.media_only": "Solu media",
"compose_form.direct_message_warning": "Solu l'utilizatori mintuvati puderenu vede stu statutu.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.direct_message_warning_learn_more": "Amparà di più",
"compose_form.hashtag_warning": "Stu statutu ùn hè \"Micca listatu\" è ùn sarà micca listatu indè e circate da hashtag. Per esse vistu in quesse, u statutu deve esse \"Pubblicu\".",
"compose_form.lock_disclaimer": "U vostru contu ùn hè micca {locked}. Tuttu u mondu pò seguitavi è vede i vostri statuti privati.",
"compose_form.lock_disclaimer.lock": "privatu",
@ -81,11 +85,11 @@
"confirmations.delete_list.confirm": "Toglie",
"confirmations.delete_list.message": "Site sicuru·a che vulete supprime sta lista?",
"confirmations.domain_block.confirm": "Piattà tuttu u duminiu",
"confirmations.domain_block.message": "Site sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà.",
"confirmations.domain_block.message": "Site sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.",
"confirmations.mute.confirm": "Piattà",
"confirmations.mute.message": "Site sicuru·a che vulete piattà @{name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"confirmations.redraft.confirm": "Sguassà è riscrive",
"confirmations.redraft.message": "Site sicuru·a chè vulete sguassà stu statutu è riscrivelu? Tutti i favuriti, risposte è spartere saranu persi.",
"confirmations.unfollow.confirm": "Disabbunassi",
"confirmations.unfollow.message": "Site sicuru·a ch'ùn vulete più siguità @{name}?",
"embed.instructions": "Integrà stu statutu à u vostru situ cù u codice quì sottu.",
@ -104,24 +108,31 @@
"emoji_button.search_results": "Risultati di a cerca",
"emoji_button.symbols": "Simbuli",
"emoji_button.travel": "Lochi è Viaghju",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Ùn c'hè nunda indè a linea lucale. Scrivete puru qualcosa!",
"empty_column.direct": "Ùn avete ancu nisun missaghju direttu. S'è voi mandate o ricevete unu, u vidarete quì.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Ùn c'hè ancu nunda quì.",
"empty_column.home": "A vostr'accolta hè viota! Pudete andà nant'à {public} o pruvà a ricerca per truvà parsone da siguità.",
"empty_column.home.public_timeline": "a linea pubblica",
"empty_column.list": "Ùn c'hè ancu nunda quì. Quandu membri di sta lista manderanu novi statuti, i vidarete quì.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Ùn avete ancu nisuna nutificazione. Interact with others to start the conversation.",
"empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altre istanze per empie a linea pubblica",
"follow_request.authorize": "Auturizà",
"follow_request.reject": "Righjittà",
"getting_started.developers": "Developers",
"getting_started.developers": "Sviluppatori",
"getting_started.documentation": "Documentation",
"getting_started.find_friends": "Find friends from Twitter",
"getting_started.find_friends": "Truvà amichi da Twitter",
"getting_started.heading": "Per principià",
"getting_started.invite": "Invite people",
"getting_started.invite": "Invità ghjente",
"getting_started.open_source_notice": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un bug, nant'à GitHub: {github}.",
"getting_started.security": "Security",
"getting_started.terms": "Terms of service",
"getting_started.security": "Sicurità",
"getting_started.terms": "Cundizione di u serviziu",
"home.column_settings.basic": "Bàsichi",
"home.column_settings.show_reblogs": "Vede e spartere",
"home.column_settings.show_replies": "Vede e risposte",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Accorta",
"keyboard_shortcuts.legend": "vede a legenda",
"keyboard_shortcuts.mention": "mintuvà l'autore",
"keyboard_shortcuts.profile": "per apre u prufile di l'autore",
"keyboard_shortcuts.reply": "risponde",
"keyboard_shortcuts.search": "fucalizà nant'à l'area di circata",
"keyboard_shortcuts.toggle_hidden": "vede/piattà u testu daretu à l'avertimentu CW",
@ -159,14 +171,16 @@
"missing_indicator.label": "Micca trovu",
"missing_indicator.sublabel": "Ùn era micca pussivule di truvà sta risorsa",
"mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Utilizatori bluccati",
"navigation_bar.community_timeline": "Linea pubblica lucale",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Missaghji diretti",
"navigation_bar.discover": "Discover",
"navigation_bar.discover": "Scopre",
"navigation_bar.domain_blocks": "Duminii piattati",
"navigation_bar.edit_profile": "Mudificà u prufile",
"navigation_bar.favourites": "Favuriti",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Parolle silenzate",
"navigation_bar.follow_requests": "Dumande d'abbunamentu",
"navigation_bar.info": "À prupositu di l'istanza",
"navigation_bar.keyboard_shortcuts": "Accorte cù a tastera",
@ -177,7 +191,7 @@
"navigation_bar.pins": "Statuti puntarulati",
"navigation_bar.preferences": "Preferenze",
"navigation_bar.public_timeline": "Linea pubblica glubale",
"navigation_bar.security": "Security",
"navigation_bar.security": "Sicurità",
"notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti",
"notification.follow": "{name} v'hà seguitatu",
"notification.mention": "{name} v'hà mintuvatu",
@ -193,7 +207,7 @@
"notifications.column_settings.reblog": "Spartere:",
"notifications.column_settings.show": "Mustrà indè a colonna",
"notifications.column_settings.sound": "Sunà",
"notifications.group": "{count} notifications",
"notifications.group": "{count} nutificazione",
"onboarding.done": "Fatta",
"onboarding.next": "Siguente",
"onboarding.page_five.public_timelines": "A linea pubblica lucale mostra statuti pubblichi da tuttu u mondu nant'à {domain}. A linea pubblica glubale mostra ancu quelli di a ghjente seguitata da l'utilizatori di {domain}. Quesse sò una bona manera d'incuntrà nove parsone.",
@ -205,7 +219,7 @@
"onboarding.page_one.welcome": "Benvenuti/a nant'à Mastodon!",
"onboarding.page_six.admin": "L'amministratore di a vostr'istanza hè {admin}.",
"onboarding.page_six.almost_done": "Quasgi finitu...",
"onboarding.page_six.appetoot": "Bon Appetoot!",
"onboarding.page_six.appetoot": "Bon Appitootu!",
"onboarding.page_six.apps_available": "Ci sò {apps} dispunibule per iOS, Android è altre piattaforme.",
"onboarding.page_six.github": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un prublemu, nant'à {github}.",
"onboarding.page_six.guidelines": "regule di a cumunità",
@ -254,10 +268,11 @@
"status.cancel_reblog_private": "Ùn sparte più",
"status.cannot_reblog": "Stu statutu ùn pò micca esse spartutu",
"status.delete": "Toglie",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Mandà un missaghju @{name}",
"status.embed": "Integrà",
"status.favourite": "Aghjunghje à i favuriti",
"status.filtered": "Filtered",
"status.filtered": "Filtratu",
"status.load_more": "Vede di più",
"status.media_hidden": "Media piattata",
"status.mention": "Mintuvà @{name}",
@ -270,7 +285,8 @@
"status.reblog": "Sparte",
"status.reblog_private": "Sparte à l'audienza uriginale",
"status.reblogged_by": "{name} hà spartutu",
"status.redraft": "Delete & re-draft",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Sguassà è riscrive",
"status.reply": "Risponde",
"status.replyAll": "Risponde à tutti",
"status.report": "Palisà @{name}",
@ -288,7 +304,7 @@
"tabs_bar.local_timeline": "Lucale",
"tabs_bar.notifications": "Nutificazione",
"tabs_bar.search": "Cercà",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} parlanu",
"ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Mastodon.",
"upload_area.title": "Drag & drop per caricà un fugliale",
"upload_button.label": "Aghjunghje un media",

View file

@ -1,308 +1,324 @@
{
"account.badges.bot": "Robot",
"account.block": "Blokovat @{name}",
"account.block": "Zablokovat uživatele @{name}",
"account.block_domain": "Skrýt vše z {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct message @{name}",
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Edit profile",
"account.follow": "Follow",
"account.followers": "Followers",
"account.follows": "Follows",
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.report": "Report @{name}",
"account.requested": "Awaiting approval. Click to cancel follow request",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unhide {domain}",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.view_full_profile": "View full profile",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"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",
"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",
"column.blocks": "Blocked users",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.domain_blocks": "Hidden domains",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.notifications": "Notifications",
"column.pins": "Pinned toot",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_header.hide_settings": "Hide settings",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"community.column_settings.media_only": "Media Only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
"compose_form.publish": "Toot",
"account.blocked": "Blokován/a",
"account.direct": "Přímá zpráva pro uživatele @{name}",
"account.disclaimer_full": "Níže uvedené informace nemusejí zcela odrážet profil uživatele.",
"account.domain_blocked": "Doména skryta",
"account.edit_profile": "Upravit profil",
"account.endorse": "Představit na profilu",
"account.follow": "Sleduj",
"account.followers": "Sledovatelé",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Sleduje",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Sleduje vás",
"account.hide_reblogs": "Skrýt boosty od uživatele @{name}",
"account.media": "Média",
"account.mention": "Zmínit uživatele @{name}",
"account.moved_to": "{name} se přesunul/a na:",
"account.mute": "Ignorovat uživatele @{name}",
"account.mute_notifications": "Skrýt oznámení od uživatele @{name}",
"account.muted": "Ztišen/a",
"account.posts": "Tooty",
"account.posts_with_replies": "Tooty a odpovědi",
"account.report": "Nahlásit uživatele @{name}",
"account.requested": "Požadavek čeká na schválení. Kliknutím zrušíte požadavek o sledování",
"account.share": "Sdílet profil uživatele @{name}",
"account.show_reblogs": "Zobrazit boosty od uživatele @{name}",
"account.unblock": "Odblokovat uživatele @{name}",
"account.unblock_domain": "Odkrýt doménu {domain}",
"account.unendorse": "Nepředstavit na profilu",
"account.unfollow": "Přestat sledovat",
"account.unmute": "Přestat ignorovat uživatele @{name}",
"account.unmute_notifications": "Odtišit oznámení od uživatele @{name}",
"account.view_full_profile": "Zobrazit celý profil",
"alert.unexpected.message": "Objevila se neočekávaná chyba.",
"alert.unexpected.title": "Jejda!",
"boost_modal.combo": "Příště můžete pro přeskočení kliknout na {combo}",
"bundle_column_error.body": "Při načtení tohoto prvku se něco pokazilo.",
"bundle_column_error.retry": "Zkuste to znovu",
"bundle_column_error.title": "Chyba sítě",
"bundle_modal_error.close": "Zavřít",
"bundle_modal_error.message": "Při načítání tohoto komponentu se něco pokazilo.",
"bundle_modal_error.retry": "Zkusit znovu",
"column.blocks": "Blokovaní uživatelé",
"column.community": "Místní časová osa",
"column.direct": "Přímé zprávy",
"column.domain_blocks": "Skryté domény",
"column.favourites": "Oblíbené",
"column.follow_requests": "Žádosti o sledování",
"column.home": "Domů",
"column.lists": "Seznamy",
"column.mutes": "Ignorovaní uživatelé",
"column.notifications": "Oznámení",
"column.pins": "Připnuté tooty",
"column.public": "Federovaná časová osa",
"column_back_button.label": "Zpět",
"column_header.hide_settings": "Skrýt nastavení",
"column_header.moveLeft_settings": "Přesunout sloupec doleva",
"column_header.moveRight_settings": "Přesunout sloupec doprava",
"column_header.pin": "Připnout",
"column_header.show_settings": "Zobrazit nastavení",
"column_header.unpin": "Odepnout",
"column_subheading.settings": "Nastavení",
"community.column_settings.media_only": "Pouze média",
"compose_form.direct_message_warning": "Tento toot bude vidielný pouze zmíněným uživatelům.",
"compose_form.direct_message_warning_learn_more": "Zjistit více",
"compose_form.hashtag_warning": "Tento toot nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné tooty mohou být vyhledány podle hashtagu.",
"compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledovatele.",
"compose_form.lock_disclaimer.lock": "zamčený",
"compose_form.placeholder": "Co máte na mysli?",
"compose_form.publish": "Tootnout",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
"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}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
"emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
"empty_column.home.public_timeline": "the public timeline",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
"compose_form.sensitive.marked": "Mediální obsah je označen jako citlivý",
"compose_form.sensitive.unmarked": "Mediální obsah není označen jako citlivý",
"compose_form.spoiler.marked": "Text je ukrytý za varováním",
"compose_form.spoiler.unmarked": "Text není ukrytý",
"compose_form.spoiler_placeholder": "Sem napište vaše varování",
"confirmation_modal.cancel": "Zrušit",
"confirmations.block.confirm": "Blokovat",
"confirmations.block.message": "Jste si jistý/á, že chcete zablokovat uživatele {name}?",
"confirmations.delete.confirm": "Smazat",
"confirmations.delete.message": "Jste si jistý/á, že chcete smazat tento příspěvek?",
"confirmations.delete_list.confirm": "Smazat",
"confirmations.delete_list.message": "Jste si jistý/á, že chcete tento seznam navždy vymazat?",
"confirmations.domain_block.confirm": "Skrýt celou doménu",
"confirmations.domain_block.message": "Jste si opravdu, opravdu jistý/á, že chcete blokovat celou {domain}? Ve většině případů stačí zablokovat nebo ignorovat pár konkrétních uživatelů, což se doporučuje. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledovatelé z této domény budou odstraněni.",
"confirmations.mute.confirm": "Ignorovat",
"confirmations.mute.message": "Jste si jistý/á, že chcete ignorovat uživatele {name}?",
"confirmations.redraft.confirm": "Vymazat a přepsat",
"confirmations.redraft.message": "Jste si jistý/á, že chcete vymazat a přepsat tento příspěvek? Ztratíte všechny jeho odpovědi, boosty a oblíbení.",
"confirmations.unfollow.confirm": "Přestat sledovat",
"confirmations.unfollow.message": "jste si jistý/á, že chcete přestat sledovat uživatele {name}?",
"embed.instructions": "Pro přidání příspěvku na vaši webovou stránku zkopírujte níže uvedený kód.",
"embed.preview": "Takhle to bude vypadat:",
"emoji_button.activity": "Aktivita",
"emoji_button.custom": "Vlastní",
"emoji_button.flags": "Vlajky",
"emoji_button.food": "Jídla a nápoje",
"emoji_button.label": "Vložit emoji",
"emoji_button.nature": "Příroda",
"emoji_button.not_found": "Žádné emoji!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Předměty",
"emoji_button.people": "Lidé",
"emoji_button.recent": "Často používané",
"emoji_button.search": "Hledat...",
"emoji_button.search_results": "Výsledky hledání",
"emoji_button.symbols": "Symboly",
"emoji_button.travel": "Cestování a místa",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
"empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Pod tímto hashtagem ještě nic není.",
"empty_column.home": "Vaše domovská časová osa je prázdná! Začněte navštívením {public} nebo použijte hledání a seznamte se s dalšími uživateli.",
"empty_column.home.public_timeline": "veřejné časové osy",
"empty_column.list": "V tomto seznamu ještě nic není. Pokud budou členové tohoto seznamu psát nové příspěvky, objeví se zde.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Ještě nemáte žádná oznámení. Začněte konverzaci komunikováním s ostatními.",
"empty_column.public": "Tady nic není! Napište něco veřejně, nebo manuálně začněte sledovat uživatele z jiných instancí, aby tu něco přibylo",
"follow_request.authorize": "Autorizovat",
"follow_request.reject": "Odmítnout",
"getting_started.developers": "Vývojáři",
"getting_started.documentation": "Documentation",
"getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Getting started",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
"getting_started.security": "Security",
"getting_started.terms": "Terms of service",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.boost": "to boost",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
"media_gallery.toggle_visible": "Toggle visibility",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
"navigation_bar.info": "About this instance",
"navigation_bar.keyboard_shortcuts": "Hotkeys",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.push_meta": "This device",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
"notifications.group": "{count} notifications",
"onboarding.done": "Done",
"onboarding.next": "Next",
"onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
"onboarding.page_four.home": "The home timeline shows posts from people you follow.",
"onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
"onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
"onboarding.page_one.full_handle": "Your full handle",
"onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
"onboarding.page_one.welcome": "Welcome to Mastodon!",
"onboarding.page_six.admin": "Your instance's admin is {admin}.",
"onboarding.page_six.almost_done": "Almost done...",
"onboarding.page_six.appetoot": "Bon Appetoot!",
"onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
"onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
"onboarding.page_six.guidelines": "community guidelines",
"onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
"onboarding.page_six.various_app": "mobile apps",
"onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
"onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
"onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
"onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Post to public timelines",
"privacy.public.short": "Public",
"getting_started.find_friends": "Najděte si přátele z Twitteru",
"getting_started.heading": "Začínáme",
"getting_started.invite": "Pozvat lidi",
"getting_started.open_source_notice": "Mastodon je otevřený software. Na GitHubu k němu můžete přispět nebo nahlásit chyby: {github}.",
"getting_started.security": "Zabezpečení",
"getting_started.terms": "Podmínky používání",
"home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi",
"keyboard_shortcuts.back": "k návratu zpět",
"keyboard_shortcuts.boost": "k boostnutí",
"keyboard_shortcuts.column": "k zaměření na příspěvek v jednom ze sloupců",
"keyboard_shortcuts.compose": "k zaměření na psací prostor",
"keyboard_shortcuts.description": "Popis",
"keyboard_shortcuts.down": "k přesunutí dolů v seznamu",
"keyboard_shortcuts.enter": "k otevření příspěvku",
"keyboard_shortcuts.favourite": "k oblíbení",
"keyboard_shortcuts.heading": "Klávesové zkratky",
"keyboard_shortcuts.hotkey": "Horká klávesa",
"keyboard_shortcuts.legend": "k zobrazení této legendy",
"keyboard_shortcuts.mention": "ke zmínění autora",
"keyboard_shortcuts.profile": "k otevření autorova profilu",
"keyboard_shortcuts.reply": "k odpovězení",
"keyboard_shortcuts.search": "k zaměření na vyhledávání",
"keyboard_shortcuts.toggle_hidden": "k zobrazení/skrytí textu za CW",
"keyboard_shortcuts.toot": "k napsání úplně nového tootu",
"keyboard_shortcuts.unfocus": "ke zrušení soustředění na psací prostor/hledání",
"keyboard_shortcuts.up": "k posunutí nahoru v seznamu",
"lightbox.close": "Zavřít",
"lightbox.next": "Další",
"lightbox.previous": "Předchozí",
"lists.account.add": "Přidat do seznamu",
"lists.account.remove": "Odebrat ze seznamu",
"lists.delete": "Smazat seznam",
"lists.edit": "Upravit seznam",
"lists.new.create": "Přidat seznam",
"lists.new.title_placeholder": "Název nového seznamu",
"lists.search": "Hledejte mezi uživateli, které sledujete",
"lists.subheading": "Vaše seznamy",
"loading_indicator.label": "Načítám...",
"media_gallery.toggle_visible": "Přepínat viditelnost",
"missing_indicator.label": "Nenalezeno",
"missing_indicator.sublabel": "Tento zdroj se nepodařilo najít",
"mute_modal.hide_notifications": "Skrýt oznámení před tímto uživatelem?",
"navigation_bar.apps": "Mobilní aplikace",
"navigation_bar.blocks": "Blokovaní uživatelé",
"navigation_bar.community_timeline": "Místní časová osa",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Přímé zprávy",
"navigation_bar.discover": "Objevujte",
"navigation_bar.domain_blocks": "Skryté domény",
"navigation_bar.edit_profile": "Upravit profil",
"navigation_bar.favourites": "Oblíbené",
"navigation_bar.filters": "Skrytá slova",
"navigation_bar.follow_requests": "Žádosti o sledování",
"navigation_bar.info": "O této instanci",
"navigation_bar.keyboard_shortcuts": "Klávesové zkratky",
"navigation_bar.lists": "Seznamy",
"navigation_bar.logout": "Odhlásit se",
"navigation_bar.mutes": "Ignorovaní uživatelé",
"navigation_bar.personal": "Osobní",
"navigation_bar.pins": "Připnuté tooty",
"navigation_bar.preferences": "Předvolby",
"navigation_bar.public_timeline": "Federovaná časová osa",
"navigation_bar.security": "Zabezpečení",
"notification.favourite": "{name} si oblíbil/a váš příspěvek",
"notification.follow": "{name} vás začal/a sledovat",
"notification.mention": "{name} vás zmínil/a",
"notification.reblog": "{name} boostnul/a váš příspěvek",
"notifications.clear": "Vymazat oznámení",
"notifications.clear_confirmation": "Jste si jistý/á, že chcete trvale vymazat všechna vaše oznámení?",
"notifications.column_settings.alert": "Desktopová oznámení",
"notifications.column_settings.favourite": "Oblíbené:",
"notifications.column_settings.follow": "Noví sledovatelé:",
"notifications.column_settings.mention": "Zmínky:",
"notifications.column_settings.push": "Push oznámení",
"notifications.column_settings.push_meta": "Toto zařízení",
"notifications.column_settings.reblog": "Boosty:",
"notifications.column_settings.show": "Zobrazit ve sloupci",
"notifications.column_settings.sound": "Přehrát zvuk",
"notifications.group": "{count} oznámení",
"onboarding.done": "Hotovo",
"onboarding.next": "Další",
"onboarding.page_five.public_timelines": "Místní časová osa zobrazuje veřejné příspěvky od všech lidí na {domain}. Federovaná časová osa zobrazuje veřejné příspěvky ode všech, které lidé na {domain} sledují. Toto jsou veřejné časové osy, výborný způsob, jak objevovat nové lidi.",
"onboarding.page_four.home": "Domovská časová osa zobrazuje příspěvky od lidí, které sledujete.",
"onboarding.page_four.notifications": "Sloupec oznámení se zobrazí, když s vámi někdo bude komunikovat.",
"onboarding.page_one.federation": "Mastodon je síť nezávislých serverů, jejichž propojením vzniká jedna velká sociální síť. Těmto serverům říkáme instance.",
"onboarding.page_one.full_handle": "Vaše celá adresa profilu",
"onboarding.page_one.handle_hint": "Tohle je, co byste řekl/a svým přátelům, aby hledali.",
"onboarding.page_one.welcome": "Vítejte na Mastodonu!",
"onboarding.page_six.admin": "Administrátorem vaší instance je {admin}.",
"onboarding.page_six.almost_done": "Skoro hotovo...",
"onboarding.page_six.appetoot": "Bon appetoot!",
"onboarding.page_six.apps_available": "Jsou dostupné {apps} pro iOS, Android a jiné platformy.",
"onboarding.page_six.github": "Mastodon je svobodný a otevřený software. Na {github} můžete nahlásit chyby, požádat o nové funkce, nebo přispívat ke kódu.",
"onboarding.page_six.guidelines": "komunitní pravidla",
"onboarding.page_six.read_guidelines": "Prosím přečtěte si {guidelines} {domain}!",
"onboarding.page_six.various_app": "mobilní aplikace",
"onboarding.page_three.profile": "Upravte si svůj profil a změňte si svůj avatar, popis profilu a zobrazované jméno. V nastaveních najdete i další možnosti.",
"onboarding.page_three.search": "Pomocí vyhledávacího řádku najděte lidi a podívejte se na hashtagy jako {illustration} a {introductions}. Chcete-li najít někoho, kdo není na této instanci, použijte jeho celou adresu profilu.",
"onboarding.page_two.compose": "Příspěvky pište z pole na komponování. Ikonami níže můžete nahrávat obrázky, změnit nastavení soukromí a přidat varování o obsahu.",
"onboarding.skip": "Přeskočit",
"privacy.change": "Změnit viditelnost příspěvku",
"privacy.direct.long": "Odeslat pouze zmíněným uživatelům",
"privacy.direct.short": "Přímé",
"privacy.private.long": "Odeslat pouze sledovatelům",
"privacy.private.short": "Pouze pro sledovatele",
"privacy.public.long": "Odeslat na veřejné časové osy",
"privacy.public.short": "Veřejné",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
"relative_time.just_now": "now",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"reply_indicator.cancel": "Cancel",
"report.forward": "Forward to {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
"report.placeholder": "Additional comments",
"report.submit": "Submit",
"report.target": "Report {target}",
"search.placeholder": "Search",
"search_popout.search_format": "Advanced search format",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"privacy.unlisted.short": "Nezobrazované",
"regeneration_indicator.label": "Načítám…",
"regeneration_indicator.sublabel": "Váš domovský proud se připravuje!",
"relative_time.days": "{number} d",
"relative_time.hours": "{number} h",
"relative_time.just_now": "teď",
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
"reply_indicator.cancel": "Zrušit",
"report.forward": "Přeposlat k {target}",
"report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii?",
"report.hint": "Toto nahlášení bude zasláno moderátorům vaší instance. Níže můžete uvést, proč tento účet nahlašujete:",
"report.placeholder": "Další komentáře",
"report.submit": "Odeslat",
"report.target": "Nahlásit {target}",
"search.placeholder": "Hledat",
"search_popout.search_format": "Pokročilé vyhledávání",
"search_popout.tips.full_text": "Jednoduchý textový výpis příspěvků, které jste napsal/a, oblíbil/a si, boostnul/a, nebo v nich byl/a zmíněn/a, včetně odpovídajících přezdívek, jmen a hashtagů.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "status",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"search_popout.tips.status": "příspěvek",
"search_popout.tips.text": "Jednoduchý textový výpis odpovídajících jmen, přezdívek a hashtagů",
"search_popout.tips.user": "uživatel",
"search_results.accounts": "Lidé",
"search_results.hashtags": "Hashtagy",
"search_results.statuses": "Tooty",
"search_results.total": "{count, number} {count, plural, one {výsledek} other {výsledků}}",
"standalone.public_title": "Nahlédněte dovnitř...",
"status.block": "Zablokovat uživatele @{name}",
"status.cancel_reblog_private": "Zrušit boost",
"status.cannot_reblog": "Tento příspěvek nemůže být boostnutý",
"status.delete": "Delete",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.load_more": "Load more",
"status.media_hidden": "Media hidden",
"status.mention": "Mention @{name}",
"status.more": "More",
"status.mute": "Mute @{name}",
"status.mute_conversation": "Mute conversation",
"status.open": "Expand this status",
"status.pin": "Pin on profile",
"status.pinned": "Pinned toot",
"status.reblog": "Boost",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boosted",
"status.redraft": "Delete & re-draft",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_toggle": "Click to view",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.home": "Home",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Delete",
"upload_progress.label": "Uploading...",
"video.close": "Close video",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",
"video.hide": "Hide video",
"video.mute": "Mute sound",
"video.pause": "Pause",
"video.play": "Play",
"video.unmute": "Unmute sound"
"status.detailed_status": "Detailed conversation view",
"status.direct": "Poslat přímou zprávu uživateli @{name}",
"status.embed": "Vložit",
"status.favourite": "Oblíbit",
"status.filtered": "Filtrováno",
"status.load_more": "Zobrazit více",
"status.media_hidden": "Média skryta",
"status.mention": "Zmínit uživatele @{name}",
"status.more": "Více",
"status.mute": "Ignorovat uživatele @{name}",
"status.mute_conversation": "Ignorovat konverzaci",
"status.open": "Rozbalit tento příspěvek",
"status.pin": "Připnout na profil",
"status.pinned": "Připnutý toot",
"status.reblog": "Boostnout",
"status.reblog_private": "Boostnout původnímu publiku",
"status.reblogged_by": "{name} boostnul/a",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Vymazat a přepsat",
"status.reply": "Odpovědět",
"status.replyAll": "Odpovědět na vlákno",
"status.report": "Nahlásit uživatele @{name}",
"status.sensitive_toggle": "Klikněte pro zobrazení",
"status.sensitive_warning": "Citlivý obsah",
"status.share": "Sdílet",
"status.show_less": "Zobrazit méně",
"status.show_less_all": "Zobrazit méně pro všechny",
"status.show_more": "Zobrazit více",
"status.show_more_all": "Zobrazit více pro všechny",
"status.unmute_conversation": "Přestat ignorovat konverzaci",
"status.unpin": "Odepnout z profilu",
"tabs_bar.federated_timeline": "Federovaná",
"tabs_bar.home": "Domů",
"tabs_bar.local_timeline": "Místní",
"tabs_bar.notifications": "Oznámení",
"tabs_bar.search": "Hledat",
"trends.count_by_accounts": "{count} {rawCount, plural, one {člověk} other {lidí}} diskutuje",
"ui.beforeunload": "Váš koncept se ztratí, pokud Mastodon opustíte.",
"upload_area.title": "Přetažením nahrajete",
"upload_button.label": "Přidat média",
"upload_form.description": "Popis pro zrakově postižené",
"upload_form.focus": "Vystřihnout",
"upload_form.undo": "Smazat",
"upload_progress.label": "Nahrávám...",
"video.close": "Zavřít video",
"video.exit_fullscreen": "Ukončit celou obrazovku",
"video.expand": "Otevřít video",
"video.fullscreen": "Celá obrazovka",
"video.hide": "Skrýt video",
"video.mute": "Vypnout zvuk",
"video.pause": "Pauza",
"video.play": "Přehrát",
"video.unmute": "Zapnout zvuk"
}

View file

@ -7,25 +7,29 @@
"account.disclaimer_full": "Nedenstående oplysninger reflekterer ikke nødvendigvis brugerens profil fuldstændigt.",
"account.domain_blocked": "Domænet er blevet skjult",
"account.edit_profile": "Rediger profil",
"account.endorse": "Fremhæv på profil",
"account.follow": "Følg",
"account.followers": "Følgere",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Følger",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Følger dig",
"account.hide_reblogs": "Skjul fremhævelserne fra @{name}",
"account.media": "Multimedier",
"account.media": "Medie",
"account.mention": "Nævn @{name}",
"account.moved_to": "{name} er flyttet til:",
"account.mute": "Dæmp @{name}",
"account.mute_notifications": "Dæmp notifikationer fra @{name}",
"account.muted": "Dæmpet",
"account.posts": "Dyt",
"account.posts_with_replies": "Toots og svar",
"account.posts": "Trut",
"account.posts_with_replies": "Trut og svar",
"account.report": "Rapporter @{name}",
"account.requested": "Afventer godkendelse. Tryk for at annullere følgeanmodning",
"account.share": "Del @{name}s profil",
"account.show_reblogs": "Vis fremhævelserne fra @{name}",
"account.unblock": "Fjern blokeringen af @{name}",
"account.unblock_domain": "Skjul ikke længere {domain}",
"account.unendorse": "Fremhæv ikke på profil",
"account.unfollow": "Følg ikke længere",
"account.unmute": "Fjern dæmpningen af @{name}",
"account.unmute_notifications": "Fjern dæmpningen af notifikationer fra @{name}",
@ -49,7 +53,7 @@
"column.lists": "Lister",
"column.mutes": "Dæmpede brugere",
"column.notifications": "Notifikationer",
"column.pins": "Fastgjorte toots",
"column.pins": "Fastgjorte trut",
"column.public": "Fælles tidslinje",
"column_back_button.label": "Tilbage",
"column_header.hide_settings": "Skjul indstillinger",
@ -59,7 +63,7 @@
"column_header.show_settings": "Vis indstillinger",
"column_header.unpin": "Fastgør ikke længere",
"column_subheading.settings": "Indstillinger",
"community.column_settings.media_only": "Kun multimedier",
"community.column_settings.media_only": "Kun medie",
"compose_form.direct_message_warning": "Dette trut vil kun blive sendt til de nævnte brugere.",
"compose_form.direct_message_warning_learn_more": "Lær mere",
"compose_form.hashtag_warning": "Dette trut vil ikke blive vist under noget hashtag da det ikke er listet. Kun offentlige trut kan blive vist under søgninger med hashtags.",
@ -68,8 +72,8 @@
"compose_form.placeholder": "Hvad har du på hjertet?",
"compose_form.publish": "Trut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Multimedie er markeret som værende følsomt",
"compose_form.sensitive.unmarked": "Multimediet er ikke markeret som værende følsomt",
"compose_form.sensitive.marked": "Medie er markeret som værende følsomt",
"compose_form.sensitive.unmarked": "Mediet er ikke markeret som værende følsomt",
"compose_form.spoiler.marked": "Teksten er skjult bag en advarsel",
"compose_form.spoiler.unmarked": "Teksten er ikke skjult",
"compose_form.spoiler_placeholder": "Skriv din advarsel her",
@ -81,7 +85,7 @@
"confirmations.delete_list.confirm": "Slet",
"confirmations.delete_list.message": "Er du sikker på, du vil slette denne liste?",
"confirmations.domain_block.confirm": "Skjul helt domæne",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.domain_block.message": "Er du helt sikker på du vil blokere hele {domain} domænet? I de fleste tilfælde vil få specifikke blokeringer eller dæmpninger være nok og at fortrække. Du vil ikke se indhold fra det domæne hverken på offentlige tidslinjer eller i dine notifikationer. Dine følgere fra det domæne vil blive fjernet.",
"confirmations.mute.confirm": "Dæmp",
"confirmations.mute.message": "Er du sikker på, du vil dæmpe {name}?",
"confirmations.redraft.confirm": "Slet & omskriv",
@ -101,15 +105,22 @@
"emoji_button.people": "Mennesker",
"emoji_button.recent": "Oftest brugt",
"emoji_button.search": "Søg...",
"emoji_button.search_results": "Søgeresultat",
"emoji_button.search_results": "Søgeresultater",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Rejser & steder",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at starte lavinen!",
"empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager en, vil den vises her.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Dette hashtag indeholder endnu ikke noget.",
"empty_column.home": "Din hjemme tidslinje er tom! Besøg {public} eller brug søgningen for at komme igang og møde andre brugere.",
"empty_column.home.public_timeline": "den offentlige tidslinje",
"empty_column.list": "Der er endnu intet i denne liste. Når medlemmer af denne liste poster nye statusser, vil de vises her.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Du har endnu ingen notifikationer. Tag ud og bland dig med folkemængden for at starte samtalen.",
"empty_column.public": "Der er ikke noget at se her! Skriv noget offentligt eller start ud med manuelt at følge brugere fra andre instanser for st udfylde tomrummet",
"follow_request.authorize": "Godkend",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Hurtigtast",
"keyboard_shortcuts.legend": "for at vise denne legende",
"keyboard_shortcuts.mention": "for at nævne forfatteren",
"keyboard_shortcuts.profile": "til profil af åben forfatter",
"keyboard_shortcuts.reply": "for at svare",
"keyboard_shortcuts.search": "for at fokusere søgningen",
"keyboard_shortcuts.toggle_hidden": "for at vise/skjule tekst bag CW",
@ -159,14 +171,16 @@
"missing_indicator.label": "Ikke fundet",
"missing_indicator.sublabel": "Denne ressource kunne ikke blive fundet",
"mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?",
"navigation_bar.apps": "Mobil apps",
"navigation_bar.blocks": "Blokerede brugere",
"navigation_bar.community_timeline": "Lokal tidslinje",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direkte beskeder",
"navigation_bar.discover": "Opdag",
"navigation_bar.domain_blocks": "Skjulte domæner",
"navigation_bar.edit_profile": "Rediger profil",
"navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Dæmpede ord",
"navigation_bar.follow_requests": "Følgeanmodninger",
"navigation_bar.info": "Om denne instans",
"navigation_bar.keyboard_shortcuts": "Hurtigtast",
@ -212,8 +226,8 @@
"onboarding.page_six.read_guidelines": "Læs venligst {domain}s {guidelines}!",
"onboarding.page_six.various_app": "apps til mobilen",
"onboarding.page_three.profile": "Rediger din profil for at ændre profilbillede, beskrivelse og visningsnavn. Der vil du også finde andre indstillinger.",
"onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
"onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
"onboarding.page_three.search": "Brug søgefeltdet for at finde folk og at kigge på hashtags, så som {illustration} and {introductions}. For at finde en person der ikke er på denne instans, brug deres fulde brugernavn.",
"onboarding.page_two.compose": "Skriv opslag fra skrive kolonnen. Du kan uploade billeder, ændre privatlivsindstillinger, og tilføje indholds advarsler med ikoner forneden.",
"onboarding.skip": "Spring over",
"privacy.change": "Ændre status privatliv",
"privacy.direct.long": "Post til kun de nævnte brugere",
@ -240,7 +254,7 @@
"report.target": "Anmelder {target}",
"search.placeholder": "Søg",
"search_popout.search_format": "Avanceret søgeformat",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.full_text": "Simpel tekst returnerer statusser du har skrevet, favoriseret, fremhævet, eller er blevet nævnt i, lige så vel som matchende brugernavne, visningsnavne, og hashtags.",
"search_popout.tips.hashtag": "emnetag",
"search_popout.tips.status": "status",
"search_popout.tips.text": "Simpelt tekst returnerer passende visningsnavne, brugernavne og hashtags",
@ -254,12 +268,13 @@
"status.cancel_reblog_private": "Fremhæv ikke længere",
"status.cannot_reblog": "Denne post kan ikke fremhæves",
"status.delete": "Slet",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Send direkte besked til @{name}",
"status.embed": "Indlejre",
"status.favourite": "Favorit",
"status.filtered": "Filtreret",
"status.load_more": "Indlæs mere",
"status.media_hidden": "Multimedia skjult",
"status.media_hidden": "Medie skjult",
"status.mention": "Nævn @{name}",
"status.more": "Mere",
"status.mute": "Dæmp @{name}",
@ -270,9 +285,10 @@
"status.reblog": "Fremhæv",
"status.reblog_private": "Fremhæv til oprindeligt publikum",
"status.reblogged_by": "{name} fremhævede",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Slet og omskriv",
"status.reply": "Svar",
"status.replyAll": "Svar tråd",
"status.replyAll": "Svar samtale",
"status.report": "Anmeld @{name}",
"status.sensitive_toggle": "Tryk for at se",
"status.sensitive_warning": "Følsomt indhold",
@ -288,11 +304,11 @@
"tabs_bar.local_timeline": "Lokal",
"tabs_bar.notifications": "Notifikationer",
"tabs_bar.search": "Søg",
"trends.count_by_accounts": "{count} {rawCount, flere, en {person} flere {people}} snakker",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} snakker",
"ui.beforeunload": "Din kladde vil gå tabt hvis du forlader Mastodon.",
"upload_area.title": "Træk og slip for at uploade",
"upload_button.label": "Tilføj multimedier",
"upload_form.description": "Beskrivelse for de svagtseende",
"upload_button.label": "Tilføj medie",
"upload_form.description": "Beskriv for de svagtseende",
"upload_form.focus": "Beskær",
"upload_form.undo": "Slet",
"upload_progress.label": "Uploader...",

View file

@ -1,15 +1,18 @@
{
"account.badges.bot": "Bot",
"account.block": "@{name} blocken",
"account.block": "@{name} blockieren",
"account.block_domain": "Alles von {domain} verstecken",
"account.blocked": "Blockiert",
"account.direct": "Direct Message @{name}",
"account.disclaimer_full": "Das Profil wird möglicherweise unvollständig wiedergegeben.",
"account.domain_blocked": "Domain versteckt",
"account.edit_profile": "Profil bearbeiten",
"account.endorse": "Feature on profile",
"account.follow": "Folgen",
"account.followers": "Folgende",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Folgt",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Folgt dir",
"account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
"account.media": "Medien",
@ -26,6 +29,7 @@
"account.show_reblogs": "Von @{name} geteilte Beiträge anzeigen",
"account.unblock": "@{name} entblocken",
"account.unblock_domain": "{domain} wieder anzeigen",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Entfolgen",
"account.unmute": "@{name} nicht mehr stummschalten",
"account.unmute_notifications": "Benachrichtigungen von @{name} einschalten",
@ -81,7 +85,7 @@
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?",
"confirmations.domain_block.confirm": "Die ganze Domain verbergen",
"confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} verbergen willst? In den meisten Fällen reichen ein paar gezielte Blocks aus. Du wirst nicht den Inhalt von dieser Domain in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Deine Follower von dieser Domain werden entfernt.",
"confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Deine Follower von dieser Domain werden entfernt.",
"confirmations.mute.confirm": "Stummschalten",
"confirmations.mute.message": "Bist du dir sicher, dass du {name} stummschalten möchtest?",
"confirmations.redraft.confirm": "Löschen und neu erstellen",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Suchergebnisse",
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Reisen und Orte",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!",
"empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.",
"empty_column.home": "Deine Startseite ist leer! Besuche {public} oder nutze die Suche, um loszulegen und andere Leute zu finden.",
"empty_column.home.public_timeline": "die öffentliche Zeitleiste",
"empty_column.list": "Diese Liste ist derzeit leer. Wenn Wesen auf dieser Liste neue Beiträge veröffentlichen werden sie hier erscheinen.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.",
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Instanzen, um die Zeitleiste aufzufüllen",
"follow_request.authorize": "Erlauben",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Tastenkürzel",
"keyboard_shortcuts.legend": "um diese Übersicht anzuzeigen",
"keyboard_shortcuts.mention": "um Autor_in zu erwähnen",
"keyboard_shortcuts.profile": "um Profil des Autors zu öffnen",
"keyboard_shortcuts.reply": "um zu antworten",
"keyboard_shortcuts.search": "um die Suche zu fokussieren",
"keyboard_shortcuts.toggle_hidden": "um den Text hinter einer Inhaltswarnung zu verstecken oder ihn anzuzeigen",
@ -159,14 +171,16 @@
"missing_indicator.label": "Nicht gefunden",
"missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden",
"mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blockierte Profile",
"navigation_bar.community_timeline": "Lokale Zeitleiste",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direktnachrichten",
"navigation_bar.discover": "Entdecken",
"navigation_bar.domain_blocks": "Versteckte Domains",
"navigation_bar.edit_profile": "Profil bearbeiten",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Stummgeschaltene Wörter",
"navigation_bar.follow_requests": "Folgeanfragen",
"navigation_bar.info": "Über diese Instanz",
"navigation_bar.keyboard_shortcuts": "Tastenkombinationen",
@ -250,10 +264,11 @@
"search_results.statuses": "Beiträge",
"search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}",
"standalone.public_title": "Ein kleiner Einblick …",
"status.block": "Block @{name}",
"status.block": "Blockiere @{name}",
"status.cancel_reblog_private": "Nicht mehr teilen",
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
"status.delete": "Löschen",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direktnachricht @{name}",
"status.embed": "Einbetten",
"status.favourite": "Favorisieren",
@ -270,6 +285,7 @@
"status.reblog": "Teilen",
"status.reblog_private": "An das eigentliche Publikum teilen",
"status.reblogged_by": "{name} teilte",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Löschen und neu erstellen",
"status.reply": "Antworten",
"status.replyAll": "Auf Thread antworten",

View file

@ -390,7 +390,7 @@
"id": "confirmations.redraft.confirm"
},
{
"defaultMessage": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"defaultMessage": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"id": "confirmations.redraft.message"
},
{
@ -557,6 +557,14 @@
"defaultMessage": "Muted users",
"id": "navigation_bar.mutes"
},
{
"defaultMessage": "Feature on profile",
"id": "account.endorse"
},
{
"defaultMessage": "Don't feature on profile",
"id": "account.unendorse"
},
{
"defaultMessage": "Information below may reflect the user's profile incompletely.",
"id": "account.disclaimer_full"
@ -630,6 +638,10 @@
{
"defaultMessage": "Blocked users",
"id": "column.blocks"
},
{
"defaultMessage": "You haven't blocked any users yet.",
"id": "empty_column.blocks"
}
],
"path": "app/javascript/mastodon/features/blocks/index.json"
@ -899,7 +911,7 @@
{
"descriptors": [
{
"defaultMessage": "Add media",
"defaultMessage": "Add media (JPEG, PNG, GIF, WebM, MP4)",
"id": "upload_button.label"
}
],
@ -1011,6 +1023,10 @@
{
"defaultMessage": "Logout",
"id": "navigation_bar.logout"
},
{
"defaultMessage": "Compose new toot",
"id": "navigation_bar.compose"
}
],
"path": "app/javascript/mastodon/features/compose/index.json"
@ -1037,6 +1053,10 @@
{
"defaultMessage": "Unhide {domain}",
"id": "account.unblock_domain"
},
{
"defaultMessage": "There are no hidden domains yet.",
"id": "empty_column.domain_blocks"
}
],
"path": "app/javascript/mastodon/features/domain_blocks/index.json"
@ -1046,10 +1066,23 @@
{
"defaultMessage": "Favourites",
"id": "column.favourites"
},
{
"defaultMessage": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"id": "empty_column.favourited_statuses"
}
],
"path": "app/javascript/mastodon/features/favourited_statuses/index.json"
},
{
"descriptors": [
{
"defaultMessage": "No one has favourited this toot yet. When someone does, they will show up here.",
"id": "empty_column.favourites"
}
],
"path": "app/javascript/mastodon/features/favourites/index.json"
},
{
"descriptors": [
{
@ -1068,10 +1101,32 @@
{
"defaultMessage": "Follow requests",
"id": "column.follow_requests"
},
{
"defaultMessage": "You don't have any follow requests yet. When you receive one, it will show up here.",
"id": "empty_column.follow_requests"
}
],
"path": "app/javascript/mastodon/features/follow_requests/index.json"
},
{
"descriptors": [
{
"defaultMessage": "No one follows this user yet.",
"id": "account.followers.empty"
}
],
"path": "app/javascript/mastodon/features/followers/index.json"
},
{
"descriptors": [
{
"defaultMessage": "This user doesn't follow anyone yet.",
"id": "account.follows.empty"
}
],
"path": "app/javascript/mastodon/features/following/index.json"
},
{
"descriptors": [
{
@ -1166,6 +1221,10 @@
"defaultMessage": "About this instance",
"id": "navigation_bar.info"
},
{
"defaultMessage": "Mobile apps",
"id": "navigation_bar.apps"
},
{
"defaultMessage": "Terms of service",
"id": "getting_started.terms"
@ -1254,6 +1313,10 @@
"defaultMessage": "to mention author",
"id": "keyboard_shortcuts.mention"
},
{
"defaultMessage": "to open author's profile",
"id": "keyboard_shortcuts.profile"
},
{
"defaultMessage": "to favourite",
"id": "keyboard_shortcuts.favourite"
@ -1302,6 +1365,54 @@
"defaultMessage": "to un-focus compose textarea/search",
"id": "keyboard_shortcuts.unfocus"
},
{
"defaultMessage": "to open home timeline",
"id": "keyboard_shortcuts.home"
},
{
"defaultMessage": "to open notifications column",
"id": "keyboard_shortcuts.notifications"
},
{
"defaultMessage": "to open local timeline",
"id": "keyboard_shortcuts.local"
},
{
"defaultMessage": "to open federated timeline",
"id": "keyboard_shortcuts.federated"
},
{
"defaultMessage": "to open direct messages column",
"id": "keyboard_shortcuts.direct"
},
{
"defaultMessage": "to open \"get started\" column",
"id": "keyboard_shortcuts.start"
},
{
"defaultMessage": "to open favourites list",
"id": "keyboard_shortcuts.favourites"
},
{
"defaultMessage": "to open pinned toots list",
"id": "keyboard_shortcuts.pinned"
},
{
"defaultMessage": "to open your profile",
"id": "keyboard_shortcuts.my_profile"
},
{
"defaultMessage": "to open blocked users list",
"id": "keyboard_shortcuts.blocked"
},
{
"defaultMessage": "to open muted users list",
"id": "keyboard_shortcuts.muted"
},
{
"defaultMessage": "to open follow requests list",
"id": "keyboard_shortcuts.requests"
},
{
"defaultMessage": "to display this legend",
"id": "keyboard_shortcuts.legend"
@ -1378,6 +1489,10 @@
{
"defaultMessage": "Your lists",
"id": "lists.subheading"
},
{
"defaultMessage": "You don't have any lists yet. When you create one, it will show up here.",
"id": "empty_column.lists"
}
],
"path": "app/javascript/mastodon/features/lists/index.json"
@ -1387,6 +1502,10 @@
{
"defaultMessage": "Muted users",
"id": "column.mutes"
},
{
"defaultMessage": "You haven't muted any users yet.",
"id": "empty_column.mutes"
}
],
"path": "app/javascript/mastodon/features/mutes/index.json"
@ -1506,6 +1625,15 @@
],
"path": "app/javascript/mastodon/features/public_timeline/index.json"
},
{
"descriptors": [
{
"defaultMessage": "No one has boosted this toot yet. When someone does, they will show up here.",
"id": "status.reblogs.empty"
}
],
"path": "app/javascript/mastodon/features/reblogs/index.json"
},
{
"descriptors": [
{
@ -1620,7 +1748,7 @@
"id": "confirmations.redraft.confirm"
},
{
"defaultMessage": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"defaultMessage": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"id": "confirmations.redraft.message"
},
{
@ -1635,6 +1763,10 @@
"defaultMessage": "Show less for all",
"id": "status.show_less_all"
},
{
"defaultMessage": "Detailed conversation view",
"id": "status.detailed_status"
},
{
"defaultMessage": "Are you sure you want to block {name}?",
"id": "confirmations.block.message"

View file

@ -1,15 +1,18 @@
{
"account.badges.bot": "Μποτ",
"account.block": "Απόκλεισε τον/την @{name}",
"account.block_domain": "Απόκρυψε τα πάντα από τον/την",
"account.block_domain": "Απόκρυψε τα πάντα από το {domain}",
"account.blocked": "Αποκλεισμένος/η",
"account.direct": "Προσωπικό μήνυμα προς @{name}",
"account.disclaimer_full": "Οι παρακάτω πληροφορίες μπορει να μην αντανακλούν το προφίλ του χρήστη επαρκως.",
"account.domain_blocked": "Κρυμμένος τομέας",
"account.edit_profile": "Επεξεργάσου το προφίλ",
"account.endorse": "Feature on profile",
"account.follow": "Ακολούθησε",
"account.followers": "Ακόλουθοι",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Ακολουθεί",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Σε ακολουθεί",
"account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}",
"account.media": "Πολυμέσα",
@ -26,6 +29,7 @@
"account.show_reblogs": "Δείξε τις προωθήσεις του/της @{name}",
"account.unblock": "Ξεμπλόκαρε τον/την @{name}",
"account.unblock_domain": "Αποκάλυψε το {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Διακοπή παρακολούθησης",
"account.unmute": "Διακοπή αποσιώπησης του/της @{name}",
"account.unmute_notifications": "Διακοπή αποσιώπησης ειδοποιήσεων του/της @{name}",
@ -65,7 +69,7 @@
"compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.",
"compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.",
"compose_form.lock_disclaimer.lock": "κλειδωμένος",
"compose_form.placeholder": "Τι έχεις στο μυαλό σου;",
"compose_form.placeholder": "Τι σκέφτεσαι;",
"compose_form.publish": "Τουτ",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Το πολυμέσο έχει σημειωθεί ως ευαίσθητο",
@ -104,19 +108,26 @@
"emoji_button.search_results": "Αποτελέσματα αναζήτησης",
"emoji_button.symbols": "Σύμβολα",
"emoji_button.travel": "Ταξίδια & Τοποθεσίες",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσιο παραμύθι ν' αρχινίσει!",
"empty_column.direct": "Δεν έχεις προσωπικά μηνύματα ακόμα. Όταν στείλεις ή λάβεις κανένα, θα εμφανιστεί εδώ.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ταμπέλα.",
"empty_column.home": "Η τοπική σου ροή είναι κενή! Πήγαινε στο {public} ή κάνε αναζήτηση για να ξεκινήσεις και να γνωρίσεις άλλους χρήστες.",
"empty_column.home.public_timeline": "η δημόσια ροή",
"empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Αλληλεπίδρασε με άλλους χρήστες για να ξεκινήσεις την κουβέντα.",
"empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλα instances για να τη γεμίσεις",
"follow_request.authorize": "Ενέκρινε",
"follow_request.reject": "Απέρριψε",
"getting_started.developers": "Προγραμματιστές",
"getting_started.documentation": "Documentation",
"getting_started.find_friends": "Βρες φίλους/ες από το Twitter",
"getting_started.developers": "Ανάπτυξη",
"getting_started.documentation": "Τεκμηρίωση",
"getting_started.find_friends": "Βρες φίλους από το Twitter",
"getting_started.heading": "Αφετηρία",
"getting_started.invite": "Προσκάλεσε κόσμο",
"getting_started.open_source_notice": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να συνεισφέρεις ή να αναφέρεις ζητήματα στο GitHub στο {github}.",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Συντόμευση",
"keyboard_shortcuts.legend": "για να εμφανίσεις αυτόν τον οδηγό",
"keyboard_shortcuts.mention": "για να αναφέρεις το συγγραφέα",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "για απάντηση",
"keyboard_shortcuts.search": "για εστίαση αναζήτησης",
"keyboard_shortcuts.toggle_hidden": "για εμφάνιση/απόκρυψη κειμένου πίσω από την προειδοποίηση",
@ -159,21 +171,23 @@
"missing_indicator.label": "Δε βρέθηκε",
"missing_indicator.sublabel": "Αδύνατη η εύρεση αυτού του πόρου",
"mute_modal.hide_notifications": "Απόκρυψη ειδοποιήσεων αυτού του χρήστη;",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Αποκλεισμένοι χρήστες",
"navigation_bar.community_timeline": "Τοπική ροή",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Προσωπικά μηνύματα",
"navigation_bar.discover": "Ανακάλυψη",
"navigation_bar.domain_blocks": "Κρυφοί τομείς",
"navigation_bar.domain_blocks": "Κρυμμένοι τομείς",
"navigation_bar.edit_profile": "Επεξεργασία προφίλ",
"navigation_bar.favourites": "Αγαπημένα",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Αποσιωπημένες λέξεις",
"navigation_bar.follow_requests": "Αιτήματα ακολούθησης",
"navigation_bar.info": "Extended information",
"navigation_bar.info": "Πληροφορίες κόμβου",
"navigation_bar.keyboard_shortcuts": "Συντομεύσεις",
"navigation_bar.lists": "Λίστες",
"navigation_bar.logout": "Αποσύνδεση",
"navigation_bar.mutes": "Αποσιωπημένοι χρήστες",
"navigation_bar.personal": "Personal",
"navigation_bar.personal": "Προσωπικά",
"navigation_bar.pins": "Καρφιτσωμένα τουτ",
"navigation_bar.preferences": "Προτιμήσεις",
"navigation_bar.public_timeline": "Ομοσπονδιακή ροή",
@ -194,7 +208,7 @@
"notifications.column_settings.show": "Εμφάνισε σε στήλη",
"notifications.column_settings.sound": "Ηχητική ειδοποίηση",
"notifications.group": "{count} ειδοποιήσεις",
"onboarding.done": "Έγινε",
"onboarding.done": "Όλα έτοιμα",
"onboarding.next": "Επόμενο",
"onboarding.page_five.public_timelines": "Η τοπική ροή δείχνει τις δημόσιες δημοσιεύσεις από όσους εδρεύουν στον κόμβο {domain}. Η ομοσπονδιακή ροή δείχνει τις δημόσιες δημοσιεύσεις εκείνων που οι χρήστες του {domain} ακολουθούν. Αυτές οι είναι Δημόσιες Ροές, ένας ωραίος τρόπος να ανακαλύψεις καινούριους ανθρώπους.",
"onboarding.page_four.home": "Η αρχική ροή δείχνει καταστάσεις από ανθρώπους που ακολουθείς.",
@ -208,7 +222,7 @@
"onboarding.page_six.appetoot": "Καλά τουτ!",
"onboarding.page_six.apps_available": "Υπάρχουν {apps} για iOS, Android και άλλες πλατφόρμες.",
"onboarding.page_six.github": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να αναφέρεις σφάλματα, να αιτηθείς νέες λειτουργίες ή να συνεισφέρεις κώδικα στο {github}.",
"onboarding.page_six.guidelines": "οδηγίες κοινότητας",
"onboarding.page_six.guidelines": "κατευθύνσεις κοινότητας",
"onboarding.page_six.read_guidelines": "Παρακαλώ διάβασε τις {guidelines} του κόμβου {domain}!",
"onboarding.page_six.various_app": "εφαρμογές κινητών",
"onboarding.page_three.profile": "Επεξεργάσου το προφίλ σου για να αλλάξεις την εικόνα σου, το βιογραφικό σου και το εμφανιζόμενο όνομά σου. Εκεί θα βρεις επίσης κι άλλες προτιμήσεις.",
@ -222,7 +236,7 @@
"privacy.private.short": "Μόνο ακόλουθοι",
"privacy.public.long": "Δημοσίευσε στις δημόσιες ροές",
"privacy.public.short": "Δημόσιο",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.long": "Μην δημοσιεύσεις στις δημόσιες ροές",
"privacy.unlisted.short": "Μη καταχωρημένα",
"regeneration_indicator.label": "Φορτώνει…",
"regeneration_indicator.sublabel": "Η αρχική σου ροή ετοιμάζεται!",
@ -243,7 +257,7 @@
"search_popout.tips.full_text": "Απλό κείμενο που επιστρέφει καταστάσεις που έχεις γράψει, σημειώσει ως αγαπημένες, προωθήσει ή έχεις αναφερθεί σε αυτές, καθώς και όσα ονόματα χρηστών και ταμπέλες ταιριάζουν.",
"search_popout.tips.hashtag": "ταμπέλα",
"search_popout.tips.status": "status",
"search_popout.tips.text": "Απλό κείμενο που επιστρέφει ταιριαστά ονόματα και ταμπέλες",
"search_popout.tips.text": "Απλό κείμενο που επιστρέφει ονόματα και ταμπέλες που ταιριάζουν",
"search_popout.tips.user": "χρήστης",
"search_results.accounts": "Άνθρωποι",
"search_results.hashtags": "Ταμπέλες",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Ακύρωσε την προώθηση",
"status.cannot_reblog": "Αυτή η δημοσίευση δεν μπορεί να προωθηθεί",
"status.delete": "Διαγραφή",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Προσωπικό μήνυμα προς @{name}",
"status.embed": "Ενσωμάτωσε",
"status.favourite": "Σημείωσε ως αγαπημένο",
@ -270,10 +285,11 @@
"status.reblog": "Προώθησε",
"status.reblog_private": "Προώθησε στους αρχικούς παραλήπτες",
"status.reblogged_by": "{name} προώθησε",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Σβήσε & ξαναγράψε",
"status.reply": "Απάντησε",
"status.replyAll": "Απάντησε στην συζήτηση",
"status.report": "Καταγγελία @{name}",
"status.report": "Κατάγγειλε @{name}",
"status.sensitive_toggle": "Κλικ για να δεις",
"status.sensitive_warning": "Ευαίσθητο περιεχόμενο",
"status.share": "Μοιράσου",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Edit profile",
"account.endorse": "Feature on profile",
"account.follow": "Follow",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Follows",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unhide {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
@ -85,7 +89,7 @@
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"embed.instructions": "Embed this status on your website by copying the code below.",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
"empty_column.home.public_timeline": "the public timeline",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
"follow_request.authorize": "Authorize",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Favourite",
@ -270,6 +285,7 @@
"status.reblog": "Boost",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
@ -291,7 +307,7 @@
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media",
"upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4)",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Delete",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Subaj informoj povas reflekti la profilon de la uzanto nekomplete.",
"account.domain_blocked": "Domajno kaŝita",
"account.edit_profile": "Redakti profilon",
"account.endorse": "Montri en profilo",
"account.follow": "Sekvi",
"account.followers": "Sekvantoj",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Sekvatoj",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Sekvas vin",
"account.hide_reblogs": "Kaŝi diskonigojn de @{name}",
"account.media": "Aŭdovidaĵoj",
@ -26,6 +29,7 @@
"account.show_reblogs": "Montri diskonigojn de @{name}",
"account.unblock": "Malbloki @{name}",
"account.unblock_domain": "Malkaŝi {domain}",
"account.unendorse": "Ne montri en profilo",
"account.unfollow": "Ne plu sekvi",
"account.unmute": "Malsilentigi @{name}",
"account.unmute_notifications": "Malsilentigi sciigojn de @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Serĉaj rezultoj",
"emoji_button.symbols": "Simboloj",
"emoji_button.travel": "Vojaĝoj kaj lokoj",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La loka tempolinio estas malplena. Skribu ion por plenigi ĝin!",
"empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.",
"empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.",
"empty_column.home.public_timeline": "la publikan tempolinion",
"empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn mesaĝojn, ili aperos ĉi tie.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.",
"empty_column.public": "Estas nenio ĉi tie! Publike skribu ion, aŭ mane sekvu uzantojn de aliaj nodoj por plenigi la publikan tempolinion",
"follow_request.authorize": "Rajtigi",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Rapidklavo",
"keyboard_shortcuts.legend": "por montri ĉi tiun noton",
"keyboard_shortcuts.mention": "por mencii la aŭtoron",
"keyboard_shortcuts.profile": "por malfermi la profilon de la aŭtoro",
"keyboard_shortcuts.reply": "por respondi",
"keyboard_shortcuts.search": "por fokusigi la serĉilon",
"keyboard_shortcuts.toggle_hidden": "por montri/kaŝi tekston malantaŭ enhava averto",
@ -159,14 +171,16 @@
"missing_indicator.label": "Ne trovita",
"missing_indicator.sublabel": "Ĉi tiu elemento ne estis trovita",
"mute_modal.hide_notifications": "Ĉu vi volas kaŝi la sciigojn el ĉi tiu uzanto?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blokitaj uzantoj",
"navigation_bar.community_timeline": "Loka tempolinio",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Rektaj mesaĝoj",
"navigation_bar.discover": "Esplori",
"navigation_bar.domain_blocks": "Kaŝitaj domajnoj",
"navigation_bar.edit_profile": "Redakti profilon",
"navigation_bar.favourites": "Stelumoj",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Silentigitaj vortoj",
"navigation_bar.follow_requests": "Petoj de sekvado",
"navigation_bar.info": "Pri ĉi tiu nodo",
"navigation_bar.keyboard_shortcuts": "Rapidklavoj",
@ -254,10 +268,11 @@
"status.cancel_reblog_private": "Eksdiskonigi",
"status.cannot_reblog": "Ĉi tiu mesaĝo ne diskonigeblas",
"status.delete": "Forigi",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Rekte mesaĝi @{name}",
"status.embed": "Enkorpigi",
"status.favourite": "Stelumi",
"status.filtered": "Filtered",
"status.filtered": "Filtrita",
"status.load_more": "Ŝargi pli",
"status.media_hidden": "Aŭdovidaĵo kaŝita",
"status.mention": "Mencii @{name}",
@ -270,6 +285,7 @@
"status.reblog": "Diskonigi",
"status.reblog_private": "Diskonigi al la originala atentaro",
"status.reblogged_by": "{name} diskonigis",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Forigi kaj reskribi",
"status.reply": "Respondi",
"status.replyAll": "Respondi al la fadeno",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "La siguiente información del usuario puede estar incompleta.",
"account.domain_blocked": "Dominio oculto",
"account.edit_profile": "Editar perfil",
"account.endorse": "Feature on profile",
"account.follow": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Sigue",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Te sigue",
"account.hide_reblogs": "Ocultar retoots de @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Mostrar retoots de @{name}",
"account.unblock": "Desbloquear a @{name}",
"account.unblock_domain": "Mostrar a {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Dejar de seguir",
"account.unmute": "Dejar de silenciar a @{name}",
"account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Resultados de búsqueda",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viajes y lugares",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "No hay nada en este hashtag aún.",
"empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.",
"empty_column.home.public_timeline": "la línea de tiempo pública",
"empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.",
"empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo",
"follow_request.authorize": "Autorizar",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Tecla caliente",
"keyboard_shortcuts.legend": "para mostrar esta leyenda",
"keyboard_shortcuts.mention": "para mencionar al autor",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "para responder",
"keyboard_shortcuts.search": "para poner el foco en la búsqueda",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "No encontrado",
"missing_indicator.sublabel": "No se encontró este recurso",
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.community_timeline": "Historia local",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Este toot no puede retootearse",
"status.delete": "Borrar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Incrustado",
"status.favourite": "Favorito",
@ -270,6 +285,7 @@
"status.reblog": "Retootear",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "Retooteado por {name}",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",

View file

@ -6,10 +6,13 @@
"account.direct": "Mezu zuzena @{name}(r)i",
"account.disclaimer_full": "Baliteke beheko informazioak erabiltzailearen profilaren zati bat baino ez erakustea.",
"account.domain_blocked": "Ezkutatutako domeinua",
"account.edit_profile": "Profila aldatu",
"account.edit_profile": "Aldatu profila",
"account.endorse": "Nabarmendu profilean",
"account.follow": "Jarraitu",
"account.followers": "Jarraitzaileak",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Jarraitzen",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Jarraitzen zaitu",
"account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Erakutsi @{name}(r)en bultzadak",
"account.unblock": "Desblokeatu @{name}",
"account.unblock_domain": "Berriz erakutsi {domain}",
"account.unendorse": "Ez nabarmendu profilean",
"account.unfollow": "Jarraitzeari utzi",
"account.unmute": "Desmututu @{name}",
"account.unmute_notifications": "Desmututu @{name}(r)en jakinarazpenak",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Bilaketaren emaitzak",
"emoji_button.symbols": "Sinboloak",
"emoji_button.travel": "Bidaiak eta tokiak",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!",
"empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Ez dago ezer traola honetan oraindik.",
"empty_column.home": "Zure hasierako denbora-lerroa hutsik dago! Ikusi {public} edo erabili bilaketa lehen urratsak eman eta beste batzuk aurkitzeko.",
"empty_column.home.public_timeline": "denbora-lerro publikoa",
"empty_column.list": "Ez dago ezer zerrenda honetan. Zerrenda honetako kideek mezu berriak argitaratzean, hemen agertuko dira.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Ez duzu jakinarazpenik oraindik. Jarri besteekin harremanetan elkarrizketa abiatzeko.",
"empty_column.public": "Ez dago ezer hemen! Idatzi zerbait publikoki edo jarraitu eskuz beste instantzia batzuetako erabiltzailean hau betetzeko",
"follow_request.authorize": "Baimendu",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Laster-tekla",
"keyboard_shortcuts.legend": "legenda hau bistaratzea",
"keyboard_shortcuts.mention": "egilea aipatzea",
"keyboard_shortcuts.profile": "egilearen profila irekitzeko",
"keyboard_shortcuts.reply": "erantzutea",
"keyboard_shortcuts.search": "bilaketan fokua jartzea",
"keyboard_shortcuts.toggle_hidden": "testua erakustea/ezkutatzea abisu baten atzean",
@ -159,14 +171,16 @@
"missing_indicator.label": "Ez aurkitua",
"missing_indicator.sublabel": "Baliabide hau ezin izan da aurkitu",
"mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blokeatutako erabiltzaileak",
"navigation_bar.community_timeline": "Denbora-lerro lokala",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Mezu zuzenak",
"navigation_bar.discover": "Aurkitu",
"navigation_bar.domain_blocks": "Ezkutatutako domeinuak",
"navigation_bar.edit_profile": "Aldatu profila",
"navigation_bar.favourites": "Gogokoak",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Mutututako hitzak",
"navigation_bar.follow_requests": "Jarraitzeko eskariak",
"navigation_bar.info": "Instantzia honi buruz",
"navigation_bar.keyboard_shortcuts": "Laster-teklak",
@ -254,10 +268,11 @@
"status.cancel_reblog_private": "Kendu bultzada",
"status.cannot_reblog": "Mezu honi ezin zaio bultzada eman",
"status.delete": "Ezabatu",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Mezu zuzena @{name}(r)i",
"status.embed": "Txertatu",
"status.favourite": "Gogokoa",
"status.filtered": "Filtered",
"status.filtered": "Iragazita",
"status.load_more": "Kargatu gehiago",
"status.media_hidden": "Multimedia ezkutatua",
"status.mention": "Aipatu @{name}",
@ -270,6 +285,7 @@
"status.reblog": "Bultzada",
"status.reblog_private": "Bultzada jatorrizko hartzaileei",
"status.reblogged_by": "{name}(r)en bultzada",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Ezabatu eta berridatzi",
"status.reply": "Erantzun",
"status.replyAll": "Erantzun harian",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "اطلاعات زیر ممکن است نمایهٔ این کاربر را به تمامی نشان ندهد.",
"account.domain_blocked": "دامین پنهان‌شده",
"account.edit_profile": "ویرایش نمایه",
"account.endorse": "نمایش در نمایه",
"account.follow": "پی بگیرید",
"account.followers": "پیگیران",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "پی می‌گیرد",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "پیگیر شماست",
"account.hide_reblogs": "پنهان کردن بازبوق‌های @{name}",
"account.media": "عکس و ویدیو",
@ -26,6 +29,7 @@
"account.show_reblogs": "نشان‌دادن بازبوق‌های @{name}",
"account.unblock": "رفع انسداد @{name}",
"account.unblock_domain": "رفع پنهان‌سازی از {domain}",
"account.unendorse": "نهفتن از نمایه",
"account.unfollow": "پایان پیگیری",
"account.unmute": "باصدا کردن @{name}",
"account.unmute_notifications": "باصداکردن اعلان‌ها از طرف @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "نتایج جستجو",
"emoji_button.symbols": "نمادها",
"emoji_button.travel": "سفر و مکان",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "فهرست نوشته‌های محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
"empty_column.direct": "شما هیچ پیغام مستقیمی ندارید. اگر چنین پیغامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "هنوز هیچ چیزی با این هشتگ نیست.",
"empty_column.home": "شما هنوز پیگیر کسی نیستید. {public} را ببینید یا چیزی را جستجو کنید تا کاربران دیگر را ببینید.",
"empty_column.home.public_timeline": "فهرست نوشته‌های همه‌جا",
"empty_column.list": "در این فهرست هنوز چیزی نیست. وقتی اعضای این فهرست چیزی بنویسند، این‌جا ظاهر خواهد شد.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشته‌های دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
"empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران دیگر را پی بگیرید تا این‌جا پر شود",
"follow_request.authorize": "اجازه دهید",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "میان‌بر",
"keyboard_shortcuts.legend": "برای نمایش این راهنما",
"keyboard_shortcuts.mention": "برای نام‌بردن از نویسنده",
"keyboard_shortcuts.profile": "گشودن نمایهٔ نویسنده",
"keyboard_shortcuts.reply": "برای پاسخ‌دادن",
"keyboard_shortcuts.search": "برای فعال‌کردن جستجو",
"keyboard_shortcuts.toggle_hidden": "برای نمایش/نهفتن نوشتهٔ پشت هشدار محتوا",
@ -159,14 +171,16 @@
"missing_indicator.label": "پیدا نشد",
"missing_indicator.sublabel": "این منبع پیدا نشد",
"mute_modal.hide_notifications": "اعلان‌های این کاربر پنهان شود؟",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "کاربران مسدودشده",
"navigation_bar.community_timeline": "نوشته‌های محلی",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "پیغام‌های خصوصی",
"navigation_bar.discover": "گشت و گذار",
"navigation_bar.domain_blocks": "دامین‌های پنهان‌شده",
"navigation_bar.edit_profile": "ویرایش نمایه",
"navigation_bar.favourites": "پسندیده‌ها",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "واژگان بی‌صداشده",
"navigation_bar.follow_requests": "درخواست‌های پیگیری",
"navigation_bar.info": "اطلاعات تکمیلی",
"navigation_bar.keyboard_shortcuts": "میان‌برهای صفحه‌کلید",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "حذف بازبوق",
"status.cannot_reblog": "این نوشته را نمی‌شود بازبوقید",
"status.delete": "پاک‌کردن",
"status.detailed_status": "Detailed conversation view",
"status.direct": "پیغام مستقیم به @{name}",
"status.embed": "جاگذاری",
"status.favourite": "پسندیدن",
@ -270,6 +285,7 @@
"status.reblog": "بازبوقیدن",
"status.reblog_private": "بازبوق به مخاطبان اولیه",
"status.reblogged_by": "{name} بازبوقید",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "پاک‌کردن و بازنویسی",
"status.reply": "پاسخ",
"status.replyAll": "به نوشته پاسخ دهید",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Alla olevat käyttäjän profiilitiedot saattavat olla epätäydellisiä.",
"account.domain_blocked": "Verkko-osoite piilotettu",
"account.edit_profile": "Muokkaa",
"account.endorse": "Feature on profile",
"account.follow": "Seuraa",
"account.followers": "Seuraajia",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Seuraa",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Seuraa sinua",
"account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}",
"account.unblock": "Salli @{name}",
"account.unblock_domain": "Näytä {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Lakkaa seuraamasta",
"account.unmute": "Poista käyttäjän @{name} mykistys",
"account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Hakutulokset",
"emoji_button.symbols": "Symbolit",
"emoji_button.travel": "Matkailu",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Paikallinen aikajana on tyhjä. Homma lähtee käyntiin, kun kirjoitat jotain julkista!",
"empty_column.direct": "Sinulla ei ole vielä yhtään viestiä yksittäiselle käyttäjälle. Kun lähetät tai vastaanotat sellaisen, se näkyy täällä.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Tällä hashtagilla ei ole vielä mitään.",
"empty_column.home": "Kotiaikajanasi on tyhjä! {public} ja hakutoiminto auttavat alkuun ja kohtaamaan muita käyttäjiä.",
"empty_column.home.public_timeline": "yleinen aikajana",
"empty_column.list": "Lista on vielä tyhjä. Listan jäsenten julkaisemat tilapäivitykset tulevat tähän näkyviin.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Sinulle ei ole vielä ilmoituksia. Aloita keskustelu juttelemalla muille.",
"empty_column.public": "Täällä ei ole mitään! Saat sisältöä, kun kirjoitat jotain julkisesti tai käyt manuaalisesti seuraamassa muiden instanssien käyttäjiä",
"follow_request.authorize": "Valtuuta",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Pikanäppäin",
"keyboard_shortcuts.legend": "näytä tämä selite",
"keyboard_shortcuts.mention": "mainitse julkaisija",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "vastaa",
"keyboard_shortcuts.search": "siirry hakukenttään",
"keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti",
@ -159,8 +171,10 @@
"missing_indicator.label": "Ei löytynyt",
"missing_indicator.sublabel": "Tätä resurssia ei löytynyt",
"mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Estetyt käyttäjät",
"navigation_bar.community_timeline": "Paikallinen aikajana",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Viestit",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Piilotetut verkkotunnukset",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Peru buustaus",
"status.cannot_reblog": "Tätä julkaisua ei voi buustata",
"status.delete": "Poista",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Viesti käyttäjälle @{name}",
"status.embed": "Upota",
"status.favourite": "Tykkää",
@ -270,6 +285,7 @@
"status.reblog": "Buustaa",
"status.reblog_private": "Buustaa alkuperäiselle yleisölle",
"status.reblogged_by": "{name} buustasi",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Vastaa",
"status.replyAll": "Vastaa ketjuun",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Les données ci-dessous peuvent ne pas refléter ce profil dans sa totalité.",
"account.domain_blocked": "Domaine caché",
"account.edit_profile": "Modifier le profil",
"account.endorse": "Figure sur le profil",
"account.follow": "Suivre",
"account.followers": "Abonné⋅e⋅s",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Abonnements",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Vous suit",
"account.hide_reblogs": "Masquer les partages de @{name}",
"account.media": "Média",
@ -21,16 +24,17 @@
"account.posts": "Pouets",
"account.posts_with_replies": "Pouets et réponses",
"account.report": "Signaler",
"account.requested": "En attente d'approbation. Cliquez pour annuler la requête",
"account.requested": "En attente dapprobation. Cliquez pour annuler la requête",
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les partages de @{name}",
"account.unblock": "Débloquer",
"account.unblock_domain": "Ne plus masquer {domain}",
"account.unendorse": "Ne figure pas sur le profil",
"account.unfollow": "Ne plus suivre",
"account.unmute": "Ne plus masquer",
"account.unmute_notifications": "Réactiver les notifications de @{name}",
"account.view_full_profile": "Afficher le profil complet",
"alert.unexpected.message": "Une erreur non-attendue s'est produite.",
"alert.unexpected.message": "Une erreur non attendue sest produite.",
"alert.unexpected.title": "Oups!",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour pouvoir passer ceci, la prochaine fois",
"bundle_column_error.body": "Une erreur sest produite lors du chargement de ce composant.",
@ -60,9 +64,9 @@
"column_header.unpin": "Retirer",
"column_subheading.settings": "Paramètres",
"community.column_settings.media_only": "Média uniquement",
"compose_form.direct_message_warning": "Ce pouet sera uniquement envoyé qu'aux personnes mentionnées. Cependant, l'administration de votre instance et des instances réceptrices pourront inspecter ce message.",
"compose_form.direct_message_warning": "Ce pouet sera uniquement envoyé aux personnes mentionnées. Cependant, ladministration de votre instance et des instances réceptrices pourront inspecter ce message.",
"compose_form.direct_message_warning_learn_more": "En savoir plus",
"compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur \"non-listé\". Seuls les pouets avec une visibilité \"publique\" peuvent être recherchés par hashtag.",
"compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur \"non listé\". Seuls les pouets avec une visibilité \"publique\" peuvent être recherchés par hashtag.",
"compose_form.lock_disclaimer": "Votre compte nest pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
"compose_form.lock_disclaimer.lock": "verrouillé",
"compose_form.placeholder": "Quavez-vous en tête?",
@ -71,7 +75,7 @@
"compose_form.sensitive.marked": "Média marqué comme sensible",
"compose_form.sensitive.unmarked": "Média non marqué comme sensible",
"compose_form.spoiler.marked": "Le texte est caché derrière un avertissement",
"compose_form.spoiler.unmarked": "Le texte n'est pas caché",
"compose_form.spoiler.unmarked": "Le texte nest pas caché",
"compose_form.spoiler_placeholder": "Écrivez ici votre avertissement",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.confirm": "Bloquer",
@ -81,11 +85,11 @@
"confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Êtes-vous sûr de vouloir supprimer définitivement cette liste?",
"confirmations.domain_block.confirm": "Masquer le domaine entier",
"confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine ni dans vos lignes de temps publiques, ni dans vos notifications. Vos suiveurs utilisant ce domaine seront retirés.",
"confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
"confirmations.mute.confirm": "Masquer",
"confirmations.mute.message": "Confirmez-vous le masquage de {name}?",
"confirmations.redraft.confirm": "Effacer et ré-écrire",
"confirmations.redraft.message": "Êtes vous sûr de vouloir effacer ce statut pour le ré-écrire ? Vous perdrez toutes ses réponses, ses repartages et ses mises en favori.",
"confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer ce statut pour le ré-écrire? Ses partages ainsi que ses mises en favori seront perdu·e·s et ses réponses seront orphelines.",
"confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous arrêter de suivre {name}?",
"embed.instructions": "Intégrez ce statut à votre site en copiant le code ci-dessous.",
@ -96,7 +100,7 @@
"emoji_button.food": "Nourriture & Boisson",
"emoji_button.label": "Insérer un émoji",
"emoji_button.nature": "Nature",
"emoji_button.not_found": "Pas d'emojis!! (╯°□°)╯︵ ┻━┻",
"emoji_button.not_found": "Pas démoji!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objets",
"emoji_button.people": "Personnages",
"emoji_button.recent": "Fréquemment utilisés",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Résultats de la recherche",
"emoji_button.symbols": "Symboles",
"emoji_button.travel": "Lieux & Voyages",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir!",
"empty_column.direct": "Vous n'avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s'affichera ici.",
"empty_column.direct": "Vous navez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il saffichera ici.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Il ny a encore aucun contenu associé à ce hashtag.",
"empty_column.home": "Vous ne suivez personne. Visitez {public} ou utilisez la recherche pour trouver dautres personnes à suivre.",
"empty_column.home.public_timeline": "le fil public",
"empty_column.list": "Il n'y a rien dans cette liste pour l'instant. Dès que des personnes de cette liste publierons de nouveaux statuts, ils apparaîtront ici.",
"empty_column.list": "Il ny a rien dans cette liste pour linstant. Dès que des personnes de cette liste publieront de nouveaux statuts, ils apparaîtront ici.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Vous navez pas encore de notification. Interagissez avec dautres personnes pour débuter la conversation.",
"empty_column.public": "Il ny a rien ici! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes dautres instances pour remplir le fil public",
"follow_request.authorize": "Accepter",
@ -127,7 +138,7 @@
"home.column_settings.show_replies": "Afficher les réponses",
"keyboard_shortcuts.back": "revenir en arrière",
"keyboard_shortcuts.boost": "partager",
"keyboard_shortcuts.column": "focaliser un statut dans l'une des colonnes",
"keyboard_shortcuts.column": "focaliser un statut dans lune des colonnes",
"keyboard_shortcuts.compose": "pour centrer la zone de rédaction",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.down": "pour descendre dans la liste",
@ -136,7 +147,8 @@
"keyboard_shortcuts.heading": "Raccourcis clavier",
"keyboard_shortcuts.hotkey": "Raccourci",
"keyboard_shortcuts.legend": "pour afficher cette légende",
"keyboard_shortcuts.mention": "pour mentionner l'auteur",
"keyboard_shortcuts.mention": "pour mentionner lauteur·rice",
"keyboard_shortcuts.profile": "pour ouvrir le profil de lauteur·rice",
"keyboard_shortcuts.reply": "pour répondre",
"keyboard_shortcuts.search": "pour cibler la recherche",
"keyboard_shortcuts.toggle_hidden": "pour afficher/cacher un texte derrière CW",
@ -159,14 +171,16 @@
"missing_indicator.label": "Non trouvé",
"missing_indicator.sublabel": "Ressource introuvable",
"mute_modal.hide_notifications": "Masquer les notifications de cette personne?",
"navigation_bar.apps": "Applications mobiles",
"navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.community_timeline": "Fil public local",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Messages directs",
"navigation_bar.discover": "Découvrir",
"navigation_bar.domain_blocks": "Domaines cachés",
"navigation_bar.edit_profile": "Modifier le profil",
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Mots silenciés",
"navigation_bar.follow_requests": "Demandes de suivi",
"navigation_bar.info": "Plus dinformations",
"navigation_bar.keyboard_shortcuts": "Raccourcis-clavier",
@ -198,12 +212,12 @@
"onboarding.next": "Suivant",
"onboarding.page_five.public_timelines": "Le fil public global affiche les messages de toutes les personnes suivies par les membres de {domain}. Le fil public local est identique, mais se limite aux membres de {domain}.",
"onboarding.page_four.home": "Laccueil affiche les messages des personnes que vous suivez.",
"onboarding.page_four.notifications": "La colonne de notification vous avertit lors d'une interaction avec vous.",
"onboarding.page_four.notifications": "La colonne de notification vous avertit lors dune interaction avec vous.",
"onboarding.page_one.federation": "Mastodon est un réseau de serveurs indépendants qui se joignent pour former un réseau social plus vaste. Nous appelons ces serveurs des instances.",
"onboarding.page_one.full_handle": "Votre identifiant complet",
"onboarding.page_one.handle_hint": "C'est ce que vos amis devront rechercher.",
"onboarding.page_one.handle_hint": "Cest ce que vos ami·e·s devront rechercher.",
"onboarding.page_one.welcome": "Bienvenue sur Mastodon!",
"onboarding.page_six.admin": "Ladministrateur⋅ice de votre instance est {admin}.",
"onboarding.page_six.admin": "Votre instance est administrée par {admin}.",
"onboarding.page_six.almost_done": "Nous y sommes presque…",
"onboarding.page_six.appetoot": "Bon appouétit!",
"onboarding.page_six.apps_available": "De nombreuses {apps} sont disponibles pour iOS, Android et autres.",
@ -216,14 +230,14 @@
"onboarding.page_two.compose": "Écrivez depuis la colonne de composition. Vous pouvez ajouter des images, changer les réglages de confidentialité, et ajouter des avertissements de contenu (Content Warning) grâce aux icônes en dessous.",
"onboarding.skip": "Passer",
"privacy.change": "Ajuster la confidentialité du message",
"privacy.direct.long": "N'envoyer qu'aux personnes mentionnées",
"privacy.direct.long": "Nenvoyer quaux personnes mentionnées",
"privacy.direct.short": "Direct",
"privacy.private.long": "Seul⋅e⋅s vos abonné⋅e⋅s verront vos statuts",
"privacy.private.short": "Abonné⋅e⋅s uniquement",
"privacy.public.long": "Afficher dans les fils publics",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Ne pas afficher dans les fils publics",
"privacy.unlisted.short": "Non-listé",
"privacy.unlisted.short": "Non listé",
"regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Le flux de votre page principale est en cours de préparation!",
"relative_time.days": "{number} j",
@ -233,8 +247,8 @@
"relative_time.seconds": "{number} s",
"reply_indicator.cancel": "Annuler",
"report.forward": "Transférer à {target}",
"report.forward_hint": "Le compte provient d'un autre serveur. Envoyez également une copie anonyme du rapport?",
"report.hint": "Le rapport sera envoyé aux modérateurs de votre instance. Vous pouvez expliquer pourquoi vous signalez le compte ci-dessous:",
"report.forward_hint": "Le compte provient dun autre serveur. Envoyez également une copie anonyme du rapport?",
"report.hint": "Le rapport sera envoyé aux modérateur·rice·s de votre instance. Vous pouvez expliquer pourquoi vous signalez le compte ci-dessous:",
"report.placeholder": "Commentaires additionnels",
"report.submit": "Envoyer",
"report.target": "Signalement",
@ -254,10 +268,11 @@
"status.cancel_reblog_private": "Dé-booster",
"status.cannot_reblog": "Cette publication ne peut être boostée",
"status.delete": "Effacer",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Envoyer un message direct à @{name}",
"status.embed": "Intégrer",
"status.favourite": "Ajouter aux favoris",
"status.filtered": "Filtered",
"status.filtered": "Filt",
"status.load_more": "Charger plus",
"status.media_hidden": "Média caché",
"status.mention": "Mentionner",
@ -268,8 +283,9 @@
"status.pin": "Épingler sur le profil",
"status.pinned": "Pouet épinglé",
"status.reblog": "Partager",
"status.reblog_private": "Booster vers l'audience originale",
"status.reblog_private": "Booster vers laudience originale",
"status.reblogged_by": "{name} a partagé:",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Effacer et ré-écrire",
"status.reply": "Répondre",
"status.replyAll": "Répondre au fil",
@ -288,16 +304,16 @@
"tabs_bar.local_timeline": "Fil public local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Chercher",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} discutent",
"trends.count_by_accounts": "{count} {rawCount, plural, one {personne} other {personnes}} discutent",
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
"upload_area.title": "Glissez et déposez pour envoyer",
"upload_button.label": "Joindre un média",
"upload_form.description": "Décrire pour les malvoyants",
"upload_form.description": "Décrire pour les malvoyant·e·s",
"upload_form.focus": "Recadrer",
"upload_form.undo": "Supprimer",
"upload_progress.label": "Envoi en cours…",
"video.close": "Fermer la vidéo",
"video.exit_fullscreen": "Quitter plein écran",
"video.exit_fullscreen": "Quitter le plein écran",
"video.expand": "Agrandir la vidéo",
"video.fullscreen": "Plein écran",
"video.hide": "Masquer la vidéo",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "A información inferior podería mostrar un perfil incompleto da usuaria.",
"account.domain_blocked": "Dominio agochado",
"account.edit_profile": "Editar perfil",
"account.endorse": "Feature on profile",
"account.follow": "Seguir",
"account.followers": "Seguidoras",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Seguindo",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Séguena",
"account.hide_reblogs": "Ocultar repeticións de @{name}",
"account.media": "Medios",
@ -26,6 +29,7 @@
"account.show_reblogs": "Mostrar repeticións de @{name}",
"account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Non ocultar {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Non seguir",
"account.unmute": "Non acalar @{name}",
"account.unmute_notifications": "Desbloquear as notificacións de @{name}",
@ -84,8 +88,8 @@
"confirmations.domain_block.message": "Realmente está segura de que quere bloquear por completo o dominio {domain}? Normalmente é suficiente, e preferible, bloquear de xeito selectivo varios elementos. Non verá contidos de ese dominio en ningunha liña temporal ou nas notificacións. As súas seguidoras en ese dominio serán eliminadas.",
"confirmations.mute.confirm": "Acalar",
"confirmations.mute.message": "Está segura de que quere acalar a {name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"confirmations.redraft.confirm": "Eliminar e reescribir",
"confirmations.redraft.message": "Está segura de querer eliminar este estado e voltalo a escribir? Perderá todas as réplicas, promocións e favoritas da mensaxe.",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Quere deixar de seguir a {name}?",
"embed.instructions": "Copie o código inferior para incrustar no seu sitio web este estado.",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Resultados da busca",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viaxes e Lugares",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "A liña temporal local está baldeira. Escriba algo de xeito público para que rule!",
"empty_column.direct": "Aínda non ten mensaxes directas. Cando envíe ou reciba unha, aparecerá aquí.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Aínda non hai nada con esta etiqueta.",
"empty_column.home": "A súa liña temporal de inicio está baldeira! Visite {public} ou utilice a busca para atopar outras usuarias.",
"empty_column.home.public_timeline": "a liña temporal pública",
"empty_column.list": "Aínda non hai nada en esta lista. Cando as usuarias incluídas na lista publiquen mensaxes, aparecerán aquí.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Aínda non ten notificacións. Interactúe con outras para iniciar unha conversa.",
"empty_column.public": "Nada por aquí! Escriba algo de xeito público, ou siga manualmente usuarias de outras instancias para ir enchéndoa",
"follow_request.authorize": "Autorizar",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Tecla de acceso directo",
"keyboard_shortcuts.legend": "para mostrar esta lenda",
"keyboard_shortcuts.mention": "para mencionar o autor",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "para responder",
"keyboard_shortcuts.search": "para centrar a busca",
"keyboard_shortcuts.toggle_hidden": "mostrar/agochar un texto detrás do AC",
@ -159,8 +171,10 @@
"missing_indicator.label": "Non atopado",
"missing_indicator.sublabel": "Non se puido atopar o recurso",
"mute_modal.hide_notifications": "Esconder notificacións deste usuario?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Usuarias bloqueadas",
"navigation_bar.community_timeline": "Liña temporal local",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Mensaxes directas",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Dominios agochados",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Non promover",
"status.cannot_reblog": "Esta mensaxe non pode ser promovida",
"status.delete": "Eliminar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Mensaxe directa @{name}",
"status.embed": "Incrustar",
"status.favourite": "Favorita",
@ -270,6 +285,7 @@
"status.reblog": "Promover",
"status.reblog_private": "Promover a audiencia orixinal",
"status.reblogged_by": "{name} promoveu",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Resposta",
"status.replyAll": "Resposta a conversa",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "המידע להלן עשוי להיות לא עדכני או לא שלם.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "עריכת פרופיל",
"account.endorse": "Feature on profile",
"account.follow": "מעקב",
"account.followers": "עוקבים",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "נעקבים",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "במעקב אחריך",
"account.hide_reblogs": "להסתיר הידהודים מאת @{name}",
"account.media": "מדיה",
@ -22,16 +25,17 @@
"account.posts_with_replies": "Toots with replies",
"account.report": "לדווח על @{name}",
"account.requested": "בהמתנה לאישור",
"account.share": "לשתף את אודות @{name}",
"account.share": "לשתף את הפרופיל של @{name}",
"account.show_reblogs": "להראות הדהודים מאת @{name}",
"account.unblock": "הסרת חסימה מעל @{name}",
"account.unblock_domain": "הסר חסימה מקהילת {domain}",
"account.unendorse": "לא להציג בפרופיל",
"account.unfollow": "הפסקת מעקב",
"account.unmute": "הפסקת השתקת @{name}",
"account.unmute_notifications": "להפסיק הסתרת הודעות מעם @{name}",
"account.view_full_profile": ראה אודות מלאות",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"account.view_full_profile": צגת פרופיל מלא",
"alert.unexpected.message": "אירעה שגיאה בלתי צפויה.",
"alert.unexpected.title": "אופס!",
"boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה",
"bundle_column_error.body": "משהו השתבש בעת הצגת הרכיב הזה.",
"bundle_column_error.retry": "לנסות שוב",
@ -104,12 +108,19 @@
"emoji_button.search_results": "תוצאות חיפוש",
"emoji_button.symbols": "סמלים",
"emoji_button.travel": "טיולים ואתרים",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "אין כלום בהאשתג הזה עדיין.",
"empty_column.home": "אף אחד לא במעקב עדיין. אפשר לבקר ב{public} או להשתמש בחיפוש כדי להתחיל ולהכיר חצוצרנים אחרים.",
"empty_column.home.public_timeline": "ציר זמן בין-קהילתי",
"empty_column.list": "אין עדיין מאום ברשימה.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.",
"empty_column.public": "אין פה כלום! כדי למלא את הטור הזה אפשר לכתוב משהו, או להתחיל לעקוב אחרי אנשים מקהילות אחרות",
"follow_request.authorize": "קבלה",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "מקש קיצור",
"keyboard_shortcuts.legend": "להציג את הפירוש",
"keyboard_shortcuts.mention": "לאזכר את המחבר(ת)",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "לענות",
"keyboard_shortcuts.search": "להתמקד בחלון החיפוש",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "לא נמצא",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "להסתיר הודעות מחשבון זה?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "חסימות",
"navigation_bar.community_timeline": "ציר זמן מקומי",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "לא ניתן להדהד הודעה זו",
"status.delete": "מחיקה",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "הטמעה",
"status.favourite": "חיבוב",
@ -270,6 +285,7 @@
"status.reblog": "הדהוד",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "הודהד על ידי {name}",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "תגובה",
"status.replyAll": "תגובה לכולם",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Ovaj korisnik je sa druge instance. Ovaj broj bi mogao biti veći.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Uredi profil",
"account.endorse": "Feature on profile",
"account.follow": "Slijedi",
"account.followers": "Sljedbenici",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Slijedi",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "te slijedi",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Deblokiraj @{name}",
"account.unblock_domain": "Poništi sakrivanje {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Prestani slijediti",
"account.unmute": "Poništi utišavanje @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Putovanja & Mjesta",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Još ne postoji ništa s ovim hashtagom.",
"empty_column.home": "Još ne slijediš nikoga. Posjeti {public} ili koristi tražilicu kako bi počeo i upoznao druge korisnike.",
"empty_column.home.public_timeline": "javni timeline",
"empty_column.list": "There is nothing in this list yet.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Još nemaš notifikacija. Komuniciraj sa drugima kako bi započeo razgovor.",
"empty_column.public": "Ovdje nema ništa! Napiši nešto javno, ili ručno slijedi korisnike sa drugih instanci kako bi popunio",
"follow_request.authorize": "Autoriziraj",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Nije nađen",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blokirani korisnici",
"navigation_bar.community_timeline": "Lokalni timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Ovaj post ne može biti boostan",
"status.delete": "Obriši",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Označi omiljenim",
@ -270,6 +285,7 @@
"status.reblog": "Podigni",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} je podigao",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Odgovori",
"status.replyAll": "Odgovori na temu",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Az alul található információk hiányosan mutathatják be a felhasználót.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Profil szerkesztése",
"account.endorse": "Feature on profile",
"account.follow": "Követés",
"account.followers": "Követők",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Követve",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Követnek téged",
"account.hide_reblogs": "Rejtsd el a tülkölést @{name}-tól/től",
"account.media": "Média",
@ -26,6 +29,7 @@
"account.show_reblogs": "@{name} kedvenceinek mutatása",
"account.unblock": "@{name} kiblokkolása",
"account.unblock_domain": "{domain} mutatása",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Követés abbahagyása",
"account.unmute": "@{name} kinémítása",
"account.unmute_notifications": "@{name} értesítéseinek kinémítása",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Keresési találatok",
"emoji_button.symbols": "Szimbólumok",
"emoji_button.travel": "Utazás és Helyek",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "A helyi idővonal üres. Írj egy publikus stástuszt, hogy elindítsd a labdát!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Jelenleg nem található semmi ezen hashtaggel.",
"empty_column.home": "A hazai idővonala üres! Látogasd meg a {public} vagy használd a keresőt, hogy ismerj meg más felhasználókat.",
"empty_column.home.public_timeline": "publikus idővonal",
"empty_column.list": "A lista jelenleg üres. Mikor a listatagok új státuszt posztolnak itt meg fognak jelenni.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Jelenleg nincsenek értesítései. Lépj kapcsolatba másokkal, hogy indítsd el a beszélgetést.",
"empty_column.public": "Jelenleg semmi nincs itt! Írj valamit publikusan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd",
"follow_request.authorize": "Engedélyez",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Gyorsbillentyű",
"keyboard_shortcuts.legend": "jelmagyarázat megjelenítése",
"keyboard_shortcuts.mention": "szerző megjelenítése",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "válaszolás",
"keyboard_shortcuts.search": "kereső kiemelése",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Nincs találat",
"missing_indicator.sublabel": "Ezen forrás nem található",
"mute_modal.hide_notifications": "Értesítések elrejtése ezen felhasználótól?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Tiltott felhasználók",
"navigation_bar.community_timeline": "Helyi idővonal",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Ezen státusz nem rebloggolható",
"status.delete": "Törlés",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Beágyaz",
"status.favourite": "Kedvenc",
@ -270,6 +285,7 @@
"status.reblog": "Reblog",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} reblogolta",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Válasz",
"status.replyAll": "Válaszolj a beszélgetésre",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Ներքոհիշյալը կարող է ոչ ամբողջությամբ արտացոլել օգտատիրոջ էջի տվյալները։",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Խմբագրել անձնական էջը",
"account.endorse": "Feature on profile",
"account.follow": "Հետեւել",
"account.followers": "Հետեւվողներ",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Հետեւում է",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Հետեւում է քեզ",
"account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
"account.media": "Մեդիա",
@ -26,6 +29,7 @@
"account.show_reblogs": "Ցուցադրել @{name}֊ի տարածածները",
"account.unblock": "Ապաարգելափակել @{name}֊ին",
"account.unblock_domain": "Ցուցադրել {domain} թաքցված տիրույթի գրառումները",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Չհետեւել",
"account.unmute": "Ապալռեցնել @{name}֊ին",
"account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Որոնման արդյունքներ",
"emoji_button.symbols": "Նշաններ",
"emoji_button.travel": "Ուղեւորություն եւ տեղանքներ",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Տեղական հոսքը դատա՛րկ է։ Հրապարակային մի բան գրիր շարժիչը խոդ տալու համար։",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Այս պիտակով դեռ ոչինչ չկա։",
"empty_column.home": "Քո հիմնական հոսքը դատա՛րկ է։ Այցելի՛ր {public}ը կամ օգտվիր որոնումից՝ այլ մարդկանց հանդիպելու համար։",
"empty_column.home.public_timeline": "հրապարակային հոսք",
"empty_column.list": "Այս ցանկում դեռ ոչինչ չկա։ Երբ ցանկի անդամներից որեւէ մեկը նոր թութ գրի, այն կհայտնվի այստեղ։",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Ոչ մի ծանուցում դեռ չունես։ Բզիր մյուսներին՝ խոսակցությունը սկսելու համար։",
"empty_column.public": "Այստեղ բան չկա՛։ Հրապարակային մի բան գրիր կամ հետեւիր այլ հանգույցներից էակների՝ այն լցնելու համար։",
"follow_request.authorize": "Վավերացնել",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Հատուկ ստեղն",
"keyboard_shortcuts.legend": "այս ձեռնարկը ցուցադրելու համար",
"keyboard_shortcuts.mention": "հեղինակին նշելու համար",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "պատասխանելու համար",
"keyboard_shortcuts.search": "որոնման դաշտին սեւեռվելու համար",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Չգտնվեց",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Թաքցնե՞լ ցանուցումներն այս օգտատիրոջից։",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Արգելափակված օգտատերեր",
"navigation_bar.community_timeline": "Տեղական հոսք",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Այս թութը չի կարող տարածվել",
"status.delete": "Ջնջել",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Ներդնել",
"status.favourite": "Հավանել",
@ -270,6 +285,7 @@
"status.reblog": "Տարածել",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} տարածել է",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Պատասխանել",
"status.replyAll": "Պատասխանել թելին",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Informasi di bawah mungkin tidak mencerminkan profil user secara lengkap.",
"account.domain_blocked": "Domain disembunyikan",
"account.edit_profile": "Ubah profil",
"account.endorse": "Feature on profile",
"account.follow": "Ikuti",
"account.followers": "Pengikut",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Mengikuti",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Mengikuti anda",
"account.hide_reblogs": "Sembunyikan boosts dari @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Tampilkan boost dari @{name}",
"account.unblock": "Hapus blokir @{name}",
"account.unblock_domain": "Tampilkan {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Berhenti mengikuti",
"account.unmute": "Berhenti membisukan @{name}",
"account.unmute_notifications": "Munculkan notifikasi dari @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Hasil pencarian",
"emoji_button.symbols": "Simbol",
"emoji_button.travel": "Tempat Wisata",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Tidak ada apapun dalam hashtag ini.",
"empty_column.home": "Linimasa anda kosong! Kunjungi {public} atau gunakan pencarian untuk memulai dan bertemu pengguna lain.",
"empty_column.home.public_timeline": "linimasa publik",
"empty_column.list": "Tidak ada postingan di list ini. Ketika anggota dari list ini memposting status baru, status tersebut akan tampil disini.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.",
"empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini",
"follow_request.authorize": "Izinkan",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.search": "untuk fokus mencari",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Tidak ditemukan",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Pengguna diblokir",
"navigation_bar.community_timeline": "Linimasa lokal",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.delete": "Hapus",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Difavoritkan",
@ -270,6 +285,7 @@
"status.reblog": "Boost",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "di-boost {name}",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Balas",
"status.replyAll": "Balas ke semua",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Modifikar profilo",
"account.endorse": "Feature on profile",
"account.follow": "Sequar",
"account.followers": "Sequanti",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Sequas",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Sequas tu",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Desblokusar @{name}",
"account.unblock_domain": "Unhide {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Ne plus sequar",
"account.unmute": "Ne plus celar @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Esas ankore nulo en ta gretovorto.",
"empty_column.home": "Tu sequas ankore nulu. Vizitez {public} od uzez la serchilo por komencar e renkontrar altra uzeri.",
"empty_column.home.public_timeline": "la publika tempolineo",
"empty_column.list": "There is nothing in this list yet.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Tu havas ankore nula savigo. Komunikez kun altri por debutar la konverso.",
"empty_column.public": "Esas nulo hike! Skribez ulo publike, o manuale sequez uzeri de altra instaluri por plenigar ol.",
"follow_request.authorize": "Yurizar",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Ne trovita",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blokusita uzeri",
"navigation_bar.community_timeline": "Lokala tempolineo",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.delete": "Efacar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Favorizar",
@ -270,6 +285,7 @@
"status.reblog": "Repetar",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} repetita",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Respondar",
"status.replyAll": "Respondar a filo",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Il profilo dell'utente mostrato qui sotto potrebbe essere incompleto.",
"account.domain_blocked": "Dominio nascosto",
"account.edit_profile": "Modifica profilo",
"account.endorse": "Feature on profile",
"account.follow": "Segui",
"account.followers": "Seguaci",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Segue",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Ti segue",
"account.hide_reblogs": "Nascondi condivisioni da @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Mostra condivisioni da @{name}",
"account.unblock": "Sblocca @{name}",
"account.unblock_domain": "Non nascondere {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Non seguire",
"account.unmute": "Non silenziare @{name}",
"account.unmute_notifications": "Non silenziare più le notifiche da @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Risultati della ricerca",
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Viaggi e luoghi",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!",
"empty_column.direct": "Non hai ancora nessun messaggio diretto. Quando ne manderai o riceverai qualcuno, apparirà qui.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Non c'è ancora nessun post con questo hashtag.",
"empty_column.home": "Non stai ancora seguendo nessuno. Visita {public} o usa la ricerca per incontrare nuove persone.",
"empty_column.home.public_timeline": "la timeline pubblica",
"empty_column.list": "Non c'è niente in questo elenco ancora. Quando i membri di questo elenco postano nuovi stati, questi appariranno qui.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Non hai ancora nessuna notifica. Interagisci con altri per iniziare conversazioni.",
"empty_column.public": "Qui non c'è nulla! Scrivi qualcosa pubblicamente, o aggiungi utenti da altri server per riempire questo spazio",
"follow_request.authorize": "Autorizza",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Tasto di scelta rapida",
"keyboard_shortcuts.legend": "per mostrare questa spiegazione",
"keyboard_shortcuts.mention": "per menzionare l'autore",
"keyboard_shortcuts.profile": "per aprire il profilo dell'autore",
"keyboard_shortcuts.reply": "per rispondere",
"keyboard_shortcuts.search": "per spostare il focus sulla ricerca",
"keyboard_shortcuts.toggle_hidden": "per mostrare/nascondere il testo dei CW",
@ -159,14 +171,16 @@
"missing_indicator.label": "Non trovato",
"missing_indicator.sublabel": "Risorsa non trovata",
"mute_modal.hide_notifications": "Nascondere le notifiche da quest'utente?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Utenti bloccati",
"navigation_bar.community_timeline": "Timeline locale",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Messaggi diretti",
"navigation_bar.discover": "Scopri",
"navigation_bar.domain_blocks": "Domini nascosti",
"navigation_bar.edit_profile": "Modifica profilo",
"navigation_bar.favourites": "Apprezzati",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Parole silenziate",
"navigation_bar.follow_requests": "Richieste di amicizia",
"navigation_bar.info": "Informazioni estese",
"navigation_bar.keyboard_shortcuts": "Tasti di scelta rapida",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Annulla condivisione",
"status.cannot_reblog": "Questo post non può essere condiviso",
"status.delete": "Elimina",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Messaggio diretto @{name}",
"status.embed": "Incorpora",
"status.favourite": "Apprezzato",
@ -270,6 +285,7 @@
"status.reblog": "Condividi",
"status.reblog_private": "Condividi con i destinatari iniziali",
"status.reblogged_by": "{name} ha condiviso",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Cancella e riscrivi",
"status.reply": "Rispondi",
"status.replyAll": "Rispondi alla conversazione",
@ -288,7 +304,7 @@
"tabs_bar.local_timeline": "Locale",
"tabs_bar.notifications": "Notifiche",
"tabs_bar.search": "Cerca",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona ne sta} other {persone ne stanno}} parlando",
"ui.beforeunload": "La bozza andrà persa se esci da Mastodon.",
"upload_area.title": "Trascina per caricare",
"upload_button.label": "Aggiungi file multimediale",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "以下の情報は不正確な可能性があります。",
"account.domain_blocked": "ドメイン非表示中",
"account.edit_profile": "プロフィールを編集",
"account.endorse": "プロフィールで紹介する",
"account.follow": "フォロー",
"account.followers": "フォロワー",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "フォロー",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "フォローされています",
"account.hide_reblogs": "@{name}さんからのブーストを非表示",
"account.media": "メディア",
@ -26,6 +29,7 @@
"account.show_reblogs": "@{name}さんからのブーストを表示",
"account.unblock": "@{name}さんのブロックを解除",
"account.unblock_domain": "{domain}を表示",
"account.unendorse": "プロフィールから外す",
"account.unfollow": "フォロー解除",
"account.unmute": "@{name}さんのミュートを解除",
"account.unmute_notifications": "@{name}さんからの通知を受け取るようにする",
@ -104,12 +108,19 @@
"emoji_button.search_results": "検索結果",
"emoji_button.symbols": "記号",
"emoji_button.travel": "旅行と場所",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
"empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "このハッシュタグはまだ使われていません。",
"empty_column.home": "まだ誰もフォローしていません。{public}を見に行くか、検索を使って他のユーザーを見つけましょう。",
"empty_column.home.public_timeline": "連合タイムライン",
"empty_column.list": "このリストにはまだなにもありません。このリストのメンバーが新しいトゥートをするとここに表示されます。",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。",
"empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のインスタンスのユーザーをフォローしたりしていっぱいにしましょう",
"follow_request.authorize": "許可",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "ホットキー",
"keyboard_shortcuts.legend": "この一覧を表示",
"keyboard_shortcuts.mention": "メンション",
"keyboard_shortcuts.profile": "プロフィールを開く",
"keyboard_shortcuts.reply": "返信",
"keyboard_shortcuts.search": "検索欄に移動",
"keyboard_shortcuts.toggle_hidden": "CWで隠れた文を見る/隠す",
@ -159,14 +171,16 @@
"missing_indicator.label": "見つかりません",
"missing_indicator.sublabel": "見つかりませんでした",
"mute_modal.hide_notifications": "このユーザーからの通知を隠しますか?",
"navigation_bar.apps": "アプリ",
"navigation_bar.blocks": "ブロックしたユーザー",
"navigation_bar.community_timeline": "ローカルタイムライン",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "ダイレクトメッセージ",
"navigation_bar.discover": "見つける",
"navigation_bar.domain_blocks": "非表示にしたドメイン",
"navigation_bar.edit_profile": "プロフィールを編集",
"navigation_bar.favourites": "お気に入り",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "フィルター設定",
"navigation_bar.follow_requests": "フォローリクエスト",
"navigation_bar.info": "このインスタンスについて",
"navigation_bar.keyboard_shortcuts": "ホットキー",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "ブースト解除",
"status.cannot_reblog": "この投稿はブーストできません",
"status.delete": "削除",
"status.detailed_status": "Detailed conversation view",
"status.direct": "@{name}さんにダイレクトメッセージ",
"status.embed": "埋め込み",
"status.favourite": "お気に入り",
@ -270,6 +285,7 @@
"status.reblog": "ブースト",
"status.reblog_private": "ブースト",
"status.reblogged_by": "{name}さんがブースト",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "削除して下書きに戻す",
"status.reply": "返信",
"status.replyAll": "全員に返信",

View file

@ -0,0 +1,324 @@
{
"account.badges.bot": "ბოტი",
"account.block": "დაბლოკე @{name}",
"account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}",
"account.blocked": "დაიბლოკა",
"account.direct": "პირდაპირი წერილი @{name}-ს",
"account.disclaimer_full": "ქვემოთ მოცემულმა ინფორმაციამ შეიძლება სრულად არ ასახოს მომხმარებლის პროფილი.",
"account.domain_blocked": "დომენი დამალულია",
"account.edit_profile": "პროფილის ცვლილება",
"account.endorse": "გამორჩევა პროფილზე",
"account.follow": "გაყოლა",
"account.followers": "მიმდევრები",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "მიდევნებები",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "მოგყვებათ",
"account.hide_reblogs": "დაიმალოს ბუსტები @{name}-სგან",
"account.media": "მედია",
"account.mention": "ასახელეთ @{name}",
"account.moved_to": "{name} გადავიდა:",
"account.mute": "გააჩუმე @{name}",
"account.mute_notifications": "გააჩუმე შეტყობინებები @{name}-სგან",
"account.muted": "გაჩუმებული",
"account.posts": "ტუტები",
"account.posts_with_replies": "ტუტები და პასუხები",
"account.report": "დაარეპორტე @{name}",
"account.requested": "დამტკიცების მოლოდინში. დააწკაპუნეთ რომ უარყოთ დადევნების მოთხონვა",
"account.share": "გააზიარე @{name}-ის პროფილი",
"account.show_reblogs": "აჩვენე ბუსტები @{name}-სგან",
"account.unblock": "განბლოკე @{name}",
"account.unblock_domain": "გამოაჩინე {domain}",
"account.unendorse": "არ გამოირჩეს პროფილზე",
"account.unfollow": "ნუღარ მიჰყვები",
"account.unmute": "ნუღარ აჩუმებ @{name}-ს",
"account.unmute_notifications": "ნუღარ აჩუმებ შეტყობინებებს @{name}-სგან",
"account.view_full_profile": "სრული პროფილის ჩვენება",
"alert.unexpected.message": "წარმოიშვა მოულოდნელი შეცდომა.",
"alert.unexpected.title": "უპს!",
"boost_modal.combo": "შეგიძლიათ დააჭიროთ {combo}-ს რათა შემდეგ ჯერზე გამოტოვოთ ეს",
"bundle_column_error.body": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.",
"bundle_column_error.retry": "სცადეთ კიდევ ერთხელ",
"bundle_column_error.title": "ქსელის შეცდომა",
"bundle_modal_error.close": "დახურვა",
"bundle_modal_error.message": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.",
"bundle_modal_error.retry": "სცადეთ კიდევ ერთხელ",
"column.blocks": "დაბლოკილი მომხმარებლები",
"column.community": "ლოკალური თაიმლაინი",
"column.direct": "პირდაპირი წერილები",
"column.domain_blocks": "დამალული დომენები",
"column.favourites": "ფავორიტები",
"column.follow_requests": "დადევნების მოთხოვნები",
"column.home": "სახლი",
"column.lists": "სიები",
"column.mutes": "გაჩუმებული მომხმარებლები",
"column.notifications": "შეტყობინებები",
"column.pins": "აპინული ტუტები",
"column.public": "ფედერალური თაიმლაინი",
"column_back_button.label": "უკან",
"column_header.hide_settings": "პარამეტრების დამალვა",
"column_header.moveLeft_settings": "სვეტის მარცხნივ გადატანა",
"column_header.moveRight_settings": "სვეტის მარჯვნივ გადატანა",
"column_header.pin": "აპინვა",
"column_header.show_settings": "პარამეტრების ჩვენება",
"column_header.unpin": "პინის მოხსნა",
"column_subheading.settings": "პარამეტრები",
"community.column_settings.media_only": "მხოლოდ მედია",
"compose_form.direct_message_warning": "ეს ტუტი გაეგზავნება მხოლოდ ნახსენებ მომხმარებლებს.",
"compose_form.direct_message_warning_learn_more": "გაიგე მეტი",
"compose_form.hashtag_warning": "ეს ტუტი არ მოექცევა ჰეშტეგების ქვეს, რამეთუ ის არაა მითითებული. მხოლოდ ღია ტუტები მოიძებნება ჰეშტეგით.",
"compose_form.lock_disclaimer": "თქვენი ანგარიში არაა {locked}. ნებისმიერს შეიძლია გამოგყვეთ, რომ იხილოს თქვენი მიმდევრებზე გათვლილი პოსტები.",
"compose_form.lock_disclaimer.lock": "ჩაკეტილი",
"compose_form.placeholder": "რაზე ფიქრობ?",
"compose_form.publish": "ტუტი",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "მედია მონიშნულია მგრძნობიარედ",
"compose_form.sensitive.unmarked": "მედია არაა მონიშნული მგრძნობიარედ",
"compose_form.spoiler.marked": "გაფრთხილების უკან ტექსტი დამალულია",
"compose_form.spoiler.unmarked": "ტექსტი არაა დამალული",
"compose_form.spoiler_placeholder": "თქვენი გაფრთხილება დაწერეთ აქ",
"confirmation_modal.cancel": "უარყოფა",
"confirmations.block.confirm": "ბლოკი",
"confirmations.block.message": "დარწმუნებული ხართ, გსურთ დაბლოკოთ {name}?",
"confirmations.delete.confirm": "გაუქმება",
"confirmations.delete.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი?",
"confirmations.delete_list.confirm": "გაუქმება",
"confirmations.delete_list.message": "დარწმუნებული ხართ, გსურთ სამუდამოდ გააუქმოთ ეს სია?",
"confirmations.domain_block.confirm": "მთელი დომენის დამალვა",
"confirmations.domain_block.message": "ნაღდად, ნაღდად, დარწმუნებული ხართ, გსურთ დაბლოკოთ მთელი {domain}? უმეტეს შემთხვევაში რამდენიმე გამიზნული ბლოკი ან გაჩუმება საკმარისი და უკეთესია. კონტენტს ამ დომენიდან ვერ იხილავთ ვერც ერთ ღია თაიმლაინზე ან თქვენს შეტყობინებებში. ამ დომენიდან არსებული მიმდევრები ამოიშლება.",
"confirmations.mute.confirm": "გაჩუმება",
"confirmations.mute.message": "დარწმუნებული ხართ, გსურთ გააჩუმოთ {name}?",
"confirmations.redraft.confirm": "გაუქმება და გადანაწილება",
"confirmations.redraft.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი და გადაანაწილოთ? დაკარგავთ ყველა პასუხს, ბუსტს და მასზედ არსებულ ფავორიტს.",
"confirmations.unfollow.confirm": "ნუღარ მიჰყვები",
"confirmations.unfollow.message": "დარწმუნებული ხართ, აღარ გსურთ მიჰყვებოდეთ {name}-ს?",
"embed.instructions": "ეს სტატუსი ჩასვით თქვენს ვებ-საიტზე შემდეგი კოდის კოპირებით.",
"embed.preview": "ესაა თუ როგორც გამოჩნდება:",
"emoji_button.activity": "აქტივობა",
"emoji_button.custom": "პერსონალიზირებული",
"emoji_button.flags": "დროშები",
"emoji_button.food": "საჭმელი და სასლმელი",
"emoji_button.label": "ემოჯის ჩასმა",
"emoji_button.nature": "ბუმება",
"emoji_button.not_found": "არაა ემოჯი!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "ობიექტები",
"emoji_button.people": "ხალხი",
"emoji_button.recent": "ხშირად გამოყენებული",
"emoji_button.search": "ძებნა...",
"emoji_button.search_results": "ძებნის შედეგები",
"emoji_button.symbols": "სიმბოლოები",
"emoji_button.travel": "მოგზაურობა და ადგილები",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!",
"empty_column.direct": "ჯერ პირდაპირი წერილები არ გაქვთ. როდესაც მიიღებთ ან გააგზავნით, გამოჩნდება აქ.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "ამ ჰეშტეგში ჯერ არაფერია.",
"empty_column.home": "თქვენი სახლის თაიმლაინი ცარიელია! ესტუმრეთ {public}-ს ან დასაწყისისთვის გამოიყენეთ ძებნა, რომ შეხვდეთ სხვა მომხმარებლებს.",
"empty_column.home.public_timeline": "ღია თაიმლაინი",
"empty_column.list": "ამ სიაში ჯერ არაფერია. როდესაც სიის წევრები დაპოსტავენ ახალ სტატუსებს, ისინი გამოჩნდებიან აქ.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "ჯერ შეტყობინებები არ გაქვთ. საუბრის დასაწყებად იურთიერთქმედეთ სხვებთან.",
"empty_column.public": "აქ არაფერია! შესავსებად, დაწერეთ რაიმე ღიად ან ხელით გაჰყევით მომხმარებლებს სხვა ინსტანციებისგან",
"follow_request.authorize": "ავტორიზაცია",
"follow_request.reject": "უარყოფა",
"getting_started.developers": "დეველოპერები",
"getting_started.documentation": "დოკუმენტაცია",
"getting_started.find_friends": "იპოვეთ მეგობრები ტვიტერიდან",
"getting_started.heading": "დაწყება",
"getting_started.invite": "ხალხის მოწვევა",
"getting_started.open_source_notice": "მასტოდონი ღია პროგრამაა. შეგიძლიათ შეუწყოთ ხელი ან შექმნათ პრობემის რეპორტი {github}-ზე.",
"getting_started.security": "უსაფრთხოება",
"getting_started.terms": "მომსახურების პირობები",
"home.column_settings.basic": "ძირითადი",
"home.column_settings.show_reblogs": "ბუსტების ჩვენება",
"home.column_settings.show_replies": "პასუხების ჩვენება",
"keyboard_shortcuts.back": "უკან გადასასვლელად",
"keyboard_shortcuts.boost": "დასაბუსტად",
"keyboard_shortcuts.column": "ერთ-ერთი სვეტში სტატუსზე ფოკუსირებისთვის",
"keyboard_shortcuts.compose": "შედგენის ტექსტ-არეაზე ფოკუსირებისთვის",
"keyboard_shortcuts.description": "აღწერილობა",
"keyboard_shortcuts.down": "სიაში ქვემოთ გადასაადგილებლად",
"keyboard_shortcuts.enter": "სტატუსის გასახსნელად",
"keyboard_shortcuts.favourite": "ფავორიტად ქცევისთვის",
"keyboard_shortcuts.heading": "კლავიატურის სწრაფი ბმულები",
"keyboard_shortcuts.hotkey": "ცხელი კლავიში",
"keyboard_shortcuts.legend": "ამ ლეგენდის გამოსაჩენად",
"keyboard_shortcuts.mention": "ავტორის დასახელებლად",
"keyboard_shortcuts.profile": "ავტორის პროფილის გასახსნელად",
"keyboard_shortcuts.reply": "პასუხისთვის",
"keyboard_shortcuts.search": "ძიებაზე ფოკუსირებისთვის",
"keyboard_shortcuts.toggle_hidden": "გაფრთხილების უკან ტექსტის გამოსაჩენად/დასამალვად",
"keyboard_shortcuts.toot": "ახალი ტუტის დასაწყებად",
"keyboard_shortcuts.unfocus": "შედგენის ტექსტ-არეაზე ფოკუსის მოსაშორებლად",
"keyboard_shortcuts.up": "სიაში ზემოთ გადასაადგილებლად",
"lightbox.close": "დახურვა",
"lightbox.next": "შემდეგი",
"lightbox.previous": "წინა",
"lists.account.add": "სიაში დამატება",
"lists.account.remove": "სიიდან ამოშლა",
"lists.delete": "სიის წაშლა",
"lists.edit": "სიის შეცვლა",
"lists.new.create": "სიის დამატება",
"lists.new.title_placeholder": "ახალი სიის სათაური",
"lists.search": "ძებნა ადამიანებს შორის რომელთაც მიჰყვებით",
"lists.subheading": "თქვენი სიები",
"loading_indicator.label": "იტვირთება...",
"media_gallery.toggle_visible": "ხილვადობის ჩართვა",
"missing_indicator.label": "არაა ნაპოვნი",
"missing_indicator.sublabel": "ამ რესურსის პოვნა ვერ მოხერხდა",
"mute_modal.hide_notifications": "დავმალოთ შეტყობინებები ამ მომხმარებლისგან?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "დაბლოკილი მომხმარებლები",
"navigation_bar.community_timeline": "ლოკალური თაიმლაინი",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "პირდაპირი წერილები",
"navigation_bar.discover": "აღმოაჩინე",
"navigation_bar.domain_blocks": "დამალული დომენები",
"navigation_bar.edit_profile": "შეცვალე პროფილი",
"navigation_bar.favourites": "ფავორიტები",
"navigation_bar.filters": "გაჩუმებული სიტყვები",
"navigation_bar.follow_requests": "დადევნების მოთხოვნები",
"navigation_bar.info": "ამ ინსტანციის შესახებ",
"navigation_bar.keyboard_shortcuts": "ცხელი კლავიშები",
"navigation_bar.lists": "სიები",
"navigation_bar.logout": "გასვლა",
"navigation_bar.mutes": "გაჩუმებული მომხმარებლები",
"navigation_bar.personal": "პირადი",
"navigation_bar.pins": "აპინული ტუტები",
"navigation_bar.preferences": "პრეფერენსიები",
"navigation_bar.public_timeline": "ფედერალური თაიმლაინი",
"navigation_bar.security": "უსაფრთხოება",
"notification.favourite": "{name}-მა თქვენი სტატუსი აქცია ფავორიტად",
"notification.follow": "{name} გამოგყვათ",
"notification.mention": "{name}-მა გასახელათ",
"notification.reblog": "{name}-მა დაბუსტა თქვენი სტატუსი",
"notifications.clear": "შეტყობინებების გასუფთავება",
"notifications.clear_confirmation": "დარწმუნებული ხართ, გსურთ სამუდამოდ წაშალოთ ყველა თქვენი შეტყობინება?",
"notifications.column_settings.alert": "დესკტოპ შეტყობინებები",
"notifications.column_settings.favourite": "ფავორიტები:",
"notifications.column_settings.follow": "ახალი მიმდევრები:",
"notifications.column_settings.mention": "ხსენებები:",
"notifications.column_settings.push": "ფუშ შეტყობინებები",
"notifications.column_settings.push_meta": "ეს მოწყობილობა",
"notifications.column_settings.reblog": "ბუსტები:",
"notifications.column_settings.show": "გამოჩნდეს სვეტში",
"notifications.column_settings.sound": "ხმის დაკვრა",
"notifications.group": "{count} შეტყობინება",
"onboarding.done": "დასასრული",
"onboarding.next": "შემდეგი",
"onboarding.page_five.public_timelines": "ლოკალური თაიმლაინი {domain}-ზე საჯარო პოსტებს აჩვენებს ყველასგან. ფედერალური თაიმლაინი {domain}-ზე აჩვენებს საჯარო პოსტებს ყველასგან ვინც მიჰყვება. ეს საჯარო თაიმლაინებია, ახალი ადამიანების აღმოჩენის კარგი გზაა.",
"onboarding.page_four.home": "სახლის თაიმლაინი აჩვენებს პოსტებს ადამიანებისგან, რომლებსაც მიჰყვებით.",
"onboarding.page_four.notifications": "შეტყობინებების სვეტი აჩვენებს სხვის ურთიერთქმედებებს თქვენთან.",
"onboarding.page_one.federation": "მასტოდონი დამოუკიდებელი სერვერების ქსელია, რომლებიც ერთიანდებიან ერთი დიდი სოციალური ქსელის შექმნისთვის. ამ სერვერებს ჩვენ ვეძახით ინსტანციებს.",
"onboarding.page_one.full_handle": "თქვენი სრული სახელური",
"onboarding.page_one.handle_hint": "ეს არის ის რასაც ეტყოდით თქვენს მეგობრებს რომ მოძიონ.",
"onboarding.page_one.welcome": "კეთილი იყოს თქვენი მასტოდონში მობრძანება!",
"onboarding.page_six.admin": "თქვენი ინსტანციის ადმინისტრატორია {admin}.",
"onboarding.page_six.almost_done": "თითქმის დასრულდა...",
"onboarding.page_six.appetoot": "ბონ აპეტუტ!",
"onboarding.page_six.apps_available": "ხელმისაწვდომია {apps} აი-ოსისთვის, ანდროიდისთვის და სხვა პლატფორმებისთვის.",
"onboarding.page_six.github": "მასტოდონი უფასო ღია პროგრამაა. შეგიძლიათ დაარეპორტოთ შეცდომები, მოითხოვოთ ფუნქციები, შეუწყოთ ხელი კოდს {github}-ზე.",
"onboarding.page_six.guidelines": "საზოგადოების სახელმძღვანელო",
"onboarding.page_six.read_guidelines": "გთხოვთ გაეცნოთ {domain}-ს {guidelines}!",
"onboarding.page_six.various_app": "მობაილ აპები",
"onboarding.page_three.profile": "შეცვალეთ თქვენი პროფილი რომ შეცვალოთ ავატარი, ბიოგრაფია და დისპლეის სახელი. იქ, ასევე იხილავთ სხვა პრეფერენსიების.",
"onboarding.page_three.search": "გამოიყენეთ ძიება რომ იპოვნოთ ადამიანები და იხილოთ ჰეშტეგები, ისეთები როგორებიცაა {illustration} და {introductions}. რომ მოძებნოთ ადამიანი ვინც არაა ამ ინსტანციაზე, გამოიყენეთ სრული სახელური.",
"onboarding.page_two.compose": "პოსტები შექმენით კომპოზიციის სვეტიდან. შეგიძლიათ ატვირთოთ სურათები, შეცვალოთ კონფიდენციალურობა და ქვემოთ მოცემული პიქტოგრამით დაამატოთ კონტენტის გაფრთხილება.",
"onboarding.skip": "გამოტოვება",
"privacy.change": "სტატუსის კონფიდენციალურობის მითითება",
"privacy.direct.long": "დაიპოსტოს მხოლოდ დასახელებულ მომხმარებლებთან",
"privacy.direct.short": "პირდაპირი",
"privacy.private.long": "დაიპოსტოს მხოლოდ მიმდევრებთან",
"privacy.private.short": "მხოლოდ-მიმდევრებისთვის",
"privacy.public.long": "დაიპოსტოს საჯარო თაიმლაინებზე",
"privacy.public.short": "საჯარო",
"privacy.unlisted.long": "არ დაიპოსტოს საჯარო თაიმლაინებზე",
"privacy.unlisted.short": "ჩამოუთვლელი",
"regeneration_indicator.label": "იტვირთება…",
"regeneration_indicator.sublabel": "თქვენი სახლის ლენტა მზადდება!",
"relative_time.days": "{number}დღ",
"relative_time.hours": "{number}სთ",
"relative_time.just_now": "ახლა",
"relative_time.minutes": "{number}წთ",
"relative_time.seconds": "{number}წმ",
"reply_indicator.cancel": "უარყოფა",
"report.forward": "ფორვარდი {target}-ს",
"report.forward_hint": "ანგარიში სხვა სერვერიდანაა. გავაგზავნოთ რეპორტის ანონიმური ასლიც?",
"report.hint": "რეპორტი გაეგზავნება თქვენი ინსტანციის მოდერატორებს. ქვემოთ შეგიძლიათ დაამატოთ მიზეზი თუ რატომ არეპორტებთ ამ ანგარიშს:",
"report.placeholder": "დამატებითი კომენტარები",
"report.submit": "დასრულება",
"report.target": "არეპორტებთ {target}",
"search.placeholder": "ძებნა",
"search_popout.search_format": "დეტალური ძებნის ფორმა",
"search_popout.tips.full_text": "მარტივი ტექსტი აბრუნებს სტატუსებს რომლებიც შექმენით, აქციეთ ფავორიტად, დაბუსტეთ, ან რაშიც ასახელეთ, ასევე ემთხვევა მომხმარებლის სახელებს, დისპლეი სახელებს, და ჰეშტეგებს.",
"search_popout.tips.hashtag": "ჰეშტეგი",
"search_popout.tips.status": "სტატუსი",
"search_popout.tips.text": "მარტივი ტექსტი აბრუნებს დამთხვეულ დისპლეი სახელებს, მომხმარებლის სახელებს და ჰეშტეგებს",
"search_popout.tips.user": "მომხმარებელი",
"search_results.accounts": "ხალხი",
"search_results.hashtags": "ჰეშტეგები",
"search_results.statuses": "ტუტები",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "შიდა ხედი...",
"status.block": "დაბლოკე @{name}",
"status.cancel_reblog_private": "ბუსტის მოშორება",
"status.cannot_reblog": "ეს პოსტი ვერ დაიბუსტება",
"status.delete": "წაშლა",
"status.detailed_status": "Detailed conversation view",
"status.direct": "პირდაპირი წერილი @{name}-ს",
"status.embed": "ჩართვა",
"status.favourite": "ფავორიტი",
"status.filtered": "ფილტრირებული",
"status.load_more": "მეტის ჩატვირთვა",
"status.media_hidden": "მედია დამალულია",
"status.mention": "ასახელე @{name}",
"status.more": "მეტი",
"status.mute": "გააჩუმე @{name}",
"status.mute_conversation": "გააჩუმე საუბარი",
"status.open": "ამ სტატუსის გაფართოება",
"status.pin": "აპინე პროფილზე",
"status.pinned": "აპინული ტუტი",
"status.reblog": "ბუსტი",
"status.reblog_private": "დაიბუსტოს საწყის აუდიტორიაზე",
"status.reblogged_by": "{name} დაიბუსტა",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "გაუქმდეს და გადანაწილდეს",
"status.reply": "პასუხი",
"status.replyAll": "უპასუხე თემას",
"status.report": "დაარეპორტე @{name}",
"status.sensitive_toggle": "დააწკაპუნეთ სანახავად",
"status.sensitive_warning": "მგრძნობიარე კონტენტი",
"status.share": "გაზიარება",
"status.show_less": "აჩვენე ნაკლები",
"status.show_less_all": "აჩვენე ნაკლები ყველაზე",
"status.show_more": "აჩვენე მეტი",
"status.show_more_all": "აჩვენე მეტი ყველაზე",
"status.unmute_conversation": "საუბარზე გაჩუმების მოშორება",
"status.unpin": "პროფილიდან პინის მოშორება",
"tabs_bar.federated_timeline": "ფედერალური",
"tabs_bar.home": "სახლი",
"tabs_bar.local_timeline": "ლოკალური",
"tabs_bar.notifications": "შეტყობინებები",
"tabs_bar.search": "ძებნა",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} საუბრობს",
"ui.beforeunload": "თქვენი დრაფტი გაუქმდება თუ დატოვებთ მასტოდონს.",
"upload_area.title": "გადმოწიეთ და ჩააგდეთ ასატვირთათ",
"upload_button.label": "მედიის დამატება",
"upload_form.description": "აღწერილობა ვიზუალურად უფასურისთვის",
"upload_form.focus": "კროპი",
"upload_form.undo": "გაუქმება",
"upload_progress.label": "იტვირთება...",
"video.close": "ვიდეოს დახურვა",
"video.exit_fullscreen": "სრულ ეკრანზე ჩვენების გათიშვა",
"video.expand": "ვიდეოს გაფართოება",
"video.fullscreen": "ჩვენება სრულ ეკრანზე",
"video.hide": "ვიდეოს დამალვა",
"video.mute": "ხმის გაჩუმება",
"video.pause": "პაუზა",
"video.play": "დაკვრა",
"video.unmute": "ხმის გაჩუმების მოშორება"
}

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "여기 있는 정보는 유저의 프로파일을 정확히 반영하지 못 할 수도 있습니다.",
"account.domain_blocked": "도메인 숨겨짐",
"account.edit_profile": "프로필 편집",
"account.endorse": "프로필에 나타내기",
"account.follow": "팔로우",
"account.followers": "팔로워",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "팔로우",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "날 팔로우합니다",
"account.hide_reblogs": "@{name}의 부스트를 숨기기",
"account.media": "미디어",
@ -26,6 +29,7 @@
"account.show_reblogs": "@{name}의 부스트 보기",
"account.unblock": "차단 해제",
"account.unblock_domain": "{domain} 숨김 해제",
"account.unendorse": "프로필에 나타내지 않기",
"account.unfollow": "팔로우 해제",
"account.unmute": "뮤트 해제",
"account.unmute_notifications": "@{name}의 알림 뮤트 해제",
@ -104,12 +108,19 @@
"emoji_button.search_results": "검색 결과",
"emoji_button.symbols": "기호",
"emoji_button.travel": "여행과 장소",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
"empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.",
"empty_column.home": "아직 아무도 팔로우 하고 있지 않습니다. {public}를 보러 가거나, 검색하여 다른 사용자를 찾아 보세요.",
"empty_column.home.public_timeline": "연합 타임라인",
"empty_column.list": "리스트에 아직 아무 것도 없습니다.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요.",
"empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 인스턴스의 유저를 팔로우 해서 채워보세요",
"follow_request.authorize": "허가",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "핫키",
"keyboard_shortcuts.legend": "이 도움말 표시",
"keyboard_shortcuts.mention": "멘션",
"keyboard_shortcuts.profile": "프로필 열기",
"keyboard_shortcuts.reply": "답장",
"keyboard_shortcuts.search": "검색창에 포커스",
"keyboard_shortcuts.toggle_hidden": "CW로 가려진 텍스트를 표시/비표시",
@ -159,14 +171,16 @@
"missing_indicator.label": "찾을 수 없습니다",
"missing_indicator.sublabel": "이 리소스를 찾을 수 없었습니다",
"mute_modal.hide_notifications": "이 사용자로부터의 알림을 뮤트하시겠습니까?",
"navigation_bar.apps": "모바일 앱",
"navigation_bar.blocks": "차단한 사용자",
"navigation_bar.community_timeline": "로컬 타임라인",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "다이렉트 메시지",
"navigation_bar.discover": "발견하기",
"navigation_bar.domain_blocks": "숨겨진 도메인",
"navigation_bar.edit_profile": "프로필 편집",
"navigation_bar.favourites": "즐겨찾기",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "뮤트",
"navigation_bar.follow_requests": "팔로우 요청",
"navigation_bar.info": "이 인스턴스에 대해서",
"navigation_bar.keyboard_shortcuts": "단축키",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "부스트 취소",
"status.cannot_reblog": "이 포스트는 부스트 할 수 없습니다",
"status.delete": "삭제",
"status.detailed_status": "Detailed conversation view",
"status.direct": "@{name}에게 다이렉트 메시지",
"status.embed": "공유하기",
"status.favourite": "즐겨찾기",
@ -270,6 +285,7 @@
"status.reblog": "부스트",
"status.reblog_private": "원래의 수신자들에게 부스트",
"status.reblogged_by": "{name}님이 부스트 했습니다",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "지우고 다시 쓰기",
"status.reply": "답장",
"status.replyAll": "전원에게 답장",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "De informatie hieronder kan mogelijk een incompleet beeld geven van dit gebruikersprofiel.",
"account.domain_blocked": "Domein verborgen",
"account.edit_profile": "Profiel bewerken",
"account.endorse": "Op profiel weergeven",
"account.follow": "Volgen",
"account.followers": "Volgers",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Volgt",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Volgt jou",
"account.hide_reblogs": "Verberg boosts van @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Toon boosts van @{name}",
"account.unblock": "Deblokkeer @{name}",
"account.unblock_domain": "{domain} niet langer negeren",
"account.unendorse": "Niet op profiel weergeven",
"account.unfollow": "Ontvolgen",
"account.unmute": "@{name} niet langer negeren",
"account.unmute_notifications": "@{name} meldingen niet langer negeren",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Zoekresultaten",
"emoji_button.symbols": "Symbolen",
"emoji_button.travel": "Reizen en plekken",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
"empty_column.direct": "Je hebt nog geen directe berichten. Wanneer je er een verzend of ontvangt, zijn deze hier te zien.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"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.public_timeline": "de globale tijdlijn",
"empty_column.list": "Er is nog niks in deze lijst. Wanneer lijstleden nieuwe toots publiceren, zijn deze hier te zien.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Je hebt nog geen meldingen. Begin met iemand een gesprek.",
"empty_column.public": "Er is hier helemaal niks! Toot iets in het openbaar of volg mensen van andere servers om het te vullen",
"follow_request.authorize": "Goedkeuren",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Sneltoets",
"keyboard_shortcuts.legend": "om deze legenda te tonen",
"keyboard_shortcuts.mention": "om de auteur te vermelden",
"keyboard_shortcuts.profile": "om het gebruikersprofiel te openen",
"keyboard_shortcuts.reply": "om te reageren",
"keyboard_shortcuts.search": "om het zoekvak te focussen",
"keyboard_shortcuts.toggle_hidden": "om tekst achter een waarschuwing (CW) te tonen/verbergen",
@ -159,14 +171,16 @@
"missing_indicator.label": "Niet gevonden",
"missing_indicator.sublabel": "Deze hulpbron kan niet gevonden worden",
"mute_modal.hide_notifications": "Verberg meldingen van deze persoon?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Geblokkeerde gebruikers",
"navigation_bar.community_timeline": "Lokale tijdlijn",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Directe berichten",
"navigation_bar.discover": "Ontdekken",
"navigation_bar.domain_blocks": "Verborgen domeinen",
"navigation_bar.edit_profile": "Profiel bewerken",
"navigation_bar.favourites": "Favorieten",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Genegeerde woorden",
"navigation_bar.follow_requests": "Volgverzoeken",
"navigation_bar.info": "Over deze server",
"navigation_bar.keyboard_shortcuts": "Sneltoetsen",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Niet langer boosten",
"status.cannot_reblog": "Deze toot kan niet geboost worden",
"status.delete": "Verwijderen",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Directe toot @{name}",
"status.embed": "Embed",
"status.favourite": "Favoriet",
@ -270,6 +285,7 @@
"status.reblog": "Boost",
"status.reblog_private": "Boost naar oorspronkelijke ontvangers",
"status.reblogged_by": "{name} boostte",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Verwijderen en herschrijven",
"status.reply": "Reageren",
"status.replyAll": "Reageer op iedereen",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Informasjonen nedenfor kan gi et ufullstendig bilde av brukerens profil.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Rediger profil",
"account.endorse": "Feature on profile",
"account.follow": "Følg",
"account.followers": "Følgere",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Følger",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Følger deg",
"account.hide_reblogs": "Skjul fremhevinger fra @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Vis boosts fra @{name}",
"account.unblock": "Avblokker @{name}",
"account.unblock_domain": "Vis {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Avfølg",
"account.unmute": "Avdemp @{name}",
"account.unmute_notifications": "Vis varsler fra @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Søkeresultat",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Reise & steder",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Det er ingenting i denne hashtagen ennå.",
"empty_column.home": "Du har ikke fulgt noen ennå. Besøk {publlic} eller bruk søk for å komme i gang og møte andre brukere.",
"empty_column.home.public_timeline": "en offentlig tidslinje",
"empty_column.list": "Det er ingenting i denne listen ennå. Når medlemmene av denne listen legger ut nye statuser vil de dukke opp her.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Du har ingen varsler ennå. Kommuniser med andre for å begynne samtalen.",
"empty_column.public": "Det er ingenting her! Skriv noe offentlig, eller følg brukere manuelt fra andre instanser for å fylle den opp",
"follow_request.authorize": "Autorisér",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Lyntast",
"keyboard_shortcuts.legend": "å vise denne forklaringen",
"keyboard_shortcuts.mention": "å nevne forfatter",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "for å svare",
"keyboard_shortcuts.search": "å fokusere søk",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Ikke funnet",
"missing_indicator.sublabel": "Denne ressursen ble ikke funnet",
"mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blokkerte brukere",
"navigation_bar.community_timeline": "Lokal tidslinje",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Denne posten kan ikke fremheves",
"status.delete": "Slett",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Bygge inn",
"status.favourite": "Lik",
@ -270,6 +285,7 @@
"status.reblog": "Fremhev",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "Fremhevd av {name}",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Svar",
"status.replyAll": "Svar til samtale",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "Aquelas informacions de perfil pòdon èsser incomplètas.",
"account.domain_blocked": "Domeni amagat",
"account.edit_profile": "Modificar lo perfil",
"account.endorse": "Mostrar pel perfil",
"account.follow": "Sègre",
"account.followers": "Seguidors",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Abonaments",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Vos sèc",
"account.hide_reblogs": "Rescondre los partatges de @{name}",
"account.media": "Mèdias",
@ -26,6 +29,7 @@
"account.show_reblogs": "Mostrar los partatges de @{name}",
"account.unblock": "Desblocar @{name}",
"account.unblock_domain": "Desblocar {domain}",
"account.unendorse": "Mostrar pas pel perfil",
"account.unfollow": "Quitar de sègre",
"account.unmute": "Quitar de rescondre @{name}",
"account.unmute_notifications": "Mostrar las notificacions de @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Resultats de recèrca",
"emoji_button.symbols": "Simbòls",
"emoji_button.travel": "Viatges & lòcs",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir!",
"empty_column.direct": "Avètz pas encara cap de messatges. Quand ne mandatz un o que ne recebètz un, serà mostrat aquí.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "I a pas encara de contengut ligat a aquesta etiqueta.",
"empty_column.home": "Vòstre flux dacuèlh es void. Visitatz {public} o utilizatz la recèrca per vos connectar a dautras personas.",
"empty_column.home.public_timeline": "lo flux public",
"empty_column.list": "I a pas res dins la lista pel moment. Quand de membres daquesta lista publiquen de novèls estatuts los veiretz aquí.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Avètz pas encara de notificacions. Respondètz a qualquun per començar una conversacion.",
"empty_column.public": "I a pas res aquí! Escrivètz quicòm de public, o seguètz de personas dautras instàncias per garnir lo flux public",
"follow_request.authorize": "Acceptar",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Acorchis",
"keyboard_shortcuts.legend": "mostrar aquesta legenda",
"keyboard_shortcuts.mention": "mencionar lautor",
"keyboard_shortcuts.profile": "per dobrir lo perfil de lautor",
"keyboard_shortcuts.reply": "respondre",
"keyboard_shortcuts.search": "anar a la recèrca",
"keyboard_shortcuts.toggle_hidden": "mostrar/amagar lo tèxte dels avertiments",
@ -159,14 +171,16 @@
"missing_indicator.label": "Pas trobat",
"missing_indicator.sublabel": "Aquesta ressorsa es pas estada trobada",
"mute_modal.hide_notifications": "Rescondre las notificacions daquesta persona?",
"navigation_bar.apps": "Aplicacions mobil",
"navigation_bar.blocks": "Personas blocadas",
"navigation_bar.community_timeline": "Flux public local",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Messatges dirèctes",
"navigation_bar.discover": "Trobar",
"navigation_bar.domain_blocks": "Domenis resconduts",
"navigation_bar.edit_profile": "Modificar lo perfil",
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Mots ignorats",
"navigation_bar.follow_requests": "Demandas dabonament",
"navigation_bar.info": "Mai informacions",
"navigation_bar.keyboard_shortcuts": "Acorchis clavièr",
@ -243,7 +257,7 @@
"search_popout.tips.full_text": "Un tèxte simple que tòrna los estatuts quavètz escriches, mes en favorits, partejats, o ont sètz mencionat, e tanben los noms dutilizaires, escais-noms e etiquetas que correspondonas.",
"search_popout.tips.hashtag": "etiqueta",
"search_popout.tips.status": "estatut",
"search_popout.tips.text": "Lo tèxt brut tòrna escais, noms dutilizaire e etiquetas correspondents",
"search_popout.tips.text": "Lo tèxte brut tòrna escais, noms dutilizaire e etiquetas correspondents",
"search_popout.tips.user": "utilizaire",
"search_results.accounts": "Gents",
"search_results.hashtags": "Etiquetas",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Quitar de partejar",
"status.cannot_reblog": "Aqueste estatut pòt pas èsser partejat",
"status.delete": "Escafar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Messatge per @{name}",
"status.embed": "Embarcar",
"status.favourite": "Apondre als favorits",
@ -270,6 +285,7 @@
"status.reblog": "Partejar",
"status.reblog_private": "Partejar a laudiéncia dorigina",
"status.reblogged_by": "{name} a partejat",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Escafar e tornar formular",
"status.reply": "Respondre",
"status.replyAll": "Respondre a la conversacion",

View file

@ -2,19 +2,22 @@
"account.badges.bot": "Bot",
"account.block": "Blokuj @{name}",
"account.block_domain": "Blokuj wszystko z {domain}",
"account.blocked": "Zablokowany",
"account.blocked": "Zablokowany(-a)",
"account.direct": "Wyślij wiadomość bezpośrednią do @{name}",
"account.disclaimer_full": "Poniższe informacje mogą nie odwzorowywać bezbłędnie profilu użytkownika.",
"account.domain_blocked": "Ukryto domenę",
"account.edit_profile": "Edytuj profil",
"account.endorse": "Polecaj na profilu",
"account.follow": "Śledź",
"account.followers": "Śledzący",
"account.followers.empty": "Nikt jeszcze nie śledzi tego użytkownika.",
"account.follows": "Śledzeni",
"account.follows.empty": "Ten użytkownik nie śledzi jeszcze nikogo.",
"account.follows_you": "Śledzi Cię",
"account.hide_reblogs": "Ukryj podbicia od @{name}",
"account.media": "Zawartość multimedialna",
"account.mention": "Wspomnij o @{name}",
"account.moved_to": "{name} przeniósł się do:",
"account.moved_to": "{name} przeniósł(-osła) się do:",
"account.mute": "Wycisz @{name}",
"account.mute_notifications": "Wycisz powiadomienia o @{name}",
"account.muted": "Wyciszony",
@ -26,6 +29,7 @@
"account.show_reblogs": "Pokazuj podbicia od @{name}",
"account.unblock": "Odblokuj @{name}",
"account.unblock_domain": "Odblokuj domenę {domain}",
"account.unendorse": "Przestań polecać",
"account.unfollow": "Przestań śledzić",
"account.unmute": "Cofnij wyciszenie @{name}",
"account.unmute_notifications": "Cofnij wyciszenie powiadomień od @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Wyniki wyszukiwania",
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Podróże i miejsca",
"empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.",
"empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!",
"empty_column.direct": "Nie masz żadnych wiadomości bezpośrednich. Kiedy dostaniesz lub wyślesz jakąś, pojawi się ona tutaj.",
"empty_column.hashtag": "Nie ma wpisów oznaczonych tym hashtagiem. Możesz napisać pierwszy!",
"empty_column.domain_blocks": "Brak ukrytych domen.",
"empty_column.favourited_statuses": "Nie dodałeś(-aś) żadnego wpisu do ulubionych. Kiedy to zrobisz, pojawi się on tutaj.",
"empty_column.favourites": "Nikt nie dodał tego wpisu do ulubionych. Gdy ktoś to zrobi, pojawi się tutaj.",
"empty_column.follow_requests": "Nie masz żadnych próśb o możliwość śledzenia. Kiedy ktoś utworzy ją, pojawi się tutaj.",
"empty_column.hashtag": "Nie ma wpisów oznaczonych tym hashtagiem. Możesz napisać pierwszy(-a)!",
"empty_column.home": "Nie śledzisz nikogo. Odwiedź globalną oś czasu lub użyj wyszukiwarki, aby znaleźć interesujące Cię profile.",
"empty_column.home.public_timeline": "globalna oś czasu",
"empty_column.list": "Nie ma nic na tej liście. Kiedy członkowie listy dodadzą nowe wpisy, pojawia się one tutaj.",
"empty_column.lists": "Nie masz żadnych list. Kiedy utworzysz jedną, pojawi się tutaj.",
"empty_column.mutes": "Nie wyciszyłeś(-aś) jeszcze żadnego użytkownika.",
"empty_column.notifications": "Nie masz żadnych powiadomień. Rozpocznij interakcje z innymi użytkownikami.",
"empty_column.public": "Tu nic nie ma! Napisz coś publicznie, lub dodaj ludzi z innych instancji, aby to wyświetlić",
"follow_request.authorize": "Autoryzuj",
@ -126,19 +137,32 @@
"home.column_settings.show_reblogs": "Pokazuj podbicia",
"home.column_settings.show_replies": "Pokazuj odpowiedzi",
"keyboard_shortcuts.back": "aby cofnąć się",
"keyboard_shortcuts.blocked": "aby przejść do listy zablokowanych użytkowników",
"keyboard_shortcuts.boost": "aby podbić wpis",
"keyboard_shortcuts.column": "aby przejść do wpisu z jednej z kolumn",
"keyboard_shortcuts.compose": "aby przejść do pola tworzenia wpisu",
"keyboard_shortcuts.description": "Opis",
"keyboard_shortcuts.direct": "aby otworzyć kolumnę wiadomości bezpośrednich",
"keyboard_shortcuts.down": "aby przejść na dół listy",
"keyboard_shortcuts.enter": "aby otworzyć wpis",
"keyboard_shortcuts.favourite": "aby dodać do ulubionych",
"keyboard_shortcuts.favourites": "aby przejść do listy ulubionych wpisów",
"keyboard_shortcuts.federated": "aby otworzyć oś czasu federacji",
"keyboard_shortcuts.heading": "Skróty klawiszowe",
"keyboard_shortcuts.home": "aby otworzyć stronę główną",
"keyboard_shortcuts.hotkey": "Klawisz",
"keyboard_shortcuts.legend": "aby wyświetlić tą legendę",
"keyboard_shortcuts.legend": "aby wyświetlić tę legendę",
"keyboard_shortcuts.local": "aby otworzyć lokalną oś czasu",
"keyboard_shortcuts.mention": "aby wspomnieć o autorze",
"keyboard_shortcuts.muted": "aby przejść do listy wyciszonych użytkowników",
"keyboard_shortcuts.my_profile": "aby otworzyć własny profil",
"keyboard_shortcuts.notifications": "aby otworzyć kolumnę powiadomień",
"keyboard_shortcuts.pinned": "aby przejść do listy przypiętych wpisów",
"keyboard_shortcuts.profile": "aby przejść do profilu autora wpisu",
"keyboard_shortcuts.reply": "aby odpowiedzieć",
"keyboard_shortcuts.requests": "aby przejść do listy próśb o możliwość śledzenia",
"keyboard_shortcuts.search": "aby przejść do pola wyszukiwania",
"keyboard_shortcuts.start": "aby otworzyć kolumnę „Rozpocznij”",
"keyboard_shortcuts.toggle_hidden": "aby wyświetlić lub ukryć wpis spod CW",
"keyboard_shortcuts.toot": "aby utworzyć nowy wpis",
"keyboard_shortcuts.unfocus": "aby opuścić pole wyszukiwania/pisania",
@ -159,14 +183,16 @@
"missing_indicator.label": "Nie znaleziono",
"missing_indicator.sublabel": "Nie można odnaleźć tego zasobu",
"mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?",
"navigation_bar.apps": "Aplikacje mobilne",
"navigation_bar.blocks": "Zablokowani użytkownicy",
"navigation_bar.community_timeline": "Lokalna oś czasu",
"navigation_bar.compose": "Utwórz nowy wpis",
"navigation_bar.direct": "Wiadomości bezpośrednie",
"navigation_bar.discover": "Odkrywaj",
"navigation_bar.domain_blocks": "Ukryte domeny",
"navigation_bar.edit_profile": "Edytuj profil",
"navigation_bar.favourites": "Ulubione",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Wyciszone słowa",
"navigation_bar.follow_requests": "Prośby o śledzenie",
"navigation_bar.info": "Szczegółowe informacje",
"navigation_bar.keyboard_shortcuts": "Skróty klawiszowe",
@ -178,10 +204,10 @@
"navigation_bar.preferences": "Preferencje",
"navigation_bar.public_timeline": "Globalna oś czasu",
"navigation_bar.security": "Bezpieczeństwo",
"notification.favourite": "{name} dodał Twój wpis do ulubionych",
"notification.follow": "{name} zaczął Cię śledzić",
"notification.mention": "{name} wspomniał o tobie",
"notification.reblog": "{name} podbił Twój wpis",
"notification.favourite": "{name} dodał(a) Twój wpis do ulubionych",
"notification.follow": "{name} zaczął(-ęła) Cię śledzić",
"notification.mention": "{name} wspomniał(a) o tobie",
"notification.reblog": "{name} podbił(a) Twój wpis",
"notifications.clear": "Wyczyść powiadomienia",
"notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?",
"notifications.column_settings.alert": "Powiadomienia na pulpicie",
@ -234,13 +260,13 @@
"reply_indicator.cancel": "Anuluj",
"report.forward": "Przekaż na {target}",
"report.forward_hint": "To konto znajduje się na innej instancji. Czy chcesz wysłać anonimową kopię zgłoszenia rnież na nią?",
"report.hint": "Zgłoszenie zostanie wysłane moderatorom Twojej instancji. Poniżej możesz też umieścić wyjaśnieni dlaczego zgłaszasz to konto:",
"report.hint": "Zgłoszenie zostanie wysłane moderatorom Twojej instancji. Poniżej możesz też umieścić wyjaśnienie dlaczego zgłaszasz to konto:",
"report.placeholder": "Dodatkowe komentarze",
"report.submit": "Wyślij",
"report.target": "Zgłaszanie {target}",
"search.placeholder": "Szukaj",
"search_popout.search_format": "Zaawansowane wyszukiwanie",
"search_popout.tips.full_text": "Pozwala na wyszukiwanie wpisów które napisałeś, dodałeś do ulubionych, podbiłeś w których o Tobie wspomniano, oraz pasujące nazwy użytkowników, pełne nazwy i hashtagi.",
"search_popout.tips.full_text": "Pozwala na wyszukiwanie wpisów które napisałeś(-aś), dodałeś(-aś) do ulubionych lub podbiłeś(-aś), w których o Tobie wspomniano, oraz pasujące nazwy użytkowników, pełne nazwy i hashtagi.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "wpis",
"search_popout.tips.text": "Proste wyszukiwanie pasujących pseudonimów, nazw użytkowników i hashtagów",
@ -254,10 +280,11 @@
"status.cancel_reblog_private": "Cofnij podbicie",
"status.cannot_reblog": "Ten wpis nie może zostać podbity",
"status.delete": "Usuń",
"status.detailed_status": "Szczegółowy widok konwersacji",
"status.direct": "Wyślij wiadomość bezpośrednią do @{name}",
"status.embed": "Osadź",
"status.favourite": "Dodaj do ulubionych",
"status.filtered": "Filtrowany",
"status.filtered": "Filtrowany(-a)",
"status.load_more": "Załaduj więcej",
"status.media_hidden": "Zawartość multimedialna ukryta",
"status.mention": "Wspomnij o @{name}",
@ -269,7 +296,8 @@
"status.pinned": "Przypięty wpis",
"status.reblog": "Podbij",
"status.reblog_private": "Podbij dla odbiorców oryginalnego wpisu",
"status.reblogged_by": "{name} podbił",
"status.reblogged_by": "{name} podbił(a)",
"status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.",
"status.redraft": "Usuń i przeredaguj",
"status.reply": "Odpowiedz",
"status.replyAll": "Odpowiedz na wątek",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "As informações abaixo podem refletir o perfil do usuário de maneira incompleta.",
"account.domain_blocked": "Domínio escondido",
"account.edit_profile": "Editar perfil",
"account.endorse": "Destacar no perfil",
"account.follow": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Segue",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Segue você",
"account.hide_reblogs": "Esconder compartilhamentos de @{name}",
"account.media": "Mídia",
@ -26,6 +29,7 @@
"account.show_reblogs": "Mostra compartilhamentos de @{name}",
"account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Desbloquear {domain}",
"account.unendorse": "Não destacar no perfil",
"account.unfollow": "Deixar de seguir",
"account.unmute": "Não silenciar @{name}",
"account.unmute_notifications": "Retirar silêncio das notificações vindas de @{name}",
@ -104,18 +108,25 @@
"emoji_button.search_results": "Resultados da busca",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens & Lugares",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "A timeline local está vazia. Escreva algo publicamente para começar!",
"empty_column.direct": "Você não tem nenhuma mensagem direta ainda. Quando você enviar ou receber uma, as mensagens aparecerão por aqui.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Ainda não há qualquer conteúdo com essa hashtag.",
"empty_column.home": "Você ainda não segue usuário algum. Visite a timeline {public} ou use o buscador para procurar e conhecer outros usuários.",
"empty_column.home.public_timeline": "global",
"empty_column.list": "Ainda não há nada nesta lista. Quando membros dessa lista fizerem novas postagens, elas aparecerão aqui.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Você ainda não possui notificações. Interaja com outros usuários para começar a conversar.",
"empty_column.public": "Não há nada aqui! Escreva algo publicamente ou siga manualmente usuários de outras instâncias",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
"getting_started.developers": "Desenvolvedores",
"getting_started.documentation": "Documentation",
"getting_started.documentation": "Documentação",
"getting_started.find_friends": "Encontre amizades do Twitter",
"getting_started.heading": "Primeiros passos",
"getting_started.invite": "Convide pessoas",
@ -129,14 +140,15 @@
"keyboard_shortcuts.boost": "para compartilhar",
"keyboard_shortcuts.column": "Focar um status em uma das colunas",
"keyboard_shortcuts.compose": "para focar a área de redação",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.description": "Descrição",
"keyboard_shortcuts.down": "para mover para baixo na lista",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.enter": "para expandir um status",
"keyboard_shortcuts.favourite": "para adicionar aos favoritos",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.heading": "Atalhos de teclado",
"keyboard_shortcuts.hotkey": "Atalho",
"keyboard_shortcuts.legend": "para mostrar essa legenda",
"keyboard_shortcuts.mention": "para mencionar o autor",
"keyboard_shortcuts.profile": "para abrir o perfil do autor",
"keyboard_shortcuts.reply": "para responder",
"keyboard_shortcuts.search": "para focar a pesquisa",
"keyboard_shortcuts.toggle_hidden": "mostrar/esconder o texto com aviso de conteúdo",
@ -159,14 +171,16 @@
"missing_indicator.label": "Não encontrado",
"missing_indicator.sublabel": "Esse recurso não pôde ser encontrado",
"mute_modal.hide_notifications": "Esconder notificações deste usuário?",
"navigation_bar.apps": "Apps",
"navigation_bar.blocks": "Usuários bloqueados",
"navigation_bar.community_timeline": "Local",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Mensagens diretas",
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Domínios escondidos",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Palavras silenciadas",
"navigation_bar.follow_requests": "Seguidores pendentes",
"navigation_bar.info": "Mais informações",
"navigation_bar.keyboard_shortcuts": "Atalhos de teclado",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Desfazer compartilhamento",
"status.cannot_reblog": "Esta postagem não pode ser compartilhada",
"status.delete": "Excluir",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Enviar mensagem direta a @{name}",
"status.embed": "Incorporar",
"status.favourite": "Adicionar aos favoritos",
@ -270,6 +285,7 @@
"status.reblog": "Compartilhar",
"status.reblog_private": "Compartilhar com a audiência original",
"status.reblogged_by": "{name} compartilhou",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Apagar & usar como rascunho",
"status.reply": "Responder",
"status.replyAll": "Responder à sequência",

View file

@ -7,9 +7,12 @@
"account.disclaimer_full": "As informações abaixo podem refletir o perfil do usuário de forma incompleta.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Editar perfil",
"account.endorse": "Feature on profile",
"account.follow": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "No one follows this user yet.",
"account.follows": "Segue",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "É teu seguidor",
"account.hide_reblogs": "Esconder partilhas de @{name}",
"account.media": "Media",
@ -26,6 +29,7 @@
"account.show_reblogs": "Mostrar partilhas de @{name}",
"account.unblock": "Não bloquear @{name}",
"account.unblock_domain": "Mostrar {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Deixar de seguir",
"account.unmute": "Não silenciar @{name}",
"account.unmute_notifications": "Deixar de silenciar @{name}",
@ -104,12 +108,19 @@
"emoji_button.search_results": "Resultados da pesquisa",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens & Lugares",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Ainda não existe conteúdo local para mostrar!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "Não foram encontradas publicações com essa hashtag.",
"empty_column.home": "Ainda não segues qualquer utilizador. Visita {public} ou utiliza a pesquisa para procurar outros utilizadores.",
"empty_column.home.public_timeline": "global",
"empty_column.list": "Ainda não existem publicações nesta lista. Quando membros desta lista fizerem novas publicações, elas aparecerão aqui.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.",
"empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para ver aqui os conteúdos públicos",
"follow_request.authorize": "Autorizar",
@ -137,6 +148,7 @@
"keyboard_shortcuts.hotkey": "Atalho",
"keyboard_shortcuts.legend": "para mostrar esta legenda",
"keyboard_shortcuts.mention": "para mencionar o autor",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "para responder",
"keyboard_shortcuts.search": "para focar na pesquisa",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
@ -159,8 +171,10 @@
"missing_indicator.label": "Não encontrado",
"missing_indicator.sublabel": "Este recurso não foi encontrado",
"mute_modal.hide_notifications": "Esconder notificações deste utilizador?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Utilizadores bloqueados",
"navigation_bar.community_timeline": "Local",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -254,6 +268,7 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Este post não pode ser partilhado",
"status.delete": "Eliminar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Incorporar",
"status.favourite": "Adicionar aos favoritos",
@ -270,6 +285,7 @@
"status.reblog": "Partilhar",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} partilhou",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Responder",
"status.replyAll": "Responder à conversa",

Some files were not shown because too many files have changed in this diff Show more