Merge pull request #1267 from ThibG/glitch-soc/merge-upstream

Merge upstream changes
This commit is contained in:
ThibG 2020-01-25 19:07:32 +01:00 committed by GitHub
commit 5bd752081f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
73 changed files with 1207 additions and 423 deletions

View File

@ -5,7 +5,6 @@ export const ANNOUNCEMENTS_FETCH_REQUEST = 'ANNOUNCEMENTS_FETCH_REQUEST';
export const ANNOUNCEMENTS_FETCH_SUCCESS = 'ANNOUNCEMENTS_FETCH_SUCCESS';
export const ANNOUNCEMENTS_FETCH_FAIL = 'ANNOUNCEMENTS_FETCH_FAIL';
export const ANNOUNCEMENTS_UPDATE = 'ANNOUNCEMENTS_UPDATE';
export const ANNOUNCEMENTS_DISMISS = 'ANNOUNCEMENTS_DISMISS';
export const ANNOUNCEMENTS_REACTION_ADD_REQUEST = 'ANNOUNCEMENTS_REACTION_ADD_REQUEST';
export const ANNOUNCEMENTS_REACTION_ADD_SUCCESS = 'ANNOUNCEMENTS_REACTION_ADD_SUCCESS';
@ -17,6 +16,8 @@ export const ANNOUNCEMENTS_REACTION_REMOVE_FAIL = 'ANNOUNCEMENTS_REACTION_REM
export const ANNOUNCEMENTS_REACTION_UPDATE = 'ANNOUNCEMENTS_REACTION_UPDATE';
export const ANNOUNCEMENTS_TOGGLE_SHOW = 'ANNOUNCEMENTS_TOGGLE_SHOW';
const noOp = () => {};
export const fetchAnnouncements = (done = noOp) => (dispatch, getState) => {
@ -54,15 +55,6 @@ export const updateAnnouncements = announcement => ({
announcement: normalizeAnnouncement(announcement),
});
export const dismissAnnouncement = announcementId => (dispatch, getState) => {
dispatch({
type: ANNOUNCEMENTS_DISMISS,
id: announcementId,
});
api(getState).post(`/api/v1/announcements/${announcementId}/dismiss`);
};
export const addReaction = (announcementId, name) => (dispatch, getState) => {
dispatch(addReactionRequest(announcementId, name));
@ -131,3 +123,9 @@ export const updateReaction = reaction => ({
type: ANNOUNCEMENTS_REACTION_UPDATE,
reaction,
});
export function toggleShowAnnouncements() {
return dispatch => {
dispatch({ type: ANNOUNCEMENTS_TOGGLE_SHOW });
};
}

View File

@ -277,19 +277,13 @@ class Announcement extends ImmutablePureComponent {
static propTypes = {
announcement: ImmutablePropTypes.map.isRequired,
emojiMap: ImmutablePropTypes.map.isRequired,
dismissAnnouncement: PropTypes.func.isRequired,
addReaction: PropTypes.func.isRequired,
removeReaction: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
};
handleDismissClick = () => {
const { dismissAnnouncement, announcement } = this.props;
dismissAnnouncement(announcement.get('id'));
}
render () {
const { announcement, intl } = this.props;
const { announcement } = this.props;
const startsAt = announcement.get('starts_at') && new Date(announcement.get('starts_at'));
const endsAt = announcement.get('ends_at') && new Date(announcement.get('ends_at'));
const now = new Date();
@ -314,8 +308,6 @@ class Announcement extends ImmutablePureComponent {
removeReaction={this.props.removeReaction}
emojiMap={this.props.emojiMap}
/>
<IconButton title={intl.formatMessage(messages.close)} icon='times' className='announcements__item__dismiss-icon' onClick={this.handleDismissClick} />
</div>
);
}
@ -328,8 +320,6 @@ class Announcements extends ImmutablePureComponent {
static propTypes = {
announcements: ImmutablePropTypes.list,
emojiMap: ImmutablePropTypes.map.isRequired,
fetchAnnouncements: PropTypes.func.isRequired,
dismissAnnouncement: PropTypes.func.isRequired,
addReaction: PropTypes.func.isRequired,
removeReaction: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
@ -339,11 +329,6 @@ class Announcements extends ImmutablePureComponent {
index: 0,
};
componentDidMount () {
const { fetchAnnouncements } = this.props;
fetchAnnouncements();
}
handleChangeIndex = index => {
this.setState({ index: index % this.props.announcements.size });
}
@ -369,13 +354,12 @@ class Announcements extends ImmutablePureComponent {
<img className='announcements__mastodon' alt='' draggable='false' src={mascot || elephantUIPlane} />
<div className='announcements__container'>
<ReactSwipeableViews index={index} onChangeIndex={this.handleChangeIndex}>
<ReactSwipeableViews animateHeight index={index} onChangeIndex={this.handleChangeIndex}>
{announcements.map(announcement => (
<Announcement
key={announcement.get('id')}
announcement={announcement}
emojiMap={this.props.emojiMap}
dismissAnnouncement={this.props.dismissAnnouncement}
addReaction={this.props.addReaction}
removeReaction={this.props.removeReaction}
intl={intl}

View File

@ -1,5 +1,5 @@
import { connect } from 'react-redux';
import { fetchAnnouncements, dismissAnnouncement, addReaction, removeReaction } from 'mastodon/actions/announcements';
import { addReaction, removeReaction } from 'flavours/glitch/actions/announcements';
import Announcements from '../components/announcements';
import { createSelector } from 'reselect';
import { Map as ImmutableMap } from 'immutable';
@ -12,8 +12,6 @@ const mapStateToProps = state => ({
});
const mapDispatchToProps = dispatch => ({
fetchAnnouncements: () => dispatch(fetchAnnouncements()),
dismissAnnouncement: id => dispatch(dismissAnnouncement(id)),
addReaction: (id, name) => dispatch(addReaction(id, name)),
removeReaction: (id, name) => dispatch(removeReaction(id, name)),
});

View File

@ -9,15 +9,23 @@ import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/col
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ColumnSettingsContainer from './containers/column_settings_container';
import { Link } from 'react-router-dom';
import { fetchAnnouncements, toggleShowAnnouncements } from 'flavours/glitch/actions/announcements';
import AnnouncementsContainer from 'flavours/glitch/features/getting_started/containers/announcements_container';
import classNames from 'classnames';
import IconWithBadge from 'flavours/glitch/components/icon_with_badge';
const messages = defineMessages({
title: { id: 'column.home', defaultMessage: 'Home' },
show_announcements: { id: 'home.show_announcements', defaultMessage: 'Show announcements' },
hide_announcements: { id: 'home.hide_announcements', defaultMessage: 'Hide announcements' },
});
const mapStateToProps = state => ({
hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,
isPartial: state.getIn(['timelines', 'home', 'isPartial']),
hasAnnouncements: !state.getIn(['announcements', 'items']).isEmpty(),
unreadAnnouncements: state.getIn(['announcements', 'unread']).size,
showAnnouncements: state.getIn(['announcements', 'show']),
});
export default @connect(mapStateToProps)
@ -31,6 +39,9 @@ class HomeTimeline extends React.PureComponent {
isPartial: PropTypes.bool,
columnId: PropTypes.string,
multiColumn: PropTypes.bool,
hasAnnouncements: PropTypes.bool,
unreadAnnouncements: PropTypes.number,
showAnnouncements: PropTypes.bool,
};
handlePin = () => {
@ -61,6 +72,7 @@ class HomeTimeline extends React.PureComponent {
}
componentDidMount () {
this.props.dispatch(fetchAnnouncements());
this._checkIfReloadNeeded(false, this.props.isPartial);
}
@ -93,10 +105,31 @@ class HomeTimeline extends React.PureComponent {
}
}
handleToggleAnnouncementsClick = (e) => {
e.stopPropagation();
this.props.dispatch(toggleShowAnnouncements());
}
render () {
const { intl, hasUnread, columnId, multiColumn } = this.props;
const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props;
const pinned = !!columnId;
let announcementsButton = null;
if (hasAnnouncements) {
announcementsButton = (
<button
className={classNames('column-header__button', { 'active': showAnnouncements })}
title={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}
aria-label={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}
aria-pressed={showAnnouncements ? 'true' : 'false'}
onClick={this.handleToggleAnnouncementsClick}
>
<IconWithBadge id='bullhorn' count={unreadAnnouncements} />
</button>
);
}
return (
<Column bindToDocument={!multiColumn} ref={this.setRef} name='home' label={intl.formatMessage(messages.title)}>
<ColumnHeader
@ -108,13 +141,14 @@ class HomeTimeline extends React.PureComponent {
onClick={this.handleHeaderClick}
pinned={pinned}
multiColumn={multiColumn}
extraButton={announcementsButton}
>
<ColumnSettingsContainer />
</ColumnHeader>
{hasAnnouncements && showAnnouncements && <AnnouncementsContainer />}
<StatusListContainer
prepend={<AnnouncementsContainer />}
alwaysPrepend
trackScroll={!pinned}
scrollKey={`home_timeline-${columnId}`}
onLoadMore={this.handleLoadMore}

View File

@ -3,18 +3,20 @@ import {
ANNOUNCEMENTS_FETCH_SUCCESS,
ANNOUNCEMENTS_FETCH_FAIL,
ANNOUNCEMENTS_UPDATE,
ANNOUNCEMENTS_DISMISS,
ANNOUNCEMENTS_REACTION_UPDATE,
ANNOUNCEMENTS_REACTION_ADD_REQUEST,
ANNOUNCEMENTS_REACTION_ADD_FAIL,
ANNOUNCEMENTS_REACTION_REMOVE_REQUEST,
ANNOUNCEMENTS_REACTION_REMOVE_FAIL,
ANNOUNCEMENTS_TOGGLE_SHOW,
} from '../actions/announcements';
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
import { Map as ImmutableMap, List as ImmutableList, Set as ImmutableSet, fromJS } from 'immutable';
const initialState = ImmutableMap({
items: ImmutableList(),
isLoading: false,
show: true,
unread: ImmutableSet(),
});
const updateReaction = (state, id, name, updater) => state.update('items', list => list.map(announcement => {
@ -43,21 +45,35 @@ const addReaction = (state, id, name) => updateReaction(state, id, name, x => x.
const removeReaction = (state, id, name) => updateReaction(state, id, name, x => x.set('me', false).update('count', y => y - 1));
const addUnread = (state, items) => {
if (state.get('show')) return state;
const newIds = ImmutableSet(items.map(x => x.get('id')));
const oldIds = ImmutableSet(state.get('items').map(x => x.get('id')));
return state.update('unread', unread => unread.union(newIds.subtract(oldIds)));
};
export default function announcementsReducer(state = initialState, action) {
switch(action.type) {
case ANNOUNCEMENTS_TOGGLE_SHOW:
return state.withMutations(map => {
if (!map.get('show')) map.set('unread', ImmutableSet());
map.set('show', !map.get('show'));
});
case ANNOUNCEMENTS_FETCH_REQUEST:
return state.set('isLoading', true);
case ANNOUNCEMENTS_FETCH_SUCCESS:
return state.withMutations(map => {
map.set('items', fromJS(action.announcements));
const items = fromJS(action.announcements);
map.set('unread', ImmutableSet());
addUnread(map, items);
map.set('items', items);
map.set('isLoading', false);
});
case ANNOUNCEMENTS_FETCH_FAIL:
return state.set('isLoading', false);
case ANNOUNCEMENTS_UPDATE:
return state.update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at')));
case ANNOUNCEMENTS_DISMISS:
return state.update('items', list => list.filterNot(announcement => announcement.get('id') === action.id));
return addUnread(state, [fromJS(action.announcement)]).update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at')));
case ANNOUNCEMENTS_REACTION_UPDATE:
return updateReactionCount(state, action.reaction);
case ANNOUNCEMENTS_REACTION_ADD_REQUEST:

View File

@ -37,7 +37,7 @@
}
.announcements {
background: lighten($ui-base-color, 4%);
background: lighten($ui-base-color, 8%);
border-top: 1px solid $ui-base-color;
font-size: 13px;
display: flex;
@ -78,12 +78,6 @@
font-weight: 500;
margin-bottom: 10px;
}
&__dismiss-icon {
position: absolute;
top: 12px;
right: 12px;
}
}
&__pagination {

View File

@ -5,7 +5,6 @@ export const ANNOUNCEMENTS_FETCH_REQUEST = 'ANNOUNCEMENTS_FETCH_REQUEST';
export const ANNOUNCEMENTS_FETCH_SUCCESS = 'ANNOUNCEMENTS_FETCH_SUCCESS';
export const ANNOUNCEMENTS_FETCH_FAIL = 'ANNOUNCEMENTS_FETCH_FAIL';
export const ANNOUNCEMENTS_UPDATE = 'ANNOUNCEMENTS_UPDATE';
export const ANNOUNCEMENTS_DISMISS = 'ANNOUNCEMENTS_DISMISS';
export const ANNOUNCEMENTS_REACTION_ADD_REQUEST = 'ANNOUNCEMENTS_REACTION_ADD_REQUEST';
export const ANNOUNCEMENTS_REACTION_ADD_SUCCESS = 'ANNOUNCEMENTS_REACTION_ADD_SUCCESS';
@ -17,6 +16,8 @@ export const ANNOUNCEMENTS_REACTION_REMOVE_FAIL = 'ANNOUNCEMENTS_REACTION_REM
export const ANNOUNCEMENTS_REACTION_UPDATE = 'ANNOUNCEMENTS_REACTION_UPDATE';
export const ANNOUNCEMENTS_TOGGLE_SHOW = 'ANNOUNCEMENTS_TOGGLE_SHOW';
const noOp = () => {};
export const fetchAnnouncements = (done = noOp) => (dispatch, getState) => {
@ -54,15 +55,6 @@ export const updateAnnouncements = announcement => ({
announcement: normalizeAnnouncement(announcement),
});
export const dismissAnnouncement = announcementId => (dispatch, getState) => {
dispatch({
type: ANNOUNCEMENTS_DISMISS,
id: announcementId,
});
api(getState).post(`/api/v1/announcements/${announcementId}/dismiss`);
};
export const addReaction = (announcementId, name) => (dispatch, getState) => {
dispatch(addReactionRequest(announcementId, name));
@ -131,3 +123,9 @@ export const updateReaction = reaction => ({
type: ANNOUNCEMENTS_REACTION_UPDATE,
reaction,
});
export function toggleShowAnnouncements() {
return dispatch => {
dispatch({ type: ANNOUNCEMENTS_TOGGLE_SHOW });
};
}

View File

@ -277,19 +277,13 @@ class Announcement extends ImmutablePureComponent {
static propTypes = {
announcement: ImmutablePropTypes.map.isRequired,
emojiMap: ImmutablePropTypes.map.isRequired,
dismissAnnouncement: PropTypes.func.isRequired,
addReaction: PropTypes.func.isRequired,
removeReaction: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
};
handleDismissClick = () => {
const { dismissAnnouncement, announcement } = this.props;
dismissAnnouncement(announcement.get('id'));
}
render () {
const { announcement, intl } = this.props;
const { announcement } = this.props;
const startsAt = announcement.get('starts_at') && new Date(announcement.get('starts_at'));
const endsAt = announcement.get('ends_at') && new Date(announcement.get('ends_at'));
const now = new Date();
@ -314,8 +308,6 @@ class Announcement extends ImmutablePureComponent {
removeReaction={this.props.removeReaction}
emojiMap={this.props.emojiMap}
/>
<IconButton title={intl.formatMessage(messages.close)} icon='times' className='announcements__item__dismiss-icon' onClick={this.handleDismissClick} />
</div>
);
}
@ -328,8 +320,6 @@ class Announcements extends ImmutablePureComponent {
static propTypes = {
announcements: ImmutablePropTypes.list,
emojiMap: ImmutablePropTypes.map.isRequired,
fetchAnnouncements: PropTypes.func.isRequired,
dismissAnnouncement: PropTypes.func.isRequired,
addReaction: PropTypes.func.isRequired,
removeReaction: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
@ -339,11 +329,6 @@ class Announcements extends ImmutablePureComponent {
index: 0,
};
componentDidMount () {
const { fetchAnnouncements } = this.props;
fetchAnnouncements();
}
handleChangeIndex = index => {
this.setState({ index: index % this.props.announcements.size });
}
@ -369,13 +354,12 @@ class Announcements extends ImmutablePureComponent {
<img className='announcements__mastodon' alt='' draggable='false' src={mascot || elephantUIPlane} />
<div className='announcements__container'>
<ReactSwipeableViews index={index} onChangeIndex={this.handleChangeIndex}>
<ReactSwipeableViews animateHeight index={index} onChangeIndex={this.handleChangeIndex}>
{announcements.map(announcement => (
<Announcement
key={announcement.get('id')}
announcement={announcement}
emojiMap={this.props.emojiMap}
dismissAnnouncement={this.props.dismissAnnouncement}
addReaction={this.props.addReaction}
removeReaction={this.props.removeReaction}
intl={intl}

View File

@ -1,5 +1,5 @@
import { connect } from 'react-redux';
import { fetchAnnouncements, dismissAnnouncement, addReaction, removeReaction } from 'mastodon/actions/announcements';
import { addReaction, removeReaction } from 'mastodon/actions/announcements';
import Announcements from '../components/announcements';
import { createSelector } from 'reselect';
import { Map as ImmutableMap } from 'immutable';
@ -12,8 +12,6 @@ const mapStateToProps = state => ({
});
const mapDispatchToProps = dispatch => ({
fetchAnnouncements: () => dispatch(fetchAnnouncements()),
dismissAnnouncement: id => dispatch(dismissAnnouncement(id)),
addReaction: (id, name) => dispatch(addReaction(id, name)),
removeReaction: (id, name) => dispatch(removeReaction(id, name)),
});

View File

@ -9,15 +9,23 @@ import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ColumnSettingsContainer from './containers/column_settings_container';
import { Link } from 'react-router-dom';
import { fetchAnnouncements, toggleShowAnnouncements } from 'mastodon/actions/announcements';
import AnnouncementsContainer from 'mastodon/features/getting_started/containers/announcements_container';
import classNames from 'classnames';
import IconWithBadge from 'mastodon/components/icon_with_badge';
const messages = defineMessages({
title: { id: 'column.home', defaultMessage: 'Home' },
show_announcements: { id: 'home.show_announcements', defaultMessage: 'Show announcements' },
hide_announcements: { id: 'home.hide_announcements', defaultMessage: 'Hide announcements' },
});
const mapStateToProps = state => ({
hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,
isPartial: state.getIn(['timelines', 'home', 'isPartial']),
hasAnnouncements: !state.getIn(['announcements', 'items']).isEmpty(),
unreadAnnouncements: state.getIn(['announcements', 'unread']).size,
showAnnouncements: state.getIn(['announcements', 'show']),
});
export default @connect(mapStateToProps)
@ -32,6 +40,9 @@ class HomeTimeline extends React.PureComponent {
isPartial: PropTypes.bool,
columnId: PropTypes.string,
multiColumn: PropTypes.bool,
hasAnnouncements: PropTypes.bool,
unreadAnnouncements: PropTypes.number,
showAnnouncements: PropTypes.bool,
};
handlePin = () => {
@ -62,6 +73,7 @@ class HomeTimeline extends React.PureComponent {
}
componentDidMount () {
this.props.dispatch(fetchAnnouncements());
this._checkIfReloadNeeded(false, this.props.isPartial);
}
@ -94,10 +106,31 @@ class HomeTimeline extends React.PureComponent {
}
}
handleToggleAnnouncementsClick = (e) => {
e.stopPropagation();
this.props.dispatch(toggleShowAnnouncements());
}
render () {
const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn } = this.props;
const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props;
const pinned = !!columnId;
let announcementsButton = null;
if (hasAnnouncements) {
announcementsButton = (
<button
className={classNames('column-header__button', { 'active': showAnnouncements })}
title={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}
aria-label={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}
aria-pressed={showAnnouncements ? 'true' : 'false'}
onClick={this.handleToggleAnnouncementsClick}
>
<IconWithBadge id='bullhorn' count={unreadAnnouncements} />
</button>
);
}
return (
<Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
@ -109,13 +142,14 @@ class HomeTimeline extends React.PureComponent {
onClick={this.handleHeaderClick}
pinned={pinned}
multiColumn={multiColumn}
extraButton={announcementsButton}
>
<ColumnSettingsContainer />
</ColumnHeader>
{hasAnnouncements && showAnnouncements && <AnnouncementsContainer />}
<StatusListContainer
prepend={<AnnouncementsContainer />}
alwaysPrepend
trackScroll={!pinned}
scrollKey={`home_timeline-${columnId}`}
onLoadMore={this.handleLoadMore}

View File

@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "Ouzhpenn pe lemel ag ar listennadoù",
"account.badges.bot": "Robot",
"account.badges.group": "Group",
"account.badges.group": "Strollad",
"account.block": "Stankañ @{name}",
"account.block_domain": "Kuzh kement tra a {domain}",
"account.blocked": "Stanket",
@ -35,17 +35,17 @@
"account.show_reblogs": "Diskouez toudoù a @{name}",
"account.unblock": "Distankañ @{name}",
"account.unblock_domain": "Diguzh {domain}",
"account.unendorse": "Don't feature on profile",
"account.unendorse": "Paouez da lakaat war-wel war ar profil",
"account.unfollow": "Diheuliañ",
"account.unmute": "Diguzhat @{name}",
"account.unmute_notifications": "Diguzhat kemennoù a @{name}",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
"alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.",
"alert.unexpected.title": "C'hem !",
"announcement.announcement": "Announcement",
"announcement.announcement": "Kemenn",
"autosuggest_hashtag.per_week": "{count} bep sizhun",
"boost_modal.combo": "You can press {combo} to skip this next time",
"boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Klask endro",
"bundle_column_error.title": "Fazi rouedad",
@ -53,12 +53,12 @@
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Klask endro",
"column.blocks": "Implijour·ezed·ion stanket",
"column.bookmarks": "Bookmarks",
"column.bookmarks": "Sinedoù",
"column.community": "Red-amzer lec'hel",
"column.direct": "Kemennadoù prevez",
"column.directory": "Mont a-dreuz ar profiloù",
"column.domain_blocks": "Domani kuzhet",
"column.favourites": "Favourites",
"column.favourites": "Ar re vuiañ-karet",
"column.follow_requests": "Pedadoù heuliañ",
"column.home": "Degemer",
"column.lists": "Listennoù",
@ -93,28 +93,28 @@
"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.unmarked": "N'eo ket kuzhet an destenn",
"compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Cancel",
"confirmation_modal.cancel": "Nullañ",
"confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.confirm": "Dilemel",
"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.delete_list.confirm": "Dilemel",
"confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?",
"confirmations.domain_block.confirm": "Kuzhat an domani a-bezh",
"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.logout.confirm": "Log out",
"confirmations.logout.confirm": "Digevreañ",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.confirm": "Kuzhat",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.mute.message": "Ha sur oc'h e fell deoc'h kuzhaat {name} ?",
"confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro",
"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.reply.confirm": "Reply",
"confirmations.reply.confirm": "Respont",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.confirm": "Diheuliañ",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",

View File

@ -8,8 +8,8 @@
"account.cancel_follow_request": "Anul·la la sol·licitud de seguiment",
"account.direct": "Missatge directe @{name}",
"account.domain_blocked": "Domini ocult",
"account.edit_profile": "Editar el perfil",
"account.endorse": "Recomanar en el teu perfil",
"account.edit_profile": "Edita el perfil",
"account.endorse": "Recomana en el teu perfil",
"account.follow": "Segueix",
"account.followers": "Seguidors",
"account.followers.empty": "Encara ningú no segueix aquest usuari.",
@ -29,13 +29,13 @@
"account.never_active": "Mai",
"account.posts": "Tuts",
"account.posts_with_replies": "Tuts i respostes",
"account.report": "Informe @{name}",
"account.report": "Informar sobre @{name}",
"account.requested": "Esperant aprovació. Clic per a cancel·lar la petició de seguiment",
"account.share": "Comparteix el perfil de @{name}",
"account.show_reblogs": "Mostra els impulsos de @{name}",
"account.unblock": "Desbloca @{name}",
"account.unblock": "Desbloqueja @{name}",
"account.unblock_domain": "Mostra {domain}",
"account.unendorse": "No es mostren al perfil",
"account.unendorse": "No recomanar en el perfil",
"account.unfollow": "Deixa de seguir",
"account.unmute": "Treure silenci de @{name}",
"account.unmute_notifications": "Activar notificacions de @{name}",
@ -43,9 +43,9 @@
"alert.rate_limited.title": "Límit de freqüència",
"alert.unexpected.message": "S'ha produït un error inesperat.",
"alert.unexpected.title": "Vaja!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Anunci",
"autosuggest_hashtag.per_week": "{count} per setmana",
"boost_modal.combo": "Pots premer {combo} per saltar-te això el proper cop",
"boost_modal.combo": "Pots prémer {combo} per saltar-te això el proper cop",
"bundle_column_error.body": "S'ha produït un error en carregar aquest component.",
"bundle_column_error.retry": "Torna-ho a provar",
"bundle_column_error.title": "Error de connexió",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Ghjettu limitatu",
"alert.unexpected.message": "Un prublemu inaspettatu hè accadutu.",
"alert.unexpected.title": "Uups!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Annunziu",
"autosuggest_hashtag.per_week": "{count} per settimana",
"boost_modal.combo": "Pudete appughjà nant'à {combo} per saltà quessa a prussima volta",
"bundle_column_error.body": "C'hè statu un prublemu caricandu st'elementu.",

View File

@ -2319,6 +2319,10 @@
"defaultMessage": "Bookmark",
"id": "status.bookmark"
},
{
"defaultMessage": "More",
"id": "status.more"
},
{
"defaultMessage": "Mute @{name}",
"id": "status.mute"

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Περιορισμός συχνότητας",
"alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.",
"alert.unexpected.title": "Εεπ!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Ανακοίνωση",
"autosuggest_hashtag.per_week": "{count} ανα εβδομάδα",
"boost_modal.combo": "Μπορείς να πατήσεις {combo} για να το προσπεράσεις αυτό την επόμενη φορά",
"bundle_column_error.body": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Tarifa limitada",
"alert.unexpected.message": "Ocurrió un error.",
"alert.unexpected.title": "¡Epa!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Anuncio",
"autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Podés hacer clic en {combo} para saltar esto la próxima vez",
"bundle_column_error.body": "Algo salió mal al cargar este componente.",

View File

@ -40,10 +40,10 @@
"account.unmute": "Dejar de silenciar a @{name}",
"account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
"alert.rate_limited.message": "Por favor reintente después de {retry_time, time, medium}.",
"alert.rate_limited.title": "Tasa limitada",
"alert.rate_limited.title": "Tarifa limitada",
"alert.unexpected.message": "Hubo un error inesperado.",
"alert.unexpected.title": "¡Ups!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Anuncio",
"autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
"bundle_column_error.body": "Algo salió mal al cargar este componente.",
@ -54,7 +54,7 @@
"bundle_modal_error.retry": "Inténtalo de nuevo",
"column.blocks": "Usuarios bloqueados",
"column.bookmarks": "Marcadores",
"column.community": "Cronología local",
"column.community": "Línea de tiempo local",
"column.direct": "Mensajes directos",
"column.directory": "Buscar perfiles",
"column.domain_blocks": "Dominios ocultados",
@ -65,7 +65,7 @@
"column.mutes": "Usuarios silenciados",
"column.notifications": "Notificaciones",
"column.pins": "Toots fijados",
"column.public": "Cronología federada",
"column.public": "Línea de tiempo federada",
"column_back_button.label": "Atrás",
"column_header.hide_settings": "Ocultar configuración",
"column_header.moveLeft_settings": "Mover columna a la izquierda",
@ -87,7 +87,7 @@
"compose_form.poll.remove_option": "Eliminar esta opción",
"compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones",
"compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción",
"compose_form.publish": "Ipotxa",
"compose_form.publish": "Tootear",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Marcar multimedia como sensible",
"compose_form.sensitive.marked": "Material marcado como sensible",
@ -104,7 +104,7 @@
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
"confirmations.domain_block.confirm": "Ocultar dominio entero",
"confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.\nNo podrás ver contenido de ese dominio en ninguna de las cronologías públicas o tus notificaciones. Tus seguidoras de ese dominio serán borradas.",
"confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
@ -143,23 +143,23 @@
"empty_column.account_timeline": "¡No hay toots aquí!",
"empty_column.account_unavailable": "Perfil no disponible",
"empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
"empty_column.bookmarked_statuses": "Aún no tienes ninguna barritada guardada como marcador. Cuando guardes una, se mostrará aquí.",
"empty_column.community": "La cronología local está vacía. ¡Escribe algo para empezar la fiesta!",
"empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.",
"empty_column.community": "La nea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
"empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
"empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
"empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.",
"empty_column.favourites": "Nadie ha marcado este toot como preferido. Cuando alguien lo haga, aparecerá aquí.",
"empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.",
"empty_column.hashtag": "No hay nada en esta etiqueta aún.",
"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 cronología pública",
"empty_column.home.public_timeline": "la 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": "No tienes ninguna lista. cuando crees una, se mostrará aquí.",
"empty_column.mutes": "Aún no has silenciado a ningún usuario.",
"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",
"error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.",
"error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodonte a través de otro navegador o aplicación nativa.",
"error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodon a través de otro navegador o aplicación nativa.",
"errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles",
"errors.unexpected_crash.report_issue": "Informar de un problema/error",
"follow_request.authorize": "Autorizar",
@ -169,18 +169,18 @@
"getting_started.documentation": "Documentación",
"getting_started.heading": "Primeros pasos",
"getting_started.invite": "Invitar usuarios",
"getting_started.open_source_notice": "Mastodonte es un Programa Libre y de Código Abierto - Plica/Foss -. Puedes contribuir o reportar errores en {github}.",
"getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.",
"getting_started.security": "Seguridad",
"getting_started.terms": "Términos de servicio",
"hashtag.column_header.tag_mode.all": "y {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "sin {additional}",
"hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias",
"hashtag.column_settings.select.placeholder": "Introduzca etiquetas…",
"hashtag.column_settings.tag_mode.all": "Todos estos",
"hashtag.column_settings.select.placeholder": "Introduzca hashtags…",
"hashtag.column_settings.tag_mode.all": "Cualquiera de estos",
"hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
"hashtag.column_settings.tag_mode.none": "Ninguno de estos",
"hashtag.column_settings.tag_toggle": "Incluya etiquetas adicionales para esta columna",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar retoots",
"home.column_settings.show_replies": "Mostrar respuestas",
@ -193,7 +193,7 @@
"introduction.federation.home.headline": "Inicio",
"introduction.federation.home.text": "Los posts de personas que sigues aparecerán en tu cronología. ¡Puedes seguir a cualquiera en cualquier servidor!",
"introduction.federation.local.headline": "Local",
"introduction.federation.local.text": "Los mensajes públicos de personas en el mismo servidor que aparecerán en la cronología local.",
"introduction.federation.local.text": "Los posts públicos de personas en el mismo servidor que aparecerán en la cronología local.",
"introduction.interactions.action": "¡Terminar tutorial!",
"introduction.interactions.favourite.headline": "Favorito",
"introduction.interactions.favourite.text": "Puedes guardar un toot para más tarde, y hacer saber al autor que te gustó, dándole a favorito.",
@ -215,12 +215,12 @@
"keyboard_shortcuts.enter": "abrir estado",
"keyboard_shortcuts.favourite": "añadir a favoritos",
"keyboard_shortcuts.favourites": "abrir la lista de favoritos",
"keyboard_shortcuts.federated": "abrir la cronología federada",
"keyboard_shortcuts.federated": "abrir el timeline federado",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.home": "abrir la cronología propia",
"keyboard_shortcuts.home": "abrir el timeline propio",
"keyboard_shortcuts.hotkey": "Tecla caliente",
"keyboard_shortcuts.legend": "para mostrar esta leyenda",
"keyboard_shortcuts.local": "abrir la cronología local",
"keyboard_shortcuts.local": "abrir el timeline local",
"keyboard_shortcuts.mention": "para mencionar al autor",
"keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados",
"keyboard_shortcuts.my_profile": "abrir tu perfil",
@ -259,7 +259,7 @@
"navigation_bar.apps": "Aplicaciones móviles",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
"navigation_bar.community_timeline": "Cronología local",
"navigation_bar.community_timeline": "Historia local",
"navigation_bar.compose": "Escribir un nuevo toot",
"navigation_bar.direct": "Mensajes directos",
"navigation_bar.discover": "Descubrir",
@ -277,7 +277,7 @@
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Toots fijados",
"navigation_bar.preferences": "Preferencias",
"navigation_bar.public_timeline": "Cronología federada",
"navigation_bar.public_timeline": "Historia federada",
"navigation_bar.security": "Seguridad",
"notification.favourite": "{name} marcó tu estado como favorito",
"notification.follow": "{name} te empezó a seguir",
@ -321,9 +321,9 @@
"privacy.direct.short": "Directo",
"privacy.private.long": "Sólo mostrar a seguidores",
"privacy.private.short": "Privado",
"privacy.public.long": "Mostrar en la cronología federada",
"privacy.public.long": "Mostrar en la historia federada",
"privacy.public.short": "Público",
"privacy.unlisted.long": "No mostrar en la cronología federada",
"privacy.unlisted.long": "No mostrar en la historia federada",
"privacy.unlisted.short": "No listado",
"refresh": "Actualizar",
"regeneration_indicator.label": "Cargando…",
@ -345,12 +345,12 @@
"search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
"search_popout.tips.hashtag": "etiqueta",
"search_popout.tips.status": "estado",
"search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, persona usuaria y etiqueta",
"search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag",
"search_popout.tips.user": "usuario",
"search_results.accounts": "Gente",
"search_results.hashtags": "Etiquetas",
"search_results.statuses": "Toots",
"search_results.statuses_fts_disabled": "Buscar bramidos por su contenido no está disponible en este servidor de Mastodonte.",
"search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
"status.admin_account": "Abrir interfaz de moderación para @{name}",
"status.admin_status": "Abrir este estado en la interfaz de moderación",
@ -396,7 +396,7 @@
"status.unpin": "Dejar de fijar",
"suggestions.dismiss": "Descartar sugerencia",
"suggestions.header": "Es posible que te interese…",
"tabs_bar.federated_timeline": "Federada",
"tabs_bar.federated_timeline": "Federado",
"tabs_bar.home": "Inicio",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificaciones",
@ -408,7 +408,7 @@
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando",
"trends.trending_now": "Tendencia ahora",
"ui.beforeunload": "Tu borrador se perderá si sales de Mastodonte.",
"ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
"upload_area.title": "Arrastra y suelta para subir",
"upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_error.limit": "Límite de subida de archivos excedido.",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Abiadura mugatua",
"alert.unexpected.message": "Ustekabeko errore bat gertatu da.",
"alert.unexpected.title": "Ene!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Iragarpena",
"autosuggest_hashtag.per_week": "{count} asteko",
"boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
"bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.",

View File

@ -1,48 +1,48 @@
{
"account.add_or_remove_from_list": "افزودن یا برداشتن از فهرست",
"account.add_or_remove_from_list": "افزودن یا برداشتن از فهرستها",
"account.badges.bot": "ربات",
"account.badges.group": "گروه",
"account.block": "مسدودسازی @{name}",
"account.block_domain": "پنهان‌سازی همه چیز از سرور {domain}",
"account.block_domain": "نهفتن همه چیز از {domain}",
"account.blocked": "مسدود",
"account.cancel_follow_request": "لغو درخواست پیگیری",
"account.direct": "پیام خصوصی به @{name}",
"account.domain_blocked": "دامنه نهفته",
"account.domain_blocked": "دامنهٔ نهفته",
"account.edit_profile": "ویرایش نمایه",
"account.endorse": "معرّفی در نمایه",
"account.follow": "پیگیری",
"account.follow": "پی بگیرید",
"account.followers": "پی‌گیران",
"account.followers.empty": "هنوز کسی پیگیر این کاربر نیست.",
"account.follows": "پی می‌گیرد",
"account.follows.empty": "این کاربر هنوز پیگیر کسی نیست.",
"account.follows_you": "پیگیرتان",
"account.hide_reblogs": "نهفتن تقویت‌های @{name}",
"account.follows_you": "پیگیر شماست",
"account.hide_reblogs": "نهفتن بازبوق‌های @{name}",
"account.last_status": "آخرین فعالیت",
"account.link_verified_on": "مالکیت این پیوند در {date} بررسی شد",
"account.locked_info": "این حساب خصوصی است. صاحبش تصمیم می‌گیرد که چه کسی بتواند پیگیرش باشد.",
"account.media": "رسانه",
"account.mention": "اشاره به @{name}",
"account.mention": "نام‌بردن از @{name}",
"account.moved_to": "{name} منتقل شده به:",
"account.mute": "خموشی @{name}",
"account.mute_notifications": "خموشی آگاهیها از @{name}",
"account.mute_notifications": "خموشی اعلانها از @{name}",
"account.muted": "خموش",
"account.never_active": "هرگز",
"account.posts": "بوقها",
"account.posts_with_replies": "بوقها و پاسخ‌ها",
"account.posts": "نوشتهها",
"account.posts_with_replies": "نوشتهها و پاسخ‌ها",
"account.report": "گزارش @{name}",
"account.requested": "منتظر پذیرش. کلیک برای لغو درخواست پی‌گیری",
"account.requested": "منتظر پذیرش. برای لغو درخواست پی‌گیری کلیک کنید",
"account.share": "هم‌رسانی نمایهٔ @{name}",
"account.show_reblogs": "نمایش تقویت‌های @{name}",
"account.show_reblogs": "نمایش بازبوق‌های @{name}",
"account.unblock": "رفع انسداد @{name}",
"account.unblock_domain": "رفع نهفتن {domain}",
"account.unendorse": "معرّفی نکردن در نمایه",
"account.unfollow": "ناپی‌گیری",
"account.unfollow": "پایان پیگیری",
"account.unmute": "رفع خموشی @{name}",
"account.unmute_notifications": "رفع خموشی آگاهیها از @{name}",
"account.unmute_notifications": "رفع خموشی اعلانها از @{name}",
"alert.rate_limited.message": "لطفاً پس از {retry_time, time, medium} دوباره بیازمایید.",
"alert.rate_limited.title": "محدود شده",
"alert.rate_limited.title": "محدودیت تعداد",
"alert.unexpected.message": "خطایی غیرمنتظره رخ داد.",
"alert.unexpected.title": "وای!",
"alert.unexpected.title": "ای وای!",
"announcement.announcement": "Announcement",
"autosuggest_hashtag.per_week": "{count} در هفته",
"boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
@ -50,37 +50,37 @@
"bundle_column_error.retry": "تلاش دوباره",
"bundle_column_error.title": "خطای شبکه",
"bundle_modal_error.close": "بستن",
"bundle_modal_error.message": "هنگام بار کردن این بخش خطایی رخ داد.",
"bundle_modal_error.message": "هنگام بازکردن این بخش خطایی رخ داد.",
"bundle_modal_error.retry": "تلاش دوباره",
"column.blocks": "کاربران مسدود",
"column.bookmarks": "نشانک‌ها",
"column.community": "خط زمانی محلّی",
"column.community": "نوشته‌های محلی",
"column.direct": "پیام‌های خصوصی",
"column.directory": "مرور نمایه‌ها",
"column.domain_blocks": "دامنه‌های نهفته",
"column.favourites": "برگزیده‌ها",
"column.favourites": "پسندیده‌ها",
"column.follow_requests": "درخواست‌های پیگیری",
"column.home": "خانه",
"column.lists": "فهرست‌ها",
"column.mutes": "کاربران خموش",
"column.notifications": "آگاهیها",
"column.pins": "بوق‌های سنجاق‌شده",
"column.public": "خط‌زمانی عمومی",
"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.pin": "ثابت‌کردن",
"column_header.show_settings": "نمایش تنظیمات",
"column_header.unpin": "برداشتن سنجاق",
"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.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.placeholder": "تازه چه خبر؟",
"compose_form.poll.add_option": "افزودن گزینه",
"compose_form.poll.duration": "مدت نظرسنجی",
"compose_form.poll.option_placeholder": "گزینهٔ {number}",
@ -89,81 +89,81 @@
"compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تک‌گزینه‌ای",
"compose_form.publish": "بوق",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "علامت‌گذاری رسانه به عنوان حساس",
"compose_form.sensitive.hide": "علامت‌گذاری به عنوان حساس",
"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.block_and_report": "انسداد و گزارش",
"confirmations.block.confirm": "انسداد",
"confirmation_modal.cancel": "بی‌خیال",
"confirmations.block.block_and_report": "مسدودسازی و گزارش",
"confirmations.block.confirm": "مسدود کن",
"confirmations.block.message": "مطمئنید که می‌خواهید {name} را مسدود کنید؟",
"confirmations.delete.confirm": "حذف",
"confirmations.delete.message": "مطمئنید می‌خواهید این وضعیت را حذف کنید؟",
"confirmations.delete_list.confirm": "حذف",
"confirmations.delete.confirm": "پاک کن",
"confirmations.delete.message": "آیا مطمئنید که می‌خواهید این بوق را پاک کنید؟",
"confirmations.delete_list.confirm": "پاک کن",
"confirmations.delete_list.message": "مطمئنید می‌خواهید این فهرست را برای همیشه پاک کنید؟",
"confirmations.domain_block.confirm": "نهفتن تمام دامنه",
"confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیش‌تر موارد انسداد یا خموش کردن چند حساب خاص کافی بوده و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در خط‌زمانی‌های عمومی یا آگاهی‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم برداشته خواهند شد.",
"confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدودسازی یا خموشیدن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم حذف خواهند شد.",
"confirmations.logout.confirm": "خروج",
"confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟",
"confirmations.mute.confirm": "خموشی",
"confirmations.mute.explanation": "این کار فرسته‌هایشان و فرسته‌هایی که به آنان اشاره می‌کند را پنهان می‌کند، ولی همچنان اجازه دارند فرسته‌هایتان را دیده و دنبالتان کنند.",
"confirmations.mute.message": "مطمئنید می‌خواهید {name} را خموش کنید؟",
"confirmations.redraft.confirm": "حذف و بازنویسی",
"confirmations.redraft.message": "مطمئنید می‌خواهید این وضعیت را حذف کرده و از نو بنویسید؟ با این کار تقویت‌ها و برگزیدن‌هایش از دست رفته و پاسخ‌ها به فرستهٔ اصلی یتیم می‌شوند.",
"confirmations.mute.explanation": "این کار فرسته‌های آن‌ها و فرسته‌هایی را که از آن‌ها نام برده پنهان می‌کند، ولی آن‌ها همچنان اجازه دارند فرسته‌های شما را ببینند و شما را پی بگیرند.",
"confirmations.mute.message": "مطمئنید می‌خواهید {name} را بخموشید؟",
"confirmations.redraft.confirm": "پاک‌کردن و بازنویسی",
"confirmations.redraft.message": "مطمئنید که می‌خواهید این بوق را پاک کنید و از نو بنویسید؟ با این کار بازبوق‌ها و پسندهای آن از دست می‌رود و پاسخ‌ها به آن بی‌مرجع می‌شود.",
"confirmations.reply.confirm": "پاسخ",
"confirmations.reply.message": "اگر الان پاسخ دهید، پیامی که در حال نوشتنش بودید پاک خواهد شد. می‌خواهید ادامه دهید؟",
"confirmations.unfollow.confirm": "ناپی‌گیری",
"confirmations.unfollow.message": "مطمئنید می‌خواهید پیگیری {name} را پایان دهید؟",
"conversation.delete": "حذف گفت‌وگو",
"confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. می‌خواهید ادامه دهید؟",
"confirmations.unfollow.confirm": "پایان پیگیری",
"confirmations.unfollow.message": "مطمئنید که می‌خواهید به پیگیری از {name} پایان دهید؟",
"conversation.delete": "حذف گفتگو",
"conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده",
"conversation.open": "دیدن گفت‌وگو",
"conversation.open": "دیدن گفتگو",
"conversation.with": "با {names}",
"directory.federated": "از کارسازهای شناخته‌شده",
"directory.local": "فقط از {domain}",
"directory.local": "تنها از {domain}",
"directory.new_arrivals": "تازه‌واردان",
"directory.recently_active": "کاربران فعال اخیر",
"embed.instructions": ا رونوشت از کد زیر، این وضعیت را روی پایگاهتان جاگذاری کنید.",
"embed.instructions": رای جاگذاری این بوق در سایت خودتان، کد زیر را کپی کنید.",
"embed.preview": "این گونه دیده خواهد شد:",
"emoji_button.activity": "فعالیت",
"emoji_button.custom": "سفارشی",
"emoji_button.flags": "پرچم‌ها",
"emoji_button.food": "غذا و نوشیدنی",
"emoji_button.label": "درج اموجی",
"emoji_button.label": "افزودن شکلک",
"emoji_button.nature": "طبیعت",
"emoji_button.not_found": "اموجی‌ای وجود ندارد!! (╯°□°)╯︵ ┻━┻‬",
"emoji_button.not_found": "این‌جا شکلکی نیست!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "اشیا",
"emoji_button.people": "مردم",
"emoji_button.recent": "پراستفاده",
"emoji_button.search": "جست‌وجو…",
"emoji_button.search_results": "نتایج جست‌وجو",
"emoji_button.search": "جستجو...",
"emoji_button.search_results": "نتایج جستجو",
"emoji_button.symbols": "نمادها",
"emoji_button.travel": "سفر و مکان",
"empty_column.account_timeline": "هیچ بوقی این‌جا نیست!",
"empty_column.account_unavailable": "نمایهٔ ناموجود",
"empty_column.blocks": "هنوز کسی را مسدود نکرده‌اید.",
"empty_column.bookmarked_statuses": "هنوز هیچ بوق نشان‌شده‌ای ندارید. وقتی بوقی را نشان‌کنید، این‌جا دیده خواهد شد.",
"empty_column.community": "خط‌زمانی محلّی خالی است. چیزی به صورت عمومی نوشته تا چرخش بچرخد!",
"empty_column.direct": "هنوز هیچ پیغام مستقیمی ندارید. هروقت چنین پیغامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.",
"empty_column.community": "فهرست نوشته‌های محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
"empty_column.direct": "هنوز هیچ پیام مستقیمی ندارید. هروقت چنین پیامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.",
"empty_column.domain_blocks": "هنوز هیچ دامنه‌ای پنهان نشده است.",
"empty_column.favourited_statuses": "هنوز هیچ بوق برگزیده‌ای ندارید. وقتی بوقی را برگزینید، این‌جا دیده خواهد شد.",
"empty_column.favourites": "هنوز کسی این بوق را برنگزیده. وقتی کسی این کار را بکند، این‌جا دیده خواهد شد.",
"empty_column.follow_requests": "هنوز هیچ درخواست پیگیری‌ای ندارید. وقتی چنین درخواستی بگیرید، این‌جا دیده خواهد شد.",
"empty_column.favourited_statuses": "شما هنوز هیچ بوقی را نپسندیده‌اید. وقتی بوقی را بپسندید، این‌جا نمایش خواهد یافت.",
"empty_column.favourites": "هنوز هیچ کسی این بوق را نپسندیده است. وقتی کسی آن را بپسندد، نامش این‌جا نمایش خواهد یافت.",
"empty_column.follow_requests": "شما هنوز هیچ درخواست پیگیری‌ای ندارید. وقتی چنین درخواستی بگیرید، این‌جا نمایش خواهد یافت.",
"empty_column.hashtag": "هنوز هیچ چیزی در این برچسب نیست.",
"empty_column.home": "خط‌زمانی خانگیتان خالیست! برای شروع و دیدن دیگر کاربران، از جست‌وجو استفاده کرده یا {public} را ببینید.",
"empty_column.home.public_timeline": "خط‌زمانی عمومی",
"empty_column.list": "هنوز چیزی در این فهرست وجود ندارد. هنگامی که اعضای این فهرست وضعیت جدیدی بفرستند، این‌جا ظاهر خواهد شد.",
"empty_column.home": "فهرست خانگی شما خالی است! {public} را ببینید یا چیزی را جستجو کنید تا کاربران دیگر را ببینید.",
"empty_column.home.public_timeline": "فهرست نوشته‌های همه‌جا",
"empty_column.list": "در این فهرست هنوز چیزی نیست. وقتی اعضای این فهرست چیزی بفرستند، این‌جا ظاهر خواهد شد.",
"empty_column.lists": "هنوز هیچ فهرستی ندارید. هنگامی که فهرستی بسازید، این‌جا دیده خواهد شد.",
"empty_column.mutes": "هنوز هیچ کاربری را خموش نکرده‌اید.",
"empty_column.notifications": "هنوز هیچ آگاهی‌ای ندارید. به دیگران واکنش نشان داده تا گفت‌وگو آغاز شود.",
"empty_column.public": "هیچ‌چیز این‌جا نیست! پرای پر کردنش چیزی به صورت عمومی نوشته یا کاربران دیگر کارسازها را پی بگیرید",
"error.unexpected_crash.explanation": "به خاطر مشکلی در کدمان یا یک ناسازگاری مرورگر، این صفحه نتوانست به درستی نمایش یابد.",
"error.unexpected_crash.next_steps": "تازه‌سازی صفحه را بیازمایید. اگر کمکی نکرد، شاید بتوانید از طریق مرورگری دیگر یا کارهٔ بومی از ماستودون استفاده کنید.",
"empty_column.notifications": "هنوز هیچ اعلانی ندارید. به دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
"empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران کارسازهای دیگر را پی بگیرید تا این‌جا پر شود",
"error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.",
"error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر کمکی نکرد، شاید همچنان بتوانید با ماستدون از راه یک مرورگر دیگر یا با یکی از اپ‌های آن کار کنید.",
"errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال",
"errors.unexpected_crash.report_issue": "گزارش مشکل",
"follow_request.authorize": "اجازه دادن",
"follow_request.reject": "رد کردن",
"follow_request.authorize": "اجازه دهید",
"follow_request.reject": "رد کنید",
"getting_started.developers": "توسعه‌دهندگان",
"getting_started.directory": "فهرست گزیدهٔ کاربران",
"getting_started.documentation": "مستندات",
@ -182,65 +182,65 @@
"hashtag.column_settings.tag_mode.none": "هیچ‌کدام از این‌ها",
"hashtag.column_settings.tag_toggle": "افزودن برچسب‌هایی بیشتر به این ستون",
"home.column_settings.basic": "پایه‌ای",
"home.column_settings.show_reblogs": "نمایش تقویتها",
"home.column_settings.show_reblogs": "نمایش بازبوقها",
"home.column_settings.show_replies": "نمایش پاسخ‌ها",
"intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
"intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
"intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
"introduction.federation.action": "بعدی",
"introduction.federation.federated.headline": "همگانی",
"introduction.federation.federated.text": "نوشته‌های عمومی دیگر کارسازها در خط‌زمانی همگانی طاهر خواهند شد.",
"introduction.federation.federated.text": "نوشته‌های عمومی کارسازهای دیگر در این فهرست نمایش می‌یابند.",
"introduction.federation.home.headline": "خانه",
"introduction.federation.home.text": "فرسته‌ها از افرادی که دنبالشان می‌کنید در خوراک خانه‌تان ظاهر خواهند شد. می‌توانید هر کسی را روی هر کارسازی پی‌بگیرید!",
"introduction.federation.home.text": "فرسته‌های کسانی که شما آن‌ها را پی می‌گیرید این‌جا نمایش می‌یابند. شما می‌توانید هر کسی را روی هر کارسازی پی بگیرید!",
"introduction.federation.local.headline": "محلّی",
"introduction.federation.local.text": "نوشته‌های عمومی افرادی که روی همان کارساز خودتان هستند در خط زمانی محلّی ظاهر خواهند شد.",
"introduction.federation.local.text": "فرسته‌های عمومی کسانی که روی کارساز شما هستند در فهرست نوشته‌های محلی نمایش می‌یابند.",
"introduction.interactions.action": "پایان خودآموز!",
"introduction.interactions.favourite.headline": "برگزیدن",
"introduction.interactions.favourite.text": "می‌توانید بوقی را برای بعد ذخیره کنید و با برگزیدنش، بگذارید نویسنده بداند که پسندیدیش.",
"introduction.interactions.reblog.headline": "تقویت",
"introduction.interactions.reblog.text": "با تقویت بوق‌های دیگران، می‌توانید آن‌ها را با پی‌گیرانتان هم‌رسانی کنید.",
"introduction.interactions.favourite.headline": "پسندیدن",
"introduction.interactions.favourite.text": "با پسندیدن یک بوق، شما آن را برای آینده ذخیره می‌کنید و به نویسنده می‌گویید که از بوقش خوشتان آمده.",
"introduction.interactions.reblog.headline": "بازبوقیدن",
"introduction.interactions.reblog.text": "اگر بخواهید نوشته‌ای را با پیگیران خودتان به اشتراک بگذارید، آن را بازمی‌بوقید.",
"introduction.interactions.reply.headline": "پاسخ",
"introduction.interactions.reply.text": "می‌توانید به بوق‌های خودتان و دیگران پاسخ دهید، تا در یک گفت‌وگو به هم زنجیر شوند.",
"introduction.interactions.reply.text": "می‌توانید به بوق‌های خودتان و دیگران پاسخ دهید، تا در یک گفتگو به هم زنجیر شوند.",
"introduction.welcome.action": "بزن بریم!",
"introduction.welcome.headline": "نخستین گام‌ها",
"introduction.welcome.text": "به دنیای شبکه‌های اجتماعی غیرمتمرکز خوش آمدید! به زودی می‌توانید نوشته‌هایتان را منتشر کرده و با دوستانتان روی دامنهٔ وسیعی از کارسازها حرف بزنید. ولی این کارساز، {domain}، با بقیه فرق دارد، چرا که میزبان نمایهٔ شماست، پس نامش را به خاطر بسپارید.",
"keyboard_shortcuts.back": "برای بازگشت",
"keyboard_shortcuts.blocked": "برای گشودن فهرست کاربران خموش",
"keyboard_shortcuts.boost": "برای تقویت",
"keyboard_shortcuts.column": "برای تمرکز روی وضعیتی در یکی از ستون‌ها",
"keyboard_shortcuts.boost": "برای بازبوقیدن",
"keyboard_shortcuts.column": "برای تمرکز روی یک بوق در یکی از ستون‌ها",
"keyboard_shortcuts.compose": "برای تمرکز روی محیط نوشتن",
"keyboard_shortcuts.description": "توضیح",
"keyboard_shortcuts.direct": "برای گشودن ستون پیام‌های خصوصی",
"keyboard_shortcuts.direct": "برای گشودن ستون پیغام‌های مستقیم",
"keyboard_shortcuts.down": "برای پایین رفتن در فهرست",
"keyboard_shortcuts.enter": "برای گشودن وضعیت",
"keyboard_shortcuts.favourite": "برای برگزیدن",
"keyboard_shortcuts.favourites": "برای گشودن فهرست برگزیده‌ها",
"keyboard_shortcuts.federated": "برای گشودن خط‌زمانی همگانی",
"keyboard_shortcuts.enter": "برای گشودن نوشته",
"keyboard_shortcuts.favourite": "برای پسندیدن",
"keyboard_shortcuts.favourites": "برای گشودن فهرست پسندیده‌ها",
"keyboard_shortcuts.federated": "برای گشودن فهرست نوشته‌های همه‌جا",
"keyboard_shortcuts.heading": "میان‌برهای صفحه‌کلید",
"keyboard_shortcuts.home": "برای گشودن خط‌زمانی خانه",
"keyboard_shortcuts.home": "برای گشودن ستون اصلی پیگیری‌ها",
"keyboard_shortcuts.hotkey": "میان‌بر",
"keyboard_shortcuts.legend": "برای نمایش این راهنما",
"keyboard_shortcuts.local": "برای گشودن خط‌زمانی محلّی",
"keyboard_shortcuts.mention": "برای اشاره به نویسنده",
"keyboard_shortcuts.local": "برای گشودن فهرست نوشته‌های محلی",
"keyboard_shortcuts.mention": "برای نام‌بردن از نویسنده",
"keyboard_shortcuts.muted": "برای گشودن فهرست کاربران خموش",
"keyboard_shortcuts.my_profile": "برای گشودن نمایه‌تان",
"keyboard_shortcuts.notifications": "برای گشودن ستون آگاهیها",
"keyboard_shortcuts.notifications": "برای گشودن ستون اعلانها",
"keyboard_shortcuts.open_media": "برای باز کردن رسانه",
"keyboard_shortcuts.pinned": "برای گشودن فهرست بوق‌های سنجاق‌شده",
"keyboard_shortcuts.pinned": "برای گشودن فهرست بوق‌های ثابت",
"keyboard_shortcuts.profile": "برای گشودن نمایهٔ نویسنده",
"keyboard_shortcuts.reply": "برای پاسخ",
"keyboard_shortcuts.requests": "برای گشودن فهرست درخواست‌های پیگیری",
"keyboard_shortcuts.search": "برای تمرکز روی جست‌وجو",
"keyboard_shortcuts.search": "برای تمرکز روی جستجو",
"keyboard_shortcuts.start": "برای گشودن ستون «آغاز کنید»",
"keyboard_shortcuts.toggle_hidden": "برای نمایش/نهفتن نوشتهٔ پشت هشدار محتوا",
"keyboard_shortcuts.toggle_sensitivity": "برای نمایش/نهفتن رسانه",
"keyboard_shortcuts.toot": "برای آغاز یک بوق تازه",
"keyboard_shortcuts.unfocus": "برای برداشتن تمرکز از نوشتن/جست‌وجو",
"keyboard_shortcuts.unfocus": "برای برداشتن تمرکز از نوشتن/جستجو",
"keyboard_shortcuts.up": "برای بالا رفتن در فهرست",
"lightbox.close": "بستن",
"lightbox.next": "بعدی",
"lightbox.previous": "پیشین",
"lightbox.view_context": "نمایش متن",
"lightbox.previous": "قبلی",
"lightbox.view_context": "نمایش گفتگو",
"lists.account.add": "افزودن به فهرست",
"lists.account.remove": "برداشتن از فهرست",
"lists.delete": "حذف فهرست",
@ -248,100 +248,100 @@
"lists.edit.submit": "تغییر عنوان",
"lists.new.create": "افزودن فهرست",
"lists.new.title_placeholder": "عنوان فهرست تازه",
"lists.search": "جست‌وجو بین افرادی که پی می‌گیرید",
"lists.subheading": "فهرست‌هایتان",
"lists.search": "بین کسانی که پی می‌گیرید بگردید",
"lists.subheading": "فهرست‌های شما",
"load_pending": "{count, plural, one {# مورد تازه} other {# مورد تازه}}",
"loading_indicator.label": "در حال بار کردن…",
"media_gallery.toggle_visible": "تغییر وضعیت نمایانی",
"loading_indicator.label": "بارگیری...",
"media_gallery.toggle_visible": "تغییر پیدایی",
"missing_indicator.label": "پیدا نشد",
"missing_indicator.sublabel": "این منبع پیدا نشد",
"mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟",
"navigation_bar.apps": "کاره‌های همراه",
"navigation_bar.blocks": "کاربران مسدود",
"mute_modal.hide_notifications": "اعلان‌های این کاربر پنهان شود؟",
"navigation_bar.apps": "اپ‌های موبایل",
"navigation_bar.blocks": "کاربران مسدودشده",
"navigation_bar.bookmarks": "نشانک‌ها",
"navigation_bar.community_timeline": "خط‌زمانی محلّی",
"navigation_bar.community_timeline": "نوشته‌های محلی",
"navigation_bar.compose": "نوشتن بوق تازه",
"navigation_bar.direct": "پیام‌های خصوصی",
"navigation_bar.discover": "کشف",
"navigation_bar.direct": "پیام‌های مستقیم",
"navigation_bar.discover": "گشت و گذار",
"navigation_bar.domain_blocks": "دامنه‌های نهفته",
"navigation_bar.edit_profile": "ویرایش نمایه",
"navigation_bar.favourites": "برگزیده‌ها",
"navigation_bar.favourites": "پسندیده‌ها",
"navigation_bar.filters": "واژگان خموش",
"navigation_bar.follow_requests": "درخواست‌های پیگیری",
"navigation_bar.follows_and_followers": "پیگیری‌ها و پیگیران",
"navigation_bar.follows_and_followers": "پیگیری‌ها و پیگیران",
"navigation_bar.info": "دربارهٔ این کارساز",
"navigation_bar.keyboard_shortcuts": "میان‌برها",
"navigation_bar.lists": "فهرست‌ها",
"navigation_bar.logout": "خروج",
"navigation_bar.mutes": "کاربران خموش",
"navigation_bar.mutes": "کاربران خموشیده",
"navigation_bar.personal": "شخصی",
"navigation_bar.pins": "بوق‌های سنجاق‌شده",
"navigation_bar.pins": "بوق‌های ثابت",
"navigation_bar.preferences": "ترجیحات",
"navigation_bar.public_timeline": "خط‌زمانی همگانی",
"navigation_bar.public_timeline": "نوشته‌های همه‌جا",
"navigation_bar.security": "امنیت",
"notification.favourite": "{name} وضعیتتان را برگزید",
"notification.follow": "{name} پیگیرتان شد",
"notification.follow_request": "{name} درخواست پی‌گیریتان را داده است",
"notification.mention": "{name} به شما اشاره کرد",
"notification.own_poll": "نظرسنجیتان پایان یافت",
"notification.poll": "نظرسنجی‌ای که در آن رأی دادید پایان یافته است",
"notification.reblog": "{name} وضعیتتان را تقویت کرد",
"notifications.clear": "پاک‌سازی آگاهیها",
"notifications.clear_confirmation": "مطمئنید می‌خواهید تمام آگاهی‌هایتان را برای همیشه پاک کنید؟",
"notifications.column_settings.alert": "آگاهی‌های میزکار",
"notifications.column_settings.favourite": "برگزیده‌ها:",
"notifications.column_settings.filter_bar.advanced": "نمایش تمام دسته‌ها",
"notification.favourite": "{name} نوشتهٔ شما را پسندید",
"notification.follow": "{name} پیگیرتان شد",
"notification.follow_request": "{name} می‌خواهد پیگیر شما باشد",
"notification.mention": "{name} از شما نام برد",
"notification.own_poll": "نظرسنجی شما به پایان رسید",
"notification.poll": "نظرسنجی‌ای که در آن رأی دادید به پایان رسیده است",
"notification.reblog": "{name} نوشتهٔ شما را بازبوقید",
"notifications.clear": "پاک‌کردن اعلانها",
"notifications.clear_confirmation": "مطمئنید می‌خواهید همهٔ اعلان‌هایتان را برای همیشه پاک کنید؟",
"notifications.column_settings.alert": "اعلان‌های میزکار",
"notifications.column_settings.favourite": "پسندیده‌ها:",
"notifications.column_settings.filter_bar.advanced": "نمایش همهٔ دسته‌ها",
"notifications.column_settings.filter_bar.category": "نوار پالایش سریع",
"notifications.column_settings.filter_bar.show": "نمایش",
"notifications.column_settings.follow": "پیگیران تازه:",
"notifications.column_settings.follow": "پیگیران تازه:",
"notifications.column_settings.follow_request": "درخواست‌های جدید پی‌گیری:",
"notifications.column_settings.mention": "اشارهها:",
"notifications.column_settings.mention": "نام‌بردنها:",
"notifications.column_settings.poll": "نتایج نظرسنجی:",
"notifications.column_settings.push": "ارسال آگاهی‌ها",
"notifications.column_settings.reblog": "تقویتها:",
"notifications.column_settings.push": "اعلان‌ها از سمت سرور",
"notifications.column_settings.reblog": "بازبوقها:",
"notifications.column_settings.show": "نمایش در ستون",
"notifications.column_settings.sound": "پخش صدا",
"notifications.filter.all": "همه",
"notifications.filter.boosts": "تقویتها",
"notifications.filter.favourites": "برگزیده‌ها",
"notifications.filter.follows": "پیگیری‌ها",
"notifications.filter.mentions": "اشارهها",
"notifications.filter.boosts": "بازبوقها",
"notifications.filter.favourites": "پسندها",
"notifications.filter.follows": "پیگیری‌ها",
"notifications.filter.mentions": "نام‌بردنها",
"notifications.filter.polls": "نتایج نظرسنجی",
"notifications.group": "{count} آگاهی",
"poll.closed": "بسته‌شده",
"poll.refresh": "نوسازی",
"notifications.group": "{count} اعلان",
"poll.closed": "پایان‌یافته",
"poll.refresh": "به‌روزرسانی",
"poll.total_people": "{count, plural, one {# نفر} other {# نفر}}",
"poll.total_votes": "{count, plural, one {# رأی} other {# رأی}}",
"poll.vote": "رأی",
"poll.voted": "به این پاسخ رأی دادید",
"poll.voted": "شما به این گزینه رأی دادید",
"poll_button.add_poll": "افزودن نظرسنجی",
"poll_button.remove_poll": "برداشتن نظرسنجی",
"privacy.change": "تنظیم محرمانگی وضعیت‌ها",
"privacy.direct.long": "ارسال فقط به کاربران اشاره‌شده",
"poll_button.remove_poll": "حذف نظرسنجی",
"privacy.change": "تنظیم محرمانگی نوشته",
"privacy.direct.long": "تنها به کاربران نام‌برده‌شده نشان بده",
"privacy.direct.short": "خصوصی",
"privacy.private.long": "ارسال فقط به پی‌گیران",
"privacy.private.short": "فقط پی‌گیران",
"privacy.public.long": "ارسال به خط‌زمانی عمومی",
"privacy.private.long": "تنها به پیگیران نشان بده",
"privacy.private.short": "خصوصی",
"privacy.public.long": "نمایش در فهرست عمومی",
"privacy.public.short": "عمومی",
"privacy.unlisted.long": "ارسال نکردن به خط‌زمانی عمومی",
"privacy.unlisted.long": "عمومی، ولی فهرست نکن",
"privacy.unlisted.short": "فهرست‌نشده",
"refresh": "نوسازی",
"regeneration_indicator.label": "در حال بار کردن…",
"regeneration_indicator.sublabel": "خوراک خانه‌تان در حال آماده شدن است!",
"refresh": "به‌روزرسانی",
"regeneration_indicator.label": "در حال باز شدن…",
"regeneration_indicator.sublabel": "این فهرست دارد آماده می‌شود!",
"relative_time.days": "{number} روز",
"relative_time.hours": "{number} ساعت",
"relative_time.just_now": "اکنون",
"relative_time.just_now": "الان",
"relative_time.minutes": "{number} دقیقه",
"relative_time.seconds": "{number} ثانیه",
"reply_indicator.cancel": "لغو",
"report.forward": "هدایت به {target}",
"report.forward_hint": "این حساب از کارسازی دیگر است. رونوشتی ناشناس از گزارش به آن‌جا نیز فرستاده شود؟",
"report.hint": "این گزارش به مدیران کارسازتان فرستاده خواهد شد. می‌توانید دلیلی بر چرایی گزارش این حساب را در ادامه بنویسید:",
"report.forward": "فرستادن به {target}",
"report.forward_hint": "این حساب در کارساز دیگری ثبت شده. آیا می‌خواهید رونوشتی ناشناس از این گزارش به آن‌جا هم فرستاده شود؟",
"report.hint": "این گزارش به مدیران کارسازتان فرستاده خواهد شد. می‌توانید دلیل گزارش این حساب را در ادامه بنویسید:",
"report.placeholder": "توضیح اضافه",
"report.submit": "ثبت",
"report.submit": "بفرست",
"report.target": "در حال گزارش {target}",
"search.placeholder": "جست‌وجو",
"search_popout.search_format": "قالب جست‌وجوی پیشرفته",
"search.placeholder": "جستجو",
"search_popout.search_format": "راهنمای جستجوی پیشرفته",
"search_popout.tips.full_text": "جست‌وجوی متنی ساده وضعیت‌هایی که که نوشته، برگزیده، تقویت‌کرده یا در آن‌ها اشاره‌شده‌اید را به اضافهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌های مطابق برمی‌گرداند.",
"search_popout.tips.hashtag": "برچسب",
"search_popout.tips.status": "وضعیت",

View File

@ -77,17 +77,17 @@
"community.column_settings.media_only": "Só multimedia",
"compose_form.direct_message_warning": "Este toot só será enviado ás usuarias mencionadas.",
"compose_form.direct_message_warning_learn_more": "Coñecer máis",
"compose_form.hashtag_warning": "Este toot non se amosará baixo cancelos (hashtags) porque non é público. Só os toots públicos poden ser procurados por cancelos.",
"compose_form.lock_disclaimer": "A túa conta non está {locked}. Todos poden seguirche para ollar os teus toots só para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
"compose_form.placeholder": "En que estás a pensar?",
"compose_form.hashtag_warning": "Este toot non aparecerá baixo ningún cancelo (hashtag) porque non está listado. Só se poden procurar toots públicos por cancelos.",
"compose_form.lock_disclaimer": "A túa conta non está {locked}. Todas poden seguirte para ollar os teus toots só para seguidoras.",
"compose_form.lock_disclaimer.lock": "bloqueada",
"compose_form.placeholder": "Qué contas?",
"compose_form.poll.add_option": "Engadir unha opción",
"compose_form.poll.duration": "Duración da enquisa",
"compose_form.poll.option_placeholder": "Opción {number}",
"compose_form.poll.remove_option": "Eliminar esta opción",
"compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas",
"compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla",
"compose_form.publish": "Tootear",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Marcar coma contido multimedia sensíbel",
"compose_form.sensitive.marked": "Contido multimedia marcado coma sensíbel",
@ -104,16 +104,16 @@
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?",
"confirmations.domain_block.confirm": "Agochar dominio enteiro",
"confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. Os teus seguidores deste dominio serán eliminados.",
"confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. As túas seguidoras deste dominio serán eliminadas.",
"confirmations.logout.confirm": "Pechar sesión",
"confirmations.logout.message": "Desexas pechar a sesión?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.mute.explanation": "Isto agochará as publicacións deles ou nas que os mencionen, mais permitirá que vexan as túas publicacións e sexan os teus seguidores.",
"confirmations.mute.message": "Tes a certeza de querer silenciar a {name}?",
"confirmations.mute.confirm": "Acalar",
"confirmations.mute.explanation": "Isto agochará as publicacións delas ou nas que as mencionen, mais permitirá que vexan as túas publicacións e sexan seguidoras túas.",
"confirmations.mute.message": "Tes a certeza de querer acalar a {name}?",
"confirmations.redraft.confirm": "Eliminar e reescribir",
"confirmations.redraft.message": "Tes a certeza de querer eliminar este estado e reescribilo? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Respostar agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
"confirmations.reply.message": "Responder agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Desexas deixar de seguir a {name}?",
"conversation.delete": "Eliminar conversa",
@ -122,10 +122,10 @@
"conversation.with": "Con {names}",
"directory.federated": "Do fediverso coñecido",
"directory.local": "Só de {domain}",
"directory.new_arrivals": "Recén chegados",
"directory.recently_active": "Activos recentemente",
"directory.new_arrivals": "Recén chegadas",
"directory.recently_active": "Activas recentemente",
"embed.instructions": "Engade este estado ó teu sitio web copiando o seguinte código.",
"embed.preview": "Así será amosado:",
"embed.preview": "Así será mostrado:",
"emoji_button.activity": "Actividade",
"emoji_button.custom": "Personalizado",
"emoji_button.flags": "Bandeiras",
@ -199,8 +199,8 @@
"introduction.interactions.favourite.text": "Podes gardar un toot para depois e facer saber ó autor que che gostou marcandoo coma favorito.",
"introduction.interactions.reblog.headline": "Promover",
"introduction.interactions.reblog.text": "Podes compartir os toots doutras persoas coas túas seguidoras.",
"introduction.interactions.reply.headline": "Respostar",
"introduction.interactions.reply.text": "Podes respostar ós toots doutras persoas e ós teus propios, así ficarán encadeados nunha conversa.",
"introduction.interactions.reply.headline": "Responder",
"introduction.interactions.reply.text": "Podes responder ós toots doutras persoas e ós teus propios, así ficarán encadeados nunha conversa.",
"introduction.welcome.action": "Imos!",
"introduction.welcome.headline": "Primeiros pasos",
"introduction.welcome.text": "Benvido ó fediverso! Nun intre poderás difundir mensaxes e falar coas túas amizades nun grande número de servidores. Mais este servidor, {domain}, é especial—hospeda o teu perfil, por iso lémbrate do seu nome.",
@ -228,7 +228,7 @@
"keyboard_shortcuts.open_media": "para abrir o contido multimedia",
"keyboard_shortcuts.pinned": "para abrir a listaxe dos toots fixados",
"keyboard_shortcuts.profile": "para abrir o perfil do autor",
"keyboard_shortcuts.reply": "para respostar",
"keyboard_shortcuts.reply": "para responder",
"keyboard_shortcuts.requests": "para abrir a listaxe das peticións de seguimento",
"keyboard_shortcuts.search": "para destacar a procura",
"keyboard_shortcuts.start": "para abrir a columna dos \"primeiros pasos\"",
@ -381,8 +381,8 @@
"status.reblogs.empty": "Aínda ninguén promoveu este toot. Cando alguén o faga, amosarase aquí.",
"status.redraft": "Eliminar e reescribir",
"status.remove_bookmark": "Eliminar marcador",
"status.reply": "Respostar",
"status.replyAll": "Respostar ó fío",
"status.reply": "Responder",
"status.replyAll": "Responder ó fío",
"status.report": "Denunciar @{name}",
"status.sensitive_warning": "Contido sensíbel",
"status.share": "Compartir",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Forgalomkorlátozás",
"alert.unexpected.message": "Váratlan hiba történt.",
"alert.unexpected.title": "Hoppá!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Közlemény",
"autosuggest_hashtag.per_week": "{count}/hét",
"boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}",
"bundle_column_error.body": "Hiba történt a komponens betöltése közben.",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "制限に達しました",
"alert.unexpected.message": "不明なエラーが発生しました。",
"alert.unexpected.title": "エラー!",
"announcement.announcement": "告知",
"announcement.announcement": "お知らせ",
"autosuggest_hashtag.per_week": "{count} 回 / 週",
"boost_modal.combo": "次からは{combo}を押せばスキップできます",
"bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。",
@ -89,8 +89,8 @@
"compose_form.poll.duration": "アンケート期間",
"compose_form.poll.option_placeholder": "項目 {number}",
"compose_form.poll.remove_option": "この項目を削除",
"compose_form.poll.switch_to_multiple": "複数選択に変更",
"compose_form.poll.switch_to_single": "単一選択に変更",
"compose_form.poll.switch_to_multiple": "複数選択に変更",
"compose_form.poll.switch_to_single": "単一選択に変更",
"compose_form.publish": "トゥート",
"compose_form.publish_loud": "{publish}",
"compose_form.sensitive.hide": "メディアを閲覧注意にする",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "빈도 제한",
"alert.unexpected.message": "예측하지 못한 에러가 발생했습니다.",
"alert.unexpected.title": "앗!",
"announcement.announcement": "Announcement",
"announcement.announcement": "공지사항",
"autosuggest_hashtag.per_week": "주간 {count}회",
"boost_modal.combo": "{combo}를 누르면 다음부터 이 과정을 건너뛸 수 있습니다",
"bundle_column_error.body": "컴포넌트를 불러오는 과정에서 문제가 발생했습니다.",

View File

@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "Legg til eller tak vekk frå listene",
"account.badges.bot": "Robot",
"account.badges.group": "Group",
"account.badges.group": "Gruppe",
"account.block": "Blokker @{name}",
"account.block_domain": "Skjul alt frå {domain}",
"account.blocked": "Blokkert",
@ -43,7 +43,7 @@
"alert.rate_limited.title": "Begrensa rate",
"alert.unexpected.message": "Eit uventa problem oppstod.",
"alert.unexpected.title": "Oi sann!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Kunngjøring",
"autosuggest_hashtag.per_week": "{count} per veke",
"boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong",
"bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.",
@ -85,8 +85,8 @@
"compose_form.poll.duration": "Varigskap for røysting",
"compose_form.poll.option_placeholder": "Val {number}",
"compose_form.poll.remove_option": "Ta vekk dette valet",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg",
"compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Merk medium som sensitivt",

View File

@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "Legg til eller fjern fra lister",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.badges.group": "Gruppe",
"account.block": "Blokkér @{name}",
"account.block_domain": "Skjul alt fra {domain}",
"account.blocked": "Blokkert",
@ -43,7 +43,7 @@
"alert.rate_limited.title": "Hastighetsbegrenset",
"alert.unexpected.message": "En uventet feil oppstod.",
"alert.unexpected.title": "Oops!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Kunngjøring",
"autosuggest_hashtag.per_week": "{count} per uke",
"boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang",
"bundle_column_error.body": "Noe gikk galt mens denne komponenten lastet.",
@ -85,8 +85,8 @@
"compose_form.poll.duration": "Avstemningens varighet",
"compose_form.poll.option_placeholder": "Valg {number}",
"compose_form.poll.remove_option": "Fjern dette valget",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg",
"compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Merk media som sensitivt",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Вы выполняете действие слишком часто",
"alert.unexpected.message": "Что-то пошло не так.",
"alert.unexpected.title": "Ой!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Объявление",
"autosuggest_hashtag.per_week": "{count} / неделю",
"boost_modal.combo": "{combo}, чтобы пропустить это в следующий раз",
"bundle_column_error.body": "Что-то пошло не так при загрузке этого компонента.",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Tempo obmedzené",
"alert.unexpected.message": "Vyskytla sa nečakaná chyba.",
"alert.unexpected.title": "Ups!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Oboznámenie",
"autosuggest_hashtag.per_week": "{count} týždenne",
"boost_modal.combo": "Nabudúce môžeš kliknúť {combo} pre preskočenie",
"bundle_column_error.body": "Pri načítaní tohto prvku nastala nejaká chyba.",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "มีการจำกัดอัตรา",
"alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
"alert.unexpected.title": "อุปส์!",
"announcement.announcement": "Announcement",
"announcement.announcement": "ประกาศ",
"autosuggest_hashtag.per_week": "{count} ต่อสัปดาห์",
"boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป",
"bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้",

View File

@ -43,7 +43,7 @@
"alert.rate_limited.title": "Oran sınırlıdır",
"alert.unexpected.message": "Beklenmedik bir hata oluştu.",
"alert.unexpected.title": "Hay aksi!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Duyuru",
"autosuggest_hashtag.per_week": "Haftada {count}",
"boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsiniz",
"bundle_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.",

View File

@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "Додати або видалити зі списків",
"account.badges.bot": "Бот",
"account.badges.group": "Group",
"account.badges.group": "Група",
"account.block": "Заблокувати @{name}",
"account.block_domain": "Заглушити {domain}",
"account.blocked": "Заблоковані",
@ -43,7 +43,7 @@
"alert.rate_limited.title": "Швидкість обмежена",
"alert.unexpected.message": "Трапилась неочікувана помилка.",
"alert.unexpected.title": "Ой!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Оголошення",
"autosuggest_hashtag.per_week": "{count} в тиждень",
"boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу",
"bundle_column_error.body": "Щось пішло не так під час завантаження компоненту.",
@ -85,8 +85,8 @@
"compose_form.poll.duration": "Тривалість опитування",
"compose_form.poll.option_placeholder": "Варіант {number}",
"compose_form.poll.remove_option": "Видалити цей варіант",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.poll.switch_to_multiple": "Перемкнути у режим вибору декількох відповідей",
"compose_form.poll.switch_to_single": "Перемкнути у режим вибору однієї відповіді",
"compose_form.publish": "Дмухнути",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Позначити медіа як дражливе",
@ -225,7 +225,7 @@
"keyboard_shortcuts.muted": "відкрити список заглушених користувачів",
"keyboard_shortcuts.my_profile": "відкрити ваш профіль",
"keyboard_shortcuts.notifications": "відкрити колонку сповіщень",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.open_media": "відкрити медіа",
"keyboard_shortcuts.pinned": "відкрити список закріплених дмухів",
"keyboard_shortcuts.profile": "відкрити профіль автора",
"keyboard_shortcuts.reply": "відповісти",

View File

@ -3,18 +3,20 @@ import {
ANNOUNCEMENTS_FETCH_SUCCESS,
ANNOUNCEMENTS_FETCH_FAIL,
ANNOUNCEMENTS_UPDATE,
ANNOUNCEMENTS_DISMISS,
ANNOUNCEMENTS_REACTION_UPDATE,
ANNOUNCEMENTS_REACTION_ADD_REQUEST,
ANNOUNCEMENTS_REACTION_ADD_FAIL,
ANNOUNCEMENTS_REACTION_REMOVE_REQUEST,
ANNOUNCEMENTS_REACTION_REMOVE_FAIL,
ANNOUNCEMENTS_TOGGLE_SHOW,
} from '../actions/announcements';
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
import { Map as ImmutableMap, List as ImmutableList, Set as ImmutableSet, fromJS } from 'immutable';
const initialState = ImmutableMap({
items: ImmutableList(),
isLoading: false,
show: true,
unread: ImmutableSet(),
});
const updateReaction = (state, id, name, updater) => state.update('items', list => list.map(announcement => {
@ -43,21 +45,35 @@ const addReaction = (state, id, name) => updateReaction(state, id, name, x => x.
const removeReaction = (state, id, name) => updateReaction(state, id, name, x => x.set('me', false).update('count', y => y - 1));
const addUnread = (state, items) => {
if (state.get('show')) return state;
const newIds = ImmutableSet(items.map(x => x.get('id')));
const oldIds = ImmutableSet(state.get('items').map(x => x.get('id')));
return state.update('unread', unread => unread.union(newIds.subtract(oldIds)));
};
export default function announcementsReducer(state = initialState, action) {
switch(action.type) {
case ANNOUNCEMENTS_TOGGLE_SHOW:
return state.withMutations(map => {
if (!map.get('show')) map.set('unread', ImmutableSet());
map.set('show', !map.get('show'));
});
case ANNOUNCEMENTS_FETCH_REQUEST:
return state.set('isLoading', true);
case ANNOUNCEMENTS_FETCH_SUCCESS:
return state.withMutations(map => {
map.set('items', fromJS(action.announcements));
const items = fromJS(action.announcements);
map.set('unread', ImmutableSet());
addUnread(map, items);
map.set('items', items);
map.set('isLoading', false);
});
case ANNOUNCEMENTS_FETCH_FAIL:
return state.set('isLoading', false);
case ANNOUNCEMENTS_UPDATE:
return state.update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at')));
case ANNOUNCEMENTS_DISMISS:
return state.update('items', list => list.filterNot(announcement => announcement.get('id') === action.id));
return addUnread(state, [fromJS(action.announcement)]).update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at')));
case ANNOUNCEMENTS_REACTION_UPDATE:
return updateReactionCount(state, action.reaction);
case ANNOUNCEMENTS_REACTION_ADD_REQUEST:

View File

@ -6631,7 +6631,7 @@ noscript {
}
.announcements {
background: lighten($ui-base-color, 4%);
background: lighten($ui-base-color, 8%);
border-top: 1px solid $ui-base-color;
font-size: 13px;
display: flex;
@ -6672,12 +6672,6 @@ noscript {
font-weight: 500;
margin-bottom: 10px;
}
&__dismiss-icon {
position: absolute;
top: 12px;
right: 12px;
}
}
&__pagination {

View File

@ -6,10 +6,10 @@ class ReactionValidator < ActiveModel::Validator
LIMIT = 8
def validate(reaction)
return if reaction.name.blank? || reaction.custom_emoji_id.present?
return if reaction.name.blank?
reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) unless unicode_emoji?(reaction.name)
reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if limit_reached?(reaction)
reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) if reaction.custom_emoji_id.blank? && !unicode_emoji?(reaction.name)
reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if new_reaction?(reaction) && limit_reached?(reaction)
end
private
@ -18,6 +18,10 @@ class ReactionValidator < ActiveModel::Validator
SUPPORTED_EMOJIS.include?(name)
end
def new_reaction?(reaction)
!reaction.announcement.announcement_reactions.where(name: reaction.name).exists?
end
def limit_reached?(reaction)
reaction.announcement.announcement_reactions.where.not(name: reaction.name).count('distinct name') >= LIMIT
end

View File

@ -198,11 +198,13 @@ ca:
change_email_user: "%{name} ha canviat l'adreça de correu electrònic del usuari %{target}"
confirm_user: "%{name} ha confirmat l'adreça de correu electrònic de l'usuari %{target}"
create_account_warning: "%{name} ha enviat un avís a %{target}"
create_announcement: "%{name} ha creat un nou anunci %{target}"
create_custom_emoji: "%{name} ha pujat un nou emoji %{target}"
create_domain_allow: "%{name} ha afegit a la llista blanca el domini %{target}"
create_domain_block: "%{name} ha blocat el domini %{target}"
create_email_domain_block: "%{name} ha afegit a la llista negra el domini del correu electrònic %{target}"
demote_user: "%{name} ha degradat l'usuari %{target}"
destroy_announcement: "%{name} ha eliminat l'anunci %{target}"
destroy_custom_emoji: "%{name} ha destruït l'emoji %{target}"
destroy_domain_allow: "%{name} ha eliminat el domini %{target} de la llista blanca"
destroy_domain_block: "%{name} ha desblocat el domini %{target}"
@ -224,10 +226,22 @@ ca:
unassigned_report: "%{name} ha des-assignat l'informe %{target}"
unsilence_account: "%{name} ha silenciat el compte de %{target}"
unsuspend_account: "%{name} ha llevat la suspensió del compte de %{target}"
update_announcement: "%{name} ha actualitzat l'anunci %{target}"
update_custom_emoji: "%{name} ha actualitzat l'emoji %{target}"
update_status: "%{name} estat actualitzat per %{target}"
deleted_status: "(tut esborrat)"
title: Registre d'auditoria
announcements:
edit:
title: Edita l'anunci
empty: No s'ha trobat cap anunci.
live: En viu
new:
create: Crea un anunci
title: Nou anunci
published: Publicat
time_range: Interval de temps
title: Anuncis
custom_emojis:
assign_category: Assigna una categoria
by_domain: Domini
@ -657,6 +671,9 @@ ca:
hint_html: "<strong>Pista:</strong> No et preguntarem un altre cop la teva contrasenya en la pròxima hora."
invalid_password: Contrasenya no vàlida
prompt: Confirmi la contrasenya per a continuar
date:
formats:
default: "%b %d, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count} h"
@ -758,6 +775,8 @@ ca:
all: Tot
changes_saved_msg: Els canvis s'han desat correctament!
copy: Copia
delete: Esborra
edit: Edita
no_batch_actions_available: Cap accions de lot disponibles en aquesta pàgina
order_by: Ordena per
save_changes: Desa els canvis
@ -929,6 +948,9 @@ ca:
other: Altre
posting_defaults: Valors predeterminats de publicació
public_timelines: Línies de temps públiques
reactions:
errors:
unrecognized_emoji: no és un emoji reconegut
relationships:
activity: Activitat del compte
dormant: Inactiu

View File

@ -198,11 +198,13 @@ co:
change_email_user: "%{name} hà cambiatu lindirizzu e-mail di %{target}"
confirm_user: "%{name} hà cunfirmatu lindirizzu e-mail di %{target}"
create_account_warning: "%{name} hà mandatu un'avertimentu à %{target}"
create_announcement: "%{name} hà creatu u novu annunziu %{target}"
create_custom_emoji: "%{name} hà caricatu una novemoji %{target}"
create_domain_allow: "%{name} hà messu u duminiu %{target} nanta lista bianca"
create_domain_block: "%{name} hà bluccatu u duminiu %{target}"
create_email_domain_block: "%{name} hà messu u duminiu e-mail %{target} nanta lista nera"
demote_user: "%{name} hà ritrugradatu lutilizatore %{target}"
destroy_announcement: "%{name} hà sguassatu u novu annunziu %{target}"
destroy_custom_emoji: "%{name} hà sguassatu l'emoji %{target}"
destroy_domain_allow: "%{name} hà sguassatu u duminiu %{target} da a lista bianca"
destroy_domain_block: "%{name} hà sbluccatu u duminiu %{target}"
@ -224,10 +226,22 @@ co:
unassigned_report: "%{name} hà disassignatu u signalamentu %{target}"
unsilence_account: "%{name} hà fattu che u contu di %{target} ùn hè più silenzatu"
unsuspend_account: "%{name} hà fattu che u contu di %{target} ùn hè più suspesu"
update_announcement: "%{name} hà cambiatu u novu annunziu %{target}"
update_custom_emoji: "%{name} hà messu à ghjornu lemoji %{target}"
update_status: "%{name} hà cambiatu u statutu di %{target}"
deleted_status: "(statutu sguassatu)"
title: Ghjurnale daudit
announcements:
edit:
title: Mudificà annunzii
empty: Manc'un annunziu trovu.
live: Attivu
new:
create: Creà un'annunziu
title: Novu annunziu
published: Pubblicatu
time_range: Intervallu di tempu
title: Annunzii
custom_emojis:
assign_category: Aghjunghje categuria
by_domain: Duminiu
@ -372,6 +386,8 @@ co:
title: Invitazione
pending_accounts:
title: Conti in attesa (%{count})
relationships:
title: Rilazione di %{acct}
relays:
add_new: Aghjunghje un ripetitore
delete: Sguassà
@ -655,6 +671,9 @@ co:
hint_html: "<strong>Astuzia:</strong> Ùn avemu micca da dumandavvi stu codice per l'ore chì vene."
invalid_password: Chjave d'accessu micca curretta
prompt: Cunfirmà a chjave d'accessu per cuntinuvà
date:
formats:
default: "%d %b %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}o"
@ -731,6 +750,7 @@ co:
hint_html: "<strong>Quale sò i hashtag in mostra?</strong> Sò messi in vista nant'à u vostru prufile pubblicu è permettenu à a ghjente di vede i vostri statuti ch'annu stu hashtag. Sò una bona manere di mustrà e vostre opere creative o i prughjetti à longu termine."
filters:
contexts:
account: Prufili
home: Accolta
notifications: Nutificazione
public: Linee pubbliche
@ -755,6 +775,8 @@ co:
all: Tuttu
changes_saved_msg: Cambiamenti salvati!
copy: Cupià
delete: Sguassà
edit: Mudificà
no_batch_actions_available: Alcun'azzione di gruppu nant'à sta pagina
order_by: Urdinà da
save_changes: Salvà e mudificazione
@ -926,11 +948,15 @@ co:
other: Altre
posting_defaults: Paramettri predefiniti
public_timelines: Linee pubbliche
reactions:
errors:
unrecognized_emoji: ùn hè micca un'emoji ricunisciuta
relationships:
activity: Attività di u contu
dormant: Inattivu
followers: Abbunati
following: Abbunamenti
invited: Invitatu
last_active: Ultima attività
most_recent: Più ricente
moved: Spiazzatu
@ -959,8 +985,8 @@ co:
proceed: Cuntinuà per risponde
prompt: 'Vulete risponde à stu statutu:'
scheduled_statuses:
over_daily_limit: Avete trapassatu a limita di %{limit} statuti planificati per stu ghjornu
over_total_limit: Avete trapassatu a limita di %{limit} statuti planificati
over_daily_limit: Avete trapassatu a limita di %{limit} statuti pianificati per stu ghjornu
over_total_limit: Avete trapassatu a limita di %{limit} statuti pianificati
too_soon: A data deve esse indè u futuru
sessions:
activity: Ultima attività

View File

@ -950,6 +950,7 @@ de:
public_timelines: Öffentliche Zeitleisten
reactions:
errors:
limit_reached: Limit für verschiedene Reaktionen erreicht
unrecognized_emoji: ist kein anerkanntes Emoji
relationships:
activity: Kontoaktivität

View File

@ -2,7 +2,7 @@
ca:
devise:
confirmations:
confirmed: L'adreça de correu s'ha confirmat correctament.
confirmed: La teva adreça de correu electrònic s'ha confirmat correctament.
send_instructions: "En pocs minuts rebràs un correu electrònic amb instruccions sobre com confirmar l'adreça de correu. \nSi us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu."
send_paranoid_instructions: |-
Si l'adreça de correu electrònic existeix en la nostra base de dades, en pocs minuts rebràs un correu electrònic amb instruccions sobre com confirmar l'adreça de correu.
@ -25,7 +25,7 @@ ca:
explanation: Has creat un compte a %{host} amb aquesta adreça de correu electrònic. Estàs a un sol clic de l'activació. Si no fos així, ignora aquest correu electrònic.
explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça de correu electrònic. Un cop confirmis la teva adreça de correu electrònic revisarem la teva sol·licitud. No es pot iniciar la sessió fins llavors. Si la teva sol·licitud és rebutjada les teves dades seliminaran, de manera que no sexigirà cap altra acció. Si no has estat tu qui ha fet aquest sol·licitud si us plau ignora aquest correu electrònic.
extra_html: Si us plau consulta també <a href="%{terms_path}"> les regles del servidor</a> i <a href="%{policy_path}"> les nostres condicions de servei</a>.
subject: 'Mastodont: Instruccions de confirmació %{instance}'
subject: 'Mastodon: Instruccions de confirmació %{instance}'
title: Verifica l'adreça de correu
email_changed:
explanation: 'L''adreça de correu del teu compte s''està canviant a:'

View File

@ -23,43 +23,43 @@ es:
explanation: Has creado una cuenta en %{host} con esta dirección de correo electrónico. Estas a un clic de activarla. Si no fue usted, por favor ignore este correo electrónico.
explanation_when_pending: Usted ha solicitado una invitación a %{host} con esta dirección de correo electrónico. Una vez que confirme su dirección de correo electrónico, revisaremos su aplicación. No puede iniciar sesión hasta que su aplicación sea revisada. Si su solicitud está rechazada, sus datos serán eliminados, así que no será necesaria ninguna acción adicional por ti. Si no fuera usted, por favor ignore este correo electrónico.
extra_html: Por favor revise <a href="%{terms_path}">las reglas de la instancia</a> y <a href="%{policy_path}">nuestros términos de servicio</a>.
subject: 'Mastodonte: Instrucciones de confirmación para %{instance}'
subject: 'Mastodon: Instrucciones de confirmación para %{instance}'
title: Verificar dirección de correo electrónico
email_changed:
explanation: 'El correo electrónico para su cuenta esta siendo cambiada a:'
extra: Si usted no ha cambiado su correo electrónico, es probable que alguien haya conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte al administrador de la instancia si usted no puede iniciar sesión.
subject: 'Mastodonte: Correo electrónico cambiado'
subject: 'Mastodon: Correo electrónico cambiado'
title: Nueva dirección de correo electrónico
password_change:
explanation: La contraseña de su cuenta a sido cambiada.
extra: Si usted no a cambiado su contraseña. es probable que alguien a conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte a el administrador de la instancia si usted esta bloqueado de su cuenta.
subject: 'Mastodonte: Contraseña cambiada'
subject: 'Mastodon: Contraseña cambiada'
title: Contraseña cambiada
reconfirmation_instructions:
explanation: Confirme la nueva dirección para cambiar su coreo electrónico.
extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodonte no cambiará hasta que accedas al vinculo arriba.
subject: 'Mastodonte: Confirme correo electrónico para %{instance}'
extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodon no cambiará hasta que accedas al vinculo arriba.
subject: 'Mastodon: Confirme correo electrónico para %{instance}'
title: Verifique dirección de correo electrónico
reset_password_instructions:
action: Cambiar contraseña
explanation: Solicitaste una nueva contraseña para tu cuenta.
extra: Si no solicitaste esto, por favor ignora este correo. Tu contraseña no cambiará hasta que tu accedas al vinculo arriba y crees una nueva.
subject: 'Mastodonte: Instrucciones para reiniciar contraseña'
subject: 'Mastodon: Instrucciones para reiniciar contraseña'
title: Reiniciar contraseña
two_factor_disabled:
explanation: La autenticación de dos factores para tu cuenta ha sido deshabilitada. Ahora puedes conectarte solamente usando la dirección de correo electrónico y la contraseña.
subject: 'Mastodonte: La autenticación de dos factores está deshabilitada'
subject: 'Mastodon: La autenticación de dos factores está deshabilitada'
title: 2FA desactivada
two_factor_enabled:
explanation: La autenticación de dos factores para tu cuenta ha sido habilitada. Se requiere un token generado por la aplicación TOTP emparejada para ingresar.
subject: 'Mastodonte: La autenticación de dos factores está habilitada'
subject: 'Mastodon: La autenticación de dos factores está habilitada'
title: 2FA activada
two_factor_recovery_codes_changed:
explanation: Los códigos de recuperación previos han sido invalidados y se generaron códigos nuevos.
subject: 'Mastodonte: Los códigos de recuperación de dos factores fueron regenerados'
subject: 'Mastodon: Los códigos de recuperación de dos factores fueron regenerados'
title: Códigos de recuperación 2FA cambiados
unlock_instructions:
subject: 'Mastodonte: Instrucciones para desbloquear'
subject: 'Mastodon: Instrucciones para desbloquear'
omniauth_callbacks:
failure: No podemos autentificarle desde %{kind} debido a "%{reason}".
success: Autentificado con éxito desde la cuenta %{kind} .

View File

@ -38,6 +38,7 @@ uk:
application: Додаток
callback_url: URL зворотнього виклику
delete: Видалити
empty: У вас немає створених додатків.
name: Назва
new: Новий додаток
scopes: Області видимості
@ -125,6 +126,7 @@ uk:
read: читати усі дані вашого облікового запису
read:accounts: бачити інформацію про облікові записи
read:blocks: бачити Ваші блокування
read:bookmarks: бачити ваші закладки
read:favourites: бачити Ваші вподобані пости
read:filters: бачити Ваші фільтри
read:follows: бачити Ваші підписки
@ -137,6 +139,7 @@ uk:
write: змінювати усі дані вашого облікового запису
write:accounts: змінювати ваш профіль
write:blocks: блокувати облікові записи і домени
write:bookmarks: додавати пости в закладки
write:favourites: вподобані статуси
write:filters: створювати фільтри
write:follows: підписуйтесь на людей

View File

@ -198,11 +198,13 @@ el:
change_email_user: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target}
confirm_user: Ο/Η %{name} επιβεβαίωσε τη διεύθυνση email του χρήστη %{target}
create_account_warning: Ο/Η %{name} έστειλε προειδοποίηση προς %{target}
create_announcement: Νέα ανακοίνωση %{target} από %{name}
create_custom_emoji: Ο/Η %{name} ανέβασε νέο emoji %{target}
create_domain_allow: Ο/Η %{name} έβαλε τον τομέα %{target} σε λευκή λίστα
create_domain_block: Ο/Η %{name} μπλόκαρε τον τομέα %{target}
create_email_domain_block: Ο/Η %{name} έβαλε τον τομέα email %{target} σε μαύρη λίστα
demote_user: Ο/Η %{name} υποβίβασε το χρήστη %{target}
destroy_announcement: Διαγραφή ανακοίνωσης %{target} από %{name}
destroy_custom_emoji: Ο/Η %{name} κατέστρεψε το emoji %{target}
destroy_domain_allow: Ο/Η %{name} αφαίρεσε τον τομέα %{target} από λίστα εγκρίσεων
destroy_domain_block: Ο/Η %{name} ξεμπλόκαρε τον τομέα %{target}
@ -224,10 +226,22 @@ el:
unassigned_report: Ο/Η %{name} αποδέσμευσε την καταγγελία %{target}
unsilence_account: Ο/Η %{name} ήρε την αποσιώπηση του λογαριασμού του/της %{target}
unsuspend_account: Ο/Η %{name} ήρε την παύση του λογαριασμού του χρήστη %{target}
update_announcement: Ενημέρωση ανακοίνωσης %{target} από %{name}
update_custom_emoji: Ο/Η %{name} ενημέρωσε το emoji %{target}
update_status: Ο/Η %{name} ενημέρωσε την κατάσταση του/της %{target}
deleted_status: "(διαγραμμένη δημοσίευση)"
title: Αρχείο ελέγχου
announcements:
edit:
title: Ενημέρωση ανακοίνωσης
empty: Δεν βρέθηκε ανακοίνωση.
live: Ενεργές
new:
create: Δημιουργία ανακοίνωσης
title: Νέα ανακοίνωση
published: Δημοσιευμένη
time_range: Χρονική διάρκεια
title: Ανακοινώσεις
custom_emojis:
assign_category: Κατηγορία
by_domain: Τομέας
@ -372,6 +386,8 @@ el:
title: Προσκλήσεις
pending_accounts:
title: Λογαριασμοί σε αναμονή (%{count})
relationships:
title: Σχέσεις %{acct}
relays:
add_new: Πρόσθεσε νέο ανταποκριτή (relay)
delete: Διαγραφή
@ -655,6 +671,9 @@ el:
hint_html: "<strong>Συμβουλή:</strong> Δεν θα σου ζητήσουμε τον κωδικό ασφαλείας σου ξανά για την επόμενη ώρα."
invalid_password: Μη έγκυρο συνθηματικό
prompt: Επιβεβαίωση συνθηματικού για συνέχεια
date:
formats:
default: "%b %d, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}ω"
@ -731,6 +750,7 @@ el:
hint_html: "<strong>Τι είναι οι προβεβλημένες ταμπέλες;</strong> Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ωραίος τρόπος να παρακολουθείς κάποια δημιουργία ή ένα μακροπρόθεσμο έργο."
filters:
contexts:
account: Προφίλ
home: Αρχική ροή
notifications: Ειδοποιήσεις
public: Δημόσιες ροές
@ -755,6 +775,8 @@ el:
all: Όλα
changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν!
copy: Αντιγραφή
delete: Διαγραφή
edit: Ενημέρωση
no_batch_actions_available: Δεν υπάρχουν ομαδικές ενέργειες σε αυτή τη σελίδα
order_by: Ταξινόμηση κατά
save_changes: Αποθήκευση αλλαγών
@ -926,11 +948,15 @@ el:
other: Άλλες
posting_defaults: Προεπιλογές δημοσίευσης
public_timelines: Δημόσιες ροές
reactions:
errors:
unrecognized_emoji: δεν αναγνωρίζεται ως emoji
relationships:
activity: Δραστηριότητα λογαριασμού
dormant: Αδρανείς
followers: Σε ακολουθούν
following: Ακολουθείς
invited: Προσκεκλημένοι
last_active: Τελευταία δραστηριότητα
most_recent: Πιο πρόσφατα
moved: Μετακόμισε

View File

@ -198,11 +198,13 @@ es-AR:
change_email_user: "%{name} cambió la dirección de correo electrónico del usuario %{target}"
confirm_user: "%{name} confirmó la dirección de correo del usuario %{target}"
create_account_warning: "%{name} envió una advertencia a %{target}"
create_announcement: "%{name} creó el nuevo anuncio %{target}"
create_custom_emoji: "%{name} subió nuevo emoji %{target}"
create_domain_allow: "%{name} aprobó el dominio %{target}"
create_domain_block: "%{name} bloqueó el dominio %{target}"
create_email_domain_block: "%{name} desaprobó el dominio de correo electrónico %{target}"
demote_user: "%{name} bajó de nivel al usuario %{target}"
destroy_announcement: "%{name} eliminó el anuncio %{target}"
destroy_custom_emoji: "%{name} destruyó el emoji %{target}"
destroy_domain_allow: "%{name} quitó el dominio %{target} de los permitidos"
destroy_domain_block: "%{name} desbloqueó el dominio %{target}"
@ -224,10 +226,22 @@ es-AR:
unassigned_report: "%{name} desasignó la denuncia %{target}"
unsilence_account: "%{name} quitó el silenciado de la cuenta de %{target}"
unsuspend_account: "%{name} quitó la suspensión de la cuenta de %{target}"
update_announcement: "%{name} actualizó el anuncio %{target}"
update_custom_emoji: "%{name} actualizó el emoji %{target}"
update_status: "%{name} actualizó el estado de %{target}"
deleted_status: "(estado borrado)"
title: Registro de auditoría
announcements:
edit:
title: Editar anuncio
empty: No se encontraron anuncios.
live: En vivo
new:
create: Crear anuncio
title: Nuevo anuncio
published: Publicados
time_range: Rango de tiempo
title: Anuncios
custom_emojis:
assign_category: Asignar categoría
by_domain: Dominio
@ -657,6 +671,9 @@ es-AR:
hint_html: "<strong>Dato:</strong> No volveremos a preguntarte por la contraseña durante la siguiente hora."
invalid_password: Contraseña no válida
prompt: Confirmar contraseña para seguir
date:
formats:
default: "%Y.%b.%d"
datetime:
distance_in_words:
about_x_hours: "%{count}h"
@ -758,6 +775,8 @@ es-AR:
all: Todas
changes_saved_msg: "¡Cambios guardados exitosamente!"
copy: Copiar
delete: Eliminar
edit: Editar
no_batch_actions_available: No hay acciones por lotes disponibles en esta página
order_by: Ordenar por
save_changes: Guardar cambios
@ -929,6 +948,9 @@ es-AR:
other: Otros
posting_defaults: Configuración predeterminada de publicaciones
public_timelines: Líneas temporales públicas
reactions:
errors:
unrecognized_emoji: no es un emoji conocido
relationships:
activity: Actividad de la cuenta
dormant: Inactivas

View File

@ -1,32 +1,32 @@
---
es:
about:
about_hashtag_html: Estos son barritadas públicas etiquetadas con <strong>#%{hashtag}</strong>. Puedes interactuar con ellas si tienes una cuenta en el fediverso.
about_mastodon_html: Mastodonte es una red social basada en protocolos web abiertos y Programas Libres y de Código Abierto - Plica/Foss -. Está descentralizado como el correo electrónico!
about_hashtag_html: Estos son toots públicos etiquetados con <strong>#%{hashtag}</strong>. Puedes interactuar con ellos si tienes una cuenta en cualquier parte del fediverso.
about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!'
about_this: Información
active_count_after: activo
active_footnote: Usuarios Activos Mensuales (UAM)
administered_by: 'Administrado por:'
api: Interfaz de Programación de la Aplicación
api: API
apps: Aplicaciones móviles
apps_platforms: Utiliza Mastodonte desde iOS, Android y otras plataformas
apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas
browse_directory: Navega por el directorio de perfiles y filtra por intereses
browse_local_posts: Explora en vivo los posts públicos de este servidor
browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon
contact: Contacto
contact_missing: No especificado
contact_unavailable: No disponible
contact_unavailable: N/A
discover_users: Descubrir usuarios
documentation: Documentación
federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodonte y más allá.
federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá.
get_apps: Probar una aplicación móvil
hosted_on: Mastodonte huesped en %{domain}
hosted_on: Mastodon hosteado en %{domain}
instance_actor_flash: |
Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual.
Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio.
learn_more: Aprenda más
learn_more: Aprende más
privacy_policy: Política de privacidad
see_whats_happening: Vea lo que está pasando
see_whats_happening: Ver lo que está pasando
server_stats: 'Datos del servidor:'
source_code: Código fuente
status_count_after:
@ -42,16 +42,16 @@ es:
rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor.
silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor.
suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos.
unavailable_content_html: Mastodonte generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.
unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.
user_count_after:
one: usuario
other: usuarios
user_count_before: Inicio de
what_is_mastodon: "¿Qué es Mastodonte?"
user_count_before: Tenemos
what_is_mastodon: "¿Qué es Mastodon?"
accounts:
choices_html: 'Elecciones de %{name}:'
endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí.
featured_tags_hint: Puede presentar etiquetas específicas que se mostrarán aquí.
featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí.
follow: Seguir
followers:
one: Seguidor
@ -198,11 +198,13 @@ es:
change_email_user: "%{name} ha cambiado la dirección de correo del usuario %{target}"
confirm_user: "%{name} confirmó la dirección de correo del usuario %{target}"
create_account_warning: "%{name} envió una advertencia a %{target}"
create_announcement: "%{name} creó el nuevo anuncio %{target}"
create_custom_emoji: "%{name} subió un nuevo emoji %{target}"
create_domain_allow: "%{name} ha añadido a la lista blanca el dominio %{target}"
create_domain_block: "%{name} bloqueó el dominio %{target}"
create_email_domain_block: "%{name} puso en lista negra el dominio de correos %{target}"
demote_user: "%{name} degradó al usuario %{target}"
destroy_announcement: "%{name} eliminó el anuncio %{target}"
destroy_custom_emoji: "%{name} destruyó el emoji %{target}"
destroy_domain_allow: "%{name} ha eliminado el dominio %{target} de la lista blanca"
destroy_domain_block: "%{name} desbloqueó el dominio %{target}"
@ -224,10 +226,22 @@ es:
unassigned_report: "%{name} ha desasignado la denuncia %{target}"
unsilence_account: "%{name} desactivó el silenciado de la cuenta de %{target}"
unsuspend_account: "%{name} desactivó la suspensión de la cuenta de %{target}"
update_announcement: "%{name} actualizó el anuncio %{target}"
update_custom_emoji: "%{name} actualizó el emoji %{target}"
update_status: "%{name} actualizó el estado de %{target}"
deleted_status: "(estado borrado)"
title: Log de auditoría
announcements:
edit:
title: Editar anuncio
empty: No se encontraron anuncios.
live: En vivo
new:
create: Crear anuncio
title: Nuevo anuncio
published: Publicados
time_range: Intervalo de tiempo
title: Anuncios
custom_emojis:
assign_category: Asignar categoría
by_domain: Dominio
@ -270,11 +284,11 @@ es:
feature_registrations: Registros
feature_relay: Relés de federación
feature_spam_check: Contra-spam
feature_timeline_preview: Vista previa de la cronología
feature_timeline_preview: Vista previa de la nea de tiempo
features: Características
hidden_service: Federación con servicios ocultos
open_reports: informes abiertos
pending_tags: etiquetas esperando revisión
pending_tags: hashtags esperando revisión
pending_users: usuarios esperando por revisión
recent_users: Usuarios recientes
search: Búsqueda por texto completo
@ -433,8 +447,8 @@ es:
desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales
title: Publicar estadísticas locales acerca de actividad de usuario
bootstrap_timeline_accounts:
desc_html: Separa con comas los nombres de usuaria. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacia, se tomará como valor por defecto a todas las administradoras locales.
title: Seguimientos predeterminados para usuarias nuevas
desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales.
title: Seguimientos predeterminados para usuarios nuevos
contact_information:
email: Correo de trabajo
username: Nombre de usuario
@ -452,7 +466,7 @@ es:
domain_blocks_rationale:
title: Mostrar la razón de ser
enable_bootstrap_timeline_accounts:
title: Habilitar seguimientos predeterminados para nuevas usuarias
title: Habilitar seguimientos predeterminados para usuarios nuevos
hero:
desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia
title: Imagen de portada
@ -486,7 +500,7 @@ es:
title: Modo de registros
show_known_fediverse_at_about_page:
desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales.
title: Mostrar fediverso conocido en la vista previa de la cronología
title: Mostrar fediverso conocido en la vista previa de la historia
show_staff_badge:
desc_html: Mostrar un parche de staff en la página de un usuario
title: Mostrar parche de staff
@ -497,28 +511,28 @@ es:
desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML
title: Información extendida personalizada
site_short_description:
desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodonte y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia.
desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia.
title: Descripción corta de la instancia
site_terms:
desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML
title: Términos de servicio personalizados
site_title: Nombre de instancia
spam_check_enabled:
desc_html: Mastodonte puede silenciar y reportar cuentas automáticamente usando medidas como detectar cuentas que envían mensajes no solicitados repetidos. Puede que haya falsos positivos.
desc_html: Mastodon puede silenciar y reportar cuentas automáticamente usando medidas como detectar cuentas que envían mensajes no solicitados repetidos. Puede que haya falsos positivos.
title: Contra-spam
thumbnail:
desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px
title: Portada de instancia
timeline_preview:
desc_html: Mostrar cronología pública en la portada
title: Permita acceso no autentificado a la cronología pública
desc_html: Mostrar nea de tiempo pública en la portada
title: Previsualización
title: Ajustes del sitio
trendable_by_default:
desc_html: Afecta a etiquetas que no han sido previamente rechazadas
title: Permitir que las etiquetas sean tendencia sin revisión previa
trends:
desc_html: Mostrar públicamente etiquetas previamente revisadas que son tendencia
title: Etiquetas que son tendencia
desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia
title: Hashtags de tendencia
statuses:
back_to_account: Volver a la cuenta
batch:
@ -543,14 +557,14 @@ es:
last_active: Última actividad
most_popular: Más popular
most_recent: Más reciente
name: Etiqueta
name: Hashtag
review: Estado de revisión
reviewed: Revisado
title: Etiquetas
trending_right_now: En tendencia ahora mismo
unique_uses_today: "%{count} publicando hoy"
unreviewed: No revisado
updated_msg: Etiquetas actualizadas con éxito
updated_msg: Hashtags actualizados exitosamente
title: Administración
warning_presets:
add_new: Añadir nuevo
@ -567,7 +581,7 @@ es:
body_remote: Alguien de %{domain} a reportado a %{target}
subject: Nuevo reporte para la %{instance} (#%{id})
new_trending_tag:
body: 'La etiqueta #%{name} es tendencia hoy, pero no ha sido revisada previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario evitando volver a ver este mensaje.'
body: 'El hashtag #%{name} está en tendencia hoy, pero no ha sido revisado previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario como para no volver a ver esto.'
subject: Nuevo hashtag para revisión en %{instance} (#%{name})
aliases:
add_new: Crear alias
@ -577,7 +591,7 @@ es:
remove: Desvincular alias
appearance:
advanced_web_interface: Interfaz web avanzada
advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, cronología federada, cualquier número de listas y etiquetas.'
advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, nea de tiempo federada, cualquier número de listas y etiquetas.'
animations_and_accessibility: Animaciones y accesibilidad
confirmation_dialogs: Diálogos de confirmación
discovery: Descubrir
@ -610,9 +624,9 @@ es:
delete_account: Borrar cuenta
delete_account_html: Si desea eliminar su cuenta, puede <a href="%{path}">proceder aquí</a>. Será pedido de una confirmación.
description:
prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodonte!"
prefix_sign_up: "¡Únete a Mastodonte hoy!"
suffix: "¡Con una cuenta podrás seguir a gente, publicar novedades e intercambiar mensajes con usuarios de cualquier servidor de Mastodonte y más!"
prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodon!"
prefix_sign_up: "¡Únete a Mastodon hoy!"
suffix: "¡Con una cuenta podrás seguir a gente, publicar novedades e intercambiar mensajes con usuarios de cualquier servidor de Mastodon y más!"
didnt_get_confirmation: "¿No recibió el correo de confirmación?"
forgot_password: "¿Olvidaste tu contraseña?"
invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo.
@ -657,6 +671,9 @@ es:
hint_html: "<strong>Tip:</strong> No volveremos a preguntarte por la contraseña durante la siguiente hora."
invalid_password: Contraseña incorrecta
prompt: Confirmar contraseña para seguir
date:
formats:
default: "%b %d, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}h"
@ -708,7 +725,7 @@ es:
content: Lo sentimos, algo ha funcionado mal por nuestra parte.
title: Esta página no es correcta
'503': La página no se ha podido cargar debido a un fallo temporal del servidor.
noscript_html: Para usar la aplicación web de Mastodonte, por favor activa Javascript. Alternativamente, prueba alguna de las <a href="%{apps_path}">aplicaciones nativas</a> para Mastodonte para tu plataforma.
noscript_html: Para usar la aplicación web de Mastodon, por favor activa Javascript. Alternativamente, prueba alguna de las <a href="%{apps_path}">aplicaciones nativas</a> para Mastodon para tu plataforma.
existing_username_validator:
not_found: no pudo encontrar un usuario local con ese nombre de usuario
not_found_multiple: no pudo encontrar %{usernames}
@ -729,14 +746,14 @@ es:
featured_tags:
add_new: Añadir nuevo
errors:
limit: Alcanzaste el máximo de etiquetados
hint_html: "<strong>¿Qué son las etiquetas destacadas?</strong> Se muestran de forma prominente en tu perfil público y permiten a las personas usuarias navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de obras creativas o proyectos a largo plazo."
limit: Ya has alcanzado la cantidad máxima de hashtags
hint_html: "<strong>¿Qué son las etiquetas destacadas?</strong> Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo."
filters:
contexts:
account: Perfiles
home: Cronología propia
home: Timeline propio
notifications: Notificaciones
public: Cronología pública
public: Timeline público
thread: Conversaciones
edit:
title: Editar filtro
@ -755,9 +772,11 @@ es:
resources: Recursos
trending_now: Tendencia ahora
generic:
all: Todas
all: Todos
changes_saved_msg: "¡Cambios guardados con éxito!"
copy: Copiar
delete: Eliminar
edit: Editar
no_batch_actions_available: No hay acciones por lotes disponibles en esta página
order_by: Ordenar por
save_changes: Guardar cambios
@ -928,7 +947,11 @@ es:
preferences:
other: Otros
posting_defaults: Configuración por defecto de publicaciones
public_timelines: Cronologías públicas
public_timelines: Líneas de tiempo públicas
reactions:
errors:
limit_reached: Límite de reacciones diferentes alcanzado
unrecognized_emoji: no es un emoji conocido
relationships:
activity: Actividad de la cuenta
dormant: Inactivo
@ -989,7 +1012,7 @@ es:
weibo: Weibo
current_session: Sesión actual
description: "%{browser} en %{platform}"
explanation: Estos son los navegadores web conectados actualmente en tu cuenta de Mastodonte.
explanation: Estos son los navegadores web conectados actualmente en tu cuenta de Mastodon.
ip: IP
platforms:
adobe_air: Adobe Air
@ -1018,7 +1041,7 @@ es:
development: Desarrollo
edit_profile: Editar perfil
export: Exportar información
featured_tags: Etiquetas destacadas
featured_tags: Hashtags destacados
identity_proofs: Pruebas de identidad
import: Importar
import_and_export: Importar y exportar
@ -1042,8 +1065,8 @@ es:
boosted_from_html: Impulsado desde %{acct_link}
content_warning: 'Alerta de contenido: %{warning}'
disallowed_hashtags:
one: 'contenía una etiqueta no permitida: %{tags}'
other: 'contenía las etiquetas no permitidas: %{tags}'
one: 'contenía un hashtag no permitido: %{tags}'
other: 'contenía los hashtags no permitidos: %{tags}'
language_detection: Detección automática de idioma
open_in_web: Abrir en web
over_character_limit: Límite de caracteres de %{max} superado
@ -1069,7 +1092,7 @@ es:
public: Público
public_long: Todos pueden ver
unlisted: Público, pero no mostrar en la historia federada
unlisted_long: Todos pueden ver, pero no está listado en las cronologías públicas
unlisted_long: Todos pueden ver, pero no está listado en las neas de tiempo públicas
stream_entries:
pinned: Toot fijado
reblogged: retooteado
@ -1082,9 +1105,9 @@ es:
<h3 id="collect">¿Qué información recogemos?</h3>
<ul>
<li><em>Información básica sobre su cuenta</em>: Si se registra en este servidor, se le requerirá un nombre de persona usuaria, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuaria, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente</li>
<li><em>Publicaciones, seguimiento y otra información pública</em>: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de reenviar o marcar como favorito otra publicación es siempre pública.</li>
<li><em>Publicaciones directas y sólo para seguidoras</em>: Todos los mensajes se almacenan y procesan en el servidor. Las publicaciones sólo para seguidoras se entregan a las seguidoras y usuarias que se mencionan en ellas, y los mensajes directos se entregan sólo a las usuarias que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidoras. Puede cambiar una opción para aprobar y rechazar nuevas seguidoras manualmente en la configuración <em>Por favor, tenga en cuenta que las operadoras del servidor y de cualquier servidor receptor pueden ver dichos mensajes</em>, y que las destinatarias pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. <em>No comparta ninguna información peligrosa en Mastodonte.</em></li>
<li><em>Información básica sobre su cuenta</em>: Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente</li>
<li><em>Publicaciones, seguimiento y otra información pública</em>: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.</li>
<li><em>Publicaciones directas y sólo para seguidores</em>: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración <em>Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes</em>, y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. <em>No comparta ninguna información peligrosa en Mastodon.</em></li>
<li><em>Direcciones IP y otros metadatos</em>: Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.</li>
</ul>
@ -1095,7 +1118,7 @@ es:
<p>Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:</p>
<ul>
<li>Para proporcionar la funcionalidad principal de Mastodonte. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.</li>
<li>Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.</li>
<li>Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.</li>
<li>La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.</li>
</ul>
@ -1135,9 +1158,9 @@ es:
<p>No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.</p>
<p>Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidoras se envían a los servidores donde residen tus seguidoras, y los mensajes directos se envían a los servidores de las destinatarias, en la medida en que dichas seguidoras o destinatarias residan en un servidor diferente.</p>
<p>Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.</p>
<p>Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidoras, sus listas, todos sus mensajes y sus favoritas. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.</p>
<p>Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.</p>
<hr class="spacer" />
@ -1160,9 +1183,9 @@ es:
<p>Adaptado originalmente desde <a href="https://github.com/discourse/discourse">la política de privacidad de Discourse</a>.</p>
title: Términos del Servicio y Políticas de Privacidad de %{instance}
themes:
contrast: Mastodonte (Alto contraste)
default: Mastodonte (Oscuro)
mastodon-light: Mastodonte (claro)
contrast: Alto contraste
default: Mastodon
mastodon-light: Mastodon (claro)
time:
formats:
default: "%d de %b del %Y, %H:%M"
@ -1185,7 +1208,7 @@ es:
wrong_code: "¡El código ingresado es inválido! ¿El dispositivo y tiempo del servidor están correctos?"
user_mailer:
backup_ready:
explanation: Has solicitado una copia completa de tu cuenta de Mastodonte. ¡Ya está preparada para descargar!
explanation: Has solicitado una copia completa de tu cuenta de Mastodon. ¡Ya está preparada para descargar!
subject: Tu archivo está preparado para descargar
title: Descargar archivo
warning:
@ -1211,15 +1234,15 @@ es:
edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta.
explanation: Aquí hay algunos consejos para empezar
final_action: Empezar a publicar
final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la ristra teporal local y con "etiquetas". Podrías querer presentarte con la "etiqueta" #presentaciones o #nuevascuentas.'
final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.'
full_handle: Su sobrenombre completo
full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia.
review_preferences_action: Cambiar preferencias
review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs".
subject: Bienvenido a Mastodonte
tip_federated_timeline: La cronología federada es una vista de la red de Mastodonte. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa.
tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las cronologías local y federada.
tip_local_timeline: La cronología local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos!
subject: Bienvenido a Mastodon
tip_federated_timeline: La nea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa.
tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada.
tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos!
tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas!
tips: Consejos
title: Te damos la bienvenida a bordo, %{name}!
@ -1231,5 +1254,5 @@ es:
seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles.
signed_in_as: 'Sesión iniciada como:'
verification:
explanation_html: 'Puedes <strong> verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil </strong>. Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodonte. El vínculo en tu sitio <strong> debe </strong> tener un atributo <code> rel="me"</code>. El texto del vínculo no importa. Aquí un ejemplo:'
explanation_html: 'Puedes <strong> verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil </strong>. Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodon. El vínculo en tu sitio <strong> debe </strong> tener un atributo <code> rel="me"</code>. El texto del vínculo no importa. Aquí un ejemplo:'
verification: Verificación

View File

@ -198,11 +198,13 @@ eu:
change_email_user: "%{name}(e)k %{target}(r)en e-mail helbidea aldatu du"
confirm_user: "%{name}(e)k %{target}(r)en e-mail helbidea berretsi du"
create_account_warning: "%{name}-k abisua bidali dio %{target}-ri"
create_announcement: "%{name}(e)k %{target}(e)rako iragarpen berria sortu du"
create_custom_emoji: "%{name}(e)k emoji berria kargatu du %{target}"
create_domain_allow: "%{name}(e)k %{target} domeinua zerrenda zurian zartu du"
create_domain_block: "%{name}(e)k %{target} domeinua blokeatu du"
create_email_domain_block: "%{name}(e)k %{target} e-mail helbideen domeinua zerrenda beltzean sartu du"
demote_user: "%{name}(e)k %{target} mailaz jaitsi du"
destroy_announcement: "%{name}(e)k %{target}(e)rako iragarpena kendu du"
destroy_custom_emoji: "%{name} erabiltzaileak %{target} emojia suntsitu du"
destroy_domain_allow: "%{name}(e)k %{target} domeinua zerrenda zuritik kendu du"
destroy_domain_block: "%{name}(e)k %{target} domeinua desblokeatu du"
@ -224,10 +226,22 @@ eu:
unassigned_report: "%{name}(e)k %{target} txotenaren esleipena atzera bota du"
unsilence_account: "%{name}(e)k %{target} isilarazteko agindua kendu du"
unsuspend_account: "%{name}(e)k %{target} kontuaren kanporaketa atzera bota du"
update_announcement: "%{name}(e)k %{target}(e)rako iragarpena eguneratu du du"
update_custom_emoji: "%{name}(e)k %{target} emoji-a eguneratu du"
update_status: "%{name} (e)k %{target}(r)en mezua aldatu du"
deleted_status: "(ezabatutako mezua)"
title: Auditoria-egunkaria
announcements:
edit:
title: Editatu iragarpena
empty: Ez da iragarpenik aurkitu.
live: Zuzenean
new:
create: Sortu iragarpena
title: Iragarpen berria
published: Argitaratua
time_range: Denbora-tartea
title: Iragarpenak
custom_emojis:
assign_category: Esleitu kategoria
by_domain: Domeinua
@ -372,6 +386,8 @@ eu:
title: Gonbidapenak
pending_accounts:
title: Zain dauden kontuak (%{count})
relationships:
title: "%{acct}(e)ren erlazioak"
relays:
add_new: Gehitu hari errelea
delete: Ezabatu
@ -655,6 +671,9 @@ eu:
hint_html: "<strong>Oharra:</strong> Ez dizugu pasahitza berriro eskatuko ordu batez."
invalid_password: Pasahitz baliogabea
prompt: Berretsi pasahitza jarraitzeko
date:
formats:
default: "%Y(e)ko %b %d"
datetime:
distance_in_words:
about_x_hours: "%{count}h"
@ -731,6 +750,7 @@ eu:
hint_html: "<strong>Zer dira nabarmendutako traolak?</strong> Zure profilean toki nabarmendu batean agertzen dira eta jendeari traola hau daukaten mezu publikoak arakatzea ahalbidetzen diote. Sormen lana edo epe luzerako proiektuak jarraitzeko primerakoak dira."
filters:
contexts:
account: Profilak
home: Hasierako denbora-lerroa
notifications: Jakinarazpenak
public: Denbora-lerro publikoak
@ -755,6 +775,8 @@ eu:
all: Denak
changes_saved_msg: Aldaketak ongi gorde dira!
copy: Kopiatu
delete: Ezabatu
edit: Editatu
no_batch_actions_available: Ez dago ekintza masiborik orri honetan eskuragarri
order_by: Ordenatze-irizpidea
save_changes: Gorde aldaketak
@ -926,11 +948,15 @@ eu:
other: Denetarik
posting_defaults: Bidalketarako lehenetsitakoak
public_timelines: Denbora-lerro publikoak
reactions:
errors:
unrecognized_emoji: ez da emoji ezaguna
relationships:
activity: Kontuaren aktibitatea
dormant: Ez aktiboa
followers: Jarraitzaileak
following: Jarraitzen
invited: Gonbidatuta
last_active: Azkenekoz aktiboa
most_recent: Azkenak
moved: Lekuz aldatua

View File

@ -200,11 +200,13 @@ hu:
change_email_user: "%{name} megváltoztatta %{target} felhasználó e-mail címét"
confirm_user: "%{name} megerősítette e-mail címét: %{target}"
create_account_warning: "%{name} figyelmeztetést küldött %{target} felhasználónak"
create_announcement: "%{name} új közleményt hozott létre %{target}"
create_custom_emoji: "%{name} új emojit töltött fel: %{target}"
create_domain_allow: "%{name} engedélyező listára vette %{target} domaint"
create_domain_block: "%{name} letiltotta az alábbi domaint: %{target}"
create_email_domain_block: "%{name} feketelistára tette az alábbi e-mail domaint: %{target}"
demote_user: "%{name} lefokozta az alábbi felhasználót: %{target}"
destroy_announcement: "%{name} törölte a közleményt %{target}"
destroy_custom_emoji: "%{name} törölte az emojit: %{target}"
destroy_domain_allow: "%{name} leszedte %{target} domaint az engedélyező listáról"
destroy_domain_block: "%{name} engedélyezte az alábbi domaint: %{target}"
@ -226,10 +228,22 @@ hu:
unassigned_report: "%{name} törölte a %{target} bejelentés hozzárendelését"
unsilence_account: "%{name} feloldotta a némítást %{target} felhasználói fiókján"
unsuspend_account: "%{name} feloldotta %{target} felhasználói fiókjának felfüggesztését"
update_announcement: "%{name} frissítette a közleményt %{target}"
update_custom_emoji: "%{name} frissítette az alábbi emojit: %{target}"
update_status: "%{name} frissítette %{target} felhasználó tülkjét"
deleted_status: "(törölt tülk)"
title: Audit napló
announcements:
edit:
title: Közlemény szerkesztése
empty: Nincs közlemény.
live: Élő
new:
create: Közlemény létrehozása
title: Új közlemény
published: Közzétéve
time_range: Időintervallum
title: Közlemények
custom_emojis:
assign_category: Kategóriák
by_domain: Domain
@ -374,6 +388,8 @@ hu:
title: Meghívások
pending_accounts:
title: Függőben lévő fiókok (%{count})
relationships:
title: "%{acct} kapcsolatai"
relays:
add_new: Új relé hozzáadása
delete: Törlés
@ -657,6 +673,9 @@ hu:
hint_html: "<strong>Hasznos:</strong> Nem fogjuk megint a jelszavadat kérdezni a következő órában."
invalid_password: Érvénytelen jelszó
prompt: Add meg a jelszót a folytatáshoz
date:
formats:
default: "%Y.%b.%d."
datetime:
distance_in_words:
about_x_hours: "%{count}ó"
@ -733,6 +752,7 @@ hu:
hint_html: "<strong>Mik a kiemelt hashtagek?</strong> Ezek állandóan megjelennek a nyilvános profilodon és lehetővé teszik, hogy mások kifejezetten az ezekhez tartozó tülkjeidet böngésszék. Jó eszköz ez kreatív munkák vagy hosszútávú projektek nyomonkövetésére."
filters:
contexts:
account: Profil
home: Saját idővonal
notifications: Értesítések
public: Nyilvános idővonalak
@ -757,6 +777,8 @@ hu:
all: Mind
changes_saved_msg: A változásokat elmentettük!
copy: Másolás
delete: Törlés
edit: Szerkesztés
no_batch_actions_available: Ezen az oldalon nem elérhetőek kötegelt műveletek
order_by: Rendezés
save_changes: Változások mentése
@ -928,11 +950,15 @@ hu:
other: Egyéb
posting_defaults: Tülkölés alapértelmezései
public_timelines: Nyilvános idővonalak
reactions:
errors:
unrecognized_emoji: nem ismert emoji
relationships:
activity: Fiók aktivitás
dormant: Elhagyott
followers: Követők
following: Követve
invited: Meghívva
last_active: Utoljára aktív
most_recent: Legutóbbi
moved: Átköltöztetve

View File

@ -194,11 +194,13 @@ ja:
change_email_user: "%{name} さんが %{target} さんのメールアドレスを変更しました"
confirm_user: "%{name} さんが %{target} さんのメールアドレスを確認済みにしました"
create_account_warning: "%{name} さんが %{target} さんに警告メールを送信しました"
create_announcement: "%{name} さんが新しいお知らせ %{target} を作成しました"
create_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を追加しました"
create_domain_allow: "%{name} さんがドメイン %{target} をドメイン用ホワイトリストに追加しました"
create_domain_block: "%{name} さんがドメイン %{target} をブロックしました"
create_email_domain_block: "%{name} さんがドメイン %{target} をメールアドレス用ブラックリストに追加しました"
demote_user: "%{name} さんが %{target} さんを降格しました"
destroy_announcement: "%{name} さんがお知らせ %{target} を削除しました"
destroy_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を削除しました"
destroy_domain_allow: "%{name} さんがドメイン %{target} をドメイン用ホワイトリストから外しました"
destroy_domain_block: "%{name} さんがドメイン %{target} のブロックを外しました"
@ -220,12 +222,22 @@ ja:
unassigned_report: "%{name} さんが通報 %{target} の担当を外しました"
unsilence_account: "%{name} さんが %{target} さんのサイレンスを解除しました"
unsuspend_account: "%{name} さんが %{target} さんの停止を解除しました"
update_announcement: "%{name} さんがお知らせ %{target} を更新しました"
update_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を更新しました"
update_status: "%{name} さんが %{target} さんの投稿を更新しました"
deleted_status: "(削除済)"
title: 操作履歴
announcements:
title: 告知
edit:
title: お知らせを編集
empty: お知らせはありません
live: 公開中
new:
create: お知らせを作成
title: お知らせを追加
published: 公開日時
time_range: 期間
title: お知らせ
custom_emojis:
assign_category: カテゴリーを割り当て
by_domain: ドメイン
@ -368,6 +380,8 @@ ja:
title: 招待
pending_accounts:
title: 承認待ちアカウント (%{count})
relationships:
title: "%{acct} さんのフォロー・フォロワー"
relays:
add_new: リレーを追加
delete: 削除
@ -649,6 +663,9 @@ ja:
hint_html: 以後 1 時間はパスワードの再入力を求めません
invalid_password: パスワードが間違っています
prompt: 続行するにはパスワードを入力してください
date:
formats:
default: "%Y年%m月%d日"
datetime:
distance_in_words:
about_x_hours: "%{count}時間"
@ -725,6 +742,7 @@ ja:
hint_html: "<strong>注目のハッシュタグとは?</strong>プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。"
filters:
contexts:
account: プロフィール
home: ホームタイムライン
notifications: 通知
public: 公開タイムライン
@ -919,11 +937,16 @@ ja:
other: その他
posting_defaults: デフォルトの投稿設定
public_timelines: 公開タイムライン
reactions:
errors:
limit_reached: リアクションの種類が上限に達しました
unrecognized_emoji: 認識できない絵文字
relationships:
activity: 活動
dormant: 非アクティブ
followers: フォロワー
following: フォロー中
invited: 招待済み
last_active: 最後の活動
most_recent: 新着
moved: 引っ越し済み
@ -988,7 +1011,7 @@ ja:
firefox_os: Firefox OS
ios: iOS
linux: Linux
mac: Mac
mac: macOS
other: 不明なプラットフォーム
windows: Windows
windows_mobile: Windows Mobile

View File

@ -372,6 +372,8 @@ kk:
title: Шақырулар
pending_accounts:
title: Күтілген аккаунттар (%{count})
relationships:
title: "%{acct} байланыстары"
relays:
add_new: Жаңа арна қосу
delete: Өшіру
@ -915,11 +917,15 @@ kk:
other: Басқа
posting_defaults: Пост жазу негіздері
public_timelines: Ашық таймлайндар
reactions:
errors:
limit_reached: Түрлі реакциялар лимиті толды
relationships:
activity: Аккаунт белсенділігі
dormant: Ұйқысыз
followers: Оқырмандар
following: Жазылғандары
invited: Шақырылды
last_active: Соңғы белсенділік
most_recent: Ең соңғы
moved: Көшірілді

View File

@ -194,11 +194,13 @@ ko:
change_email_user: "%{name}이 %{target}의 이메일 주소를 변경했습니다"
confirm_user: "%{name}이 %{target}의 이메일 주소를 컨펌했습니다"
create_account_warning: "%{name}가 %{target}에게 경고 보냄"
create_announcement: "%{name} 님이 새 공지 %{target}을 만들었습니다"
create_custom_emoji: "%{name}이 새로운 에모지 %{target}를 추가했습니다"
create_domain_allow: "%{name} 님이 %{target} 도메인을 화이트리스트에 넣었습니다"
create_domain_block: "%{name}이 도메인 %{target}를 차단했습니다"
create_email_domain_block: "%{name}이 이메일 도메인 %{target}를 차단했습니다"
demote_user: "%{name}이 %{target}을 강등했습니다"
destroy_announcement: "%{name} 님이 공지 %{target}을 삭제했습니다"
destroy_custom_emoji: "%{name}이 %{target} 에모지를 삭제함"
destroy_domain_allow: "%{name} 님이 %{target} 도메인을 화이트리스트에서 제거하였습니다"
destroy_domain_block: "%{name}이 도메인 %{target}의 차단을 해제했습니다"
@ -220,10 +222,22 @@ ko:
unassigned_report: "%{name}이 리포트 %{target}을 할당 해제했습니다"
unsilence_account: "%{name}이 %{target}에 대한 침묵을 해제했습니다"
unsuspend_account: "%{name}이 %{target}에 대한 정지를 해제했습니다"
update_announcement: "%{name} 님이 공지 %{target}을 갱신했습니다"
update_custom_emoji: "%{name}이 에모지 %{target}를 업데이트 했습니다"
update_status: "%{name}이 %{target}의 상태를 업데이트 했습니다"
deleted_status: "(삭제됨)"
title: 감사 기록
announcements:
edit:
title: 공지사항 수정
empty: 공지를 찾을 수 없습니다.
live: 진행 중
new:
create: 공지사항 생성
title: 새 공지사항
published: 발행됨
time_range: 시간 범위
title: 공지사항
custom_emojis:
assign_category: 분류 지정
by_domain: 도메인
@ -368,6 +382,8 @@ ko:
title: 초대
pending_accounts:
title: 대기중인 계정 (%{count})
relationships:
title: "%{acct}의 관계"
relays:
add_new: 릴레이 추가
delete: 삭제
@ -649,6 +665,9 @@ ko:
hint_html: "<strong>팁:</strong> 한 시간 동안 다시 암호를 묻지 않을 것입니다."
invalid_password: 잘못된 암호
prompt: 계속하려면 암호 확인
date:
formats:
default: "%Y-%b-%d"
datetime:
distance_in_words:
about_x_hours: "%{count}시간"
@ -725,6 +744,7 @@ ko:
hint_html: "<strong>추천 해시태그가 무엇이죠?</strong> 당신의 공개 프로필 페이지에 눈에 띄게 표현 되며 사람들이 그 해시태그를 포함한 당신의 글을 찾아 볼 수 있도록 합니다. 창작활동이나 긴 기간을 가지는 프로젝트를 쭉 따라가기에 좋은 도구입니다."
filters:
contexts:
account: 프로필
home: 홈 타임라인
notifications: 알림
public: 퍼블릭 타임라인
@ -749,6 +769,8 @@ ko:
all: 모두
changes_saved_msg: 정상적으로 변경되었습니다!
copy: 복사
delete: 삭제
edit: 수정
no_batch_actions_available: 이 페이지에서 수행할 수 있는 일괄작업이 없습니다
order_by: 순서
save_changes: 변경 사항을 저장
@ -916,6 +938,10 @@ ko:
other: 기타
posting_defaults: 게시물 기본설정
public_timelines: 공개 타임라인
reactions:
errors:
limit_reached: 다른 리액션 제한에 도달했습니다
unrecognized_emoji: 인식 되지 않은 에모지입니다
relationships:
activity: 계정 활동
dormant: 휴면

View File

@ -21,6 +21,9 @@ nn:
federation_hint_html: Med ein konto på %{instance} kan du fylgja folk på kva som helst slags Mastod-tenar og meir.
get_apps: Prøv ein mobilapp
hosted_on: "%{domain} er vert for Mastodon"
instance_actor_flash: 'Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet.
'
learn_more: Lær meir
privacy_policy: Personvernsreglar
see_whats_happening: Sjå kva som skjer
@ -191,14 +194,17 @@ nn:
whitelisted: Kvitlista
action_logs:
actions:
assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv"
change_email_user: "%{name} endra e-postadressa til brukaren %{target}"
confirm_user: "%{name} stadfesta e-postadressa til brukaren %{target}"
create_account_warning: "%{name} sende ei åtvaring til %{target}"
create_announcement: "%{name} laget en ny kunngjøring %{target}"
create_custom_emoji: "%{name} lasta opp eit nytt kjensleteikn %{target}"
create_domain_allow: "%{name} kvitlista domenet %{target}"
create_domain_block: "%{name} blokkerte domenet %{target}"
create_email_domain_block: "%{name} svartelista e-postdomenet %{target}"
demote_user: "%{name} degraderte brukaren %{target}"
destroy_announcement: "%{name} slettet kunngjøring %{target}"
destroy_custom_emoji: "%{name} utsletta kjensleteiknet %{target}"
destroy_domain_allow: "%{name} fjerna domenet %{target} frå kvitliste"
destroy_domain_block: "%{name} slutta å blokkera domenet %{target}"
@ -217,12 +223,25 @@ nn:
resolve_report: "%{name} løyste ein rapport %{target}"
silence_account: "%{name} målbatt %{target} sin konto"
suspend_account: "%{name} utviste %{target} sin konto"
unassigned_report: "%{name} avtilegnet rapport %{target}"
unsilence_account: "%{name} fjernet forstummingen av %{target}s konto"
unsuspend_account: "%{name} utviste %{target} sin konto"
update_announcement: "%{name} oppdaterte kunngjøring %{target}"
update_custom_emoji: "%{name} oppdaterte kjensleteiknet %{target}"
update_status: "%{name} oppdaterte status for %{target}"
deleted_status: "(sletta status)"
title: Revisionslogg
announcements:
edit:
title: Rediger kunngjøring
empty: Ingen kunngjøringer funnet.
live: Direkte
new:
create: Lag kunngjøring
title: Ny kunngjøring
published: Publisert
time_range: Tidsramme
title: Kunngjøringer
custom_emojis:
assign_category: Vel kategori
by_domain: Domene
@ -257,14 +276,17 @@ nn:
upload: Last opp
dashboard:
authorized_fetch_mode: Trygg modus
backlog: opphopsloggede jobber
config: Oppsett
feature_deletions: Kontoslettingar
feature_invites: Innbydingar
feature_profile_directory: Profilmappe
feature_registrations: Registreringar
feature_relay: Føderasjonsoverganger
feature_spam_check: Søppelvern
feature_timeline_preview: Førehandsvisning av tidsline
features: Eigenskapar
hidden_service: Føderering med skjulte tjenester
open_reports: opne rapportar
pending_tags: emneknaggar som ventar på gjennomgang
pending_users: brukarar som ventar på gjennomgang
@ -290,6 +312,7 @@ nn:
created_msg: Domeneblokkering blir nå behandlet
destroyed_msg: Domeneblokkering har nå blitt angret
domain: Domene
edit: Rediger domeneblokkering
existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til <a href="%{unblock_url}">oppheve blokkeringen av den</a> først.
new:
create: Lag blokkering
@ -301,7 +324,9 @@ nn:
suspend: Utvis
title: Ny domeneblokkering
private_comment: Privat kommentar
private_comment_hint: Kommenter angående denne domenebegrensningen for internt bruk av moderatorene.
public_comment: Offentleg kommentar
public_comment_hint: Kommenter angående denne domenebegrensningen for offentligheten, hvis publisering av domenebegrensningslisten er slått på.
reject_media: Avvis mediefiler
reject_media_hint: Fjernar mediefiler som er lagra lokalt og nektar å lasta ned andre i framtida. Har ikkje noko å seia for utvisingar
reject_reports: Avvis rapportar
@ -321,12 +346,14 @@ nn:
title: Angre domeneblokkering for %{domain}
undo: Angr
undo: Angre
view: Vis domeneblokkering
email_domain_blocks:
add_new: Lag ny
created_msg: E-postdomenet ble lagt til i blokkeringslisten uten problemer
delete: Slett
destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer
domain: Domene
empty: Ingen e-mail-domener er sortelistet på dette tidspunkt.
new:
create: Legg til domene
title: Ny blokkeringsoppføring av e-postdomene
@ -359,15 +386,19 @@ nn:
title: Innbydingar
pending_accounts:
title: Kontoar som ventar (%{count})
relationships:
title: "%{acct} sitt forhold"
relays:
add_new: Legg til ny overgang
delete: Slett
description_html: En <strong>federert overgang</strong> er en mellomleddsserver som utveksler store mengder av offentlige tuter mellom servere som abonnerer og publiserer til den. <strong>Det kan hjelpe små og mellomstore servere til å oppdage innhold fra strømiverset</strong>, noe som ellers ville ha krevd at lokale brukere manuelt fulgte andre personer på fjerne servere.
disable: Slå av
disabled: Slege av
enable: Slå på
enable_hint: Når dette har blitt skrudd på, vil tjeneren din abonnere på alle offentlige tuter fra denne overgangen, og vil begynne å sende denne tjenerens offentlige tuter til den.
enabled: Skrudd på
inbox_url: Overførings-URL
pending: Avventer overgangens godkjenning
save_and_enable: Lagr og slå på
setup: Sett opp en overgangsforbindelse
signatures_not_enabled: Overganger vil ikke fungere riktig mens sikkermodus eller hvitelistingsmodus er skrudd på
@ -388,6 +419,7 @@ nn:
are_you_sure: Er du sikker?
assign_to_self: Tilegn til meg
assigned: Tilsett moderator
by_target_domain: Domenet av rapportert bruker
comment:
none: Ingen
created_at: Rapportert
@ -398,6 +430,7 @@ nn:
create_and_resolve: Løys med merknad
create_and_unresolve: Opn på nytt med merknad
delete: Slett
placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer...
reopen: Opn rapport igjen
report: 'Rapporter #%{id}'
reported_account: Rapportert konto
@ -420,6 +453,7 @@ nn:
email: Offentleg e-postadresse
username: Brukarnamn for kontakt
custom_css:
desc_html: Modifiser utseendet med CSS lastet på hver side
title: Eigen CSS
default_noindex:
desc_html: Påverkar alle brukarar som ikkje har justert denne innstillinga sjølve

View File

@ -21,6 +21,9 @@
federation_hint_html: Med en konto på %{instance} vil du kunne følge folk på enhver Mastodon-tjener, og mer til.
get_apps: Prøv en mobilapp
hosted_on: Mastodon driftet på %{domain}
instance_actor_flash: 'Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet.
'
learn_more: Lær mer
privacy_policy: Privatlivsretningslinjer
see_whats_happening: Se hva som skjer
@ -47,6 +50,8 @@
what_is_mastodon: Hva er Mastodon?
accounts:
choices_html: "%{name} sine anbefalte:"
endorsements_hint: Du kan fremheve personer du følger fra nettgrensesnittet som deretter vil bli vist her.
featured_tags_hint: Du kan fremheve spesifikke emneknagger som vil bli vist her.
follow: Følg
followers:
one: Følger
@ -54,6 +59,7 @@
following: Følger
joined: Ble med den %{date}
last_active: senest aktiv
link_verified_on: Eierskap av denne lenken ble sjekket %{date}
media: Media
moved_html: "%{name} har flyttet til %{new_profile_link}:"
network_hidden: Denne informasjonen er ikke tilgjengelig
@ -61,6 +67,8 @@
nothing_here: Det er ingenting her!
people_followed_by: Folk som %{name} følger
people_who_follow: Folk som følger %{name}
pin_errors:
following: Du må allerede følge personen du vil fremheve
posts:
one: Tut
other: Tuter
@ -136,6 +144,7 @@
moderation_notes: Moderasjonsnotater
most_recent_activity: Nyligste aktivitet
most_recent_ip: Nyligste IP
no_account_selected: Ingen brukere ble forandret da ingen var valgt
no_limits_imposed: Ingen grenser er tatt i bruk
not_subscribed: Ikke abonnért
pending: Avventer gjennomgang
@ -173,6 +182,7 @@
statuses: Statuser
subscribe: Abonnere
suspended: Suspendert
time_in_queue: Venter i kø %{time}
title: Kontoer
unconfirmed_email: Ubekreftet E-postadresse
undo_silenced: Angre målbinding
@ -184,13 +194,17 @@
whitelisted: Hvitelistet
action_logs:
actions:
assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv"
change_email_user: "%{name} forandret e-postadressen for bruker %{target}"
confirm_user: "%{name} bekreftet e-postadresse for bruker %{target}"
create_account_warning: "%{name} sendte en advarsel til %{target}"
create_announcement: "%{name} laget en ny kunngjøring %{target}"
create_custom_emoji: "%{name} lastet opp ny emoji %{target}"
create_domain_allow: "%{name} hvitelistet domenet %{target}"
create_domain_block: "%{name} blokkerte domenet %{target}"
create_email_domain_block: "%{name} svartelistet e-postdomenet %{target}"
demote_user: "%{name} degraderte bruker %{target}"
destroy_announcement: "%{name} slettet kunngjøring %{target}"
destroy_custom_emoji: "%{name} ødela emojien %{target}"
destroy_domain_allow: "%{name} fjernet domenet %{target} fra hvitelisten"
destroy_domain_block: "%{name} fjernet blokkeringen av domenet %{target}"
@ -209,12 +223,25 @@
resolve_report: "%{name} avviste rapporten %{target}"
silence_account: "%{name} forstummet %{target}s konto"
suspend_account: "%{name} suspendert %{target}s konto"
unassigned_report: "%{name} avtilegnet rapport %{target}"
unsilence_account: "%{name} fjernet forstummingen av %{target}s konto"
unsuspend_account: "%{name} opphevde suspenderingen av %{target}s konto"
update_announcement: "%{name} oppdaterte kunngjøring %{target}"
update_custom_emoji: "%{name} oppdaterte emoji %{target}"
update_status: "%{name} oppdaterte status for %{target}"
deleted_status: "(statusen er slettet)"
title: Revisionslogg
announcements:
edit:
title: Rediger kunngjøring
empty: Ingen kunngjøringer funnet.
live: Direkte
new:
create: Lag kunngjøring
title: Ny kunngjøring
published: Publisert
time_range: Tidsramme
title: Kunngjøringer
custom_emojis:
assign_category: Tilegn kategori
by_domain: Domene
@ -249,17 +276,23 @@
upload: Last opp
dashboard:
authorized_fetch_mode: Sikkermodus
backlog: opphopsloggede jobber
config: Oppsett
feature_deletions: Kontoslettinger
feature_invites: Invitasjonslenker
feature_profile_directory: Profilmappe
feature_registrations: Registreringer
feature_relay: Føderasjonsoverganger
feature_spam_check: Anti-spam
feature_timeline_preview: Tidslinje-forhåndsvisning
features: Egenskaper
hidden_service: Føderering med skjulte tjenester
open_reports: åpne rapporter
pending_tags: emneknagger som venter gjennomgang
pending_users: brukere som venter gjennomgang
recent_users: Nylige brukere
search: Fulltekstsøk
single_user_mode: Enpersons-modus
software: Programvare
space: Plassbruk
title: Kontrollpanel
@ -271,12 +304,15 @@
whitelist_mode: Hvitelistemodus
domain_allows:
add_new: Hvitelist domene
created_msg: Domenet har blitt hvitelistet
destroyed_msg: Domenet har blitt fjernet fra hvitelisten
undo: Fjern fra hvitelisten
domain_blocks:
add_new: Lag ny
created_msg: Domeneblokkering blir nå behandlet
destroyed_msg: Domeneblokkering har nå blitt angret
domain: Domene
edit: Rediger domeneblokkering
existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til <a href="%{unblock_url}">oppheve blokkeringen av den</a> først.
new:
create: Lag blokkering
@ -288,10 +324,13 @@
suspend: Utvis
title: Ny domeneblokkering
private_comment: Privat kommentar
private_comment_hint: Kommenter angående denne domenebegrensningen for internt bruk av moderatorene.
public_comment: Offentlig kommentar
public_comment_hint: Kommenter angående denne domenebegrensningen for offentligheten, hvis publisering av domenebegrensningslisten er slått på.
reject_media: Avvis mediefiler
reject_media_hint: Fjerner lokalt lagrede mediefiler og nekter å laste dem ned i fremtiden. Irrelevant for utvisninger
reject_reports: Avslå rapporter
reject_reports_hint: Ignorer alle rapporter som kommer fra dette domenet. Irrelevant for utvisninger
rejecting_media: avviser mediafiler
rejecting_reports: avslår rapporter
severity:
@ -307,12 +346,14 @@
title: Angre domeneblokkering for %{domain}
undo: Angre
undo: Angre
view: Vis domeneblokkering
email_domain_blocks:
add_new: Lag ny
created_msg: E-postdomenet ble lagt til i blokkeringslisten uten problemer
delete: Fjern
destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer
domain: Domene
empty: Ingen e-mail-domener er sortelistet på dette tidspunkt.
new:
create: Legg til domene
title: Ny blokkeringsoppføring av e-postdomene
@ -343,20 +384,29 @@
expired: Utløpt
title: Filtrer
title: Invitasjoner
pending_accounts:
title: Avventende brukere (%{count})
relationships:
title: "%{acct} sitt forhold"
relays:
add_new: Legg til ny overgang
delete: Slett
description_html: En <strong>federert overgang</strong> er en mellomleddsserver som utveksler store mengder av offentlige tuter mellom servere som abonnerer og publiserer til den. <strong>Det kan hjelpe små og mellomstore servere til å oppdage innhold fra strømiverset</strong>, noe som ellers ville ha krevd at lokale brukere manuelt fulgte andre personer på fjerne servere.
disable: Skru av
disabled: Skrudd av
enable: Skru på
enable_hint: Når dette har blitt skrudd på, vil tjeneren din abonnere på alle offentlige tuter fra denne overgangen, og vil begynne å sende denne tjenerens offentlige tuter til den.
enabled: Skrudd på
inbox_url: Overførings-URL
pending: Avventer overgangens godkjenning
save_and_enable: Lagre og skru på
setup: Sett opp en overgangsforbindelse
signatures_not_enabled: Overganger vil ikke fungere riktig mens sikkermodus eller hvitelistingsmodus er skrudd på
status: Status
title: Overganger
report_notes:
created_msg: Rapportnotat opprettet!
destroyed_msg: Rapportnotat slettet!
reports:
account:
notes:
@ -369,6 +419,7 @@
are_you_sure: Er du sikker?
assign_to_self: Tilegn til meg
assigned: Tilegnet moderator
by_target_domain: Domenet av rapportert bruker
comment:
none: Ingen
created_at: Rapportert
@ -376,12 +427,16 @@
mark_as_unresolved: Merk som uoppklart
notes:
create: Legg til notat
create_and_resolve: Løst med notat
create_and_unresolve: Gjenåpne med notat
delete: Slett
placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer...
reopen: Gjenåpne rapporten
report: 'Rapporter #%{id}'
reported_account: Rapportert konto
reported_by: Rapportert av
resolved: Løst
resolved_msg: Rapport løst!
status: Status
title: Rapporter
unassign: Fjern tilegning
@ -398,6 +453,7 @@
email: Skriv en offentlig e-postadresse
username: Skriv brukernavn
custom_css:
desc_html: Modifiser utseendet med CSS lastet på hver side
title: Egendefinert CSS
domain_blocks:
all: Til alle

View File

@ -206,11 +206,13 @@ ru:
change_email_user: "%{name} сменил(а) e-mail пользователя %{target}"
confirm_user: "%{name} подтвердил(а) e-mail адрес пользователя %{target}"
create_account_warning: "%{name} выдал(а) предупреждение %{target}"
create_announcement: "%{name} содал новое объявление %{target}"
create_custom_emoji: "%{name} загрузил(а) новый эмодзи %{target}"
create_domain_allow: "%{name} внес(ла) домен %{target} в белый список"
create_domain_block: "%{name} заблокировал(а) домен %{target}"
create_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в чёрный список"
demote_user: "%{name} разжаловал(а) пользователя %{target}"
destroy_announcement: "%{name} удалил объявление %{target}"
destroy_custom_emoji: "%{name} измельчил(а) эмодзи %{target} в пыль"
destroy_domain_allow: "%{name} убрал домен %{target} из белого списка"
destroy_domain_block: "%{name} разблокировал(а) домен %{target}"
@ -232,10 +234,22 @@ ru:
unassigned_report: "%{name} сняла назначение жалобы %{target}"
unsilence_account: "%{name} снял ограничения видимости постов пользователя %{target}"
unsuspend_account: "%{name} снял(а) блокировку с пользователя %{target}"
update_announcement: "%{name} обновил объявление %{target}"
update_custom_emoji: "%{name} обновил(а) эмодзи %{target}"
update_status: "%{name} изменил(а) пост пользователя %{target}"
deleted_status: "(удалённый пост)"
title: Журнал событий
announcements:
edit:
title: Редактировать объявление
empty: Объявления не найдены.
live: В эфире
new:
create: Создать объявление
title: Новое объявление
published: Опубликованные
time_range: Временной диапазон
title: Объявления
custom_emojis:
assign_category: Задать категорию
by_domain: Домен
@ -678,6 +692,9 @@ ru:
hint_html: "<strong>Подсказка</strong>: мы не будем спрашивать пароль повторно в течение часа."
invalid_password: Неверный пароль
prompt: Введите пароль для продолжения
date:
formats:
default: "%d %b %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}ч"
@ -779,6 +796,8 @@ ru:
all: Любой
changes_saved_msg: Изменения успешно сохранены!
copy: Копировать
delete: Удалить
edit: Изменить
no_batch_actions_available: На этой странице нет запланированных действий
order_by: Сортировка
save_changes: Сохранить изменения
@ -958,6 +977,10 @@ ru:
other: Всё остальное
posting_defaults: Настройки отправки по умолчанию
public_timelines: Публичные ленты
reactions:
errors:
limit_reached: Достигнут лимит разных реакций
unrecognized_emoji: не является распознанным эмодзи
relationships:
activity: Активность учётной записи
dormant: Заброшенная

View File

@ -14,6 +14,12 @@ ca:
text_html: Opcional. Pots utilitzar tota la sintaxi. Pots <a href="%{path}">afegir configuracions predefinides d'avís</a> per a estalviar temps
type_html: Tria què fer amb <strong>%{acct}</strong>
warning_preset_id: Opcional. Encara pots afegir text personalitzat al final de la configuració predefinida
announcement:
all_day: Si es marca, només es mostraran les dates de l'interval de temps
ends_at: Opcional. En aquest moment, lanunci deixarà automàticament d'estar publicat
scheduled_at: Deixa-ho en blanc per a publicar lanunci immediatament
starts_at: Opcional. En el cas que el teu anunci estigui vinculat a un interval de temps específic
text: Pots utilitzar sintaxi d'un tut. Tingues en compte lespai que lanunci ocuparà a la pantalla de lusuari
defaults:
autofollow: Les persones que es registrin a través de la invitació et seguiran automàticament
avatar: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px
@ -83,6 +89,12 @@ ca:
silence: Silenci
suspend: Suspèn i elimina irreversiblement les dades del compte
warning_preset_id: Utilitza una configuració predefinida d'avís
announcement:
all_day: Esdeveniment de tot el dia
ends_at: Fi del esdeveniment
scheduled_at: Programa la publicació
starts_at: Inici del esdeveniment
text: Anunci
defaults:
autofollow: Convida a seguir el teu compte
avatar: Avatar

View File

@ -14,6 +14,12 @@ co:
text_html: In uzzione. Pudete utilizà a sintassa di i statuti. Pudete ancu <a href="%{path}">aghjustà preselezzione d'avertimentu</a> per piglià tempu
type_html: Sceglie chì fà cù <strong>%{acct}</strong>
warning_preset_id: In uzzione. Pudete sempre aghjustà un testu persunalizatu à a fine di a preselezzione
announcement:
all_day: Sole e date da st'intervallu di tempu saranu mustrate
ends_at: In uzzione. L'annunziu sarà autumaticamente piattatu dop'à sta data
scheduled_at: Lasciate viotu per pubblicà l'annunziu avà
starts_at: In uzzione. S'e l'annunziu hè ligatu à un'intervallu di tempu specificu
text: Pudete utilizà a sintassa di i statuti. Pensate à a piazza chì l'annunziu hà da piglià nant'à u screnu di l'utilizatore
defaults:
autofollow: Quelli·e chì s'arregistranu cù l'invitazione saranu autumaticamente abbunati·e à voi
avatar: Furmatu PNG, GIF o JPG. %{size} o menu. Sarà ridottu à %{dimensions}px
@ -83,6 +89,12 @@ co:
silence: Silenzà
suspend: Suspende è sguassà i dati di u contu di manera irreversibile
warning_preset_id: Utilizà un'avertimentu preselezziunatu
announcement:
all_day: Tutta a ghjurnata
ends_at: Fine di l'avvenimentu
scheduled_at: Pianificà publicazione
starts_at: Principiu di l'avvenimentu
text: Annunziu
defaults:
autofollow: Invità à siguità u vostru contu
avatar: Ritrattu di prufile

View File

@ -83,6 +83,10 @@ cs:
silence: Ztišit
suspend: Pozastavit účet a nenávratně smazat jeho data
warning_preset_id: Použít předlohu pro varování
announcement:
all_day: Celodenní událost
scheduled_at: Naplánovat zveřejnění
starts_at: Začátek události
defaults:
autofollow: Pozvat ke sledování vašeho účtu
avatar: Avatar

View File

@ -14,6 +14,12 @@ el:
text_html: Προαιρετικό. Μπορείς να χρησιμοποιήσεις συντακτικό ενός τουτ. Μπορείς να <a href="%{path}">ορίσεις προκαθορισμένες προειδοποιήσεις</a> για να γλυτώσεις χρόνο
type_html: Διάλεξε τι θα κανείς με τον <strong>%{acct}</strong>
warning_preset_id: Προαιρετικό. Μπορείς να προσθέσεις επιπλέον κείμενο μετά το προκαθορισμένο κείμενο
announcement:
all_day: Όταν είναι επιλεγμένο, θα εμφανίζονται μόνο οι ημερομηνίες εντός της χρονικής διάρκειας
ends_at: Προαιρετικό. Η ανακοίνωση θα αποσυρθεί αυτόματα τη δηλωμένη ώρα
scheduled_at: Αν μείνει κενό, η ενημέρωση θα δημοσιευτεί αμέσως
starts_at: Προαιρετικό, για την περίπτωση που η ανακοίνωση αφορά συγκεκριμένη χρονική διάρκεια
text: Δεκτό το συντακτικό των τουτ. Παρακαλούμε έχε υπόψιν σου το χώρο που θα καταλάβει η ανακοίνωση στην οθόνη του χρήστη
defaults:
autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθούν αυτόματα
avatar: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px
@ -83,6 +89,12 @@ el:
silence: Αποσιώπηση
suspend: Αναστολή και αμετάκλητη διαγραφή στοιχείων λογαριασμού
warning_preset_id: Χρήση προκαθορισμένης προειδοποίησης
announcement:
all_day: Ολοήμερο γεγονός
ends_at: Λήξη γεγονότος
scheduled_at: Προγραμματισμένη δημοσίευση
starts_at: Έναρξη γεγονότος
text: Ανακοίνωση
defaults:
autofollow: Προσκάλεσε για να ακολουθήσουν το λογαριασμό σου
avatar: Αβατάρ

View File

@ -14,6 +14,12 @@ es-AR:
text_html: Opcional. Podés usar sintaxis de toots. Podés <a href="%{path}">agregar preajustes de advertencia</a> para ahorrar tiempo.
type_html: Elegí qué hacer con <strong>%{acct}</strong>
warning_preset_id: Opcional. Todavía podés agregar texto personalizado al final del preajuste
announcement:
all_day: Cuando esté seleccionado, sólo se mostrarán las fechas del rango de tiempo
ends_at: Opcional. El anuncio desaparecerá automáticamente en este momento
scheduled_at: Dejar en blanco para publicar el anuncio inmediatamente
starts_at: Opcional. En caso de que tu anuncio esté vinculado a un rango de tiempo específico
text: Podés usar la sintaxis de toot. Por favor, tené en cuenta el espacio que ocupará el anuncio en la pantalla del usuario
defaults:
autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente
avatar: 'PNG, GIF o JPG. Máximo: %{size}. Será subescalado a %{dimensions} píxeles.'
@ -83,6 +89,12 @@ es-AR:
silence: Silenciar
suspend: Suspender y eliminar de forma irreversible los datos de la cuenta
warning_preset_id: Usar un texto predeterminado
announcement:
all_day: Evento de todo el día
ends_at: Fin del evento
scheduled_at: Programar publicación
starts_at: Comienzo del evento
text: Anuncio
defaults:
autofollow: Invitar para seguir tu cuenta
avatar: Avatar

View File

@ -14,6 +14,12 @@ es:
text_html: Opcional. Puede usar sintaxis de toots. Puede añadir <a href="%{path}">configuraciones predefinidas de advertencia</a> para ahorrar tiempo
type_html: Elige qué hacer con <strong>%{acct}</strong>
warning_preset_id: Opcional. Aún puede añadir texto personalizado al final de la configuración predefinida
announcement:
all_day: Cuando está seleccionado solo se mostrarán las fechas del rango de tiempo
ends_at: Opcional. El anuncio desaparecerá automáticamente en este momento
scheduled_at: Dejar en blanco para publicar el anuncio inmediatamente
starts_at: Opcional. En caso de que su anuncio esté vinculado a un intervalo de tiempo específico
text: Puedes usar la sintaxis toot. Por favor ten en cuenta el espacio que ocupará el anuncio en la pantalla del usuario
defaults:
autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente
avatar: PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px
@ -42,7 +48,7 @@ es:
setting_noindex: Afecta a tu perfil público y páginas de estado
setting_show_application: La aplicación que utiliza usted para publicar toots se mostrará en la vista detallada de sus toots
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
setting_use_pending_items: Ocultar actualizaciones cronológicas tras un clic en lugar de desplazar automáticamente la ristra
setting_use_pending_items: Ocultar nuevos estados detrás de un clic en lugar de desplazar automáticamente el feed
username: Tu nombre de usuario será único en %{domain}
whole_word: Cuando la palabra clave o frase es solo alfanumérica, solo será aplicado si concuerda con toda la palabra
domain_allow:
@ -52,7 +58,7 @@ es:
form_challenge:
current_password: Estás entrando en un área segura
imports:
data: Archivo CSV exportado desde otra instancia de Mastodonte
data: Archivo CSV exportado desde otra instancia de Mastodon
invite_request:
text: Esto nos ayudará a revisar su aplicación
sessions:
@ -83,6 +89,12 @@ es:
silence: Silenciar
suspend: Suspender y eliminar de forma irreversible la información de la cuenta
warning_preset_id: Usar un aviso predeterminado
announcement:
all_day: Evento de todo el día
ends_at: Fin del evento
scheduled_at: Programar publicación
starts_at: Comienzo del evento
text: Anuncio
defaults:
autofollow: Invitar a seguir tu cuenta
avatar: Avatar
@ -110,7 +122,7 @@ es:
password: Contraseña
phrase: Palabra clave o frase
setting_advanced_layout: Habilitar interfaz web avanzada
setting_aggregate_reblogs: Agrupar rebarritadas en las cronologías
setting_aggregate_reblogs: Agrupar retoots en las líneas de tiempo
setting_auto_play_gif: Reproducir automáticamente los GIFs animados
setting_boost_modal: Mostrar ventana de confirmación antes de un Retoot
setting_crop_images: Recortar a 16x9 las imágenes de los toots no expandidos
@ -157,7 +169,7 @@ es:
pending_account: Enviar correo electrónico cuando una nueva cuenta necesita revisión
reblog: Enviar correo electrónico cuando alguien comparta su publicación
report: Enviar un correo cuando se envía un nuevo informe
trending_tag: Enviar correo electrónico cuando una etiqueta no revisada es tendencia
trending_tag: Enviar correo electrónico cuando una etiqueta no revisada está de tendencia
tag:
listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil
name: Etiqueta

View File

@ -14,6 +14,12 @@ eu:
text_html: Aukerakoa. Toot sintaxia erabili dezakezu. <a href="%{path}">Abisu aurre-ezarpenak</a> gehitu ditzakezu denbora aurrezteko
type_html: Erabaki zer egin <strong>%{acct}</strong> kontuarekin
warning_preset_id: Aukerakoa. Zure testua gehitu dezakezu aurre-ezarpenaren ostean
announcement:
all_day: Markatutakoan soilik denbora barrutiko datak erakutsiko dira
ends_at: Aukerakoa. Iragapena une honetan automatikoki desargitaratuko da
scheduled_at: Laga hutsik iragarpena berehala argitaratzeko
starts_at: Aukerakoa. Zure iragarpena denbora-tarte batera lotuta dagoenerako
text: Toot-etako sintaxia erabili dezakezu. Kontuan izan iragarpenak erabiltzailearen pantailan hartuko duen neurria
defaults:
autofollow: Gonbidapena erabiliz izena ematen dutenek automatikoki jarraituko dizute
avatar: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px neurrira eskalatuko da
@ -83,6 +89,12 @@ eu:
silence: Isiltarazi
suspend: Kanporatu eta behin betiko ezabatu kontuko datuak
warning_preset_id: Erabili aurre-ezarritako abisu bat
announcement:
all_day: Egun osoko gertaera
ends_at: Gertaeraren amaiera
scheduled_at: Programatu argitaratzea
starts_at: Gertaeraren hasiera
text: Iragarpena
defaults:
autofollow: Gonbidatu zure kontua jarraitzera
avatar: Abatarra

View File

@ -13,7 +13,7 @@ gl:
send_email_notification: A usuaria recibirá unha explicación sobre o que lle aconteceu a súa conta
text_html: Optativo. Pode utilizar formato no toot. Pode <a href="%{path}">engadir avisos preestablecidos</a> para aforrar tempo
type_html: Escolla que facer con <strong>%{acct}</strong>
warning_preset_id: Optativo. Poderá engadir texto persoalizado ao final do preestablecido
warning_preset_id: Optativo. Poderás engadir texto personalizado ao final do preestablecido
announcement:
all_day: Cando se marca, só serán amosadas as datas do intre de tempo
ends_at: Opcional. O anuncio non se publicará de xeito automático neste intre
@ -21,7 +21,7 @@ gl:
starts_at: Opcional. No caso de que o teu anuncio estea vinculado a un intre de tempo específico
text: Podes empregar a sintaxe do toot. Ten en conta o espazo que ocupará o anuncio na pantalla do usuario
defaults:
autofollow: As persoas que se conectaron a través de un convite seguirana automáticamente a vostede
autofollow: As persoas que se conectaron a través dun convite seguirante automáticamente
avatar: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px
bot: Esta conta realiza principalmente accións automatizadas e podería non estar monitorizada
context: Un ou varios contextos onde se debería aplicar o filtro
@ -90,7 +90,7 @@ gl:
suspend: Suspender e eliminar irreversiblemente datos da conta
warning_preset_id: Utilizar un aviso preestablecido
announcement:
all_day: Acontecemento diario
all_day: Evento para todo o día
ends_at: Final do acontecemento
scheduled_at: Publicación programada
starts_at: Comezo do acontecemento

View File

@ -14,6 +14,12 @@ hu:
text_html: Opcionális. A tülk szintaxis használható. Egyszerűsítés végett létre is hozhatsz <a href="%{path}">figyelmeztetéseket</a>
type_html: Megmondhatod, mi legyen vele <strong>%{acct}</strong>
warning_preset_id: Opcionális. A figyelmeztetés végére saját szöveget is írhatsz
announcement:
all_day: Bejelölve csak a dátumok számítanak majd a megadott intervallumból
ends_at: Opcionális. A közleményt ekkor automatikusan levesszük
scheduled_at: Hagyd üresen, hogy a közleményt azonnal közzétegyük
starts_at: Opcionális. Akkor használd, ha a közleményed adott időintervallumra vonatkozik
text: Használhatod a tülkök szintaxisát. Ügyelj arra, mennyi helyet foglal el majd a közlemény a felhasználó képernyőjén
defaults:
autofollow: Akik meghívón keresztül regisztrálnak, automatikusan követni fognak téged
avatar: PNG, GIF vagy JPG. Maximum %{size}. Átméretezzük %{dimensions} pixelre
@ -83,6 +89,12 @@ hu:
silence: Elnémítás
suspend: Fiók felfüggesztése, adatok törlése visszaállíthatatlanul
warning_preset_id: Figyelmeztetés használata
announcement:
all_day: Egész napos esemény
ends_at: Esemény vége
scheduled_at: Közlemény időzítése
starts_at: Esemény kezdete
text: Közlemény
defaults:
autofollow: Meghívás a fiókod követésére
avatar: Profilkép

View File

@ -14,6 +14,12 @@ id:
text_html: Opsional. Anda dapat memakai sintaks toot. Anda dapat <a href="%{path}">menambahkan preset peringatan</a> untuk hemat waktu
type_html: Pilih apa yang perlu dilakukan dengan <strong>%{acct}</strong>
warning_preset_id: Opsional. Anda tetap dapat menambahkan teks kustom pada akhir preset
announcement:
all_day: Saat dicentang, hanya tanggal dalam rentang waktu tertentu yang akan ditampilkan
ends_at: Opsional. Pengumuman akan diterbitkan secara otomatis saat ini
scheduled_at: Biarkan kosong jika ingin menerbitkan pengumuman secara langsung
starts_at: Opsional. Persiapan jika pengumuman Anda terikat pada rentang waktu tertentu
text: Anda dapat menggunakan sintaks toot. Mohon perhatikan ruang pengumuman yang mungkin akan memenuhi layar pengguna
defaults:
autofollow: Orang yang ingin mendaftar lewat undangan, otomatis mengikuti Anda
avatar: PNG, GIF atau JPG. Maksimal %{size}. Ukuran dikecilkan menjadi %{dimensions}px

View File

@ -14,6 +14,12 @@ ja:
text_html: オプションです。投稿に用いる構文を使うことができます。簡略化のため<a href="%{path}">プリセット警告文を追加</a>することができます
type_html: "<strong>%{acct}</strong>さんに対し、何を行うか選択してください"
warning_preset_id: オプションです。プリセット警告文の末尾に任意の文字列を追加することができます
announcement:
all_day: 選択すると、おしらせ対象の開始および終了日時は日付のみ表示されます
ends_at: オプションです。指定すると、お知らせの掲載はその日時で自動的に終了します
scheduled_at: お知らせを今すぐ掲載する場合は空欄にしてください
starts_at: オプションです。お知らせしたい事柄の期間が決まっている場合に使用します
text: トゥートと同じ構文を使用できます。アナウンスが占める画面のスペースに注意してください
defaults:
autofollow: 招待から登録した人が自動的にあなたをフォローするようになります
avatar: "%{size}までのPNG、GIF、JPGが利用可能です。%{dimensions}pxまで縮小されます"
@ -84,7 +90,11 @@ ja:
suspend: 停止しアカウントのデータを恒久的に削除する
warning_preset_id: プリセット警告文を使用
announcement:
text: 告知
all_day: 終日
ends_at: お知らせ対象の終了日時
scheduled_at: 掲載する日時
starts_at: おしらせ対象の開始日時
text: お知らせ
defaults:
autofollow: 招待から参加後、あなたをフォロー
avatar: アイコン

View File

@ -14,6 +14,12 @@ ko:
text_html: 선택사항. 툿 문법을 사용할 수 있습니다. <a href="%{path}">경고 틀을 추가</a>하여 시간을 절약할 수 있습니다
type_html: "<strong>%{acct}</strong>에 대해 취할 행동 선택"
warning_preset_id: 선택사항. 틀의 마지막에 임의의 텍스트를 추가 할 수 있습니다
announcement:
all_day: 체크 되었을 경우, 그 시간에 속한 날짜들에만 표시됩니다
ends_at: 옵션입니다. 공지사항이 이 시간에 자동으로 발행 중지 됩니다
scheduled_at: 공백으로 두면 공지사항이 곧바로 발행 됩니다
starts_at: 공지사항이 특정한 시간에 종속 될 때를 위한 옵션입니다
text: 툿 문법을 사용할 수 있습니다. 공지사항은 사용자의 화면 상단 공간을 차지한다는 것을 명심하세요
defaults:
autofollow: 이 초대를 통해 가입하는 사람은 당신을 자동으로 팔로우 하게 됩니다
avatar: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 축소 됨
@ -83,6 +89,12 @@ ko:
silence: 침묵
suspend: 정지하고 되돌릴 수 없는 데이터 삭제
warning_preset_id: 경고 틀 사용하기
announcement:
all_day: 종일 일정
ends_at: 이벤트 종료
scheduled_at: 발행 일정
starts_at: 이벤트 시작
text: 공지사항
defaults:
autofollow: 초대를 통한 팔로우
avatar: 아바타

View File

@ -2,21 +2,39 @@
nn:
simple_form:
hints:
account_alias:
acct: Spesifiser brukernavn@domene til brukeren du vil flytte fra
account_migration:
acct: Spesifiser brukernavn@domene til brukeren du vil flytte til
account_warning_preset:
text: Du kan bruke tut syntaks, f.eks. URLer, emneknagger og nevnelser
admin_account_action:
include_statuses: Brukeren vil se hvilke tuter som forårsaket moderator-handlingen eller -advarselen
send_email_notification: Brukeren vil motta en forklaring på hva som har skjedd med deres bruker
text_html: Valgfritt. Du kan bruke tut syntaks. Du kan <a href="%{path}">legge til advarsels-forhåndsinnstillinger</a> for å spare tid
type_html: Velg hva du vil gjøre med <strong>%{acct}</strong>
warning_preset_id: Valfritt. Du kan leggja inn eigen tekst på enden av føreoppsettet
announcement:
all_day: Hvis noen av dem er valgt, vil kun datoene av tidsrammen bli vist
ends_at: Valgfritt. Kunngjøring vil bli automatisk avpublisert på dette tidspunktet
scheduled_at: La stå tomt for å publisere kunngjøringen umiddelbart
starts_at: Valgfritt. I tilfellet din kunngjøring er bundet til en spesifikk tidsramme
text: Du kan bruke tut syntaks. Vennligst vær oppmerksom på plassen som kunngjøringen vil ta opp på brukeren sin skjerm
defaults:
autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg
avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px
bot: Denne kontoen utfører i hovedsak automatiserte handlinger og blir kanskje ikke holdt øye med
context: En eller flere sammenhenger der filteret skal gjelde
current_password: For sikkerhetsgrunner, vennligst oppgi passordet til den nåværende bruker
current_username: Skriv inn brukarnamnet til den noverande kontoen for å stadfesta
digest: Kun sendt etter en lang periode med inaktivitet og bare dersom du har mottatt noen personlige meldinger mens du var borte
discoverable: Profilmappen er en annen måte for kontoen din å nå et bredere publikum på
email: Du får snart ein stadfestings-e-post
fields: Du kan ha opptil 4 gjenstander vist som en tabell på profilsiden din
header: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px
inbox_url: Kopier URLen fra forsiden til overgangen du vil bruke
irreversible: Filtrerte tuter vil ugjenkallelig forsvinne, selv om filteret senere blir fjernet
locale: Språket til brukergrensesnittet, e-mailer og push-varsler
locked: Krever at du manuelt godkjenner følgere
password: Nytt minst 8 teikn
phrase: Vil bli samsvart med, uansett bruk av store/små bokstaver eller innholdsadvarselen til en tut
@ -33,6 +51,8 @@ nn:
setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle
username: Brukarnamnet ditt vert unikt på %{domain}
whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet
domain_allow:
domain: Dette domenet vil være i stand til å hente data fra denne serveren og dets innkommende data vil bli prosessert og lagret
featured_tag:
name: 'Kanskje du vil nytta ein av desse:'
form_challenge:
@ -43,6 +63,8 @@ nn:
text: Dette kjem til å hjelpa oss med å gå gjennom søknaden din
sessions:
otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder.
tag:
name: Du kan bare forandre bruken av store/små bokstaver, f.eks. for å gjøre det mer lesbart
user:
chosen_languages: Hvis noen av dem er valgt, vil kun tuter i de valgte språkene bli vist i de offentlige tidslinjene
labels:
@ -50,9 +72,14 @@ nn:
fields:
name: Merkelapp
value: Innhald
account_alias:
acct: Brukernavnet til den gamle brukeren
account_migration:
acct: Brukernavnet til den nye brukeren
account_warning_preset:
text: Føreåtstekst
admin_account_action:
include_statuses: Inkluder rapporterte tuter i e-mailen
send_email_notification: Varsl brukaren med e-post
text: Eigen åtvaring
type: Handling
@ -62,6 +89,12 @@ nn:
silence: Togn
suspend: Utvis og slett kontodata for godt
warning_preset_id: Bruk åtvaringsoppsett
announcement:
all_day: Heldagshendelse
ends_at: Slutten av hendelsen
scheduled_at: Planlegg publisering
starts_at: Begynnelse av hendelsen
text: Kunngjøring
defaults:
autofollow: Bed om å fylgja kontoen din
avatar: Bilete
@ -78,6 +111,8 @@ nn:
expires_in: Vert ugyldig etter
fields: Profilmetadata
header: Overskrift
inbox_url: URL til overgangsinnboksen
irreversible: Forkast i stedet for å skjule
locale: Språk
locked: Lås konto
max_uses: Grense på brukartal
@ -134,8 +169,11 @@ nn:
pending_account: Send e-post når ein ny konto treng gjennomgang
reblog: Send e-post når nokon framhevar statusen din
report: Send e-post når nokon rapporterer noko
trending_tag: En ugjennomgått emneknagg trender
tag:
listable: Tillat denne emneknaggen å vises i søk og på profilmappen
name: Emneknagg
trendable: Tillat denne emneknaggen til å vises under trender
usable: Gje tut lov til å nytta denne emneknaggen
'no': Nei
recommended: Tilrådt

View File

@ -2,20 +2,39 @@
'no':
simple_form:
hints:
account_alias:
acct: Spesifiser brukernavn@domene til brukeren du vil flytte fra
account_migration:
acct: Spesifiser brukernavn@domene til brukeren du vil flytte til
account_warning_preset:
text: Du kan bruke tut syntaks, f.eks. URLer, emneknagger og nevnelser
admin_account_action:
include_statuses: Brukeren vil se hvilke tuter som forårsaket moderator-handlingen eller -advarselen
send_email_notification: Brukeren vil motta en forklaring på hva som har skjedd med deres bruker
text_html: Valgfritt. Du kan bruke tut syntaks. Du kan <a href="%{path}">legge til advarsels-forhåndsinnstillinger</a> for å spare tid
type_html: Velg hva du vil gjøre med <strong>%{acct}</strong>
warning_preset_id: Valgfritt. Du kan fortsatt legge til tilpasset tekst til slutten av forhåndsinnstillingen
announcement:
all_day: Hvis noen av dem er valgt, vil kun datoene av tidsrammen bli vist
ends_at: Valgfritt. Kunngjøring vil bli automatisk avpublisert på dette tidspunktet
scheduled_at: La stå tomt for å publisere kunngjøringen umiddelbart
starts_at: Valgfritt. I tilfellet din kunngjøring er bundet til en spesifikk tidsramme
text: Du kan bruke tut syntaks. Vennligst vær oppmerksom på plassen som kunngjøringen vil ta opp på brukeren sin skjerm
defaults:
autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg
avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px
bot: Denne kontoen utfører i hovedsak automatiserte handlinger og blir kanskje ikke holdt øye med
context: En eller flere sammenhenger der filteret skal gjelde
current_password: For sikkerhetsgrunner, vennligst oppgi passordet til den nåværende bruker
current_username: For å bekrefte, vennligst skriv inn brukernavnet til den nåværende kontoen
digest: Kun sendt etter en lang periode med inaktivitet og bare dersom du har mottatt noen personlige meldinger mens du var borte
discoverable: Profilmappen er en annen måte for kontoen din å nå et bredere publikum på
email: Du vil bli tilsendt en bekreftelses-E-post
fields: Du kan ha opptil 4 gjenstander vist som en tabell på profilsiden din
header: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px
inbox_url: Kopier URLen fra forsiden til overgangen du vil bruke
irreversible: Filtrerte tuter vil ugjenkallelig forsvinne, selv om filteret senere blir fjernet
locale: Språket til brukergrensesnittet, e-mailer og push-varsler
locked: Krever at du manuelt godkjenner følgere
password: Bruk minst 8 tegn
phrase: Vil bli samsvart med, uansett bruk av store/små bokstaver eller innholdsadvarselen til en tut
@ -32,14 +51,20 @@
setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle
username: Brukernavnet ditt vil være unikt på %{domain}
whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet
domain_allow:
domain: Dette domenet vil være i stand til å hente data fra denne serveren og dets innkommende data vil bli prosessert og lagret
featured_tag:
name: 'Du vil kanskje ønske å bruke en av disse:'
form_challenge:
current_password: Du går inn i et sikkert område
imports:
data: CSV-fil eksportert fra en annen Mastodon-instans
invite_request:
text: Dette vil hjelpe oss med å gjennomgå din søknad
sessions:
otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder.
tag:
name: Du kan bare forandre bruken av store/små bokstaver, f.eks. for å gjøre det mer lesbart
user:
chosen_languages: Hvis noen av dem er valgt, vil kun tuter i de valgte språkene bli vist i de offentlige tidslinjene
labels:
@ -47,9 +72,14 @@
fields:
name: Etikett
value: Innhold
account_alias:
acct: Brukernavnet til den gamle brukeren
account_migration:
acct: Brukernavnet til den nye brukeren
account_warning_preset:
text: Forhåndsvalgt tekst
admin_account_action:
include_statuses: Inkluder rapporterte tuter i e-mailen
send_email_notification: Si ifra til brukeren over E-post
text: Tilpasset advarsel
type: Handling
@ -57,6 +87,14 @@
disable: Deaktiver pålogging
none: Ikke gjør noe
silence: Stilne
suspend: Suspender og ugjenkallelig slett brukerdata
warning_preset_id: Bruk en advarsels-forhåndsinnstilling
announcement:
all_day: Heldagshendelse
ends_at: Slutten av hendelsen
scheduled_at: Planlegg publisering
starts_at: Begynnelse av hendelsen
text: Kunngjøring
defaults:
autofollow: Inviter til å følge kontoen din
avatar: Profilbilde
@ -73,6 +111,8 @@
expires_in: Utløper etter
fields: Profilmetadata
header: Overskrift
inbox_url: URL til overgangsinnboksen
irreversible: Forkast i stedet for å skjule
locale: Språk
locked: Lås konto
max_uses: Maksimalt antall bruk
@ -126,9 +166,14 @@
follow: Send e-post når noen følger deg
follow_request: Send e-post når noen ber om å få følge deg
mention: Send e-post når noen nevner deg
pending_account: Ny bruker avventer gjennomgang
reblog: Send e-post når noen fremhever din status
report: Ny rapport er sendt inn
trending_tag: En ugjennomgått emneknagg trender
tag:
listable: Tillat denne emneknaggen å vises i søk og på profilmappen
name: Emneknagg
trendable: Tillat denne emneknaggen til å vises under trender
usable: Tillat tuter å bruke denne emneknaggen
'no': Nei
recommended: Anbefalt

View File

@ -14,6 +14,12 @@ ru:
text_html: Необязательно. Вы можете использовать синтаксис постов. Для экономии времени, <a href="%{path}">добавьте шаблоны предупреждений</a>
type_html: Выберите применяемое к <strong>%{acct}</strong> действие
warning_preset_id: Необязательно. Вы можете добавить собственный текст в конце шаблона
announcement:
all_day: Если выбрано, часы начала и завершения будут скрыты
ends_at: Необязательно. Объявление будет автоматически отменено в это время
scheduled_at: Оставьте поля незаполненными, чтобы опубликовать объявление сразу
starts_at: Необязательно. На случай, если ваше объявление привязано к какому-то временному интервалу
text: Вы можете использовать тот же синтаксис, что и в постах. Будьте предусмотрительны насчёт места, которое займёт объявление на экране пользователей
defaults:
autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас
avatar: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшен до %{dimensions}px
@ -83,6 +89,12 @@ ru:
silence: Скрыть
suspend: Заблокировать и безвозвратно удалить все данные учётной записи
warning_preset_id: Использовать шаблон
announcement:
all_day: Весь день
ends_at: Время завершения
scheduled_at: Отложенная публикация
starts_at: Время начала
text: Объявление
defaults:
autofollow: С подпиской на вашу учётную запись
avatar: Аватар

View File

@ -83,6 +83,8 @@ th:
silence: เงียบ
suspend: ระงับและลบข้อมูลบัญชีอย่างถาวร
warning_preset_id: ใช้คำเตือนที่ตั้งไว้ล่วงหน้า
announcement:
text: ประกาศ
defaults:
autofollow: เชิญให้ติดตามบัญชีของคุณ
avatar: ภาพประจำตัว

View File

@ -14,6 +14,12 @@ tr:
text_html: İsteğe bağlı. Toot sözdizimleri kullanabilirsiniz. Zamandan kazanmak için <a href="%{path}">uyarı ön-ayarları ekleyebilirsiniz</a>
type_html: "<strong>%{acct}</strong> ile ne yapılacağını seçin"
warning_preset_id: İsteğe bağlı. Hazır ayarın sonuna hala özel metin ekleyebilirsiniz
announcement:
all_day: İşaretlendiğinde, yalnızca zaman aralığındaki tarihler görüntülenir
ends_at: İsteğe bağlı. Duyuru, bu tarihte otomatik olarak yayından kaldırılacak
scheduled_at: Duyuruyu hemen yayınlamak için boş bırakın
starts_at: İsteğe bağlı. Duyurunuzun belirli bir zaman aralığına bağlı olması durumunda
text: Toot söz dizimini kullanabilirsiniz. Lütfen duyurunun kullanıcının ekranında yer alacağı alanı göz önünde bulundurun
defaults:
autofollow: Davetiyeyle kaydolan kişiler sizi otomatik olarak takip eder
avatar: En fazla %{size} olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. %{dimensions}px büyüklüğüne indirgenecektir
@ -83,6 +89,12 @@ tr:
silence: Sessiz
suspend: Hesap verilerini askıya alın ve geri alınamaz şekilde silin
warning_preset_id: Bir uyarı ön-ayarı kullan
announcement:
all_day: Tüm gün etkinliği
ends_at: Etkinlik sonu
scheduled_at: Yayınlamayı zamanla
starts_at: Etkinlik başlangıcı
text: Duyuru
defaults:
autofollow: Hesabınızı takip etmeye davet edin
avatar: Profil resmi

View File

@ -14,6 +14,12 @@ uk:
text_html: Необов'язково. Ви можете використовувати синтакс дмухів. Ви можете <a href="%{path}">додати шаблони попереджень</a>, щоб заощадити час
type_html: Оберіть, що робити з <strong>%{acct}</strong>
warning_preset_id: Необов'язково. Ви можете ще додати будь-який текст до кінця шаблону
announcement:
all_day: Якщо вибрано, відображаються лише дати діапазону часу
ends_at: Необов'язково. Оголошення буде автоматично знято з публікації
scheduled_at: Залиште поля незаповненими, щоб опублікувати оголошення відразу
starts_at: Необов'язково. У разі якщо оголошення прив'язується до певного періоду часу
text: Ви можете використовувати той же синтаксис, що і в постах. Будьте завбачливі щодо місця, яке займе оголошення на екрані користувачів
defaults:
autofollow: Люди, що зареєструвалися за вашим запрошенням, автоматично підпишуться на вас
avatar: PNG, GIF, або JPG. Максимум - %{size}. Буде зменшено до %{dimensions}px
@ -83,6 +89,12 @@ uk:
silence: Глушення
suspend: Призупинити та незворотньо видалити дані облікового запису
warning_preset_id: Використати шаблон попередження
announcement:
all_day: Увесь день
ends_at: Завершення події
scheduled_at: Відкладена публікація
starts_at: Час початку
text: Оголошення
defaults:
autofollow: Запросити слідкувати за вашим обліковим записом
avatar: Аватар

View File

@ -234,6 +234,14 @@ sk:
update_status: "%{name} aktualizoval/a status pre %{target}"
deleted_status: "(zmazaný príspevok)"
title: Kontrólny záznam
announcements:
live: Naživo
new:
create: Vytvor oznam
title: Nové oznámenie
published: Zverejnený
time_range: Časový rozsah
title: Oboznámenia
custom_emojis:
assign_category: Priraď kategóriu
by_domain: Doména

View File

@ -154,6 +154,7 @@ th:
staff: พนักงาน
user: ผู้ใช้
search: ค้นหา
search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน
shared_inbox_url: URL กล่องขาเข้าที่แบ่งปัน
show:
created_reports: รายงานที่สร้าง
@ -178,10 +179,13 @@ th:
change_email_user: "%{name} ได้เปลี่ยนที่อยู่อีเมลของผู้ใช้ %{target}"
confirm_user: "%{name} ได้ยืนยันที่อยู่อีเมลของผู้ใช้ %{target}"
create_account_warning: "%{name} ได้ส่งคำเตือนไปยัง %{target}"
create_announcement: "%{name} ได้สร้างประกาศใหม่ %{target}"
create_custom_emoji: "%{name} ได้อัปโหลดอีโมจิใหม่ %{target}"
create_domain_allow: "%{name} ได้ขึ้นบัญชีขาวโดเมน %{target}"
create_domain_block: "%{name} ได้ปิดกั้นโดเมน %{target}"
create_email_domain_block: "%{name} ได้ขึ้นบัญชีดำโดเมนอีเมล %{target}"
demote_user: "%{name} ได้ลดขั้นผู้ใช้ %{target}"
destroy_announcement: "%{name} ได้ลบประกาศ %{target}"
destroy_custom_emoji: "%{name} ได้ทำลายอีโมจิ %{target}"
destroy_domain_allow: "%{name} ได้เอาโดเมน %{target} ออกจากบัญชีขาว"
destroy_domain_block: "%{name} ได้เลิกปิดกั้นโดเมน %{target}"
@ -199,10 +203,22 @@ th:
suspend_account: "%{name} ได้ระงับบัญชีของ %{target}"
unassigned_report: "%{name} ได้เลิกมอบหมายรายงาน %{target}"
unsuspend_account: "%{name} ได้เลิกระงับบัญชีของ %{target}"
update_announcement: "%{name} ได้อัปเดตประกาศ %{target}"
update_custom_emoji: "%{name} ได้อัปเดตอีโมจิ %{target}"
update_status: "%{name} ได้อัปเดตสถานะโดย %{target}"
deleted_status: "(สถานะที่ลบแล้ว)"
title: รายการบันทึกการตรวจสอบ
announcements:
edit:
title: แก้ไขประกาศ
empty: ไม่พบประกาศ
live: สด
new:
create: สร้างประกาศ
title: ประกาศใหม่
published: เผยแพร่เมื่อ
time_range: ช่วงเวลา
title: ประกาศ
custom_emojis:
assign_category: กำหนดหมวดหมู่
by_domain: โดเมน
@ -328,6 +344,8 @@ th:
title: คำเชิญ
pending_accounts:
title: บัญชีที่รอดำเนินการ (%{count})
relationships:
title: ความสัมพันธ์ของ %{acct}
relays:
add_new: เพิ่มรีเลย์ใหม่
delete: ลบ
@ -539,6 +557,9 @@ th:
confirm: ดำเนินการต่อ
invalid_password: รหัสผ่านไม่ถูกต้อง
prompt: ยืนยันรหัสผ่านเพื่อดำเนินการต่อ
date:
formats:
default: "%d %b %Y"
datetime:
distance_in_words:
about_x_hours: "%{count} ชั่วโมง"
@ -600,6 +621,7 @@ th:
add_new: เพิ่มใหม่
filters:
contexts:
account: โปรไฟล์
home: เส้นเวลาหน้าแรก
notifications: การแจ้งเตือน
public: เส้นเวลาสาธารณะ
@ -621,6 +643,8 @@ th:
all: ทั้งหมด
changes_saved_msg: บันทึกการเปลี่ยนแปลงสำเร็จ!
copy: คัดลอก
delete: ลบ
edit: แก้ไข
order_by: เรียงลำดับตาม
save_changes: บันทึกการเปลี่ยนแปลง
html_validator:
@ -722,10 +746,14 @@ th:
other: อื่น ๆ
posting_defaults: ค่าเริ่มต้นการโพสต์
public_timelines: เส้นเวลาสาธารณะ
reactions:
errors:
unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก
relationships:
activity: กิจกรรมบัญชี
followers: ผู้ติดตาม
following: กำลังติดตาม
invited: เชิญแล้ว
last_active: ใช้งานล่าสุด
most_recent: ล่าสุด
moved: ย้ายแล้ว

View File

@ -198,11 +198,13 @@ tr:
change_email_user: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi"
confirm_user: "%{name} %{target} kullanıcısının e-posta adresini onayladı"
create_account_warning: "%{name} %{target} 'a bir uyarı gönderdi"
create_announcement: "%{name}, yeni %{target} duyurusunu oluşturdu"
create_custom_emoji: "%{name} yeni ifade yükledi %{target}"
create_domain_allow: "%{target} alan adı, %{name} tarafından beyaz listeye alındı"
create_domain_block: "%{target} alanı, %{name} tarafından engellendi"
create_email_domain_block: "%{target} e-posta alanı, %{name} tarafından kara listeye alınmış"
demote_user: "%{name} %{target} kullanıcısını düşürdü"
destroy_announcement: "%{name}, %{target} duyurusunu sildi"
destroy_custom_emoji: "%{target} emoji, %{name} tarafından kaldırıldı"
destroy_domain_allow: "%{target} alan adı, %{name} tarafından beyaz listeden çıkartıldı"
destroy_domain_block: "%{target} alan adının engeli %{name} tarafından kaldırıldı"
@ -224,10 +226,22 @@ tr:
unassigned_report: "%{name} %{target} şikayetinin atamasını geri aldı"
unsilence_account: "%{name} %{target}'in hesabının susturmasını kaldırdı"
unsuspend_account: "%{name} %{target}'in hesabının uzaklaştırmasını kaldırdı"
update_announcement: "%{name}, %{target} duyurusunu güncelledi"
update_custom_emoji: "%{name} %{target} emojiyi güncelledi"
update_status: "%{name}, %{target} kullanıcısının durumunu güncelledi"
deleted_status: "(silinmiş durum)"
title: Denetim günlüğü
announcements:
edit:
title: Duyuruyu düzenle
empty: Duyuru bulunamadı.
live: Canlı
new:
create: Duyuru oluştur
title: Yeni duyuru
published: Yayınlanan
time_range: Zaman aralığı
title: Duyurular
custom_emojis:
assign_category: Kategori ata
by_domain: Alan adı
@ -657,6 +671,9 @@ tr:
hint_html: "<strong>İpucu:</strong> Önümüzdeki saat boyunca sana parolanı sormayacağız."
invalid_password: Geçersiz parola
prompt: Devam etmek parolayı doğrulayın
date:
formats:
default: "%b %d, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}sa"
@ -758,6 +775,8 @@ tr:
all: Tümü
changes_saved_msg: Değişiklikler başarıyla kaydedildi!
copy: Kopyala
delete: Sil
edit: Düzenle
no_batch_actions_available: Bu sayfada toplu işlem yok
order_by: Sıralama ölçütü
save_changes: Değişiklikleri kaydet
@ -929,6 +948,10 @@ tr:
other: Diğer
posting_defaults: Gönderi varsayılanları
public_timelines: Genel zaman çizelgeleri
reactions:
errors:
limit_reached: Farklı reaksiyonların sınırına ulaşıldı
unrecognized_emoji: tanınan bir emoji değil
relationships:
activity: Hesap etkinliği
dormant: Atıl

View File

@ -206,11 +206,13 @@ uk:
change_email_user: "%{name} змінив(-ла) поштову адресу користувача %{target}"
confirm_user: "%{name} підтвердив(-ла) статус поштової адреси користувача %{target}"
create_account_warning: "%{name} надіслав попередження до %{target}"
create_announcement: "%{name} створив нове оголошення %{target}"
create_custom_emoji: "%{name} вивантажив(-ла) нове емодзі %{target}"
create_domain_allow: "%{name} додав(-ла) домен %{target} до білого списку"
create_domain_block: "%{name} заблокував(-ла) домен %{target}"
create_email_domain_block: "%{name} додав(-ла) поштовий домен %{target} до чорного списку"
demote_user: "%{name} понизив(-ла) %{target}"
destroy_announcement: "%{name} видалив оголошення %{target}"
destroy_custom_emoji: "%{name} знищив(-ла) емодзі %{target}"
destroy_domain_allow: "%{name} видалив(-ла) домен %{target} з білого списку"
destroy_domain_block: "%{name} розблокував(-ла) домен %{target}"
@ -232,10 +234,22 @@ uk:
unassigned_report: "%{name} зняв(-ла) призначення скарги %{target}"
unsilence_account: "%{name} розглушив(-ла) обліковий запис %{target}"
unsuspend_account: "%{name} розморозив обліковий запис користувача %{target}"
update_announcement: "%{name} оновив оголошення %{target}"
update_custom_emoji: "%{name} оновив(-ла) емодзі %{target}"
update_status: "%{name} змінив(-ла) статус користуача %{target}"
deleted_status: "(видалений статус)"
title: Журнал подій
announcements:
edit:
title: Редагувати оголошення
empty: Оголошення не знайдені.
live: Наживо
new:
create: Створити оголошення
title: Нове оголошення
published: Опубліковане
time_range: Діапазон часу
title: Оголошення
custom_emojis:
assign_category: Призначити категорію
by_domain: Домен
@ -263,6 +277,7 @@ uk:
shortcode_hint: Мінімум два символи, тільки цифрові й латинські символи або підкреслення
title: Особливі емодзі
uncategorized: Без категорії
unlist: Прибрати
unlisted: Не у списку
update_failed_msg: Не вийшло оновити емозді
updated_msg: Емодзі успішно оновлене!
@ -348,6 +363,7 @@ uk:
delete: Видалити
destroyed_msg: Успішно видалено поштовий домен з чорного списку
domain: Домен
empty: Ніякі e-mail домени не блокуються.
new:
create: Додати домен
title: Нове блокування поштового домену
@ -382,6 +398,8 @@ uk:
title: Запрошення
pending_accounts:
title: Облікові записи у черзі (%{count})
relationships:
title: "%{acct} відносини"
relays:
add_new: Додати новий ретранслятор
delete: Видалити
@ -455,6 +473,7 @@ uk:
title: Користувацький CSS
default_noindex:
desc_html: Впливає на усіх користувачів, які не змінили це настроювання самостійно
title: Виключити користувачів з індексації пошуковими системами за замовчуванням
domain_blocks:
all: Всi
disabled: Нікого
@ -462,6 +481,8 @@ uk:
users: Для авторизованих локальних користувачів
domain_blocks_rationale:
title: Обґрунтування
enable_bootstrap_timeline_accounts:
title: Увімкнути підписки за замовчуванням для нових користувачів
hero:
desc_html: Відображається на головній сторінці. Рекомендовано як мінімум 600x100 пікселів. Якщо не вказано, буде використано передпоказ інстанції
title: Банер інстанції
@ -492,6 +513,7 @@ uk:
approved: Для входу потрібне схвалення
none: Ніхто не може увійти
open: Будь-хто може увійти
title: Режим реєстрації
show_known_fediverse_at_about_page:
desc_html: Коли увімкнено, будуть показані пости з усього відомого федисвіту у передпоказі. Інакше будуть показані лише локальні дмухи.
title: Показувати доступний федисвіт у передпоказі стрічки
@ -577,11 +599,13 @@ uk:
body_remote: Хтось з домену %{domain} поскаржився(-лася) на %{target}
subject: Нова скарга до %{instance} (#%{id})
new_trending_tag:
body: 'Хештег #%{name} сьогодні є в тренді, але раніше не переглядався. Він не відображатиметься публічно, якщо ви не дозволите це чи просто збережете форму, щоб ніколи більше про нього не чути.'
subject: Новий хештеґ надіслано на розгляд до %{instance} (#%{name})
aliases:
add_new: Створити псевдонім
created_msg: Новий псевдонім успішно створено. Тепер ви можете починати переміщення зі старого облікового запису.
deleted_msg: Псевдонім успішно видалено. Переміщення з того облікового запису до цього більше не можливе.
hint_html: Якщо ви збираєтеся мігрувати з іншого облікового запису на цей, ви можете налаштувати псевдонім, що потрібно для перенесення передплатників зі старою облікового запису. Ця дія саме по собі <strong>нешкідливо і оборотно</strong>. <strong>Міграція облікового запису починається з старого облікового запису</strong>.
remove: Від'єднати псевдонім
appearance:
advanced_web_interface: Розширений web-інтерфейс
@ -665,6 +689,9 @@ uk:
hint_html: "<strong>Підказка:</strong> ми не будемо запитувати ваш пароль впродовж наступної години."
invalid_password: Невірний пароль
prompt: Підтвердіть пароль для продовження
date:
formats:
default: "%b %d, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}г"
@ -741,6 +768,7 @@ uk:
hint_html: "<strong>Що таке виділені хештеґи?</strong> Це ті, що відображаються ни видному місці у вашому публічному профілі. Вони дають змогу людям фільтрувати ваші публічні пости за цими хештеґами. Це дуже корисно для відстеження мистецьких творів та довготривалих проектів."
filters:
contexts:
account: Профілі
home: Ваша стрічка
notifications: Сповіщення
public: Глобальні стрічки
@ -765,6 +793,9 @@ uk:
all: Усі
changes_saved_msg: Зміни успішно збережені!
copy: Копіювати
delete: Видалити
edit: Змінити
no_batch_actions_available: На цій сторінці немає запланованих дій
order_by: Сортувати за
save_changes: Зберегти зміни
validation_errors:
@ -780,6 +811,11 @@ uk:
authorize_connection_prompt: Авторизувати це зашифроване з'єднання?
errors:
failed: Не вдалося встановити це зашифроване з'єднання. Спробуйте ще раз за допомогою %{provider}.
keybase:
invalid_token: Токени Keybase - це хеші від підписів і повинні бути по довжині в 66 hex-символів
verification_failed: Keybase не розпізнає цей токен як підпис користувача Keybase %{kb_username}. Будь-ласка, спробуйте з Keybase.
wrong_user: Неможливо підтвердити користувача%{proving}, під час входу в систему як %{current}. Виконайте вхід як %{proving} і спробуйте ще раз.
explanation_html: На цій сторінці відображаються криптографічні підтверджені ідентифікатори - наприклад, прив'язаний профіль Keybase. Це дозволяє людям відправляти вам зашифровані повідомлення, а також довіряти вашим постам.
i_am_html: Я %{username} з %{service}.
identity: Ідентичність
inactive: Неактивний
@ -836,9 +872,11 @@ uk:
migrations:
acct: username@domain нового облікового запису
cancel: Скасувати перенаправлення
cancel_explanation: Скасування перенаправлення реактивує ваш поточний обліковий запис, але не поверне підписників, які були переміщені в інший обліковий запис.
cancelled_msg: Перенаправлення успішно скасовано.
errors:
already_moved: той самий обліковий запис, до якого ви вже переміщені
missing_also_known_as: не є зворотнім посиланням на цей обліковий запис
move_to_self: неможливо перемістити обліковий запис до самого себе
not_found: не знайдено
on_cooldown: Ви у витверезнику
@ -858,7 +896,9 @@ uk:
cooldown: Після переїзду ви деякий час не можете переїжджати знову
disabled_account: Поточний обліковий запис не буде повністю придатний до використання. Проте ви матимете доступ до експорту даних та повторної активації.
followers: Ця дія призведе до переміщення всіх підписників з поточного облікового запису до нового облікового запису
only_redirect_html: Або ж ви можете <a href="%{path}"> просто налаштувати перенаправлення у ваш профіль</a>.
other_data: Ніякі інші дані не будуть переміщені автоматично
redirect: Профіль цього облікового запису буде оновлено з заміткою про перенаправлення, а також виключений з пошуку
moderation:
title: Модерація
notification_mailer:
@ -926,6 +966,7 @@ uk:
duration_too_long: надто далеко у майбутньому
duration_too_short: надто мала тривалість
expired: Це опитування вже завершено
invalid_choice: Обраного варіанту голосування не існує
over_character_limit: не може бути довше ніж %{max} символів кожен
too_few_options: має містити більше ніж один варіант
too_many_options: не може мати більше ніж %{max} варіантів
@ -933,11 +974,15 @@ uk:
other: Інше
posting_defaults: Промовчання для постів
public_timelines: Глобальні стрічки
reactions:
errors:
unrecognized_emoji: не є розпізнаним емоджі
relationships:
activity: Діяльність облікового запису
dormant: Неактивні
followers: Підписники
following: Підписник(-ця)
invited: Запрошені
last_active: Крайня активність
most_recent: За часом створення
moved: Переміщено
@ -1128,6 +1173,7 @@ uk:
suspend: Ваш обліковий запис було призупинено, а всі ваші дмухи і вивантажені медіафайли - безповоротно видалено з цього сервера та серверів, де ви мали послідовників.
get_in_touch: Ви можете відповісти на цей електронний лист, щоб зконтактувати з працівниками %{instance}.
review_server_policies: Переглянути політики сервера
statuses: 'Зокрема, для:'
subject:
disable: Ваш обліковий запис %{acct} було заморожено
none: Попередження для %{acct}
@ -1163,4 +1209,5 @@ uk:
seamless_external_login: Ви увійшли за допомогою зовнішнього сервісу, тому налаштування паролю та електронної пошти недоступні.
signed_in_as: 'Ви увійшли як:'
verification:
explanation_html: 'Володіння посиланнями у профілі <strong>можна підтвердити</strong>. Для цього на зазначеному сайті повинна міститися посилання на ваш профіль Mastodon, а у самому посиланні <strong>повинен</strong> бути атрибут <code>rel="me"</code>. Що всередині посилання - значення не має. Ось вам приклад посилання:'
verification: Підтвердження

View File

@ -0,0 +1,42 @@
# frozen_string_literal: true
require 'rails_helper'
describe ReactionValidator do
let(:announcement) { Fabricate(:announcement) }
describe '#validate' do
it 'adds error when not a valid unicode emoji' do
reaction = announcement.announcement_reactions.build(name: 'F')
subject.validate(reaction)
expect(reaction.errors).to_not be_empty
end
it 'does not add error when non-unicode emoji is a custom emoji' do
custom_emoji = Fabricate(:custom_emoji)
reaction = announcement.announcement_reactions.build(name: custom_emoji.shortcode, custom_emoji_id: custom_emoji.id)
subject.validate(reaction)
expect(reaction.errors).to be_empty
end
it 'adds error when 8 reactions already exist' do
%w(🐘 ❤️ 🙉 😍 😋 😂 😞 👍).each do |name|
announcement.announcement_reactions.create!(name: name, account: Fabricate(:account))
end
reaction = announcement.announcement_reactions.build(name: '😘')
subject.validate(reaction)
expect(reaction.errors).to_not be_empty
end
it 'does not add error when new reaction is part of the existing ones' do
%w(🐘 ❤️ 🙉 😍 😋 😂 😞 👍).each do |name|
announcement.announcement_reactions.create!(name: name, account: Fabricate(:account))
end
reaction = announcement.announcement_reactions.build(name: '😋')
subject.validate(reaction)
expect(reaction.errors).to be_empty
end
end
end