Merge pull request #2121 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes
main^2
Claire 2 years ago committed by GitHub
commit bcbc2a43d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2056,13 +2056,6 @@ Style/HashAsLastArrayItem:
- 'app/services/notify_service.rb'
- 'db/migrate/20181024224956_migrate_account_conversations.rb'
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowSplatArgument.
Style/HashConversion:
Exclude:
- 'app/services/import_service.rb'
# Offense count: 12
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.

@ -6,7 +6,7 @@ ruby '>= 2.7.0', '< 3.3.0'
gem 'pkg-config', '~> 1.5'
gem 'rexml', '~> 3.2'
gem 'puma', '~> 5.6'
gem 'puma', '~> 6.1'
gem 'rails', '~> 6.1.7'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.2'
@ -106,7 +106,7 @@ group :development, :test do
gem 'i18n-tasks', '~> 1.0', require: false
gem 'pry-byebug', '~> 3.10'
gem 'pry-rails', '~> 0.3'
gem 'rspec-rails', '~> 5.1'
gem 'rspec-rails', '~> 6.0'
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false

@ -193,7 +193,7 @@ GEM
cocoon (1.2.15)
coderay (1.1.3)
color_diff (0.1)
concurrent-ruby (1.2.0)
concurrent-ruby (1.2.2)
connection_pool (2.3.0)
cose (1.3.0)
cbor (~> 0.5.9)
@ -508,7 +508,7 @@ GEM
pry-rails (0.3.9)
pry (>= 0.10.4)
public_suffix (5.0.1)
puma (5.6.5)
puma (6.1.0)
nio4r (~> 2.0)
pundit (2.3.0)
activesupport (>= 3.0.0)
@ -587,26 +587,26 @@ GEM
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
rqrcode_core (1.2.0)
rspec-core (3.11.0)
rspec-support (~> 3.11.0)
rspec-expectations (3.11.0)
rspec-core (3.12.1)
rspec-support (~> 3.12.0)
rspec-expectations (3.12.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-mocks (3.11.1)
rspec-support (~> 3.12.0)
rspec-mocks (3.12.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-rails (5.1.2)
actionpack (>= 5.2)
activesupport (>= 5.2)
railties (>= 5.2)
rspec-core (~> 3.10)
rspec-expectations (~> 3.10)
rspec-mocks (~> 3.10)
rspec-support (~> 3.10)
rspec-support (~> 3.12.0)
rspec-rails (6.0.1)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
rspec-core (~> 3.11)
rspec-expectations (~> 3.11)
rspec-mocks (~> 3.11)
rspec-support (~> 3.11)
rspec-sidekiq (3.1.0)
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
rspec-support (3.11.1)
rspec-support (3.12.0)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.45.1)
@ -856,7 +856,7 @@ DEPENDENCIES
pry-byebug (~> 3.10)
pry-rails (~> 0.3)
public_suffix (~> 5.0)
puma (~> 5.6)
puma (~> 6.1)
pundit (~> 2.3)
rack (~> 2.2.6)
rack-attack (~> 6.6)
@ -872,7 +872,7 @@ DEPENDENCIES
redis-namespace (~> 1.10)
rexml (~> 3.2)
rqrcode (~> 2.1)
rspec-rails (~> 5.1)
rspec-rails (~> 6.0)
rspec-sidekiq (~> 3.1)
rspec_junit_formatter (~> 0.6)
rubocop

@ -1,11 +0,0 @@
# frozen_string_literal: true
module Admin::AnnouncementsHelper
def time_range(announcement)
if announcement.all_day?
safe_join([l(announcement.starts_at.to_date), ' - ', l(announcement.ends_at.to_date)])
else
safe_join([l(announcement.starts_at), ' - ', l(announcement.ends_at)])
end
end
end

@ -41,9 +41,9 @@ module HomeHelper
def obscured_counter(count)
if count <= 0
0
'0'
elsif count == 1
1
'1'
else
'1+'
end
@ -57,14 +57,6 @@ module HomeHelper
end
end
def optional_link_to(condition, path, options = {}, &block)
if condition
link_to(path, options, &block)
else
content_tag(:div, &block)
end
end
def sign_up_message
if closed_registrations?
t('auth.registration_closed', instance: site_hostname)

@ -6,6 +6,7 @@ export default class GIFV extends React.PureComponent {
static propTypes = {
src: PropTypes.string.isRequired,
alt: PropTypes.string,
lang: PropTypes.string,
width: PropTypes.number,
height: PropTypes.number,
onClick: PropTypes.func,
@ -35,7 +36,7 @@ export default class GIFV extends React.PureComponent {
};
render () {
const { src, width, height, alt } = this.props;
const { src, width, height, alt, lang } = this.props;
const { loading } = this.state;
return (
@ -48,6 +49,7 @@ export default class GIFV extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
lang={lang}
onClick={this.handleClick}
/>
)}
@ -58,6 +60,7 @@ export default class GIFV extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
lang={lang}
muted
loop
autoPlay

@ -10,6 +10,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
static propTypes = {
status: ImmutablePropTypes.map.isRequired,
lang: PropTypes.string,
height: PropTypes.number,
width: PropTypes.number,
revealed: PropTypes.bool,
@ -49,7 +50,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
};
render () {
const { status, width, height, revealed } = this.props;
const { status, lang, width, height, revealed } = this.props;
const mediaAttachments = status.get('media_attachments');
if (mediaAttachments.size === 0) {
@ -65,6 +66,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
<Component
src={audio.get('url')}
alt={audio.get('description')}
lang={lang || status.get('language')}
width={width}
height={height}
poster={audio.get('preview_url') || status.getIn(['account', 'avatar_static'])}
@ -88,6 +90,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
blurhash={video.get('blurhash')}
src={video.get('url')}
alt={video.get('description')}
lang={lang || status.get('language')}
width={width}
height={height}
inline
@ -104,6 +107,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
{Component => (
<Component
media={mediaAttachments}
lang={lang || status.get('language')}
sensitive={status.get('sensitive')}
defaultWidth={width}
revealed={revealed}

@ -36,6 +36,7 @@ class Item extends React.PureComponent {
static propTypes = {
attachment: ImmutablePropTypes.map.isRequired,
lang: PropTypes.string,
standalone: PropTypes.bool,
index: PropTypes.number.isRequired,
size: PropTypes.number.isRequired,
@ -98,7 +99,7 @@ class Item extends React.PureComponent {
};
render () {
const { attachment, index, size, standalone, letterbox, displayWidth, visible } = this.props;
const { attachment, lang, index, size, standalone, letterbox, displayWidth, visible } = this.props;
let width = 50;
let height = 100;
@ -154,7 +155,7 @@ class Item extends React.PureComponent {
if (attachment.get('type') === 'unknown') {
return (
<div className={classNames('media-gallery__item', { standalone })} key={attachment.get('id')} style={{ left: left, top: top, right: right, bottom: bottom, width: `${width}%`, height: `${height}%` }}>
<a className='media-gallery__item-thumbnail' href={attachment.get('remote_url') || attachment.get('url')} style={{ cursor: 'pointer' }} title={attachment.get('description')} target='_blank' rel='noopener noreferrer'>
<a className='media-gallery__item-thumbnail' href={attachment.get('remote_url') || attachment.get('url')} style={{ cursor: 'pointer' }} title={attachment.get('description')} lang={lang} target='_blank' rel='noopener noreferrer'>
<Blurhash
hash={attachment.get('blurhash')}
className='media-gallery__preview'
@ -195,6 +196,7 @@ class Item extends React.PureComponent {
sizes={sizes}
alt={attachment.get('description')}
title={attachment.get('description')}
lang={lang}
style={{ objectPosition: letterbox ? null : `${x}% ${y}%` }}
onLoad={this.handleImageLoad}
/>
@ -209,6 +211,7 @@ class Item extends React.PureComponent {
className={`media-gallery__item-gifv-thumbnail${letterbox ? ' letterbox' : ''}`}
aria-label={attachment.get('description')}
title={attachment.get('description')}
lang={lang}
role='application'
src={attachment.get('url')}
onClick={this.handleClick}
@ -251,6 +254,7 @@ class MediaGallery extends React.PureComponent {
fullwidth: PropTypes.bool,
hidden: PropTypes.bool,
media: ImmutablePropTypes.list.isRequired,
lang: PropTypes.string,
size: PropTypes.object,
onOpenMedia: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
@ -342,7 +346,7 @@ class MediaGallery extends React.PureComponent {
}
render () {
const { media, intl, sensitive, letterbox, fullwidth, defaultWidth, autoplay } = this.props;
const { media, lang, intl, sensitive, letterbox, fullwidth, defaultWidth, autoplay } = this.props;
const { visible } = this.state;
const size = media.take(4).size;
const uncached = media.every(attachment => attachment.get('type') === 'unknown');
@ -364,9 +368,9 @@ class MediaGallery extends React.PureComponent {
}
if (this.isStandaloneEligible()) {
children = <Item standalone autoplay={autoplay} onClick={this.handleClick} attachment={media.get(0)} displayWidth={width} visible={visible} />;
children = <Item standalone autoplay={autoplay} onClick={this.handleClick} attachment={media.get(0)} lang={lang} displayWidth={width} visible={visible} />;
} else {
children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} autoplay={autoplay} onClick={this.handleClick} attachment={attachment} index={i} size={size} letterbox={letterbox} displayWidth={width} visible={visible || uncached} />);
children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} autoplay={autoplay} onClick={this.handleClick} attachment={attachment} index={i} lang={lang} size={size} letterbox={letterbox} displayWidth={width} visible={visible || uncached} />);
}
if (uncached) {

@ -40,6 +40,7 @@ class Poll extends ImmutablePureComponent {
static propTypes = {
poll: ImmutablePropTypes.map,
lang: PropTypes.string,
intl: PropTypes.object.isRequired,
disabled: PropTypes.bool,
refresh: PropTypes.func,
@ -126,7 +127,7 @@ class Poll extends ImmutablePureComponent {
};
renderOption (option, optionIndex, showResults) {
const { poll, disabled, intl } = this.props;
const { poll, lang, disabled, intl } = this.props;
const pollVotesCount = poll.get('voters_count') || poll.get('votes_count');
const percent = pollVotesCount === 0 ? 0 : (option.get('votes_count') / pollVotesCount) * 100;
const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') >= other.get('votes_count'));
@ -159,6 +160,7 @@ class Poll extends ImmutablePureComponent {
onKeyPress={this.handleOptionKeyPress}
aria-checked={active}
aria-label={option.get('title')}
lang={lang}
data-index={optionIndex}
/>
)}
@ -175,6 +177,7 @@ class Poll extends ImmutablePureComponent {
<span
className='poll__option__text translate'
lang={lang}
dangerouslySetInnerHTML={{ __html: titleEmojified }}
/>

@ -630,6 +630,7 @@ class Status extends ImmutablePureComponent {
<Component
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
poster={attachment.get('preview_url') || status.getIn(['account', 'avatar_static'])}
backgroundColor={attachment.getIn(['meta', 'colors', 'background'])}
foregroundColor={attachment.getIn(['meta', 'colors', 'foreground'])}
@ -659,6 +660,7 @@ class Status extends ImmutablePureComponent {
blurhash={attachment.get('blurhash')}
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
inline
sensitive={status.get('sensitive')}
letterbox={settings.getIn(['media', 'letterbox'])}
@ -680,6 +682,7 @@ class Status extends ImmutablePureComponent {
{Component => (
<Component
media={attachments}
lang={status.get('language')}
sensitive={status.get('sensitive')}
letterbox={settings.getIn(['media', 'letterbox'])}
fullwidth={settings.getIn(['media', 'fullwidth'])}
@ -714,7 +717,7 @@ class Status extends ImmutablePureComponent {
}
if (status.get('poll')) {
contentMedia.push(<PollContainer pollId={status.get('poll')} />);
contentMedia.push(<PollContainer pollId={status.get('poll')} lang={status.get('language')} />);
contentMediaIcons.push('tasks');
}

@ -76,6 +76,7 @@ export default class MediaItem extends ImmutablePureComponent {
<img
src={attachment.get('preview_url') || attachment.getIn(['account', 'avatar_static'])}
alt={attachment.get('description')}
lang={status.get('language')}
onLoad={this.handleImageLoad}
/>
);
@ -95,6 +96,7 @@ export default class MediaItem extends ImmutablePureComponent {
<img
src={attachment.get('preview_url')}
alt={attachment.get('description')}
lang={status.get('language')}
style={{ objectPosition: `${x}% ${y}%` }}
onLoad={this.handleImageLoad}
/>
@ -105,6 +107,7 @@ export default class MediaItem extends ImmutablePureComponent {
className='media-gallery__item-gifv-thumbnail'
aria-label={attachment.get('description')}
title={attachment.get('description')}
lang={status.get('language')}
role='application'
src={attachment.get('url')}
onMouseEnter={this.handleMouseEnter}

@ -28,6 +28,7 @@ class Audio extends React.PureComponent {
static propTypes = {
src: PropTypes.string.isRequired,
alt: PropTypes.string,
lang: PropTypes.string,
poster: PropTypes.string,
duration: PropTypes.number,
width: PropTypes.number,
@ -464,7 +465,7 @@ class Audio extends React.PureComponent {
};
render () {
const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props;
const { src, intl, alt, lang, editable, autoPlay, sensitive, blurhash } = this.props;
const { paused, muted, volume, currentTime, duration, buffer, dragging, revealed } = this.state;
const progress = Math.min((currentTime / duration) * 100, 100);
@ -509,6 +510,7 @@ class Audio extends React.PureComponent {
onKeyDown={this.handleAudioKeyDown}
title={alt}
aria-label={alt}
lang={lang}
/>
<div className={classNames('spoiler-button', { 'spoiler-button--hidden': revealed || editable })}>

@ -169,6 +169,7 @@ class DetailedStatus extends ImmutablePureComponent {
<Audio
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
duration={attachment.getIn(['meta', 'original', 'duration'], 0)}
poster={attachment.get('preview_url') || status.getIn(['account', 'avatar_static'])}
backgroundColor={attachment.getIn(['meta', 'colors', 'background'])}
@ -191,6 +192,7 @@ class DetailedStatus extends ImmutablePureComponent {
blurhash={attachment.get('blurhash')}
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
inline
sensitive={status.get('sensitive')}
letterbox={settings.getIn(['media', 'letterbox'])}
@ -209,6 +211,7 @@ class DetailedStatus extends ImmutablePureComponent {
standalone
sensitive={status.get('sensitive')}
media={status.get('media_attachments')}
lang={status.get('language')}
letterbox={settings.getIn(['media', 'letterbox'])}
fullwidth={settings.getIn(['media', 'fullwidth'])}
hidden={!expanded}
@ -225,7 +228,7 @@ class DetailedStatus extends ImmutablePureComponent {
}
if (status.get('poll')) {
contentMedia.push(<PollContainer pollId={status.get('poll')} />);
contentMedia.push(<PollContainer pollId={status.get('poll')} lang={status.get('language')} />);
contentMediaIcons.push('tasks');
}

@ -7,15 +7,17 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import Footer from 'flavours/glitch/features/picture_in_picture/components/footer';
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
accountStaticAvatar: state.getIn(['accounts', state.getIn(['statuses', statusId, 'account']), 'avatar_static']),
});
export default @connect(mapStateToProps)
export default @connect(mapStateToProps, null, null, { forwardRef: true })
class AudioModal extends ImmutablePureComponent {
static propTypes = {
media: ImmutablePropTypes.map.isRequired,
statusId: PropTypes.string.isRequired,
language: PropTypes.string,
accountStaticAvatar: PropTypes.string.isRequired,
options: PropTypes.shape({
autoPlay: PropTypes.bool,
@ -29,7 +31,7 @@ class AudioModal extends ImmutablePureComponent {
};
render () {
const { media, accountStaticAvatar, statusId, onClose } = this.props;
const { media, language, accountStaticAvatar, statusId, onClose } = this.props;
const options = this.props.options || {};
return (
@ -38,6 +40,7 @@ class AudioModal extends ImmutablePureComponent {
<Audio
src={media.get('url')}
alt={media.get('description')}
lang={language}
duration={media.getIn(['meta', 'original', 'duration'], 0)}
height={150}
poster={media.get('preview_url') || accountStaticAvatar}

@ -12,6 +12,7 @@ import RelativeTimestamp from 'flavours/glitch/components/relative_timestamp';
import MediaAttachments from 'flavours/glitch/components/media_attachments';
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
versions: state.getIn(['history', statusId, 'items']),
});
@ -30,11 +31,12 @@ class CompareHistoryModal extends React.PureComponent {
onClose: PropTypes.func.isRequired,
index: PropTypes.number.isRequired,
statusId: PropTypes.string.isRequired,
language: PropTypes.string.isRequired,
versions: ImmutablePropTypes.list.isRequired,
};
render () {
const { index, versions, onClose } = this.props;
const { index, versions, language, onClose } = this.props;
const currentVersion = versions.get(index);
const emojiMap = currentVersion.get('emojis').reduce((obj, emoji) => {
@ -65,12 +67,12 @@ class CompareHistoryModal extends React.PureComponent {
<div className='status__content'>
{currentVersion.get('spoiler_text').length > 0 && (
<React.Fragment>
<div className='translate' dangerouslySetInnerHTML={spoilerContent} />
<div className='translate' dangerouslySetInnerHTML={spoilerContent} lang={language} />
<hr />
</React.Fragment>
)}
<div className='status__content__text status__content__text--visible translate' dangerouslySetInnerHTML={content} />
<div className='status__content__text status__content__text--visible translate' dangerouslySetInnerHTML={content} lang={language} />
{!!currentVersion.get('poll') && (
<div className='poll'>
@ -82,6 +84,7 @@ class CompareHistoryModal extends React.PureComponent {
<span
className='poll__option__text translate'
dangerouslySetInnerHTML={{ __html: emojify(escapeTextContentForBrowser(option.get('title')), emojiMap) }}
lang={language}
/>
</li>
))}
@ -89,7 +92,7 @@ class CompareHistoryModal extends React.PureComponent {
</div>
)}
<MediaAttachments status={currentVersion} />
<MediaAttachments status={currentVersion} lang={language} />
</div>
</div>
</div>

@ -8,6 +8,7 @@ export default class ImageLoader extends PureComponent {
static propTypes = {
alt: PropTypes.string,
lang: PropTypes.string,
src: PropTypes.string.isRequired,
previewSrc: PropTypes.string,
width: PropTypes.number,
@ -18,6 +19,7 @@ export default class ImageLoader extends PureComponent {
static defaultProps = {
alt: '',
lang: '',
width: null,
height: null,
};
@ -129,7 +131,7 @@ export default class ImageLoader extends PureComponent {
};
render () {
const { alt, src, width, height, onClick } = this.props;
const { alt, lang, src, width, height, onClick } = this.props;
const { loading } = this.state;
const className = classNames('image-loader', {
@ -154,6 +156,7 @@ export default class ImageLoader extends PureComponent {
) : (
<ZoomableImage
alt={alt}
lang={lang}
src={src}
onClick={onClick}
width={width}

@ -3,6 +3,7 @@ import ReactSwipeableViews from 'react-swipeable-views';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Video from 'flavours/glitch/features/video';
import { connect } from 'react-redux';
import classNames from 'classnames';
import { defineMessages, injectIntl } from 'react-intl';
import IconButton from 'flavours/glitch/components/icon_button';
@ -20,7 +21,12 @@ const messages = defineMessages({
next: { id: 'lightbox.next', defaultMessage: 'Next' },
});
export default @injectIntl
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
});
export default @connect(mapStateToProps, null, null, { forwardRef: true })
@injectIntl
class MediaModal extends ImmutablePureComponent {
static contextTypes = {
@ -131,7 +137,7 @@ class MediaModal extends ImmutablePureComponent {
}
render () {
const { media, statusId, intl, onClose } = this.props;
const { media, language, statusId, intl, onClose } = this.props;
const { navigationHidden } = this.state;
const index = this.getIndex();
@ -151,6 +157,7 @@ class MediaModal extends ImmutablePureComponent {
width={width}
height={height}
alt={image.get('description')}
lang={language}
key={image.get('url')}
onClick={this.toggleNavigation}
zoomButtonHidden={this.state.zoomButtonHidden}
@ -173,6 +180,7 @@ class MediaModal extends ImmutablePureComponent {
onCloseVideo={onClose}
detailed
alt={image.get('description')}
lang={language}
key={image.get('url')}
/>
);
@ -184,6 +192,7 @@ class MediaModal extends ImmutablePureComponent {
height={height}
key={image.get('preview_url')}
alt={image.get('description')}
lang={language}
onClick={this.toggleNavigation}
/>
);

@ -2,11 +2,17 @@ import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Video from 'flavours/glitch/features/video';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Footer from 'flavours/glitch/features/picture_in_picture/components/footer';
import { getAverageFromBlurhash } from 'flavours/glitch/blurhash';
export default class VideoModal extends ImmutablePureComponent {
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
});
export default @connect(mapStateToProps, null, null, { forwardRef: true })
class VideoModal extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
@ -15,6 +21,7 @@ export default class VideoModal extends ImmutablePureComponent {
static propTypes = {
media: ImmutablePropTypes.map.isRequired,
statusId: PropTypes.string,
language: PropTypes.string,
options: PropTypes.shape({
startTime: PropTypes.number,
autoPlay: PropTypes.bool,
@ -35,7 +42,7 @@ export default class VideoModal extends ImmutablePureComponent {
}
render () {
const { media, statusId, onClose } = this.props;
const { media, statusId, language, onClose } = this.props;
const options = this.props.options || {};
return (
@ -53,6 +60,7 @@ export default class VideoModal extends ImmutablePureComponent {
autoFocus
detailed
alt={media.get('description')}
lang={language}
/>
</div>

@ -96,6 +96,7 @@ class ZoomableImage extends React.PureComponent {
static propTypes = {
alt: PropTypes.string,
lang: PropTypes.string,
src: PropTypes.string.isRequired,
width: PropTypes.number,
height: PropTypes.number,
@ -106,6 +107,7 @@ class ZoomableImage extends React.PureComponent {
static defaultProps = {
alt: '',
lang: '',
width: null,
height: null,
};
@ -403,7 +405,7 @@ class ZoomableImage extends React.PureComponent {
};
render () {
const { alt, src, width, height, intl } = this.props;
const { alt, lang, src, width, height, intl } = this.props;
const { scale, lockTranslate } = this.state;
const overflow = scale === MIN_SCALE ? 'hidden' : 'scroll';
const zoomButtonShouldHide = this.state.navigationHidden || this.props.zoomButtonHidden || this.state.zoomMatrix.rate <= MIN_SCALE ? 'media-modal__zoom-button--hidden' : '';
@ -431,6 +433,7 @@ class ZoomableImage extends React.PureComponent {
ref={this.setImageRef}
alt={alt}
title={alt}
lang={lang}
src={src}
width={width}
height={height}

@ -101,6 +101,7 @@ class Video extends React.PureComponent {
frameRate: PropTypes.string,
src: PropTypes.string.isRequired,
alt: PropTypes.string,
lang: PropTypes.string,
width: PropTypes.number,
height: PropTypes.number,
sensitive: PropTypes.bool,
@ -538,7 +539,7 @@ class Video extends React.PureComponent {
}
render () {
const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, letterbox, fullwidth, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, lang, letterbox, fullwidth, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
const { containerWidth, currentTime, duration, volume, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
const progress = Math.min((currentTime / duration) * 100, 100);
const playerStyle = {};
@ -603,6 +604,7 @@ class Video extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
lang={lang}
width={width}
height={height}
volume={volume}

@ -6,6 +6,7 @@ export default class GIFV extends React.PureComponent {
static propTypes = {
src: PropTypes.string.isRequired,
alt: PropTypes.string,
lang: PropTypes.string,
width: PropTypes.number,
height: PropTypes.number,
onClick: PropTypes.func,
@ -35,7 +36,7 @@ export default class GIFV extends React.PureComponent {
};
render () {
const { src, width, height, alt } = this.props;
const { src, width, height, alt, lang } = this.props;
const { loading } = this.state;
return (
@ -48,6 +49,7 @@ export default class GIFV extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
lang={lang}
onClick={this.handleClick}
/>
)}
@ -58,6 +60,7 @@ export default class GIFV extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
lang={lang}
muted
loop
autoPlay

@ -10,6 +10,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
static propTypes = {
status: ImmutablePropTypes.map.isRequired,
lang: PropTypes.string,
height: PropTypes.number,
width: PropTypes.number,
};
@ -48,7 +49,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
};
render () {
const { status, width, height } = this.props;
const { status, lang, width, height } = this.props;
const mediaAttachments = status.get('media_attachments');
if (mediaAttachments.size === 0) {
@ -64,6 +65,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
<Component
src={audio.get('url')}
alt={audio.get('description')}
lang={lang || status.get('language')}
width={width}
height={height}
poster={audio.get('preview_url') || status.getIn(['account', 'avatar_static'])}
@ -87,6 +89,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
blurhash={video.get('blurhash')}
src={video.get('url')}
alt={video.get('description')}
lang={lang || status.get('language')}
width={width}
height={height}
inline
@ -102,6 +105,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
{Component => (
<Component
media={mediaAttachments}
lang={lang || status.get('language')}
sensitive={status.get('sensitive')}
defaultWidth={width}
height={height}

@ -17,6 +17,7 @@ class Item extends React.PureComponent {
static propTypes = {
attachment: ImmutablePropTypes.map.isRequired,
lang: PropTypes.string,
standalone: PropTypes.bool,
index: PropTypes.number.isRequired,
size: PropTypes.number.isRequired,
@ -78,7 +79,7 @@ class Item extends React.PureComponent {
};
render () {
const { attachment, index, size, standalone, displayWidth, visible } = this.props;
const { attachment, lang, index, size, standalone, displayWidth, visible } = this.props;
let width = 50;
let height = 100;
@ -134,7 +135,7 @@ class Item extends React.PureComponent {
if (attachment.get('type') === 'unknown') {
return (
<div className={classNames('media-gallery__item', { standalone })} key={attachment.get('id')} style={{ left: left, top: top, right: right, bottom: bottom, width: `${width}%`, height: `${height}%` }}>
<a className='media-gallery__item-thumbnail' href={attachment.get('remote_url') || attachment.get('url')} style={{ cursor: 'pointer' }} title={attachment.get('description')} target='_blank' rel='noopener noreferrer'>
<a className='media-gallery__item-thumbnail' href={attachment.get('remote_url') || attachment.get('url')} style={{ cursor: 'pointer' }} title={attachment.get('description')} lang={lang} target='_blank' rel='noopener noreferrer'>
<Blurhash
hash={attachment.get('blurhash')}
className='media-gallery__preview'
@ -174,6 +175,7 @@ class Item extends React.PureComponent {
sizes={sizes}
alt={attachment.get('description')}
title={attachment.get('description')}
lang={lang}
style={{ objectPosition: `${x}% ${y}%` }}
onLoad={this.handleImageLoad}
/>
@ -188,6 +190,7 @@ class Item extends React.PureComponent {
className='media-gallery__item-gifv-thumbnail'
aria-label={attachment.get('description')}
title={attachment.get('description')}
lang={lang}
role='application'
src={attachment.get('url')}
onClick={this.handleClick}
@ -227,6 +230,7 @@ class MediaGallery extends React.PureComponent {
sensitive: PropTypes.bool,
standalone: PropTypes.bool,
media: ImmutablePropTypes.list.isRequired,
lang: PropTypes.string,
size: PropTypes.object,
height: PropTypes.number.isRequired,
onOpenMedia: PropTypes.func.isRequired,
@ -310,9 +314,8 @@ class MediaGallery extends React.PureComponent {
}
render () {
const { media, intl, sensitive, height, defaultWidth, standalone, autoplay } = this.props;
const { media, lang, intl, sensitive, height, defaultWidth, standalone, autoplay } = this.props;
const { visible } = this.state;
const width = this.state.width || defaultWidth;
let children, spoilerButton;
@ -333,9 +336,9 @@ class MediaGallery extends React.PureComponent {
const uncached = media.every(attachment => attachment.get('type') === 'unknown');
if (standalone && this.isFullSizeEligible()) {
children = <Item standalone autoplay={autoplay} onClick={this.handleClick} attachment={media.get(0)} displayWidth={width} visible={visible} />;
children = <Item standalone autoplay={autoplay} onClick={this.handleClick} attachment={media.get(0)} lang={lang} displayWidth={width} visible={visible} />;
} else {
children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} autoplay={autoplay} onClick={this.handleClick} attachment={attachment} index={i} size={size} displayWidth={width} visible={visible || uncached} />);
children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} autoplay={autoplay} onClick={this.handleClick} attachment={attachment} index={i} lang={lang} size={size} displayWidth={width} visible={visible || uncached} />);
}
if (uncached) {

@ -40,6 +40,7 @@ class Poll extends ImmutablePureComponent {
static propTypes = {
poll: ImmutablePropTypes.map,
lang: PropTypes.string,
intl: PropTypes.object.isRequired,
disabled: PropTypes.bool,
refresh: PropTypes.func,
@ -126,7 +127,7 @@ class Poll extends ImmutablePureComponent {
};
renderOption (option, optionIndex, showResults) {
const { poll, disabled, intl } = this.props;
const { poll, lang, disabled, intl } = this.props;
const pollVotesCount = poll.get('voters_count') || poll.get('votes_count');
const percent = pollVotesCount === 0 ? 0 : (option.get('votes_count') / pollVotesCount) * 100;
const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') >= other.get('votes_count'));
@ -159,6 +160,7 @@ class Poll extends ImmutablePureComponent {
onKeyPress={this.handleOptionKeyPress}
aria-checked={active}
aria-label={option.get('title')}
lang={lang}
data-index={optionIndex}
/>
)}
@ -175,6 +177,7 @@ class Poll extends ImmutablePureComponent {
<span
className='poll__option__text translate'
lang={lang}
dangerouslySetInnerHTML={{ __html: titleEmojified }}
/>

@ -417,6 +417,7 @@ class Status extends ImmutablePureComponent {
<Component
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
poster={attachment.get('preview_url') || status.getIn(['account', 'avatar_static'])}
backgroundColor={attachment.getIn(['meta', 'colors', 'background'])}
foregroundColor={attachment.getIn(['meta', 'colors', 'foreground'])}
@ -446,6 +447,7 @@ class Status extends ImmutablePureComponent {
blurhash={attachment.get('blurhash')}
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
width={this.props.cachedMediaWidth}
height={110}
inline
@ -465,6 +467,7 @@ class Status extends ImmutablePureComponent {
{Component => (
<Component
media={status.get('media_attachments')}
lang={status.get('language')}
sensitive={status.get('sensitive')}
height={110}
onOpenMedia={this.handleOpenMedia}

@ -242,7 +242,7 @@ class StatusContent extends React.PureComponent {
);
const poll = !!status.get('poll') && (
<PollContainer pollId={status.get('poll')} />
<PollContainer pollId={status.get('poll')} lang={status.get('language')} />
);
if (status.get('spoiler_text').length > 0) {

@ -76,6 +76,7 @@ export default class MediaItem extends ImmutablePureComponent {
<img
src={attachment.get('preview_url') || attachment.getIn(['account', 'avatar_static'])}
alt={attachment.get('description')}
lang={status.get('language')}
onLoad={this.handleImageLoad}
/>
);
@ -95,6 +96,7 @@ export default class MediaItem extends ImmutablePureComponent {
<img
src={attachment.get('preview_url')}
alt={attachment.get('description')}
lang={status.get('language')}
style={{ objectPosition: `${x}% ${y}%` }}
onLoad={this.handleImageLoad}
/>
@ -105,6 +107,7 @@ export default class MediaItem extends ImmutablePureComponent {
className='media-gallery__item-gifv-thumbnail'
aria-label={attachment.get('description')}
title={attachment.get('description')}
lang={status.get('language')}
role='application'
src={attachment.get('url')}
onMouseEnter={this.handleMouseEnter}

@ -28,6 +28,7 @@ class Audio extends React.PureComponent {
static propTypes = {
src: PropTypes.string.isRequired,
alt: PropTypes.string,
lang: PropTypes.string,
poster: PropTypes.string,
duration: PropTypes.number,
width: PropTypes.number,
@ -458,7 +459,7 @@ class Audio extends React.PureComponent {
};
render () {
const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props;
const { src, intl, alt, lang, editable, autoPlay, sensitive, blurhash } = this.props;
const { paused, muted, volume, currentTime, duration, buffer, dragging, revealed } = this.state;
const progress = Math.min((currentTime / duration) * 100, 100);
@ -503,6 +504,7 @@ class Audio extends React.PureComponent {
onKeyDown={this.handleAudioKeyDown}
title={alt}
aria-label={alt}
lang={lang}
/>
<div className={classNames('spoiler-button', { 'spoiler-button--hidden': revealed || editable })}>

@ -139,6 +139,7 @@ class DetailedStatus extends ImmutablePureComponent {
<Audio
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
duration={attachment.getIn(['meta', 'original', 'duration'], 0)}
poster={attachment.get('preview_url') || status.getIn(['account', 'avatar_static'])}
backgroundColor={attachment.getIn(['meta', 'colors', 'background'])}
@ -161,6 +162,7 @@ class DetailedStatus extends ImmutablePureComponent {
blurhash={attachment.get('blurhash')}
src={attachment.get('url')}
alt={attachment.get('description')}
lang={status.get('language')}
width={300}
height={150}
inline
@ -176,6 +178,7 @@ class DetailedStatus extends ImmutablePureComponent {
standalone
sensitive={status.get('sensitive')}
media={status.get('media_attachments')}
lang={status.get('language')}
height={300}
onOpenMedia={this.props.onOpenMedia}
visible={this.props.showMedia}

@ -7,15 +7,17 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import Footer from 'mastodon/features/picture_in_picture/components/footer';
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
accountStaticAvatar: state.getIn(['accounts', state.getIn(['statuses', statusId, 'account']), 'avatar_static']),
});
export default @connect(mapStateToProps)
export default @connect(mapStateToProps, null, null, { forwardRef: true })
class AudioModal extends ImmutablePureComponent {
static propTypes = {
media: ImmutablePropTypes.map.isRequired,
statusId: PropTypes.string.isRequired,
language: PropTypes.string,
accountStaticAvatar: PropTypes.string.isRequired,
options: PropTypes.shape({
autoPlay: PropTypes.bool,
@ -25,7 +27,7 @@ class AudioModal extends ImmutablePureComponent {
};
render () {
const { media, accountStaticAvatar, statusId, onClose } = this.props;
const { media, language, accountStaticAvatar, statusId, onClose } = this.props;
const options = this.props.options || {};
return (
@ -34,6 +36,7 @@ class AudioModal extends ImmutablePureComponent {
<Audio
src={media.get('url')}
alt={media.get('description')}
lang={language}
duration={media.getIn(['meta', 'original', 'duration'], 0)}
height={150}
poster={media.get('preview_url') || accountStaticAvatar}

@ -12,6 +12,7 @@ import RelativeTimestamp from 'mastodon/components/relative_timestamp';
import MediaAttachments from 'mastodon/components/media_attachments';
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
versions: state.getIn(['history', statusId, 'items']),
});
@ -30,11 +31,12 @@ class CompareHistoryModal extends React.PureComponent {
onClose: PropTypes.func.isRequired,
index: PropTypes.number.isRequired,
statusId: PropTypes.string.isRequired,
language: PropTypes.string.isRequired,
versions: ImmutablePropTypes.list.isRequired,
};
render () {
const { index, versions, onClose } = this.props;
const { index, versions, language, onClose } = this.props;
const currentVersion = versions.get(index);
const emojiMap = currentVersion.get('emojis').reduce((obj, emoji) => {
@ -65,12 +67,12 @@ class CompareHistoryModal extends React.PureComponent {
<div className='status__content'>
{currentVersion.get('spoiler_text').length > 0 && (
<React.Fragment>
<div className='translate' dangerouslySetInnerHTML={spoilerContent} />
<div className='translate' dangerouslySetInnerHTML={spoilerContent} lang={language} />
<hr />
</React.Fragment>
)}
<div className='status__content__text status__content__text--visible translate' dangerouslySetInnerHTML={content} />
<div className='status__content__text status__content__text--visible translate' dangerouslySetInnerHTML={content} lang={language} />
{!!currentVersion.get('poll') && (
<div className='poll'>
@ -82,6 +84,7 @@ class CompareHistoryModal extends React.PureComponent {
<span
className='poll__option__text translate'
dangerouslySetInnerHTML={{ __html: emojify(escapeTextContentForBrowser(option.get('title')), emojiMap) }}
lang={language}
/>
</li>
))}
@ -89,7 +92,7 @@ class CompareHistoryModal extends React.PureComponent {
</div>
)}
<MediaAttachments status={currentVersion} />
<MediaAttachments status={currentVersion} lang={language} />
</div>
</div>
</div>

@ -8,6 +8,7 @@ export default class ImageLoader extends PureComponent {
static propTypes = {
alt: PropTypes.string,
lang: PropTypes.string,
src: PropTypes.string.isRequired,
previewSrc: PropTypes.string,
width: PropTypes.number,
@ -18,6 +19,7 @@ export default class ImageLoader extends PureComponent {
static defaultProps = {
alt: '',
lang: '',
width: null,
height: null,
};
@ -129,7 +131,7 @@ export default class ImageLoader extends PureComponent {
};
render () {
const { alt, src, width, height, onClick } = this.props;
const { alt, lang, src, width, height, onClick } = this.props;
const { loading } = this.state;
const className = classNames('image-loader', {
@ -154,6 +156,7 @@ export default class ImageLoader extends PureComponent {
) : (
<ZoomableImage
alt={alt}
lang={lang}
src={src}
onClick={onClick}
width={width}

@ -3,6 +3,7 @@ import ReactSwipeableViews from 'react-swipeable-views';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Video from 'mastodon/features/video';
import { connect } from 'react-redux';
import classNames from 'classnames';
import { defineMessages, injectIntl } from 'react-intl';
import IconButton from 'mastodon/components/icon_button';
@ -20,7 +21,12 @@ const messages = defineMessages({
next: { id: 'lightbox.next', defaultMessage: 'Next' },
});
export default @injectIntl
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
});
export default @connect(mapStateToProps, null, null, { forwardRef: true })
@injectIntl
class MediaModal extends ImmutablePureComponent {
static propTypes = {
@ -129,7 +135,7 @@ class MediaModal extends ImmutablePureComponent {
};
render () {
const { media, statusId, intl, onClose } = this.props;
const { media, language, statusId, intl, onClose } = this.props;
const { navigationHidden } = this.state;
const index = this.getIndex();
@ -149,6 +155,7 @@ class MediaModal extends ImmutablePureComponent {
width={width}
height={height}
alt={image.get('description')}
lang={language}
key={image.get('url')}
onClick={this.toggleNavigation}
zoomButtonHidden={this.state.zoomButtonHidden}
@ -171,6 +178,7 @@ class MediaModal extends ImmutablePureComponent {
onCloseVideo={onClose}
detailed
alt={image.get('description')}
lang={language}
key={image.get('url')}
/>
);
@ -182,6 +190,7 @@ class MediaModal extends ImmutablePureComponent {
height={height}
key={image.get('preview_url')}
alt={image.get('description')}
lang={language}
onClick={this.toggleNavigation}
/>
);

@ -2,15 +2,22 @@ import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Video from 'mastodon/features/video';
import { connect } from 'react-redux';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Footer from 'mastodon/features/picture_in_picture/components/footer';
import { getAverageFromBlurhash } from 'mastodon/blurhash';
export default class VideoModal extends ImmutablePureComponent {
const mapStateToProps = (state, { statusId }) => ({
language: state.getIn(['statuses', statusId, 'language']),
});
export default @connect(mapStateToProps, null, null, { forwardRef: true })
class VideoModal extends ImmutablePureComponent {
static propTypes = {
media: ImmutablePropTypes.map.isRequired,
statusId: PropTypes.string,
language: PropTypes.string,
options: PropTypes.shape({
startTime: PropTypes.number,
autoPlay: PropTypes.bool,
@ -31,7 +38,7 @@ export default class VideoModal extends ImmutablePureComponent {
}
render () {
const { media, statusId, onClose } = this.props;
const { media, statusId, language, onClose } = this.props;
const options = this.props.options || {};
return (
@ -49,6 +56,7 @@ export default class VideoModal extends ImmutablePureComponent {
autoFocus
detailed
alt={media.get('description')}
lang={language}
/>
</div>

@ -96,6 +96,7 @@ class ZoomableImage extends React.PureComponent {
static propTypes = {
alt: PropTypes.string,
lang: PropTypes.string,
src: PropTypes.string.isRequired,
width: PropTypes.number,
height: PropTypes.number,
@ -106,6 +107,7 @@ class ZoomableImage extends React.PureComponent {
static defaultProps = {
alt: '',
lang: '',
width: null,
height: null,
};
@ -403,7 +405,7 @@ class ZoomableImage extends React.PureComponent {
};
render () {
const { alt, src, width, height, intl } = this.props;
const { alt, lang, src, width, height, intl } = this.props;
const { scale, lockTranslate } = this.state;
const overflow = scale === MIN_SCALE ? 'hidden' : 'scroll';
const zoomButtonShouldHide = this.state.navigationHidden || this.props.zoomButtonHidden || this.state.zoomMatrix.rate <= MIN_SCALE ? 'media-modal__zoom-button--hidden' : '';
@ -431,6 +433,7 @@ class ZoomableImage extends React.PureComponent {
ref={this.setImageRef}
alt={alt}
title={alt}
lang={lang}
src={src}
width={width}
height={height}

@ -102,6 +102,7 @@ class Video extends React.PureComponent {
frameRate: PropTypes.string,
src: PropTypes.string.isRequired,
alt: PropTypes.string,
lang: PropTypes.string,
width: PropTypes.number,
height: PropTypes.number,
sensitive: PropTypes.bool,
@ -524,7 +525,7 @@ class Video extends React.PureComponent {
}
render () {
const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, lang, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
const { containerWidth, currentTime, duration, volume, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
const progress = Math.min((currentTime / duration) * 100, 100);
const playerStyle = {};
@ -585,6 +586,7 @@ class Video extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
lang={lang}
width={width}
height={height}
volume={volume}

@ -138,7 +138,7 @@
"compose_form.poll.remove_option": "إزالة هذا الخيار",
"compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
"compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
"compose_form.publish": "انشر",
"compose_form.publish": "نشر",
"compose_form.publish_form": "انشر",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "احفظ التعديلات",
@ -176,7 +176,7 @@
"conversation.delete": "احذف المحادثة",
"conversation.mark_as_read": "اعتبرها كمقروءة",
"conversation.open": "اعرض المحادثة",
"conversation.with": "بـ {names}",
"conversation.with": "مع {names}",
"copypaste.copied": "تم نسخه",
"copypaste.copy": "انسخ",
"directory.federated": "مِن الفديفرس المعروف",
@ -215,7 +215,7 @@
"empty_column.bookmarked_statuses": "ليس لديك أية منشورات في الفواصل المرجعية بعد. عندما ستقوم بإضافة البعض منها، ستظهر هنا.",
"empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
"empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.",
"empty_column.domain_blocks": "ليس هناك نطاقات تم حجبها بعد.",
"empty_column.explore_statuses": "ليس هناك ما هو متداوَل الآن. عد في وقت لاحق!",
"empty_column.favourited_statuses": "ليس لديك أية منشورات مفضلة بعد. عندما ستقوم بالإعجاب بواحدة، ستظهر هنا.",
"empty_column.favourites": "لم يقم أي أحد بالإعجاب بهذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
@ -245,7 +245,7 @@
"filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.",
"filter_modal.added.context_mismatch_title": "عدم تطابق السياق!",
"filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.",
"filter_modal.added.expired_title": "تصفية منتهية الصلاحية!",
"filter_modal.added.expired_title": "عامل تصفية انتهت صلاحيته!",
"filter_modal.added.review_and_configure": "لمراجعة وزيادة تكوين فئة عوامل التصفية هذه، انتقل إلى {settings_link}.",
"filter_modal.added.review_and_configure_title": "إعدادات التصفية",
"filter_modal.added.settings_link": "صفحة الإعدادات",

@ -383,7 +383,7 @@
"navigation_bar.filters": "Pallabres desactivaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.follows_and_followers": "Perfiles que sigues ya te siguen",
"navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Zarrar la sesión",
"navigation_bar.mutes": "Perfiles colos avisos desactivaos",

@ -16,7 +16,7 @@
"account.badges.bot": "Bot",
"account.badges.group": "Gruppe",
"account.block": "@{name} blockieren",
"account.block_domain": "Alles von {domain} verstecken",
"account.block_domain": "{domain} sperren",
"account.blocked": "Blockiert",
"account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen",
"account.cancel_follow_request": "Folgeanfrage zurückziehen",

@ -32,9 +32,9 @@
"account.follow": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "Todavía nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Siguiendo",
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
"account.following_counter": "{count, plural, other {Siguiendo a {counter}}}",
"account.follows.empty": "Todavía este usuario no sigue a nadie.",
"account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
@ -57,7 +57,7 @@
"account.requested_follow": "{name} solicitó seguirte",
"account.share": "Compartir el perfil de @{name}",
"account.show_reblogs": "Mostrar adhesiones de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Mensaje} other {{counter} Mensajes}}",
"account.statuses_counter": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}",
"account.unblock": "Desbloquear a @{name}",
"account.unblock_domain": "Desbloquear dominio {domain}",
"account.unblock_short": "Desbloquear",

@ -51,7 +51,7 @@
"account.muted": "Silenciado",
"account.open_original_page": "Abrir página original",
"account.posts": "Publicaciones",
"account.posts_with_replies": "Publicaciones y respuestas",
"account.posts_with_replies": "Pub. y respuestas",
"account.report": "Reportar a @{name}",
"account.requested": "Esperando aprobación. Clica para cancelar la solicitud de seguimiento",
"account.requested_follow": "{name} ha solicitado seguirte",

@ -29,7 +29,7 @@
"account.featured_tags.last_status_at": "Viimeisin viesti {date}",
"account.featured_tags.last_status_never": "Ei viestejä",
"account.featured_tags.title": "Käyttäjän {name} esillä olevat aihetunnisteet",
"account.follow": "Seuratut",
"account.follow": "Seuraa",
"account.followers": "Seuraajat",
"account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.",
"account.followers_counter": "{count, plural, one {{counter} seuraaja} other {{counter} seuraajaa}}",
@ -582,7 +582,7 @@
"status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
"status.redraft": "Poista ja palauta muokattavaksi",
"status.remove_bookmark": "Poista kirjanmerkki",
"status.replied_to": "Vastasit käyttäjälle {name}",
"status.replied_to": "Vastaus käyttäjälle {name}",
"status.reply": "Vastaa",
"status.replyAll": "Vastaa ketjuun",
"status.report": "Raportoi @{name}",

@ -54,7 +54,7 @@
"account.posts_with_replies": "टूट्स एवं जवाब",
"account.report": "रिपोर्ट @{name}",
"account.requested": "मंजूरी का इंतजार। फॉलो रिक्वेस्ट को रद्द करने के लिए क्लिक करें",
"account.requested_follow": "{name} has requested to follow you",
"account.requested_follow": "{name} ने आपको फॉलो करने के लिए अनुरोध किया है",
"account.share": "@{name} की प्रोफाइल शेयर करे",
"account.show_reblogs": "@{name} के बूस्ट दिखाए",
"account.statuses_counter": "{count, plural, one {{counter} भोंपू} other {{counter} भोंपू}}",
@ -128,7 +128,7 @@
"compose.language.search": "भाषाएँ खोजें...",
"compose_form.direct_message_warning_learn_more": "और जानें",
"compose_form.encryption_warning": "मास्टोडॉन पर पोस्ट एन्ड-टू-एन्ड एन्क्रिप्टेड नहीं है। कोई भी व्यक्तिगत जानकारी मास्टोडॉन पर मत भेजें।",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.hashtag_warning": "ये पोस्ट किसी भी हैशटैग में लिस्ट नहीं किया जाएगा क्योंकि ये पब्लिक नहीं है। सिर्फ पब्लिक पोस्ट ही हैशटैग से खोजे जा सकते हैं।",
"compose_form.lock_disclaimer": "आपका खाता {locked} नहीं है। आपको केवल फॉलोवर्स को दिखाई दिए जाने वाले पोस्ट देखने के लिए कोई भी फॉलो कर सकता है।",
"compose_form.lock_disclaimer.lock": "लॉक्ड",
"compose_form.placeholder": "What is on your mind?",
@ -221,7 +221,7 @@
"empty_column.favourites": "अभी तक किसी ने भी इस टूट को पसंद (स्टार) नहीं किया है. जब भी कोई इसे पसंद करेगा, उनका नाम यहाँ दिखेगा।",
"empty_column.follow_recommendations": "ऐसा लगता है कि आपके लिए कोई सुझाव जेनरेट नहीं किया जा सका. आप उन लोगों को खोजने के लिए सर्च का उपयोग करने का प्रयास कर सकते हैं जिन्हें आप जानते हैं या ट्रेंडिंग हैशटैग का पता लगा सकते हैं।",
"empty_column.follow_requests": "अभी तक किसी ने भी आपका अनुसरण करने की विनती नहीं की है. जब भी कोई आपको विनती भेजेगा, वो यहाँ दिखेगी.",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.followed_tags": "आपने किसी हैशटैग को फॉलो नहीं किया है। जैसे ही आप फॉलो करेंगे, आपके फॉलो किए गए हैशटैग यहां दिखेंगे।",
"empty_column.hashtag": "यह हैशटैग अभी तक खाली है।",
"empty_column.home": "आपकी मुख्य कालक्रम अभी खली है. अन्य उपयोगकर्ताओं से मिलने के लिए और अपनी गतिविधियां शुरू करने के लिए या तो {public} पर जाएं या खोज का उपयोग करें।",
"empty_column.home.suggestions": "कुछ सुझाव देखिए",
@ -240,8 +240,8 @@
"explore.suggested_follows": "आपके लिए",
"explore.title": "एक्स्प्लोर",
"explore.trending_links": "समाचार",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"explore.trending_statuses": "पोस्ट्स",
"explore.trending_tags": "हैशटैग्स",
"filter_modal.added.context_mismatch_explanation": "यह फ़िल्टर श्रेणी उस संदर्भ पर लागू नहीं होती जिसमें आपने इस पोस्ट को एक्सेस किया है। यदि आप चाहते हैं कि इस संदर्भ में भी पोस्ट को फ़िल्टर किया जाए, तो आपको फ़िल्टर को एडिट करना होगा।",
"filter_modal.added.context_mismatch_title": "कंटेंट मिसमैच!",
"filter_modal.added.expired_explanation": "यह फ़िल्टर श्रेणी समाप्त हो गई है, इसे लागू करने के लिए आपको समाप्ति तिथि बदलनी होगी।",
@ -264,7 +264,7 @@
"follow_request.authorize": "अधिकार दें",
"follow_request.reject": "अस्वीकार करें",
"follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।",
"followed_tags": "Followed hashtags",
"followed_tags": "फॉलो किए गए हैशटैग्स",
"footer.about": "अबाउट",
"footer.directory": "प्रोफाइल्स डायरेक्टरी",
"footer.get_app": "अप्प प्राप्त करें",
@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "कीबोर्ड शॉर्टकट",
"footer.privacy_policy": "प्राइवेसी पालिसी",
"footer.source_code": "सोर्स कोड देखें",
"footer.status": "Status",
"footer.status": "स्टेटस",
"generic.saved": "सेव्ड",
"getting_started.heading": "पहले कदम रखें",
"hashtag.column_header.tag_mode.all": "और {additional}",

@ -312,7 +312,7 @@
"keyboard_shortcuts.column": "Setja virkni í dálk",
"keyboard_shortcuts.compose": "Setja virkni á textainnsetningarreit",
"keyboard_shortcuts.description": "Lýsing",
"keyboard_shortcuts.direct": "að opna dálk með beinum skilaboðum",
"keyboard_shortcuts.direct": "Opna dálk með beinum skilaboðum",
"keyboard_shortcuts.down": "Fara neðar í listanum",
"keyboard_shortcuts.enter": "Opna færslu",
"keyboard_shortcuts.favourite": "Eftirlætisfærsla",

@ -474,7 +474,7 @@
"relative_time.full.seconds": "{number, plural, one {# secondo} other {# secondi}} fa",
"relative_time.hours": "{number}h",
"relative_time.just_now": "ora",
"relative_time.minutes": "{number} minuti",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "oggi",
"reply_indicator.cancel": "Annulla",

@ -10,7 +10,7 @@
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules",
"about.rules": "Ilugan n uqeddac",
"account.account_note_header": "Tazmilt",
"account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin",
"account.badges.bot": "Aṛubut",
@ -83,7 +83,7 @@
"boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen",
"bundle_column_error.copy_stacktrace": "Nɣel tuccḍa n uneqqis",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.error.title": "Uh, ala !",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Tuccḍa deg uẓeṭṭa",
"bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen",

@ -145,7 +145,7 @@
"compose_form.sensitive.hide": "미디어를 민감함으로 설정하기",
"compose_form.sensitive.marked": "미디어가 열람주의로 설정되어 있습니다",
"compose_form.sensitive.unmarked": "미디어가 열람주의로 설정 되어 있지 않습니다",
"compose_form.spoiler.marked": "콘텐츠 경고 제거",
"compose_form.spoiler.marked": "열람주의 제거",
"compose_form.spoiler.unmarked": "열람 주의 문구 추가",
"compose_form.spoiler_placeholder": "경고 문구를 여기에 작성하세요",
"confirmation_modal.cancel": "취소",
@ -224,7 +224,7 @@
"empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.",
"empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.",
"empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람들을 팔로우 하여 채워보세요. {suggestions}",
"empty_column.home.suggestions": "몇몇 제안 보기",
"empty_column.home.suggestions": "몇몇 제안 보기",
"empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.",
"empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.",
"empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
@ -259,7 +259,7 @@
"filter_modal.select_filter.title": "이 게시물을 필터",
"filter_modal.title.status": "게시물 필터",
"follow_recommendations.done": "완료",
"follow_recommendations.heading": "게시물을 받아 볼 사람을 팔로우 하세요! 여기 몇몇 추천이 있습니다.",
"follow_recommendations.heading": "게시물을 받아 볼 사람을 팔로우하세요! 여기 몇몇 추천이 있습니다.",
"follow_recommendations.lead": "당신이 팔로우 하는 사람들의 게시물이 시간순으로 정렬되어 당신의 홈 피드에 표시될 것입니다. 실수를 두려워 하지 마세요, 언제든지 쉽게 팔로우 취소를 할 수 있습니다!",
"follow_request.authorize": "허가",
"follow_request.reject": "거부",
@ -400,7 +400,7 @@
"notification.follow": "{name} 님이 나를 팔로우했습니다",
"notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다",
"notification.mention": "{name}님의 멘션",
"notification.own_poll": "내 투표가 끝났습니다",
"notification.own_poll": "투표를 마쳤습니다.",
"notification.poll": "참여했던 투표가 끝났습니다.",
"notification.reblog": "{name} 님이 부스트했습니다",
"notification.status": "{name} 님이 방금 게시물을 올렸습니다",
@ -589,13 +589,13 @@
"status.sensitive_warning": "민감한 내용",
"status.share": "공유",
"status.show_filter_reason": "그냥 표시하기",
"status.show_less": "적게 보기",
"status.show_less": "기",
"status.show_less_all": "모두 접기",
"status.show_more": "더 보기",
"status.show_more": "펼치기",
"status.show_more_all": "모두 펼치기",
"status.show_original": "원본 보기",
"status.translate": "번역",
"status.translated_from_with": "{lang}에서 {provider}를 사용해 번역됨",
"status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨",
"status.uncached_media_warning": "사용할 수 없음",
"status.unmute_conversation": "이 대화의 뮤트 해제하기",
"status.unpin": "고정 해제",

@ -1,7 +1,7 @@
{
"about.blocks": "Moderatorių prižiūrimi serveriai",
"about.contact": "Kontaktai:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.disclaimer": "Mastodon, tai nemokama, atviro kodo programa, kuriuos prekybinis ženklas priklauso Mastodon GmbH.",
"about.domain_blocks.no_reason_available": "Priežastis nežinoma",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",

@ -128,7 +128,7 @@
"compose.language.search": "Cari bahasa...",
"compose_form.direct_message_warning_learn_more": "Ketahui lebih lanjut",
"compose_form.encryption_warning": "Hantaran pada Mastodon tidak disulitkan hujung ke hujung. Jangan berkongsi sebarang maklumat sensitif melalui Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.hashtag_warning": "Hantaran ini tidak akan disenaraikan di bawah mana-mana tanda pagar kerana ia tidak tersenarai. Hanya hantaran awam sahaja boleh dicari menggunakan tanda pagar.",
"compose_form.lock_disclaimer": "Akaun anda tidak {locked}. Sesiapa pun boleh mengikuti anda untuk melihat hantaran pengikut-sahaja anda.",
"compose_form.lock_disclaimer.lock": "dikunci",
"compose_form.placeholder": "Apakah yang sedang anda fikirkan?",
@ -237,11 +237,11 @@
"errors.unexpected_crash.copy_stacktrace": "Salin surih tindanan ke papan keratan",
"errors.unexpected_crash.report_issue": "Laporkan masalah",
"explore.search_results": "Hasil carian",
"explore.suggested_follows": "For you",
"explore.suggested_follows": "Untuk anda",
"explore.title": "Terokai",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"explore.trending_links": "Baru",
"explore.trending_statuses": "Hantar",
"explore.trending_tags": "-Hashtags",
"filter_modal.added.context_mismatch_explanation": "Kumpulan penapis ini tidak terpakai pada konteks di mana anda mengakses hantaran ini. Jika anda ingin hantaran ini untuk ditapis dalam konteks ini juga, anda perlu menyunting penapis tersebut.",
"filter_modal.added.context_mismatch_title": "Konteks tidak sepadan!",
"filter_modal.added.expired_explanation": "Kumpulan filter ini telah tamat tempoh, anda perlu mengubah tarikh luput untuk melaksanakannya.",
@ -264,7 +264,7 @@
"follow_request.authorize": "Benarkan",
"follow_request.reject": "Tolak",
"follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.",
"followed_tags": "Followed hashtags",
"followed_tags": "Topik terpilih",
"footer.about": "Perihal",
"footer.directory": "Direktori profil",
"footer.get_app": "Dapatkan app",
@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "Pintasan papan kekunci",
"footer.privacy_policy": "Dasar privasi",
"footer.source_code": "Lihat kod sumber",
"footer.status": "Status",
"footer.status": "Status:",
"generic.saved": "Disimpan",
"getting_started.heading": "Mari bermula",
"hashtag.column_header.tag_mode.all": "dan {additional}",
@ -382,7 +382,7 @@
"navigation_bar.favourites": "Kegemaran",
"navigation_bar.filters": "Perkataan yang dibisukan",
"navigation_bar.follow_requests": "Permintaan ikutan",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.followed_tags": "Ikuti hashtag",
"navigation_bar.follows_and_followers": "Ikutan dan pengikut",
"navigation_bar.lists": "Senarai",
"navigation_bar.logout": "Log keluar",
@ -544,9 +544,9 @@
"server_banner.server_stats": "Statistik pelayan:",
"sign_in_banner.create_account": "Cipta akaun",
"sign_in_banner.sign_in": "Daftar masuk",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"sign_in_banner.text": "Daftar masuk untuk mengikut profil atau tanda pagar, menggemari, mengkongsi dan membalas kepada hantaran, atau berinteraksi daripada akaun anda pada pelayan lain.",
"status.admin_account": "Buka antara muka penyederhanaan untuk @{name}",
"status.admin_domain": "Open moderation interface for {domain}",
"status.admin_domain": "antara muka penyederhanaan",
"status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan",
"status.block": "Sekat @{name}",
"status.bookmark": "Tanda buku",

@ -102,7 +102,7 @@
"column.blocks": "ဘလော့ထားသောအကောင့်များ",
"column.bookmarks": "မှတ်တမ်းများ",
"column.community": "ဒေသတွင်း အချိန်ဇယား",
"column.direct": "တိုက်ရိုက် မက်ဆေ့ခ်ျများ",
"column.direct": "တိုက်ရိုက်မက်ဆေ့ခ်ျများ",
"column.directory": "ပရိုဖိုင်များကို ရှာဖွေမည်\n",
"column.domain_blocks": " ဒိုမိန်းကိုပိတ်မည်",
"column.favourites": "အကြိုက်ဆုံးများ",
@ -121,7 +121,7 @@
"column_header.show_settings": "ဆက်တင်များကို ပြပါ။",
"column_header.unpin": "မတွဲတော့ပါ",
"column_subheading.settings": "ဆက်တင်များ",
"community.column_settings.local_only": "Local only",
"community.column_settings.local_only": "ပြည်တွင်း၌သာ",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Remote only",
"compose.language.change": "ဘာသာစကား ပြောင်းမည်",
@ -195,32 +195,32 @@
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.clear": "ရှင်းလင်းမည်",
"emoji_button.custom": "Custom",
"emoji_button.custom": "စိတ်ကြိုက်",
"emoji_button.flags": "Flags",
"emoji_button.food": "အစားအသောက်",
"emoji_button.label": "Insert emoji",
"emoji_button.label": "အီမိုဂျီထည့်ပါ",
"emoji_button.nature": "သဘာဝ",
"emoji_button.not_found": "No matching emojis found",
"emoji_button.not_found": "ကိုက်ညီသော အီမိုဂျီများ ရှာမတွေ့ပါ",
"emoji_button.objects": "Objects",
"emoji_button.people": "လူများ",
"emoji_button.recent": "မကြာခဏ အသုံးပြုသော",
"emoji_button.search": "ရှာရန်...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_suspended": "Account suspended",
"emoji_button.search_results": "ရှာဖွေမှု ရလဒ်များ",
"emoji_button.symbols": "သင်္ကေတများ",
"emoji_button.travel": "ခရီးသွားခြင်း နှင့် နေရာများ",
"empty_column.account_suspended": "အကောင့်ရပ်ဆိုင်းထားသည်",
"empty_column.account_timeline": "No posts found",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.account_unavailable": "ပရိုဖိုင် မရနိုင်ပါ",
"empty_column.blocks": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ",
"empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
"empty_column.bookmarked_statuses": "သင့်တွင် မှတ်သားထားသော ပို့စ်များ မရှိသေးပါ။ တစ်ခုကို အမှတ်အသားပြုလိုက်ပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.direct": "သင့်တွင် တိုက်ရိုက်မက်ဆေ့ချ်များ မရှိသေးပါ။ ပေးပို့ထားပါက သို့မဟုတ် လက်ခံထားပါက ၎င်းတို့ကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.domain_blocks": "သင်ပိတ်ထားသော ဒိုမိန်းမရှိသေးပါ",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
"empty_column.explore_statuses": "အခုလောလောဆယ်တွင် ရေပန်းစားနေသောပို့စ်များ မရှိသေးပါ။ နောက်မှ ပြန်စစ်ဆေးပါရန်။",
"empty_column.favourited_statuses": "သင့်တွင် အကြိုက်ဆုံးပို့စ်များ မရှိသေးပါ။ တစ်ခုကို သင်နှစ်သက်ထားပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.favourites": "ဤပို့စ်ကို အကြိုက်တွေ့သူ မရှိသေးပါ။ တစ်စုံတစ်ယောက်က ကြိုက်နှစ်သက်ပါက ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.follow_requests": "သင့်တွင် စောင့်ကြည့်ရန် တောင်းဆိုမှုများ မရှိသေးပါ။ သင်လက်ခံရရှိပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
@ -231,12 +231,12 @@
"empty_column.notifications": "သတိပေးချက်မရှိသေးပါ။ သတိပေးချက်အသစ်ရှိလျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်သည်",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"error.unexpected_crash.explanation_addons": "ဤစာမျက်နှာကို မှန်ကန်စွာ မပြသနိုင်ခဲ့ပါ။ ဤအမှားသည် Browser add-on ထည့်သွင်းထားမှုများ သို့မဟုတ် အလိုအလျောက် ဘာသာပြန်ကိရိယာများကြောင့် ဖြစ်နိုင်သည်။",
"error.unexpected_crash.next_steps": "စာမျက်နှာကို ပြန်လည်စတင်ကြည့်ပါ။ ၎င်းမှာ အကူအညီမဖြစ်ပါက သင်သည် အခြား Browser သို့မဟုတ် မူရင်းအက်ပ်မှတစ်ဆင့် Mastodon ကို ဆက်လက်အသုံးပြုနိုင်ပါမည်။",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Search results",
"errors.unexpected_crash.report_issue": "အဆင်မပြေမှုကို တိုင်ကြားရန်",
"explore.search_results": "ရှာဖွေမှုရလဒ်များ",
"explore.suggested_follows": "သင့်အတွက်",
"explore.title": "စူးစမ်းရန်",
"explore.trending_links": "သတင်းများ",
@ -247,50 +247,50 @@
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
"filter_modal.added.expired_title": "Expired filter!",
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
"filter_modal.added.review_and_configure_title": "Filter settings",
"filter_modal.added.review_and_configure_title": "စစ်ထုတ်မှု သတ်မှတ်ချက်များ",
"filter_modal.added.settings_link": "settings page",
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
"filter_modal.added.title": "Filter added!",
"filter_modal.added.short_explanation": "ဤပို့စ်ကို အောက်ပါ စစ်ထုတ်မှုအမျိုးအစားတွင် ပေါင်းထည့်ထားပါသည် - {title}။",
"filter_modal.added.title": "စစ်ထုတ်မှု ထည့်သွင်းပြီးပါပြီ။",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "သက်တမ်းကုန်သွားပါပြီ",
"filter_modal.select_filter.prompt_new": "New category: {name}",
"filter_modal.select_filter.search": "Search or create",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"follow_recommendations.done": "Done",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"filter_modal.select_filter.prompt_new": "အမျိုးအစားအသစ် - {name}",
"filter_modal.select_filter.search": "ရှာရန် သို့မဟုတ် ဖန်တီးရန်",
"filter_modal.select_filter.subtitle": "ရှိပြီးသားအမျိုးအစားကို သုံးပါ သို့မဟုတ် အသစ်တစ်ခု ဖန်တီးပါ",
"filter_modal.select_filter.title": "ဤပို့စ်ကို စစ်ထုတ်ပါ",
"filter_modal.title.status": "ပို့စ်တစ်ခု စစ်ထုတ်ပါ",
"follow_recommendations.done": "ပြီးပါပြီ",
"follow_recommendations.heading": "သင်မြင်လိုသော သူများထံမှ ပို့စ်များကို စောင့်ကြည့်ပါ။ ဤတွင် အကြံပြုချက်အချို့ရှိပါသည်။",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"follow_request.reject": "ဖယ်ရှားပါ",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"followed_tags": "Followed hashtags",
"footer.about": "အကြောင်း",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.directory": "ပရိုဖိုင်များလမ်းညွှန်",
"footer.get_app": "အက်ပ်ကို ရယူပါ",
"footer.invite": "လူများကို ဖိတ်ပါ",
"footer.keyboard_shortcuts": "ကီးဘုတ်အမြန်ခလုတ်များ",
"footer.privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
"footer.source_code": "မူရင်းကုဒ်အားကြည့်ရှုမည်",
"footer.status": "အခြေအနေ",
"generic.saved": "သိမ်းဆည်းထားပြီး",
"getting_started.heading": "စတင်မည်",
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
"hashtag.column_settings.select.no_options_message": "No suggestions found",
"hashtag.column_header.tag_mode.all": "နှင့် {additional}",
"hashtag.column_header.tag_mode.any": "သို့မဟုတ် {additional}",
"hashtag.column_header.tag_mode.none": "မပါဘဲ {additional}",
"hashtag.column_settings.select.no_options_message": "အကြံပြုချက်မတွေ့ပါ",
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"home.column_settings.basic": "Basic",
"hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်",
"hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ",
"home.column_settings.basic": "အခြေခံ",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.hide_announcements": "Hide announcements",
"home.show_announcements": "Show announcements",
"home.column_settings.show_replies": "ပြန်စာများကို ပြပါ",
"home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ",
"home.show_announcements": "ကြေညာချက်များကို ပြပါ",
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
@ -299,10 +299,10 @@
"interaction_modal.on_this_server": "ဤဆာဗာတွင်",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
"interaction_modal.title.favourite": "အကြိုက်ဆုံး {name} ၏ ပို့စ်",
"interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"interaction_modal.title.reply": "{name} ၏ ပို့စ်ကို စာပြန်မယ်",
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@ -312,7 +312,7 @@
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "ဖော်ပြချက်",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.direct": "တိုက်ရိုက်မက်ဆေ့ချ်ကော်လံကို ဖွင့်ရန်",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
@ -345,8 +345,8 @@
"lightbox.expand": "ပုံကိုဖွင့်ပါ",
"lightbox.next": "ရှေ့သို့",
"lightbox.previous": "Previous",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ",
"limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။",
"lists.account.add": "စာရင်းထဲသို့ထည့်ပါ",
"lists.account.remove": "စာရင်းမှ ဖယ်ရှားလိုက်ပါ။",
"lists.delete": "စာရင်းကိုဖျက်ပါ",
@ -374,37 +374,37 @@
"navigation_bar.bookmarks": "မှတ်ထားသည်များ",
"navigation_bar.community_timeline": "ဒေသစံတော်ချိန်",
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Direct messages",
"navigation_bar.direct": "တိုက်ရိုက်မက်ဆေ့ချ်များ",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.favourites": "အကြိုက်ဆုံးများ",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
"navigation_bar.follow_requests": "တောင်းဆိုချက်များကို စောင့်ကြည့်ပါ",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.follows_and_followers": "စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း",
"navigation_bar.lists": "စာရင်းများ",
"navigation_bar.logout": "ထွက်မယ်",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned posts",
"navigation_bar.personal": "ကိုယ်ရေးကိုယ်တာ",
"navigation_bar.pins": "ပင်တွဲထားသောပို့စ်များ",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.search": "Search",
"navigation_bar.security": "Security",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"navigation_bar.search": "ရှာရန်",
"navigation_bar.security": "လုံခြုံရေး",
"not_signed_in_indicator.not_signed_in": "ဤရင်းမြစ်သို့ ဝင်ရောက်ရန်အတွက် သင်သည် အကောင့်ဝင်ရန် လိုအပ်ပါသည်။",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.admin.sign_up": "{name} က အကောင့်ဖွင့်ထားသည်",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.follow_request": "{name} has requested to follow you",
"notification.mention": "{name} mentioned you",
"notification.follow": "{name} သင့်ကို စောင့်ကြည့်ခဲ့သည်",
"notification.follow_request": "{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်",
"notification.mention": "{name} က သင့်ကို ဖော်ပြခဲ့သည်",
"notification.own_poll": "စစ်တမ်းကောက်မှု ပြီးဆုံးပါပြီ",
"notification.poll": "သင်ပါဝင်ခဲ့သော စစ်တမ်းပြီးပါပြီ",
"notification.reblog": "{name} boosted your status",
"notification.status": "{name} just posted",
"notification.update": "{name} edited a post",
"notification.status": "{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ",
"notification.update": "{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်",
"notifications.clear": "အသိပေးချက်များအား ရှင်းလင်းပါ",
"notifications.clear_confirmation": "သတိပေးချက်အားလုံးကို အပြီးတိုင်ဖယ်ရှားမည်",
"notifications.column_settings.admin.report": "New reports:",
@ -413,29 +413,29 @@
"notifications.column_settings.favourite": "ကြိုက်နှစ်သက်မှုများ",
"notifications.column_settings.filter_bar.advanced": "ခေါင်းစဥ်အားလုံးများကိုဖော်ပြပါ",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.filter_bar.show_bar": "စစ်ထုတ်မှုဘားကို ပြပါ",
"notifications.column_settings.follow": "စောင့်ကြည့်သူအသစ်များ -",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.poll": "စစ်တမ်းရလဒ်",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.push": "အသိပေးချက်များအား ရအောင်ပို့ခြင်း",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
"notifications.column_settings.status": "New posts:",
"notifications.column_settings.unread_notifications.category": "Unread notifications",
"notifications.column_settings.show": "ကော်လံတွင်ပြပါ",
"notifications.column_settings.sound": "အသံဖွင့်မည်",
"notifications.column_settings.status": "ပို့စ်အသစ်များ -",
"notifications.column_settings.unread_notifications.category": "မဖတ်ရသေးသောအသိပေးချက်များ -",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.update": "Edits:",
"notifications.column_settings.update": "ပြင်ဆင်ထားမှုများ -",
"notifications.filter.all": "အားလုံး",
"notifications.filter.boosts": "အားပေးမည်",
"notifications.filter.favourites": "ကြိုက်နှစ်သက်မှုများ",
"notifications.filter.follows": "ဖောလိုးမည်",
"notifications.filter.mentions": " မန်းရှင်းမည်",
"notifications.filter.polls": "စစ်တမ်းရလဒ်",
"notifications.filter.statuses": "Updates from people you follow",
"notifications.filter.statuses": "သင်စောင့်ကြည့်သူများထံမှ အပ်ဒိတ်များ",
"notifications.grant_permission": "ခွင့်ပြုချက်ပေးမည်",
"notifications.group": "{count} notifications",
"notifications.mark_as_read": "Mark every notification as read",
"notifications.group": "အသိပေးချက်များ {count} ခု",
"notifications.mark_as_read": "အသိပေးချက်တိုင်းကို ဖတ်ပြီးကြောင်း အမှတ်အသားပြုပါ",
"notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
"notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
@ -462,9 +462,9 @@
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Unlisted",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",
"privacy_policy.title": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
"refresh": "ပြန်လည်စတင်ပါ",
"regeneration_indicator.label": "လုပ်ဆောင်နေသည်…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
@ -473,7 +473,7 @@
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.hours": "{number}h",
"relative_time.just_now": "now",
"relative_time.just_now": "ယခု",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "ယနေ့",
@ -516,13 +516,13 @@
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.other": "အခြား",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "ရှာဖွေရန်",
"search.search_or_paste": "URL ရိုက်ထည့်ပါ သို့မဟုတ် ရှာဖွေပါ",
"search_popout.search_format": "Advanced search format",
"search_popout.search_format": "အဆင့်မြင့်ရှာဖွေမှုပုံစံ",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "ဟက်ရှ်တက်ခ်",
"search_popout.tips.status": "ပို့စ်",
@ -534,29 +534,29 @@
"search_results.nothing_found": "ရှာဖွေလိုသောအရာမရှိပါ",
"search_results.statuses": "ပို့စ်တင်မယ်",
"search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
"search_results.title": "Search for {q}",
"search_results.title": "{q} ကို ရှာပါ",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
"server_banner.active_users": "active users",
"server_banner.active_users": "လက်ရှိအသုံးပြုသူများ",
"server_banner.administered_by": "Administered by:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
"server_banner.learn_more": "Learn more",
"server_banner.learn_more": "ပိုမိုသိရှိရန်",
"server_banner.server_stats": "Server stats:",
"sign_in_banner.create_account": "Create account",
"sign_in_banner.sign_in": "Sign in",
"sign_in_banner.create_account": "အကောင့်ဖန်တီးမည်",
"sign_in_banner.sign_in": "အကောင့်ဝင်မည်",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_domain": "Open moderation interface for {domain}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "@{name} ကိုဘလော့မည်",
"status.bookmark": "Bookmark",
"status.bookmark": "မှတ်ထားသည်များ",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
"status.delete": "ဖျက်ရန်",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.edit": "Edit",
"status.direct": "@{name} ကို တိုက်ရိုက်စာပို့မည်",
"status.edit": "ပြင်ဆင်ရန်",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.embed": "Embed",
@ -574,86 +574,86 @@
"status.mute_conversation": "Mute conversation",
"status.open": "ပို့စ်ကိုချဲ့ထွင်မည်",
"status.pin": "Pin on profile",
"status.pinned": "Pinned post",
"status.read_more": "Read more",
"status.pinned": "ပင်တွဲထားသောပို့စ်",
"status.read_more": "ပိုမိုဖတ်ရှုရန်",
"status.reblog": "Boost",
"status.reblog_private": "Boost with original visibility",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
"status.replied_to": "Replied to {name}",
"status.reply": "Reply",
"status.remove_bookmark": "မှတ်ထားသည်များကို ဖယ်ရှားပါ",
"status.replied_to": "{name} ကို စာပြန်ခဲ့သည်",
"status.reply": "စာပြန်ရန်",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.show_original": "Show original",
"status.translate": "Translate",
"status.translated_from_with": "Translated from {lang} using {provider}",
"status.uncached_media_warning": "Not available",
"status.sensitive_warning": "သတိထားရသော အကြောင်းအရာ",
"status.share": "မျှဝေ",
"status.show_filter_reason": "မည်သို့ပင်ဖြစ်စေ ပြပါ",
"status.show_less": "အနည်းငယ်သာ ပြပါ",
"status.show_less_all": "အားလုံးအတွက် အနည်းငယ်သာ ပြပါ",
"status.show_more": "ပိုမိုပြရန်",
"status.show_more_all": "အားလုံးအတွက် ပိုပြပါ",
"status.show_original": "မူရင်းပြပါ",
"status.translate": "ဘာသာပြန်ပါ",
"status.translated_from_with": "{provider} ကို အသုံးပြု၍ {lang} မှ ဘာသာပြန်ထားသည်",
"status.uncached_media_warning": "မရနိုင်ပါ",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
"subscribed_languages.save": "Save changes",
"subscribed_languages.target": "Change subscribed languages for {target}",
"subscribed_languages.save": "ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ",
"subscribed_languages.target": "{target} အတွက် စာရင်းသွင်းထားသော ဘာသာစကားများကို ပြောင်းပါ",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.home": "Home",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.federated_timeline": "ဖက်ဒီ",
"tabs_bar.home": "ပင်မစာမျက်နှာ",
"tabs_bar.local_timeline": "ပြည်တွင်း",
"tabs_bar.notifications": "အသိပေးချက်များ",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
"timeline_hint.resources.followers": "Followers",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Older posts",
"timeline_hint.remote_resource_not_displayed": "အခြားဆာဗာများမှ {resource} ကို ပြသမည်မဟုတ်ပါ။",
"timeline_hint.resources.followers": "စောင့်ကြည့်သူများ",
"timeline_hint.resources.follows": "စောင့်ကြည့်မယ်",
"timeline_hint.resources.statuses": "ပို့စ်အဟောင်းများ",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "Trending now",
"trends.trending_now": "လက်ရှိခေတ်စားနေသော ပို့စ်များ",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add images, a video or an audio file",
"upload_error.limit": "File upload limit exceeded.",
"upload_button.label": "ပုံများ၊ ဗီဒီယို သို့မဟုတ် အသံဖိုင်တစ်ခု ထည့်ပါ",
"upload_error.limit": "ဖိုင်အများဆုံးတင်နိုင်မည့်ကန့်သတ်ချက်ကို ကျော်သွားပါပြီ။",
"upload_error.poll": "စစ်တမ်းနှင့်အတူဖိုင်များတင်ခွင့်မပြုပါ",
"upload_form.audio_description": "အကြားအာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
"upload_form.description": "အမြင်အာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.description_missing": "ဖော်ပြချက် မထည့်ပါ",
"upload_form.edit": "ပြင်ရန်",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",
"upload_form.undo": "ဖျက်ရန်",
"upload_form.video_description": "အမြင်အာရုံနှင့်အကြားအာရုံ ချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
"upload_modal.applying": "Applying…",
"upload_modal.choose_image": "Choose image",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.choose_image": "ပုံရွေးပါ",
"upload_modal.description_placeholder": "သီဟိုဠ်မှ ဉာဏ်ကြီးရှင်သည် အာယုဝဍ္ဎနဆေးညွှန်းစာကို ဇလွန်ဈေးဘေး ဗာဒံပင်ထက် အဓိဋ္ဌာန်လျက် ဂဃနဏဖတ်ခဲ့သည်",
"upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media",
"upload_modal.edit_media": "မီဒီယာကို ပြင်ဆင်ရန်",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.preparing_ocr": "Preparing OCR…",
"upload_modal.preparing_ocr": "OCR ပြင်ဆင်နေသည်…",
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "တင်နေသည်...",
"upload_progress.processing": "Processing…",
"video.close": "Close video",
"video.download": "Download file",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",
"video.hide": "Hide video",
"video.mute": "Mute sound",
"video.pause": "Pause",
"video.play": "Play",
"video.unmute": "Unmute sound"
"upload_progress.processing": "လုပ်ဆောင်နေသည်…",
"video.close": "ဗီဒီယိုကို ပိတ်ပါ",
"video.download": "ဖိုင်ကို ဒေါင်းလုဒ်လုပ်ပါ",
"video.exit_fullscreen": "မျက်နှာပြင်အပြည့်မှ ထွက်ပါ",
"video.expand": "ဗီဒီယိုကို ချဲ့ပါ",
"video.fullscreen": "မျက်နှာပြင်အပြည့်",
"video.hide": "ဗီဒီယိုကို ဖျောက်ပါ",
"video.mute": "အသံပိတ်ထားပါ",
"video.pause": "ခဏရပ်ပါ",
"video.play": "ဖွင့်ပါ",
"video.unmute": "အသံပြန်ဖွင့်ပါ"
}

@ -34,7 +34,7 @@
"account.followers.empty": "Ingen fylgjer denne brukaren enno.",
"account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}",
"account.following": "Fylgjer",
"account.following_counter": "{count, plural, one {Fylgjar {counter}} other {Fylgjar {counter}}}",
"account.following_counter": "{count, plural, one {Fylgjer {counter}} other {Fylgjer {counter}}}",
"account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.",
"account.follows_you": "Fylgjer deg",
"account.go_to_profile": "Gå til profil",

@ -221,7 +221,7 @@
"empty_column.favourites": "Ingen har favoritmarkerat detta inlägg än. När någon gör det kommer de synas här.",
"empty_column.follow_recommendations": "Det ser ut som om inga förslag kan genereras till dig. Du kan prova att använda sök för att leta efter personer som du kanske känner eller utforska trendande hash-taggar.",
"empty_column.follow_requests": "Du har inga följarförfrågningar än. När du får en kommer den visas här.",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.followed_tags": "Du följer inga hashtags ännu. När du gör det kommer de att dyka upp här.",
"empty_column.hashtag": "Det finns inget i denna hashtag ännu.",
"empty_column.home": "Din hemma-tidslinje är tom! Följ fler användare för att fylla den. {suggestions}",
"empty_column.home.suggestions": "Se några förslag",
@ -264,7 +264,7 @@
"follow_request.authorize": "Godkänn",
"follow_request.reject": "Avvisa",
"follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.",
"followed_tags": "Followed hashtags",
"followed_tags": "Följda hashtags",
"footer.about": "Om",
"footer.directory": "Profilkatalog",
"footer.get_app": "Skaffa appen",
@ -544,7 +544,7 @@
"server_banner.server_stats": "Serverstatistik:",
"sign_in_banner.create_account": "Skapa konto",
"sign_in_banner.sign_in": "Logga in",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"sign_in_banner.text": "Logga in för att följa profiler eller hashtags, favoritmarkera, dela och svara på inlägg. Du kan också interagera med ditt konto på en annan server.",
"status.admin_account": "Öppet modereringsgränssnitt för @{name}",
"status.admin_domain": "Öppet modereringsgränssnitt för @{domain}",
"status.admin_status": "Öppna detta inlägg i modereringsgränssnittet",

@ -7,7 +7,7 @@
"about.domain_blocks.silenced.explanation": "Гадәттә, сез бу серверның профильләрен һәм эчтәлеген күрмәячәксез, әгәр сез аларны ачыктан-ачык карамасагыз яки бу адымнарны үтәп язылмасагыз.",
"about.domain_blocks.silenced.title": "Чикле",
"about.domain_blocks.suspended.explanation": "Бу серверның бернинди мәгълүматлары да эшкәртелмәячәк, сакланмаячак яки алмаштырылмаячак, бу сервердан кулланучылар белән үзара бәйләнешне яки аралашуны мөмкин итми.",
"about.domain_blocks.suspended.title": "Асылмалы",
"about.domain_blocks.suspended.title": "Блокланган",
"about.not_available": "Бу серверда бу мәгълүмат юк иде.",
"about.powered_by": "Децентрализованные социаль челтәрләр нигезендә {mastodon}",
"about.rules": "Сервер кагыйдәләре",
@ -39,22 +39,22 @@
"account.follows_you": "Сезгә язылган",
"account.go_to_profile": "Профильгә күчү",
"account.hide_reblogs": "Скрывать көчен нче @{name}",
"account.joined_short": "Кушылу",
"account.languages": "Подписка телләрен үзгәртү",
"account.joined_short": "Кушылды",
"account.languages": "Сайланган телләрен үзгәртү",
"account.link_verified_on": "Бу сылтамага милек хокукы тикшерелде {date}",
"account.locked_info": "Бу - ябык аккаунт. Аны язылучылар гына күрә ала.",
"account.media": "Медиа",
"account.mention": "@{name} искәртү",
"account.moved_to": "{name} аларның яңа счеты хәзер күрсәтте:",
"account.mute": "Тавышсыз @{name}",
"account.mute_notifications": "Отключите хәбәрләр нче @{name}",
"account.muted": "Тавышсыз",
"account.mute": "@{name} кулланучыга әһәмият бирмәү",
"account.mute_notifications": "@{name} кулланучыдан хәбәрләргә әһәмият бирмәү",
"account.muted": "Әһәмият бирмәнгән",
"account.open_original_page": "Чыганак битен ачу",
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.report": "Хисап @{name}",
"account.posts": "Пост",
"account.posts_with_replies": "Пост һәм җавап",
"account.report": "@{name} кулланучыга шикаять итү",
"account.requested": "Awaiting approval",
"account.requested_follow": "{name} сиңа иярүеңне сорады",
"account.requested_follow": "{name} Сезгә язылу соравын җиберде",
"account.share": "Уртаклашу @{name} профиль",
"account.show_reblogs": "Күрсәтергә көчәйтү нче @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",

@ -104,14 +104,14 @@
"column.community": "本站時間軸",
"column.direct": "私訊",
"column.directory": "瀏覽個人檔案",
"column.domain_blocks": "已封鎖網域",
"column.domain_blocks": "已封鎖網域",
"column.favourites": "最愛",
"column.follow_requests": "跟隨請求",
"column.home": "首頁",
"column.lists": "列表",
"column.mutes": "已靜音的使用者",
"column.notifications": "通知",
"column.pins": "釘選嘟文",
"column.pins": "釘選嘟文",
"column.public": "聯邦時間軸",
"column_back_button.label": "上一頁",
"column_header.hide_settings": "隱藏設定",
@ -168,7 +168,7 @@
"confirmations.mute.explanation": "這將會隱藏來自他們的嘟文與通知,但是他們還是可以查閱您的嘟文與跟隨您。",
"confirmations.mute.message": "您確定要靜音 {name} 嗎?",
"confirmations.redraft.confirm": "刪除並重新編輯",
"confirmations.redraft.message": "您確定要刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及最愛,且回覆這則的嘟文將會變成獨立的嘟文。",
"confirmations.redraft.message": "您確定要刪除這則嘟文並重新編輯嗎?您將失去這則嘟文的轉嘟及最愛,且對原始嘟文的回覆都會變成獨立的嘟文。",
"confirmations.reply.confirm": "回覆",
"confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?",
"confirmations.unfollow.confirm": "取消跟隨",
@ -190,7 +190,7 @@
"dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
"dismissable_banner.explore_statuses": "這些於此伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。",
"dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
"dismissable_banner.public_timeline": "這些是來自此伺服器以及去中心化網路中其他已知伺服器的最新公開嘟文。",
"dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。",
"embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。",
"embed.preview": "它將顯示成這樣:",
"emoji_button.activity": "活動",
@ -246,7 +246,7 @@
"filter_modal.added.context_mismatch_title": "不符合情境!",
"filter_modal.added.expired_explanation": "此過濾器類別已失效,您需要更新過期日期以套用。",
"filter_modal.added.expired_title": "過期的過濾器!",
"filter_modal.added.review_and_configure": "若欲檢視和進一步設定此過濾器類別,請至 {settings_link}。",
"filter_modal.added.review_and_configure": "檢視和進一步設定此過濾器類別,請至 {settings_link}。",
"filter_modal.added.review_and_configure_title": "過濾器設定",
"filter_modal.added.settings_link": "設定頁面",
"filter_modal.added.short_explanation": "此嘟文已被新增至以下過濾器類別:{title}。",
@ -306,11 +306,11 @@
"intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
"intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
"intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
"keyboard_shortcuts.back": "返回上一頁",
"keyboard_shortcuts.blocked": "開啟「封鎖使用者」名單",
"keyboard_shortcuts.back": "上一頁",
"keyboard_shortcuts.blocked": "開啟「封鎖使用者」列表",
"keyboard_shortcuts.boost": "轉嘟",
"keyboard_shortcuts.column": "聚焦至其中一欄的嘟文",
"keyboard_shortcuts.compose": "聚焦至撰寫文字區塊",
"keyboard_shortcuts.column": "將游標移至其中一欄",
"keyboard_shortcuts.compose": "將游標移至文字撰寫區塊",
"keyboard_shortcuts.description": "說明",
"keyboard_shortcuts.direct": "開啟私訊欄",
"keyboard_shortcuts.down": "往下移動",
@ -332,13 +332,13 @@
"keyboard_shortcuts.profile": "開啟作者的個人檔案頁面",
"keyboard_shortcuts.reply": "回應嘟文",
"keyboard_shortcuts.requests": "開啟跟隨請求列表",
"keyboard_shortcuts.search": "聚焦至搜尋框",
"keyboard_shortcuts.search": "將游標移至搜尋框",
"keyboard_shortcuts.spoilers": "顯示或隱藏內容警告之嘟文",
"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.compress": "折疊圖片檢視框",
@ -376,27 +376,27 @@
"navigation_bar.compose": "撰寫新嘟文",
"navigation_bar.direct": "私訊",
"navigation_bar.discover": "探索",
"navigation_bar.domain_blocks": "已封鎖網域",
"navigation_bar.domain_blocks": "已封鎖網域",
"navigation_bar.edit_profile": "編輯個人檔案",
"navigation_bar.explore": "探索",
"navigation_bar.favourites": "最愛",
"navigation_bar.filters": "已靜音的關鍵字",
"navigation_bar.follow_requests": "跟隨請求",
"navigation_bar.followed_tags": "已跟隨主題標籤",
"navigation_bar.followed_tags": "已跟隨主題標籤",
"navigation_bar.follows_and_followers": "跟隨中與跟隨者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
"navigation_bar.mutes": "已靜音的使用者",
"navigation_bar.personal": "個人",
"navigation_bar.pins": "釘選嘟文",
"navigation_bar.pins": "釘選嘟文",
"navigation_bar.preferences": "偏好設定",
"navigation_bar.public_timeline": "聯邦時間軸",
"navigation_bar.search": "搜尋",
"navigation_bar.security": "安全性",
"not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。",
"notification.admin.report": "{name} 檢舉 {target}",
"notification.admin.report": "{name} 檢舉 {target}",
"notification.admin.sign_up": "{name} 已經註冊",
"notification.favourite": "{name} 把您的嘟文加入了最愛",
"notification.favourite": "{name} 已將您的嘟文加入最愛",
"notification.follow": "{name} 跟隨了您",
"notification.follow_request": "{name} 要求跟隨您",
"notification.mention": "{name} 提到了您",
@ -404,7 +404,7 @@
"notification.poll": "您曾投過的投票已經結束",
"notification.reblog": "{name} 轉嘟了您的嘟文",
"notification.status": "{name} 剛剛嘟文",
"notification.update": "{name} 編輯嘟文",
"notification.update": "{name} 編輯嘟文",
"notifications.clear": "清除通知",
"notifications.clear_confirmation": "您確定要永久清除您的通知嗎?",
"notifications.column_settings.admin.report": "新檢舉報告:",
@ -544,7 +544,7 @@
"server_banner.server_stats": "伺服器統計:",
"sign_in_banner.create_account": "新增帳號",
"sign_in_banner.sign_in": "登入",
"sign_in_banner.text": "登入以追蹤個人檔案、主題標籤、最愛,分享和回覆嘟文。您也能與您其他伺服器之帳號進行互動。",
"sign_in_banner.text": "登入以跟隨個人檔案和主題標籤,或收藏、分享和回覆嘟文。您也可以使用您的帳號在其他伺服器上進行互動。",
"status.admin_account": "開啟 @{name} 的管理介面",
"status.admin_domain": "開啟 {domain} 的管理介面",
"status.admin_status": "在管理介面開啟此嘟文",

@ -17,13 +17,13 @@ class AccountFilter
attr_reader :params
def initialize(params)
@params = params
@params = params.to_h.symbolize_keys
end
def results
scope = Account.includes(:account_stat, user: [:ips, :invite_request]).without_instance_actor.reorder(nil)
params.each do |key, value|
relevant_params.each do |key, value|
next if key.to_s == 'page'
scope.merge!(scope_for(key, value)) if value.present?
@ -34,6 +34,16 @@ class AccountFilter
private
def relevant_params
params.tap do |args|
args.delete(:origin) if origin_is_remote_and_domain_present?
end
end
def origin_is_remote_and_domain_present?
params[:origin] == 'remote' && params[:by_domain].present?
end
def scope_for(key, value)
case key.to_s
when 'origin'
@ -94,7 +104,15 @@ class AccountFilter
def order_scope(value)
case value.to_s
when 'active'
accounts_with_users.left_joins(:account_stat).order(Arel.sql('coalesce(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) desc, accounts.id desc'))
accounts_with_users
.left_joins(:account_stat)
.order(
Arel.sql(
<<~SQL.squish
COALESCE(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) DESC, accounts.id DESC
SQL
)
)
when 'recent'
Account.recent
else

@ -23,6 +23,7 @@ class PollVote < ApplicationRecord
after_create_commit :increment_counter_cache
delegate :local?, to: :account
delegate :multiple?, :expired?, to: :poll, prefix: true
def object_type
:vote

@ -74,10 +74,6 @@ class InstancePresenter < ActiveModelSerializers::Model
Rails.cache.fetch('distinct_domain_count') { Instance.count }
end
def sample_accounts
Rails.cache.fetch('sample_accounts', expires_in: 12.hours) { Account.local.discoverable.popular.limit(3) }
end
def version
Mastodon::Version.to_s
end

@ -67,7 +67,7 @@ class ImportService < BaseService
def import_relationships!(action, undo_action, overwrite_scope, limit, extra_fields = {})
local_domain_suffix = "@#{Rails.configuration.x.local_domain}"
items = @data.take(limit).map { |row| [row['Account address']&.strip&.delete_suffix(local_domain_suffix), Hash[extra_fields.map { |key, field_settings| [key, row[field_settings[:header]]&.strip || field_settings[:default]] }]] }.reject { |(id, _)| id.blank? }
items = @data.take(limit).map { |row| [row['Account address']&.strip&.delete_suffix(local_domain_suffix), extra_fields.to_h { |key, field_settings| [key, row[field_settings[:header]]&.strip || field_settings[:default]] }] }.reject { |(id, _)| id.blank? }
if @import.overwrite?
presence_hash = items.each_with_object({}) { |(id, extra), mapping| mapping[id] = [true, extra] }

@ -2,13 +2,13 @@
class VoteValidator < ActiveModel::Validator
def validate(vote)
vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll.expired?
vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll_expired?
vote.errors.add(:base, I18n.t('polls.errors.invalid_choice')) if invalid_choice?(vote)
if vote.poll.multiple? && vote.poll.votes.where(account: vote.account, choice: vote.choice).exists?
if vote.poll_multiple? && already_voted_for_same_choice_on_multiple_poll?(vote)
vote.errors.add(:base, I18n.t('polls.errors.already_voted'))
elsif !vote.poll.multiple? && vote.poll.votes.where(account: vote.account).exists?
elsif !vote.poll_multiple? && already_voted_on_non_multiple_poll?(vote)
vote.errors.add(:base, I18n.t('polls.errors.already_voted'))
end
end
@ -18,4 +18,24 @@ class VoteValidator < ActiveModel::Validator
def invalid_choice?(vote)
vote.choice.negative? || vote.choice >= vote.poll.options.size
end
def already_voted_for_same_choice_on_multiple_poll?(vote)
if vote.persisted?
account_votes_on_same_poll(vote).where(choice: vote.choice).where.not(poll_votes: { id: vote }).exists?
else
account_votes_on_same_poll(vote).where(choice: vote.choice).exists?
end
end
def already_voted_on_non_multiple_poll?(vote)
if vote.persisted?
account_votes_on_same_poll(vote).where.not(poll_votes: { id: vote }).exists?
else
account_votes_on_same_poll(vote).exists?
end
end
def account_votes_on_same_poll(vote)
vote.poll.votes.where(account: vote.account)
end
end

@ -41,7 +41,7 @@ bg:
attributes:
email:
blocked: използва се забранен доставчик на услуга за е-поща
unreachable: изглежда, че не съществува
unreachable: изглежда не съществува
role_id:
elevated: не може да е по-висока от текущата ви роля
user_role:

@ -28,7 +28,7 @@ de:
doorkeeper/application:
attributes:
website:
invalid: ist keine gültige Adresse
invalid: ist keine gültige URL
import:
attributes:
data:

@ -43,13 +43,13 @@ fy:
blocked: brûkt in net tastiene e-mailprovider
unreachable: liket net te bestean
role_id:
elevated: kin net heger wêze as dyn aktuele rol
elevated: kin net heger wêze as jo aktuele rol
user_role:
attributes:
permissions_as_keys:
dangerous: rjochten tafoegje dyt net feilich binne foar de basisrol
elevated: kin gjin rjochten tafoegje dyt dyn aktuele rol net besit
own_role: kin net mei dyn aktuele rol wizige wurde
elevated: kin gjin rjochten tafoegje dyt jo aktuele rol net besit
own_role: kin net mei jo aktuele rol wizige wurde
position:
elevated: kin net heger wêze as dyn aktuele rol
own_role: kin net mei dyn aktuele rol wizige wurde
elevated: kin net heger wêze as jo aktuele rol
own_role: kin net mei jo aktuele rol wizige wurde

@ -25,3 +25,7 @@ kab:
attributes:
reblog:
taken: n iddaden yellan yakan
user:
attributes:
email:
unreachable: ur d-ttban ara d akken yella

@ -43,7 +43,7 @@ pt-BR:
blocked: usa provedor de e-mail não permitido
unreachable: parece não existir
role_id:
elevated: não pode ser maior do que seu cargo atual
elevated: não pode ser maior que seu cargo atual
user_role:
attributes:
permissions_as_keys:

@ -114,6 +114,13 @@ ar:
pending: في انتظار المراجعة
perform_full_suspension: تعليق الحساب
previous_strikes: العقوبات السابقة
previous_strikes_description_html:
few: لدى هذا الحساب <strong>%{count}</strong> إنذارات.
many: لدى هذا الحساب <strong>%{count}</strong> إنذارًا.
one: هذا الحساب لديه <strong>%{count}</strong>انذار.
other: لدى هذا الحساب <strong>%{count}</strong> إنذار.
two: لدى هذا الحساب <strong>%{count}</strong> إنذاران اثنان.
zero: هذا الحساب لديه <strong>%{count}</strong>انذار.
promote: ترقية
protocol: البروتوكول
public: عمومي
@ -880,6 +887,13 @@ ar:
trending_rank: 'المتداولة #%{rank}'
usable: يمكن استخدامه
usage_comparison: تم استخدامه %{today} مرات اليوم، مقارنة بـ %{yesterday} بالأمس
used_by_over_week:
few: مستخدَم من قِبل %{count} أشخاص خلال الأسبوع الماضي
many: مستخدَم من قِبل %{count} شخصا خلال الأسبوع الماضي
one: مستخدَم من قِبل %{count} شخص واحد خلال الأسبوع الماضي
other: مستخدَم من قِبل %{count} شخص خلال الأسبوع الماضي
two: مستخدَم من قِبل %{count} شخصين خلال الأسبوع الماضي
zero: مستخدَم من قِبل %{count} شخص خلال الأسبوع الماضي
title: المتداوَلة
trending: المتداولة
warning_presets:
@ -1150,6 +1164,8 @@ ar:
storage: ذاكرة التخزين
featured_tags:
add_new: أضف واحدًا جديدا
errors:
limit: لقد قمت بالفعل بعرض الحد الأقصى من عدد الوسوم
hint_html: "<strong>ما هي الوسوم الرائجة؟</strong> يتم عرضها بشكل بارز على ملفك الشخصي العام وتسمح للناس بتصفح منشوراتك العامة على وجه التحديد تحت تلك الوسوم. وهي أداة رائعة لتتبع الأعمال الإبداعية أو المشاريع الطويلة الأجل."
filters:
contexts:

@ -6,7 +6,7 @@ ast:
hosted_on: 'Mastodon ta agospiáu en: %{domain}'
title: Tocante a
accounts:
last_active: Última actividá
last_active: última actividá
nothing_here: "¡Equí nun hai nada!"
posts:
one: Artículu
@ -20,6 +20,7 @@ ast:
accounts:
add_email_domain_block: Bloquiar el dominiu de corréu electrónicu
approved_msg: Aprobóse correutamente la solicitú de rexistru de «%{username}»
are_you_sure: "¿De xuru que quies facer esta aición?"
avatar: Avatar
by_domain: Dominiu
confirming: En confirmación
@ -39,6 +40,7 @@ ast:
login_status: Estáu del aniciu de la sesión
moderation:
pending: Pendiente
title: Moderación
most_recent_activity: L'actividá más recién
most_recent_ip: La IP más recién
perform_full_suspension: Suspender
@ -201,12 +203,19 @@ ast:
known_accounts:
one: "%{count} cuenta conocida"
other: "%{count} cuentes conocíes"
moderation:
title: Moderación
private_comment: Comentariu priváu
public_comment: Comentariu públicu
title: Federación
total_reported: Informes d'esa instancia
invites:
deactivate_all: Desactivalo too
filter:
all: Too
available: Disponible
expired: Caducó
title: Peñera
title: Invitaciones
ip_blocks:
expires_in:
@ -231,6 +240,7 @@ ast:
silence_description_html: La cuenta va ser visible namás pa quien xá la siguiere o la buscare manualmente, lo que llenda'l so algame. Esta decisión pue desfacese en cualesquier momentu. Si escueyes esta opción, zárrense tolos informes escontra esta cuenta.
actions_description_html: Decidi qué aición tomar pa resolver esti informe. Si tomes una aición punitiva escontra la cuenta de la que s'informó, va unviase un avisu per corréu electrónicu a esa cuenta, esceuto cuando se seleiciona la categoría <strong>Puxarra</strong>.
add_to_report: Amestar más al informe
are_you_sure: "¿De xuru que quies facer esta aición?"
category: Categoría
category_description_html: El motivu pol que s'informó d'esta cuenta y/o conteníu cítase na comunicación cola cuenta de la que s'informó
comment_description_html: 'Pa fornir más información, %{name} escribió:'
@ -268,6 +278,7 @@ ast:
administration: Alministración
devops: DevOps
invites: Invitaciones
moderation: Moderación
edit: Edición del rol «%{name}»
everyone: Permisos predeterminaos
permissions_count:
@ -339,6 +350,7 @@ ast:
strikes:
actions:
delete_statuses: "%{name} desanició l'artículu de: %{target}"
disable: "%{name} conxeló la cuenta de: %{target}"
mark_statuses_as_sensitive: "%{name} marcó l'artículu de %{target} como sensible"
none: "%{name} unvió una alvertencia a %{target}"
sensitive: "%{name} marcó la cuenta de %{target} como sensible"
@ -433,6 +445,7 @@ ast:
notification_preferences: Camudar les preferencies de los mensaxes de corréu electrónicu
applications:
created: L'aplicación creóse correutamente
destroyed: L'aplicación desanicióse correutamente
regenerate_token: Volver xenerar el pase d'accesu
token_regenerated: El pase d'accesu volvió xenerase correutamente
warning: Ten munchu curiáu con estos datos, ¡enxamás nun los compartas con naide!
@ -520,12 +533,14 @@ ast:
action_taken: Aición tomada
appeal: Apellación
appeal_rejected: Refugóse l'apellación
appeal_submitted_at: Data de l'apellación
appealed_msg: Unvióse l'apellación. Si s'aprueba, avisámoste.
appeals:
submit: Unviu d'una apellación
approve_appeal: Aprobar l'apellación
associated_report: Informe asociáu
created_at: Data
recipient: Dirixóse a
reject_appeal: Refugar l'apellación
status: 'Artículu #%{id}'
status_removed: L'artículu xá se quitó del sistema
@ -570,6 +585,7 @@ ast:
public: Llinies de tiempu públiques
thread: Conversaciones
edit:
add_keyword: Amestar una pallabra clave
keywords: Pallabres clave
statuses: Artículos individuales
errors:
@ -654,6 +670,8 @@ ast:
incoming_migrations_html: Pa migrar d'otra cuenta a esta, primero tienes de <a href="%{path}">crear un nomatu de cuenta</a>.
warning:
followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva
moderation:
title: Moderación
notification_mailer:
admin:
sign_up:
@ -778,6 +796,7 @@ ast:
notifications: Avisos
preferences: Preferencies
profile: Perfil
relationships: Perfiles que sigues ya te siguen
statuses_cleanup: Desaniciu automáticu d'artículos
two_factor_authentication: Autenticación en dos pasos
webauthn_authentication: Llaves de seguranza
@ -819,8 +838,16 @@ ast:
exceptions: Esceiciones
interaction_exceptions: Esceiciones basaes nes interaiciones
keep_direct: Caltener los mensaxes direutos
keep_direct_hint: Nun desanicia nengún mensaxe direutu
keep_media: Caltener los artículos con elementos multimedia
keep_media_hint: Nun desanicia nengún artículu de to que contenta elementos multimedia
keep_pinned: Caltener los artículos fixaos
keep_polls: Caltener les encuestes
keep_polls_hint: Nun desanicia nenguna encuesta de to
keep_self_bookmark: Caltener los artículos que metieres en Marcadores
keep_self_bookmark_hint: Nun desanicia nengún artículu que metieres en Marcadores
keep_self_fav: Caltener los artículos que seyan favoritos
keep_self_fav_hint: Nun desanicia nengún artículu que marcares como favoritu
min_age:
'1209600': 2 selmanes
'15778476': 6 meses

@ -105,7 +105,7 @@ bg:
not_subscribed: Без абонамент
pending: Изчаква преглед
perform_full_suspension: Спиране
previous_strikes: Предишни нарушения
previous_strikes: Предишни предупреждения
previous_strikes_description_html:
one: Този акаунт има <strong>едно</strong> нарушение.
other: Този акунт има <strong>%{count}</strong> нарушения.
@ -231,7 +231,7 @@ bg:
actions:
approve_appeal_html: "%{name} одобри обжалването на решение за модериране от %{target}"
approve_user_html: "%{name} одобри регистрирането от %{target}"
assigned_to_self_report_html: "%{name} назначете доклада %{target} на себе си"
assigned_to_self_report_html: "%{name} възложи на себе си доклад %{target}"
change_email_user_html: "%{name} промени адреса на имейла на потребителя %{target}"
change_role_user_html: "%{name} промени ролята на %{target}"
confirm_user_html: "%{name} потвърди адреса на имейла на потребителя %{target}"
@ -613,6 +613,7 @@ bg:
placeholder: Опишете какви действия са били предприети или всякакви други свързани нови неща...
title: Бележки
notes_description_html: Прегледайте и оставете бележки за други модератори и за вас самите след време
processed_msg: Доклад №%{id} успешно обработен
quick_actions_description_html: 'Предприемете бързо действие или превъртете надолу, за да видите докладваното съдържание:'
remote_user_placeholder: отдалеченият потребител от %{instance}
reopen: Отваряне пак на доклад
@ -633,10 +634,14 @@ bg:
suspend_html: 'На път сте да <strong>спрете</strong> акаунта на <strong>@%{acct}</strong>. Това ще:'
actions:
delete_html: Премахване на обидните публикации
mark_as_sensitive_html: Означаване на мултимедийните обидни публикации като деликатни
silence_html: Силно ограничаване достигането на <strong>@%{acct}</strong>, което прави профилът и съдържанието на това лице видимо само до хората, които са го последвали или ръчно търсещите профила
suspend_html: Спирането на <strong>@%{acct}</strong> ще направи профилът и съдържанието недостъпни и невъзможни за взаимодействие
close_report: Отбелязване на доклад №%{id} като решен
close_reports_html: Означаване на <strong>всички</strong> доклади срещу <strong>@%{acct}</strong> като решени
delete_data_html: Изтриване на профила и съдържанието на <strong>@%{acct}</strong> за 30 дни от сега, освен ако междувременно не получи спиране
preview_preamble_html: "<strong>@%{acct}</strong> ще получи предупреждение със следното съдържание:"
record_strike_html: Запис на предупреждение против <strong>@%{acct}</strong>, за да ви помогне при изострянето на бъдещи нарушения от този акаунт
send_email_html: Изпращане на предупредително е-писмо на <strong>@%{acct}</strong>
warning_placeholder: Незадължителни допълнителни причини за модераторско действие.
target_origin: Произход на докладвания акаунт
@ -1020,7 +1025,7 @@ bg:
functional: Вашият акаунт е в изправност.
pending: Вашето приложение чака преглед от нашия екип. Това може да отнеме време. Ще получите имейл, ако приложението е одобрено.
redirecting_to: Вашият акаунт е бездеен, защото сега се пренасочва към %{acct}.
view_strikes: Преглед на предишните нарушения за вашия акаунт
view_strikes: Преглед на предишните предупреждения против акаунта ви
too_fast: Образецът подаден пребързо, опитайте пак.
use_security_key: Употреба на ключ за сигурност
authorize_follow:
@ -1083,7 +1088,7 @@ bg:
strikes:
action_taken: Предприето действие
appeal: Обжалване
appeal_approved: Това нарушение беше успешно обжалвано и е вече невалидно
appeal_approved: Това предупреждение беше успешно обжалвано и е вече невалидно
appeal_rejected: Обжалването е отхвърлено
appeal_submitted_at: Подадено обжалване
appealed_msg: Вашето обжалване е отхвърлено. Ако е одобрено, то ще бъдете известени.
@ -1492,7 +1497,7 @@ bg:
profile: Профил
relationships: Последвания и последователи
statuses_cleanup: Автоматично изтриване на публикации
strikes: Нарушения
strikes: Модериране на предупреждения
two_factor_authentication: Двустепенно удостоверяване
webauthn_authentication: Ключове за сигурност
statuses:
@ -1586,7 +1591,7 @@ bg:
sensitive_content: Деликатно съдържание
strikes:
errors:
too_late: Късно е за обжалване на това нарушение
too_late: Твърде късно е за обжалване на това предупреждение
tags:
does_not_match_previous_name: не съвпада с предишното име
themes:

@ -990,7 +990,7 @@ da:
migrate_account: Flyt til en anden konto
migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du <a href="%{path}">opsætte dette hér</a>.
or_log_in_with: Eller log ind med
privacy_policy_agreement_html: Jeg accepterer <a href="%{privacy_policy_path}" target="_blank">Fortrolighedspolitikken</a>
privacy_policy_agreement_html: Jeg accepterer <a href="%{privacy_policy_path}" target="_blank">privatlivspolitikken</a>
providers:
cas: CAS
saml: SAML
@ -1077,7 +1077,7 @@ da:
email_contact_html: Hvis det stadig ikke ankommer, kan du sende en e-mail til <a href="mailto:%{email}">%{email}</a> for hjælp
email_reconfirmation_html: Modtager du ikke bekræftelses-e-mailen, kan du <a href="%{path}">anmode om en ny</a>
irreversible: Du vil ikke kunne gendanne/genaktivere din konto
more_details_html: For yderligere oplysningerer, tjek <a href="%{terms_path}">fortrolighedspolitikken</a>.
more_details_html: For yderligere oplysningerer, tjek <a href="%{terms_path}">privatlivspolitikken</a>.
username_available: Dit brugernavn vil blive tilgængeligt igen
username_unavailable: Dit brugernavn vil forblive utilgængeligt
disputes:
@ -1392,7 +1392,7 @@ da:
posting_defaults: Standarder for indlæg
public_timelines: Offentlige tidslinjer
privacy_policy:
title: Fortrolighedspolitik
title: Privatlivspolitik
reactions:
errors:
limit_reached: Grænse for forskellige reaktioner nået

@ -735,8 +735,8 @@ de:
preamble: Lege fest, wie lange nutzergenerierte Inhalte auf deiner Mastodon-Instanz gespeichert werden.
title: Cache & Archive
default_noindex:
desc_html: Betrifft alle Benutzer, die diese Einstellung nicht selbst geändert haben
title: Benutzer standardmäßig von der Suchmaschinen-Indizierung ausnehmen
desc_html: Betrifft alle Benutzer*innen, die diese Einstellung bei sich nicht geändert haben
title: Profile standardmäßig von der Suchmaschinen-Indizierung ausnehmen
discovery:
follow_recommendations: Folgeempfehlungen
preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren.

@ -20,9 +20,9 @@ de:
confirmation_instructions:
action: E-Mail-Adresse verifizieren
action_with_app: Bestätigen und dann zur App %{app} zurückkehren
explanation: Du hast auf %{host} mit dieser E-Mail-Adresse ein Konto erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
explanation: Du hast mit dieser E-Mail-Adresse ein Konto auf %{host} erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
extra_html: Bitte lies auch die <a href="%{terms_path}">Regeln des Servers</a> und <a href="%{policy_path}">unsere Nutzungsbedingungen</a>.
extra_html: Bitte beachte auch die <a href="%{terms_path}">Serverregeln</a> und <a href="%{policy_path}">unsere Datenschutzerklärung</a>.
subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
title: E-Mail-Adresse verifizieren
email_changed:

@ -48,15 +48,15 @@ et:
title: Salasõna lähtestamine
two_factor_disabled:
explanation: Kontol on kaheastmeline autentimine välja lülitatud. Sisenemine on võimalik ainult kasutades e-postiaadressi ja salasõna.
subject: 'Mastodon: Kahe-etapine autentimine välja lülitatud'
subject: 'Mastodon: Kaheastmeline autentimine välja lülitatud'
title: 2FA keelatud
two_factor_enabled:
explanation: Kontol on sisse lülitatud kaheastmeline autentimine. Sisenemiseks on vajalik ühekordne aeguv võti TOTP-rakenduse poolt.
subject: 'Mastodon: Kahe-etapine autentimine sisse lülitatud'
subject: 'Mastodon: kaheastmeline autentimine sisse lülitatud'
title: 2FA lubatud
two_factor_recovery_codes_changed:
explanation: Eelmised taastekoodid on nüüd kehtetud ning loodud uued.
subject: 'Mastodon: Kahe-etapise autentimise taastuskoodid taasloodud'
subject: 'Mastodon: Kaheastmelise autentimise taastuskoodid taasloodud'
title: 2FA taastekoodid muudetud
unlock_instructions:
subject: 'Mastodon: Lahti lukustamis juhendid'

@ -6,13 +6,13 @@ fy:
send_instructions: Do ûntfangst fia in e-mailberjocht ynstruksjes hoetsto dyn account befêstigje kinst. Sjoch yn de map net-winske wanneart neat ûntfongen waard.
send_paranoid_instructions: As dyn e-mailadres yn de database stiet, ûntfangsto fia in e-mailberjocht ynstruksjes hoetsto dyn account befêstigje kinst. Sjoch yn de map net-winske wanneart neat ûntfongen waard.
failure:
already_authenticated: Do bist al oanmeld.
already_authenticated: Jo binne al oanmeld.
inactive: Jo account is noch net aktivearre.
invalid: "%{authentication_keys} of wachtwurd ûnjildich."
last_attempt: Do hast noch ien besykjen oer eardat dyn account blokkearre wurdt.
locked: Dyn account is blokkearre.
locked: Jo account is blokkearre.
not_found_in_database: "%{authentication_keys} of wachtwurd ûnjildich."
pending: Dyn account moat noch hieltyd beoardiele wurde.
pending: Jo account moat noch hieltyd beoardiele wurde.
timeout: Dyn sesje is ferrûn, meld dy opnij oan.
unauthenticated: Jo moatte oanmelde of registrearje.
unconfirmed: Do moatst earst dyn account befêstigje.

@ -3,14 +3,16 @@ my:
devise:
confirmations:
confirmed: သင်၏ အီးမေးလ်လိပ်စာ အောင်မြင်စွာအတည်ပြုပြီးပါပြီ။
send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
failure:
already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။
inactive: သင့်အကောင့်မှာ အတည်မဖြစ်သေးပါ။
invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။
locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။
not_found_in_database: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
pending: သင့်အကောင့်အား စိစစ်ဆဲဖြစ်သည်။
timeout: သင့် Session သက်တမ်းကုန်သွားပါပြီ။ ရှေ့ဆက်ရန်အတွက် ကျေးဇူးပြုပြီး ထပ်မံဝင်ရောက်ပါ။
unauthenticated: ဆက်မလုပ်မီ သင်သည် အကောင့်ဝင်ရန် သို့မဟုတ် အကောင့်ဖွင့်ရန် လိုအပ်သည်။
unconfirmed: ဆက်မလုပ်မီ သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရပါမည်။
@ -18,33 +20,46 @@ my:
confirmation_instructions:
action: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
action_with_app: အတည်ပြုပြီး %{app} သို့ပြန်သွားပါ
explanation: "%{host} တွင် ဤအီးမေးလ်လိပ်စာဖြင့် သင် အကောင့်တစ်ခု ဖန်တီးထားပြီးဖြစ်သည်။ သင် ကလစ်တစ်ချက်နှိပ်ရုံဖြင့် အကောင့်အား အသက်ဝင်စေနိုင်သည်။ အကယ်၍ သင်ဖန်တီးထားခြင်းမဟုတ်ခဲ့လျှင် ယခုအီးမေးလ်အား ကျေးဇူးပြု၍ လျစ်လျူရှုပါ။"
explanation_when_pending: "%{host} သို့ ဖိတ်ခေါ်မှုတစ်ခုကို ဤအီးမေးလ်လိပ်စာဖြင့် သင်တောင်းဆိုခဲ့သည်။ အီးမေးလ်လိပ်စာကို သင်အတည်ပြုပြီးပါက ကျွန်ုပ်တို့အနေဖြင့် သင့်တောင်းဆိုမှုအား စိစစ်မည်ဖြစ်သည်။ သင့်အနေဖြင့် မိမိအကောင့်အတွင်း ဝင်ရောက်၍ အသေးစိတ်အချက်အလက်များအား ပြုပြင်နိုင်သည် (သို့) မိမိအကောင့်အား ဖျက်နိုင်သည်။ သို့သော် သင့်အကောင့်ကို အတည်ပြုမပြီးမချင်း သင့်အနေဖြင့် လုပ်ငန်းဆောင်တာအများစုအား ဆောင်ရွက်နိုင်မည် မဟုတ်ပေ။ သင်၏ အကောင့်တောင်းဆိုမှု ငြင်းဆန်ခံရပါက သင့်အချက်အလက်များအား ဖယ်ရှားပေးမည်ဖြစ်သည်။ သင့်အနေဖြင့် တခြားအရေးယူဆောင်ရွက်ရန် မလိုအပ်ပါ။ အကယ်၍ ယခုတောင်းဆိုမှုအား သင်ပြုလုပ်ထားခြင်းမဟုတ်ခဲ့လျှင် ယခုအီးမေးလ်အား ကျေးဇူးပြု၍ လျစ်လျူရှုပါ။"
extra_html: ကျေးဇူးပြု၍ <a href="%{terms_path}">ဆာဗာစည်းမျဉ်းများ</a> နှင့် <a href="%{policy_path}">ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုစည်းမျဉ်းများ</a>ကိုလည်း စစ်ဆေးကြည့်ပါ။
subject: Mastodon - %{instance} အတွက် အတည်ပြုချက် ညွှန်ကြားချက်များ
title: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
email_changed:
explanation: သင့်အကောင့်အတွက် အီးမေးလ်လိပ်စာကို ပြောင်းလဲနေပါသည် -
extra: သင့်အီးမေးလ်လိပ်စာ မပြောင်းထားပါက တစ်စုံတစ်ဦးသည် သင့်အကောင့်သို့ ဝင်ရောက်ခွင့်ရရှိသွားနိုင်ပါသည်။ သင့်အကောင့် လော့ခ်ကျသွားပါက သင့်စကားဝှက်ကို ချက်ချင်းပြောင်းပါ သို့မဟုတ် ဆာဗာစီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။
subject: 'Mastodon: အီးမေးလ်ပြောင်းလဲသွားပြီ'
title: အီးမေးလ်လိပ်စာအသစ်
password_change:
explanation: သင့်အကောင့်အတွက် စကားဝှက်ကို ပြောင်းလဲလိုက်ပါပြီ။
extra: သင့်စကားဝှက် မပြောင်းထားပါက တစ်စုံတစ်ဦးသည် သင့်အကောင့်သို့ ဝင်ရောက်ခွင့်ရရှိသွားနိုင်ပါသည်။ သင့်အကောင့် လော့ခ်ကျသွားပါက သင့်စကားဝှက်ကို ချက်ချင်းပြောင်းပါ သို့မဟုတ် ဆာဗာစီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။
subject: 'Mastodon: စကားဝှက်ပြောင်းလဲသွားပြီ'
title: စကားဝှက်ပြောင်းလဲသွားပြီ
reconfirmation_instructions:
explanation: သင်၏အီးမေးလ်လိပ်စာပြောင်းရန် လိပ်စာအသစ်အတည်ပြုပါ။
extra: တစ်ကယ်လို့ ပြောင်းလဲမှုကို သင်တောင်းဆိုတာမဟုတ်ဘူးဆိုရင် ဤအီးမေးလ်ကို လျစ်လျူရှုလိုက်ပါ။ အပေါ်မှ လင့်ခ်ကိုမဝင်မချင်း သင့်အီးမေးလ်ပြောင်းသွားမည်မဟုတ်ပါ
subject: 'Mastodon: %{instance} အတွက်အီးမေးလ်အတည်ပြုပါ'
title: အီးမေးလ်လိပ်စာစစ်ဆေးပါ
reset_password_instructions:
action: စကားဝှက်ပြောင်းမည်
explanation: သင့်အကောင့်အတွက် စကားဝှက်အသစ်တစ်ခု တောင်းဆိုခဲ့သည်။
extra: သင်မတောင်းဆိုထားပါက ဤအီးမေးလ်ကို လျစ်လျူရှုလိုက်ပါ။ အထက်ဖော်ပြပါလင့်ခ်ကို သင်ဝင်ရောက်ပြီး အသစ်တစ်ခုမဖန်တီးမချင်း သင့်စကားဝှက်သည် ပြောင်းလဲမည်မဟုတ်ပါ။
subject: 'Mastodon: စကားဝှက်ညွှန်ကြားချက် ပြန်လည်သတ်မှတ်မည်'
title: စကားဝှက်ပြန်လည်သတ်မှတ်မည်
two_factor_disabled:
explanation: သင့်အကောင့်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အထောက်အထားပြခြင်းကို ပိတ်ထားသည်။ အီးမေးလ်လိပ်စာနှင့် စကားဝှက်ကိုသာ အသုံးပြု၍ အကောင့်ဝင်ရောက်နိုင်ပါသည်။
subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည်'
title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည်
two_factor_enabled:
explanation: သင့်အကောင့်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အထောက်အထားပြခြင်းကို ဖွင့်ထားသည်။ TOTP အက်ပ်မှ ထုတ်ပေးသည့် တိုကင်တစ်ခုမှာ အကောင့်ဝင်ရန်အတွက် လိုအပ်ပါသည်။
subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည်'
title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည်
two_factor_recovery_codes_changed:
explanation: ယခင်ပြန်လည်ရယူသည့်ကုဒ်များမှာ မမှန်ကန်သောကြောင့် အသစ်များကို ထုတ်ပေးခဲ့သည်။
subject: Mastodon - နှစ်ဆင့်ခံလုံခြုံရေး ပြန်လည်ရယူသည့်ကုဒ်များကို ပြန်လည်ထုတ်ပေးခြင်း
title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ် ပြန်လည်ရယူသည့်ကုဒ်နံပါတ်များ ပြောင်းလဲခဲ့သည်
unlock_instructions:
subject: Mastodon - ညွှန်ကြားချက်များကို လော့ခ်ဖွင့်ပါ
webauthn_credential:
added:
explanation: ဖော်ပြပါလုံခြုံရေးသော့ချက်အား သင့်အကောင့်ထဲသို့ထည့်ပြီးပါပြီ
@ -55,16 +70,43 @@ my:
subject: 'Mastodon: လုံခြုံရေးသော့ချက် ဖျက်လိုက်ပါပြီ'
title: လုံခြုံရေးသော့ချက်များထဲမှတစ်ခု ဖျက်လိုက်ပါပြီ
webauthn_disabled:
explanation: သင့်အကောင့်အတွက် လုံခြုံရေးကီးများဖြင့် အထောက်အထားပြခြင်းကို ပိတ်ထားသည်။ TOTP အက်ပ်မှထုတ်ပေးသည့် တိုကင်ကိုသာ အသုံးပြု၍ အကောင့်ဝင်ရောက်နိုင်ပါသည်။
subject: Mastodon - လုံခြုံရေးကီးများဖြင့် အထောက်အထားစိစစ်ခြင်းကို ပိတ်ထားသည်
title: လုံခြုံရေးသော့ချက်များ ပိတ်ပြီးပါပြီ
webauthn_enabled:
explanation: သင့်အကောင့်အတွက် လုံခြုံရေးကီး အထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားသည်။ အကောင့်ဝင်ရန်အတွက် သင်၏လုံခြုံရေးကီးကို ယခုအသုံးပြုနိုင်ပါပြီ။
subject: Mastodon - လုံခြုံရေးကီး အထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားသည်
title: လုံခြုံရေးသော့ချက်များ ဖွင့်ပြီးပါပြီ
omniauth_callbacks:
failure: "“%{reason}” ကြောင့် %{kind} မှ သင့်ကို စစ်မှန်ကြောင်း အထောက်အထား မပြနိုင်ပါ။"
success: "%{kind} အကောင့်မှ အထောက်အထားပြပြီးပါပြီ။"
passwords:
no_token: စကားဝှက်ပြန်လည်သတ်မှတ်ခြင်းအီးမေးလ်မှ မလာပါက ဤစာမျက်နှာကို သင်ဝင်ရောက်၍မရနိုင်ပါ။ အကယ်၍ ၎င်းမှလာပါက ပေးထားသော URL အပြည့်အစုံကို အသုံးပြုရပါမည်။
send_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာတွင် စကားဝှက်ပြန်လည်ရယူရေးလင့်ခ် ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာတွင် စကားဝှက်ပြန်လည်ရယူရေးလင့်ခ် ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
updated: သင့်စကားဝှက်ကို အောင်မြင်စွာ ပြောင်းလဲပြီးပါပြီ။ သင်သည် ယခု အကောင့်ဝင်ထားပြီးဖြစ်ပါသည်။
updated_not_active: သင့်စကားဝှက်ကို အောင်မြင်စွာ ပြောင်းလဲပြီးပါပြီ။
registrations:
destroyed: တာ့တာ၊ သင့်အကောင့်ကို ပယ်ဖျက်လိုက်ပါပြီ။ မကြာခင် ပြန်တွေ့နိုင်ရန်မျှော်လင့်မိပါသည်။
signed_up: ကြိုဆိုပါသည်။ သင်သည် အောင်မြင်စွာ စာရင်းသွင်းပြီးပါပြီ။
signed_up_but_inactive: သင်သည် အောင်မြင်စွာ အကောင့်ဖွင့်ပြီးပါပြီ။ သို့သော်လည်း သင့်အကောင့် အတည်မပြုရသေးသောကြောင့် ဝင်၍မရနိုင်ပါ။
signed_up_but_locked: သင်သည် အောင်မြင်စွာ အကောင့်ဖွင့်ပြီးပါပြီ။ သို့သော်လည်း သင့်အကောင့်လော့ခ်ချထားသောကြောင့် လက်မှတ်ထိုးဝင်၍မရနိုင်ပါ။
signed_up_but_pending: အတည်ပြုချက်လင့်ခ်ပါရှိသော စာတိုတစ်စောင်ကို သင့်အီးမေးလ်လိပ်စာသို့ ပေးပို့လိုက်ပါပြီ။ လင့်ခ်ကို နှိပ်ပြီးနောက် သင့်အက်ပလီကေးရှင်းကို ကျွန်ုပ်တို့ ပြန်လည်စစ်ဆေးပါမည်။ အတည်ပြုပြီးပါက သင့်ထံ အကြောင်းကြားပါမည်။
signed_up_but_unconfirmed: အကောင့်ဖွင့်ရန်အတွက် လင့်ခ်တစ်ခုကို ထောက်ခံချက်အီးမေးလ််နှင့်အတူပို့ပေးလိုက်ပါပြီ။ သင့်အကောင့်ဖွင့်နိုင်ရန် လင့်ခ်ကိုဝင်ရောက်ပေးပါ။ အီးမေးလ်မတွေ့ပါက စပမ်းဖိုင်တွဲထဲတွင်စစ်ကြည့်ပါ။
update_needs_confirmation: သင့်အကောင့်ကို မွမ်းမံပြင်ဆင်ထားသော်လည်း သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန် လိုအပ်ပါသည်။ ကျေးဇူးပြု၍ သင့်အီးမေးလ်ကို စစ်ဆေးပြီး သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန်အတွက် အတည်ပြုလင့်ခ်အား နှိပ်ပါ။ ဤအီးမေးလ်ကို မရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
updated: သင့်အကောင့်အားအောင်မြင်စွာ ပြင်ဆင်ပြီးပါပြီ။
sessions:
already_signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။
signed_in: အောင်မြင်စွာအကောင့်ဝင်ပြီးပါပြီ။
signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။
unlocks:
send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အကောင့်လော့ခ်ဖွင့်နည်းအတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်လက်ခံရရှိမည်ဖြစ်သည်။ ဤအီးမေးလ်ကို မရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
send_paranoid_instructions: အကယ်၍ သင့်တွင် အကောင့်ရှိပါက မိနစ်အနည်းငယ်အတွင်း လော့ခ်ဖွင့်နည်းအတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်သည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
unlocked: သင့်အကောင့်ကို လော့ခ်ဖွင့်ပြီးပါပြီ။ ရှေ့ဆက်ရန်အတွက် အကောင့်ဝင်ပါ။
errors:
messages:
already_confirmed: အတည်ပြုပြီးဖြစ်သည်။ ကျေးဇူးပြု၍ အကောင့်ဝင်ကြည့်ပါ။
confirmation_period_expired: "%{period} အတွင်း အတည်ပြုရန် လိုအပ်ပြီး အသစ်တစ်ခု တောင်းဆိုပါ"
expired: သည် သက်တမ်းကျော်လွန်သွားပြီ။ ကျေးဇူးပြု၍အသစ်တစ်ခု တောင်းဆိုပါ
not_found: ရှာမတွေ့ပါ
not_locked: လော့ခ် မချထားပါ

@ -20,7 +20,7 @@ zh-TW:
confirmation_instructions:
action: 驗證電子郵件地址
action_with_app: 確認並返回 %{app}
explanation: 您已經使用此電子郵件地址在 %{host} 上建立了一個帳號。距離啟用它只剩一點之遙了。如果這不是您本人,請忽略此郵件。
explanation: 您已經在 %{host} 上以此電子郵件地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。
explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件地址後我們將審核您的申請。您可以在登入後變更詳細資訊或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您本人,請忽略此郵件。
extra_html: 同時也請看看<a href="%{terms_path}">伺服器規則</a>與<a href="%{policy_path}">服務條款</a>。
subject: Mastodon%{instance} 確認說明

@ -14,6 +14,8 @@ ast:
destroy: Destruyir
edit: Editar
submit: Unviar
confirmations:
destroy: "¿De xuru que quies facer esta aición?"
form:
error: "¡Meca! Revisa los errores posibles del formulariu"
help:
@ -46,6 +48,8 @@ ast:
authorized_applications:
buttons:
revoke: Revocar
confirmations:
revoke: "¿De xuru que quies facer esta aición?"
index:
description_html: Estes son les aplicaciones que puen acceder a la cuenta cola API. Si equí hai aplicaciones que nun conoces o hai dalguna aplicación que nun funciona correutamente, pues revocar el so accesu.
never_used: Enxamás s'usó
@ -94,7 +98,7 @@ ast:
admin:write: modifica tolos datos del sirvidor
crypto: usa'l cifráu de puntu a puntu
follow: modifica les rellaciones de les cuentes
push: receición d'avisos push
push: recibe avisos push
read: llee tolos datos de les cuentes
read:accounts: mira la información de les cuentes
read:blocks: mira les cuentes bloquiaes
@ -118,5 +122,5 @@ ast:
write:media: xube ficheros multimedia
write:mutes: desactiva los avisos de perfiles ya de conversaciones
write:notifications: borra los avisos
write:reports: informa d'otres perfiles
write:reports: informa d'otros perfiles
write:statuses: espubliza artículos

@ -4,7 +4,7 @@ ko:
attributes:
doorkeeper/application:
name: 애플리케이션 이름
redirect_uri: 다이렉트 URI
redirect_uri: 렉트 URI
scopes: 범위
website: 애플리케이션 웹사이트
errors:
@ -15,7 +15,7 @@ ko:
fragment_present: fragment를 포함할 수 없습니다
invalid_uri: 올바른 URI 이어야 합니다.
relative_uri: 절대경로 URI 이어야 합니다
secured_uri: " HTTPS/SSL URI 이어야 합니다."
secured_uri: HTTPS/SSL URI 이어야 합니다.
doorkeeper:
applications:
buttons:
@ -31,16 +31,16 @@ ko:
form:
error: 이런! 오류를 확인하세요
help:
native_redirect_uri: "%{native_redirect_uri} 을/를 이용해 로컬 테스트를 할 수 있습니다"
native_redirect_uri: "%{native_redirect_uri}에서 로컬 테스트를 할 수 있습니다."
redirect_uri: 한 줄에 하나의 URI를 작성하세요
scopes: 스페이스로 범위를 구분하세요. 빈 칸으로 놔두면 기본 범위를 사용합니다.
index:
application: 애플리케이션
callback_url: 콜백 URL
delete: 삭제
empty: 애플리케이션이 없습니다.
empty: 이 없습니다.
name: 이름
new: 애플리케이션
new: 로운 앱
scopes: 범위
show: 표시
title: 내 응용프로그램
@ -52,7 +52,7 @@ ko:
callback_urls: 콜백 URL
scopes: 범위
secret: 클라이언트 비밀키
title: '애플리케이션: %{name}'
title: ': %{name}'
authorizations:
buttons:
authorize: 승인
@ -60,11 +60,11 @@ ko:
error:
title: 오류가 발생하였습니다
new:
prompt_html: "%{client_name}이 당신의 계정에 대한 접근 권한을 요청합니다. 이것은 제3자의 응용프로그램입니다. <strong>이것을 신뢰하지 않는다면, 권한을 승인하지 말아야 합니다.</strong>"
prompt_html: "%{client_name} 제3자 앱이 귀하의 계정에 접근하기 위한 권한을 요청했습니다. <strong>이 앱을 신뢰할 수 없다면 요청을 승인하지 마십시오.</strong>"
review_permissions: 권한 검토
title: 승인 필요
show:
title: 이 승인 코드를 복사하여 애플리케이션에 붙여넣으세요
title: 이 승인 코드를 복사해 앱에 붙여 넣어야 합니다.
authorized_applications:
buttons:
revoke: 삭제
@ -72,7 +72,7 @@ ko:
revoke: 확실합니까?
index:
authorized_at: "%{date}에 승인됨"
description_html: 당신의 계정에 API를 통해 접근 가능한 응용프로그램의 목록입니다. 알 수 없는 응용프로그램, 혹은 잘못된 행동을 하고 있는 응용프로그램이 있다면, 권한을 취소할 수 있습니다.
description_html: 이 계정에 API를 통해 접근 가능한 앱의 목록입니다. 알 수 없는 앱이나 잘못된 행위를 하는 앱이 있다면 권한을 취소할 수 있습니다.
last_used_at: "%{date}에 마지막으로 사용됨"
never_used: 사용되지 않음
scopes: 권한
@ -82,7 +82,7 @@ ko:
messages:
access_denied: 리소스 소유자 또는 인증 서버가 요청을 거부했습니다.
credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials의 설정이 되어있지 않아 리소스 소유자 암호 자격증명이 실패하였습니다.
invalid_client: 알 수 없는 클라이언트이기 때문에 클라이언트 인증이 실패하였습니다, 클라이언트 자격증명이 포함되지 않았거나, 지원 되지 않는 메소드입니다.
invalid_client: 클라이언트를 확인할 수 없기 때문에 인증이 실패하였습니다. 클라이언트 자격 증명이 포함되지 않았거나 지원되지 않는 메소드입니다.
invalid_grant: 제공된 권한 부여가 잘못되거나, 만료되었거나, 취소되었거나, 권한 부여 요청에 사용된 리디렉션 URI가 일치하지 않거나, 다른 클라이언트에 지정되었습니다.
invalid_redirect_uri: 리디렉션 URI가 올바르지 않습니다
invalid_request:
@ -104,14 +104,14 @@ ko:
flash:
applications:
create:
notice: 애플리케이션이 생성 되었습니다.
notice: 이 생성 되었습니다.
destroy:
notice: 애플리케이션이 삭제 되었습니다.
notice: 앱을 삭제했습니다.
update:
notice: 애플리케이션이 갱신 되었습니다.
notice: 앱을 갱신했습니다.
authorized_applications:
destroy:
notice: 애플리케이션이 삭제되었습니다.
notice: 운영자에 의해 앱이 해지되었습니다.
grouped_scopes:
access:
read: 읽기 전용 권한
@ -142,7 +142,7 @@ ko:
layouts:
admin:
nav:
applications: 애플리케이션
applications:
oauth2_provider: OAuth2 제공자
application:
title: OAuth 인증이 필요합니다
@ -164,26 +164,26 @@ ko:
admin:write:ip_blocks: IP 차단에 모더레이션 조치 취하기
admin:write:reports: 신고에 모더레이션 조치 취하기
crypto: 종단간 암호화 사용
follow: 계정 관계 수정
push: 푸시 알림 받기
read: 계정의 모든 데이터 읽기
read:accounts: 계정 정보 보기
read:blocks: 차단 보기
follow: 계정 관계 수정
push: 푸시 알림 받기
read: 계정의 모든 데이터 읽기
read:accounts: 계정 정보 보기
read:blocks: 차단 보기
read:bookmarks: 내 북마크 보기
read:favourites: 관심글을 보기
read:filters: 필터 보기
read:follows: 팔로우 보기
read:lists: 리스트 보기
read:mutes: 뮤트 보기
read:favourites: 좋아요 보기
read:filters: 필터 보기
read:follows: 팔로우 보기
read:lists: 리스트 보기
read:mutes: 뮤트 보기
read:notifications: 알림 보기
read:reports: 신고 보기
read:search: 당신의 권한으로 검색
read:statuses: 게시물 모두 보기
read:statuses: 모든 게시물 보기
write: 계정 정보 수정
write:accounts: 프로필 수정
write:blocks: 계정이나 도메인 차단
write:blocks: 계정 도메인 차단
write:bookmarks: 게시물을 북마크에 넣기
write:conversations: 뮤트 대화 삭제
write:conversations: 뮤트 대화 삭제
write:favourites: 관심글 지정
write:filters: 필터 만들기
write:follows: 사람을 팔로우

@ -12,6 +12,7 @@ my:
doorkeeper/application:
attributes:
redirect_uri:
fragment_present: အပိုင်းတစ်ပိုင်း မပါဝင်နိုင်ပါ။
invalid_uri: သည် မှန်ကန်သော URI ဖြစ်ရမည်။
relative_uri: URI ဖြစ်ရမည်။
secured_uri: သည် HTTPS/SSL URI ဖြစ်ရမည်။
@ -59,6 +60,7 @@ my:
error:
title: အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည်
new:
prompt_html: "%{client_name} က သင့်အကောင့်သို့ ဝင်ရောက်ရန် ခွင့်ပြုချက်ရယူလိုပါသည်။ ၎င်းမှာ ပြင်ပကြားခံအက်ပလီကေးရှင်းတစ်ခုဖြစ်သည်။ <strong>သင် မယုံကြည်ပါက ၎င်းကိုခွင့်မပြုသင့်ပါ။</strong>"
review_permissions: ခွင့်ပြုချက်များကို ပြန်လည်သုံးသပ်ပါ
title: ခွင့်ပြုချက် လိုအပ်သည်
show:
@ -74,16 +76,29 @@ my:
last_used_at: "%{date} တွင် နောက်ဆုံးအသုံးပြုခဲ့သည်"
never_used: မသုံးဖူးပါ
scopes: ခွင့်ပြုချက်များ
superapp: အတွင်းပိုင်း
title: ခွင့်ပြုထားသော အက်ပလီကေးရှင်းများ
errors:
messages:
access_denied: မူလပိုင်ရှင် သို့မဟုတ် ခွင့်ပြုချက်ရှိသောဆာဗာမှ တောင်းဆိုချက်ကို ငြင်းပယ်ခဲ့သည်။
credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials ကို သတ်မှတ်မထားသည့်အတွက် မူလပိုင်ရှင် စကားဝှက် အထောက်အထားများထည့်သွင်းခြင်းမှာ မအောင်မြင်တော့ပါ။
invalid_client: Client အထောက်အထားစိစစ်မှု မအောင်မြင်ခြင်းမှာ အမည်မသိ Client ဖြစ်ခြင်း၊ Client စစ်မှန်ကြောင်းအထောက်အထားမပါဝင်ခြင်း သို့မဟုတ် ပံ့ပိုးမထားသည့် အထောက်အထားဖြစ်နေခြင်းကြောင့် ဖြစ်ပါသည်။
invalid_redirect_uri: ပြန်ညွှန်းထားခြင်းတွင် ပါဝင်သော URI မှာ မမှန်ကန်ပါ။
invalid_request:
missing_param: ပျောက်နေသည့် လိုအပ်သောအရာ - %{value}။
request_not_authorized: ခွင့်ပြုချက်တောင်းခံရန် လိုအပ်ပါသည်။ တောင်းဆိုမှုခွင့်ပြုချက်အတွက် လိုအပ်သောအရာမှာ ပျောက်ဆုံးနေခြင်း သို့မဟုတ် မမှန်ကန်ခြင်း ကြောင့်ဖြစ်ပါသည်။
unknown: တောင်းဆိုချက်တွင် ပံ့ပိုးမထားသော တန်ဖိုးတစ်ခုပါဝင်သည့် လိုအပ်သောအချက်အလက်တစ်ခု ပျောက်ဆုံးနေပါသည် သို့မဟုတ် ပုံစံမှားယွင်းနေပါသည်။
invalid_resource_owner: ပံ့ပိုးပေးထားသည့် မူလပိုင်ရှင်အထောက်အထားများမှာ မမှန်ကန်ပါ သို့မဟုတ် မူလပိုင်ရှင်ကို ရှာမတွေ့ပါ။
invalid_scope: တောင်းဆိုထားသော နယ်ပယ်မှာ မမှန်ကန်ခြင်း၊ မသိခြင်း သို့မဟုတ် ပုံစံမမှန်ကန်ခြင်းတို့ကြောင့် ဖြစ်ပါသည်။
invalid_token:
expired: အသုံးပြုခွင့် တိုကင် သက်တမ်းကုန်သွားပါပြီ
revoked: အသုံးပြုခွင့်တိုကင်ကို ရုပ်သိမ်းခဲ့သည်
unknown: အသုံးပြုခွင့်တိုကင်မှာ မမှန်ကန်ပါ
resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator ကို ပြုပြင်မွမ်းမံမှုအားဖယ်ရှားထားခြင်းကြောင့် မူလပိုင်ရှင်ရှာဖွေခြင်းမှာ မအောင်မြင်ပါ။
server_error: ခွင့်ပြုထားသောဆာဗာသည် တောင်းဆိုချက်ကို မဖြည့်ဆည်းပေးနိုင်သည့် မမျှော်လင့်ထားသော အခြေအနေတစ်ခုကို ကြုံတွေ့ခဲ့ရသည်။
temporarily_unavailable: ဆာဗာမှာ ယာယီအလုပ်များပိုလုပ်နေရခြင်း သို့မဟုတ် ဆာဗာပြုပြင်ထိန်းသိမ်းမှုတို့ကြောင့် တောင်းဆိုချက်ကို လောလောဆယ်တွင် ကိုင်တွယ်နိုင်ခြင်းမရှိသေးပါ။
unauthorized_client: ဤနည်းလမ်းကို အသုံးပြု၍ Client မှ ဤတောင်းဆိုမှုကို ဆောင်ရွက်ခွင့်မရှိပါ။
unsupported_grant_type: တရားဝင်ခွင့်ပြုချက်အမျိုးအစားကို ခွင့်ပြုချက်ဆာဗာမှ မပံ့ပိုးထားပါ။
unsupported_response_type: ခွင့်ပြုထားသောဆာဗာသည် ဤတုံ့ပြန်မှုအမျိုးအစားကို မပံ့ပိုးပါ။
flash:
applications:
@ -100,6 +115,7 @@ my:
access:
read: ဖတ်ခွင့်သာရှိသည်
read/write: ဖတ်ပြီးပြင်ဆင်ခွင့်ရှိသည်
write: ပြင်ခွင့်သာရှိသည်
title:
accounts: အကောင့်များ
admin/accounts: အကောင့်စီမံခန့်ခွဲမှု
@ -132,6 +148,7 @@ my:
scopes:
admin:read: ဆာဗာရှိ အချက်အလက်အားလုံးကို ဖတ်ပါ
admin:read:accounts: အကောင့်အားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
admin:read:canonical_email_blocks: ပိတ်ပင်ထားသော Canonical Email အားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
admin:read:domain_allows: ခွင့်ပြုထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
admin:read:domain_blocks: ပိတ်ပင်ထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
admin:read:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းအားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
@ -139,6 +156,7 @@ my:
admin:read:reports: မှတ်တမ်းများနှင့် တိုင်ကြားထားသောအကောင့်များအားလုံး၏ အရေးကြီးသော အချက်အလက်ကို ဖတ်ပါ။
admin:write: ဆာဗာပေါ်ရှိ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
admin:write:accounts: အကောင့်များအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
admin:write:canonical_email_blocks: Canonical Email ပိတ်ပင်ထားမှုများအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
admin:write:domain_allows: ခွင့်ပြုထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
admin:write:domain_blocks: ပိတ်ပင်ထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
admin:write:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
@ -158,6 +176,7 @@ my:
read:mutes: သင်အသံပိတ်ထားမှုများကို ကြည့်ပါ
read:notifications: သင့်အသိပေးချက်များကို ကြည့်ပါ
read:reports: သင့်မှတ်တမ်းများကို ကြည့်ပါ
read:search: သင့်ကိုယ်စား ရှာဖွေပါ
read:statuses: ပို့စ်အားလုံးကို ကြည့်ပါ
write: သင့်အကောင့်၏ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
write:accounts: သင့်ပရိုဖိုင်ကို ပြင်ဆင်ပါ

@ -122,16 +122,18 @@ sr:
admin/accounts: Администрација налога
admin/all: Све функције администрације
admin/reports: Администрација пријава
all: Потпуни приступ вашем Mastodon налогу
blocks: Блокирани
bookmarks: Обележивачи
conversations: Разговори
crypto: End-to-end енкрипција
favourites: Омиљени
filters: Филтери
follow: Праћења, игнорисања и блокирања
follows: Праћени
lists: Листе
media: Мултимедијални прилози
mutes: Утишани
mutes: Игнорисани
notifications: Обавештења
push: Прослеђена обавештења
reports: Пријаве
@ -157,7 +159,7 @@ sr:
admin:write:ip_blocks: изврши модераторске активности на IP блоковима
admin:write:reports: вршење модераторских активности над извештајима
crypto: коришћење end-to-end енкрипције
follow: прати, блокира, одблокира и отпрати налоге
follow: мења односе налога
push: примање прослеђених обавештења
read: чита податке Вашег налога
read:accounts: погледај информације о налозима
@ -167,7 +169,7 @@ sr:
read:filters: погледај своје филтере
read:follows: погледај кога пратиш
read:lists: погледај своје листе
read:mutes: погледај своје утишане
read:mutes: погледај игнорисања
read:notifications: погледај своја обавештења
read:reports: погледај своје пријаве
read:search: претражи у своје име
@ -176,13 +178,13 @@ sr:
write:accounts: измени свој профил
write:blocks: блокирај налоге и домене
write:bookmarks: обележи објаве
write:conversations: утишај и обриши разговоре
write:conversations: игнориши и избриши разговоре
write:favourites: омиљене објаве
write:filters: креирај филтере
write:follows: прати кориснике
write:lists: креирај листе
write:media: отпреми медијске датотеке
write:mutes: утишај коринсике и разговоре
write:mutes: игнориши кориснике и разговоре
write:notifications: обриши своја обавештења
write:reports: пријави друге кориснике
write:statuses: објави објаве

@ -131,7 +131,7 @@ zh-TW:
filters: 過濾器
follow: 跟隨、靜音與封鎖
follows: 跟隨的使用者
lists: 名單
lists: 列表
media: 多媒體附加檔案
mutes: 靜音
notifications: 通知
@ -168,12 +168,12 @@ zh-TW:
push: 接收帳號的推播通知
read: 讀取您所有的帳號資料
read:accounts: 檢視帳號資訊
read:blocks: 檢視您的封鎖名單
read:blocks: 檢視您的封鎖列表
read:bookmarks: 檢視您的書籤
read:favourites: 檢視您收藏的最愛
read:filters: 檢視您的過濾條件
read:follows: 檢視您跟隨的人
read:lists: 檢視您的名單
read:lists: 檢視您的列表
read:mutes: 檢視您靜音的人
read:notifications: 檢視您的通知
read:reports: 檢視您的檢舉

@ -278,6 +278,15 @@ el:
suspend_account_html: Ο/Η %{name} ανέστειλε τον λογαριασμό του/της %{target}
unassigned_report_html: Ο/Η %{name} αποδέσμευσε την αναφορά %{target}
unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}"
unsensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα
unsilence_account_html: Ο/Η %{name} αφαίρεσε το όριο του λογαριασμού του/της %{target}
unsuspend_account_html: Ο/Η %{name} επανέφερε τον λογαριασμό του/της %{target}
update_announcement_html: Ο/Η %{name} ενημέρωση την ανακοίνωση %{target}
update_custom_emoji_html: Ο/Η %{name} ενημέρωσε το emoji %{target}
update_domain_block_html: Ο/Η %{name} ενημέρωσε τον αποκλεισμό τομέα για %{target}
update_ip_block_html: Ο/Η %{name} άλλαξε τον κανόνα για την IP %{target}
update_status_html: Ο/Η %{name} ενημέρωσε την ανάρτηση του/της %{target}
update_user_role_html: Ο/Η %{name} άλλαξε τον ρόλο %{target}
deleted_account: διαγραμμένος λογαριασμός
empty: Δεν βρέθηκαν αρχεία καταγραφής.
filter_by_action: Φιλτράρισμα ανά ενέργεια
@ -322,6 +331,7 @@ el:
listed: Αναφερθέντα
new:
title: Προσθήκη νέου προσαρμοσμένου emoji
no_emoji_selected: Δεν άλλαξαν τα emoji καθώς δεν επιλέχθηκε κανένα
not_permitted: Δεν επιτρέπεται να κάνετε αυτή την λειτουργία
overwrite: Αντικατάσταση
shortcode: Σύντομος κωδικός
@ -335,12 +345,30 @@ el:
upload: Ανέβασμα
dashboard:
active_users: ενεργοί χρήστες
interactions: αλληλεπιδράσεις
media_storage: Αποθηκευτικός Χώρος
new_users: νέοι χρήστες
opened_reports: αναφορές που ανοίχτηκαν
pending_reports_html:
one: "<strong>%{count}</strong> εκκρεμής αναφορά"
other: "<strong>%{count}</strong> εκκρεμείς αναφορές"
pending_tags_html:
one: "<strong>%{count}</strong> εκκρεμής ετικέτα"
other: "<strong>%{count}</strong> εκκρεμείς ετικέτες"
pending_users_html:
one: "<strong>%{count}</strong> χρήστης σε εκκρεμότητα"
other: "<strong>%{count}</strong> χρήστες σε εκκρεμότητα"
resolved_reports: επιλυμμένες αναφορές
software: Λογισμικό
sources: Πηγές εγγραφής
space: Κατανάλωση χώρου
title: Ταμπλό
top_languages: Κορυφαίες ενεργές γλώσσες
top_servers: Κορυφαίοι ενεργοί διακομιστές
website: Ιστοσελίδα
disputes:
appeals:
empty: Καμία ένσταση.
title: Εφέσεις
domain_allows:
add_new: Έγκριση τομέα
@ -363,10 +391,13 @@ el:
create: Δημιουργία αποκλεισμού
hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές μεσολάβησης σε αυτούς τους λογαριασμούς.
severity:
desc_html: Ο <strong>περιορισμός</strong> θα κάνει αόρατες τις δημοσιεύσεις ενός λογαριασμού σε όσους δεν τον ακολουθούν. Η <strong>αναστολή</strong> θα αφαιρέσει όλο το περιεχόμενο, τα πολυμέσα και τα στοιχεία προφίλ ενός λογαριασμού. Χρησιμοποίησε το <strong>κανένα</strong> αν θέλεις απλά να απορρίψεις τα αρχεία πολυμέσων.
noop: Κανένα
silence: Περιορισμός
suspend: Αναστολή
title: Αποκλεισμός νέου τομέα
no_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας
not_permitted: Δεν επιτρπέπεται να εκτελέσετε αυτήν την ενέργεια
private_comment: Ιδιωτικό σχόλιο
private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους διαχειριστές.
public_comment: Δημόσιο σχόλιο

@ -91,6 +91,7 @@ es-MX:
moderation:
active: Activo
all: Todos
disabled: Deshabilitado
pending: Pendiente
silenced: Limitado
suspended: Suspendidos
@ -133,6 +134,7 @@ es-MX:
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo
search_same_ip: Otros usuarios con la misma IP
security: Seguridad
security_measures:
only_password: Sólo contraseña
password_and_2fa: Contraseña y 2FA
@ -427,6 +429,7 @@ es-MX:
resolve: Resolver dominio
title: Nueva entrada en la lista negra de correo
no_email_domain_block_selected: No se han cambiado bloqueos de dominio ya que ninguno ha sido seleccionado
not_permitted: No permitido
resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. <strong>Tenga cuidado de no bloquear los principales proveedores de correo electrónico.</strong>
resolved_through_html: Resuelto a través de %{domain}
title: Lista negra de correo
@ -473,6 +476,7 @@ es-MX:
content_policies:
comment: Nota interna
description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
limited_federation_mode_description_html: Puedes elegir si permites la federación con este dominio.
policies:
reject_media: Rechazar multimedia
reject_reports: Rechazar informes
@ -585,11 +589,13 @@ es-MX:
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta reportada
cancel: Cancelar
category: Categoría
category_description_html: La razón por la que se reportó esta cuenta o contenido será citada en las comunicaciones con la cuenta reportada
comment:
none: Ninguno
comment_description_html: 'Para proporcionar más información, %{name} escribió:'
confirm: Confirmar
confirm_action: Confirmar acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicaciones
@ -792,6 +798,7 @@ es-MX:
suspend: "%{name} suspendio la cuenta de %{target}"
appeal_approved: Apelado
appeal_pending: Apelación pendiente
appeal_rejected: Apelación rechazada
system_checks:
database_schema_check:
message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecútalas para asegurarte de que la aplicación funciona como debería
@ -827,6 +834,7 @@ es-MX:
other: Compartido por %{count} personas durante la última semana
title: Enlaces en tendencia
usage_comparison: Compartido %{today} veces hoy, comparado a %{yesterday} ayer
not_allowed_to_trend: No permitido para tendencia
only_allowed: Sólo las permitidas
pending_review: Revisión pendiente
preview_card_providers:
@ -958,6 +966,7 @@ es-MX:
applications:
created: Aplicación creada exitosamente
destroyed: Apicación eliminada exitosamente
logout: Cerrar sesión
regenerate_token: Regenerar token de acceso
token_regenerated: Token de acceso regenerado exitosamente
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
@ -994,6 +1003,8 @@ es-MX:
resend_confirmation: Volver a enviar el correo de confirmación
reset_password: Restablecer contraseña
rules:
accept: Aceptar
back: Atrás
preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}.
title: Algunas reglas básicas.
security: Cambiar contraseña
@ -1140,6 +1151,8 @@ es-MX:
storage: Almacenamiento
featured_tags:
add_new: Añadir nuevo
errors:
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:
@ -1247,6 +1260,9 @@ es-MX:
expires_at: Expira
uses: Usos
title: Invitar a gente
lists:
errors:
limit: Has alcanzado la cantidad máxima de listas
login_activities:
authentication_methods:
otp: aplicación de autenticación en dos pasos
@ -1566,6 +1582,7 @@ es-MX:
'7889238': 3 meses
min_age_label: Umbral de tiempo
min_favs: Mantener mensajes con un número de favoritos mayor que
min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
min_reblogs: Mantener publicaciones reblogueadas más de
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos
stream_entries:

@ -476,7 +476,7 @@ es:
content_policies:
comment: Nota interna
description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
limited_federation_mode_description_html: Puede elegir si permite la federación en este dominio.
limited_federation_mode_description_html: Puedes elegir si permites la federación con este dominio.
policies:
reject_media: Rechazar multimedia
reject_reports: Rechazar informes
@ -925,7 +925,7 @@ es:
new_report:
body: "%{reporter} ha reportado a %{target}"
body_remote: Alguien de %{domain} a reportado a %{target}
subject: Nuevo reporte para la %{instance} (#%{id})
subject: Nuevo informe para %{instance} (#%{id})
new_trends:
body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:'
new_trending_links:

@ -834,6 +834,7 @@ fr-QC:
other: Partagé par %{count} personnes au cours de la dernière semaine
title: Liens tendances
usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier
not_allowed_to_trend: Non autorisé à apparaître dans les tendances
only_allowed: Autorisées seulement
pending_review: En attente de révision
preview_card_providers:
@ -1002,6 +1003,7 @@ fr-QC:
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
rules:
accept: Accepter
back: Retour
preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}.
title: Quelques règles de base.
@ -1149,6 +1151,8 @@ fr-QC:
storage: Médias stockés
featured_tags:
add_new: Ajouter un nouveau hashtag
errors:
limit: Vous avez déjà mis en avant le nombre maximum de hashtags
hint_html: "<strong>Que sont les hashtags mis en avant ?</strong> Ils sont affichés en évidence sur votre profil public et permettent aux gens de parcourir vos messages publics qui utilisent ces hashtags. Ils sont un excellent outil pour garder la trace dactivités créatrices ou de projets de long terme."
filters:
contexts:
@ -1256,6 +1260,9 @@ fr-QC:
expires_at: Expire
uses: Utilisations
title: Inviter des gens
lists:
errors:
limit: Vous avez atteint le nombre maximum de listes
login_activities:
authentication_methods:
otp: application d'authentification à deux facteurs
@ -1575,6 +1582,7 @@ fr-QC:
'7889238': 3 mois
min_age_label: Seuil d'ancienneté
min_favs: Conserver les messages mis en favoris au moins
min_favs_hint: Ne supprime aucun de vos messages qui ont reçu au moins ce nombre de favoris. Laisser vide pour supprimer les messages quel que soit leur nombre de favoris
min_reblogs: Conserver les messages partagés au moins
min_reblogs_hint: Ne supprime aucun de vos messages qui ont été partagés au moins ce nombre de fois. Laisser vide pour supprimer les messages indépendamment de leur nombre de partages
stream_entries:

@ -1466,7 +1466,7 @@ ko:
export: 데이터 내보내기
featured_tags: 추천 해시태그
import: 데이터 가져오기
import_and_export: 가져오기 / 내보내기
import_and_export: 가져오기 & 내보내기
migrate: 계정 이동
notifications: 알림
preferences: 사용자 설정

@ -91,6 +91,7 @@ nn:
moderation:
active: Aktiv
all: Alle
disabled: Deaktivert
pending: Ventar på svar
silenced: Avgrensa
suspended: Utvist
@ -133,6 +134,7 @@ nn:
search: Søk
search_same_email_domain: Andre brukarar med same e-postdomene
search_same_ip: Andre brukarar med same IP
security: Sikkerhet
security_measures:
only_password: Kun passord
password_and_2fa: Passord og 2FA
@ -421,6 +423,7 @@ nn:
resolve: Løs domene
title: Ny blokkeringsoppføring av e-postdomene
no_email_domain_block_selected: Blokkering av e-post-domener vart ikkje endra sidan ingen var valde
not_permitted: Ikke tillatt
resolved_dns_records_hint_html: Domenenamnet gjer oppslag til desse MX-domenene som til sist er ansvarlige for å motta e-post. Blokkering av eit MX-domene vil blokkere registreringar frå alle e-postadresser som bruker same MX-domene, sjølv om det synlige domenenavnet skulle vera noko anna. <strong>Pass på så du ikkje blokkerer dei store e-postleverandørane.</strong>
resolved_through_html: Løyst gjennom %{domain}
title: Blokkerte e-postadresser
@ -435,6 +438,7 @@ nn:
private_comment_description_html: 'For å hjelpa deg med å halda oversikt over kvar importerte blokkeringar kjem frå, vil dei bli oppretta med fylgjande private kommentar: <q>%{comment}</q>'
private_comment_template: Importert frå %{source} den %{date}
title: Importer domeneblokkeringar
invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}'
new:
title: Importer domeneblokkeringar
no_file: Inga fil vald
@ -569,17 +573,23 @@ nn:
mark_as_sensitive_description_html: Mediene i dei rapporterte innlegga vil verte markerte som ømtolege, og ein merknad vil verte lagra for å hjelpe deg å eskalera ved framtidige regelbrot frå same konto.
other_description_html: Sjå fleire alternativ når det gjeld kontroll av kontoåtferd og tilpassing av kommunikasjonen til den rapporterte kontoen.
resolve_description_html: Ingen handling utføres mot den rapporterte kontoen, ingen advarsel gis, og rapporten lukkes.
silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. Lukker alle rapporter mot denne kontoen.
suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen.
actions_description_html: Avgjer kva som skal gjerast med denne rapporteringa. Dersom du utfører straffetiltak mot den rapporterte kontoen, vil dei motta ein e-post så sant du ikkje har valt kategorien <strong>Spam</strong>.
actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan <strong>din</strong> server kommuniserer med denne eksterne kontoen og håndterer innholdet.
add_to_report: Legg til i rapporten
are_you_sure: Er du sikker?
assign_to_self: Tilegn til meg
assigned: Tilsett moderator
by_target_domain: Domenet av rapportert bruker
cancel: Avbryt
category: Kategori
category_description_html: Årsaka til at kontoen og/eller innhaldet vart rapportert vil bli inkludert i kommunikasjonen med den rapporterte kontoen
comment:
none: Ingen
comment_description_html: 'For å gje meir informasjon, skreiv %{name}:'
confirm: Bekreft
confirm_action: Bekreft moderasjonshandling mot @%{acct}
created_at: Rapportert
delete_and_resolve: Slett innlegg
forwarded: Videresendt
@ -596,6 +606,7 @@ nn:
placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer...
title: Merknad
notes_description_html: Sjå og skriv merknadar til andre moderatorar og ditt framtidige sjølv
processed_msg: 'Rapport #%{id} er behandlet'
quick_actions_description_html: 'Utfør ei handling eller bla ned for å sjå det rapporterte innhaldet:'
remote_user_placeholder: den eksterne brukaren frå %{instance}
reopen: Opn rapport igjen
@ -608,6 +619,12 @@ nn:
status: Status
statuses: Rapportert innhold
statuses_description_html: Støytande innhald vil bli inkludert i kommunikasjonen med den rapporterte kontoen
summary:
action_preambles:
delete_html: 'Du er i ferd med å <strong>fjerne</strong> noe av <strong>@%{acct}</strong> sine innlegg. Dette vil:'
mark_as_sensitive_html: 'Du er i ferd med å <strong>markere</strong> noen av <strong>@%{acct}</strong> sine innlegg som <strong>sensitivt</strong>. Dette vil:'
silence_html: 'Du er i ferd med å <strong>avgrense</strong> <strong>@%{acct}</strong> sin konto. Dette vil:'
suspend_html: 'Du er i ferd med å <strong>stoppe</strong> <strong>@%{acct}</strong> sin konto. Dette vil:'
target_origin: Opprinnelse for innrapportert konto
title: Rapportar
unassign: Avset

@ -91,6 +91,7 @@ pt-BR:
moderation:
active: Ativo
all: Todos
disabled: Desativado
pending: Pendente
silenced: Limitado
suspended: Suspendido
@ -133,6 +134,7 @@ pt-BR:
search: Buscar
search_same_email_domain: Outros usuários com o mesmo domínio de e-mail
search_same_ip: Outros usuários com o mesmo IP
security: Segurança
security_measures:
only_password: Apenas senha
password_and_2fa: Senha e autenticação de dois fatores
@ -426,6 +428,7 @@ pt-BR:
resolve: Resolver domínio
title: Nova entrada de lista negra de e-mail
no_email_domain_block_selected: Nenhum bloco de domínio de e-mail foi alterado, pois nenhum foi selecionado
not_permitted: Não permitido
resolved_dns_records_hint_html: O nome de domínio resolve os seguintes domínios MX, que são responsáveis finais por aceitar o e-mail. Bloquear um domínio MX bloqueará inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo que o nome de domínio visível seja diferente. <strong>Cuidado para não bloquear os principais provedores de e-mail.</strong>
resolved_through_html: Resolvido através de %{domain}
title: Lista de negra de e-mail
@ -580,11 +583,13 @@ pt-BR:
assign_to_self: Atribuir para si
assigned: Moderador responsável
by_target_domain: Domínio da conta denunciada
cancel: Cancelar
category: Categoria
category_description_html: O motivo pelo qual esta conta e/ou conteúdo foi denunciado será citado na comunicação com a conta denunciada
comment:
none: Nenhum
comment_description_html: 'Para fornecer mais informações, %{name} escreveu:'
confirm: Confirmar
created_at: Denunciado
delete_and_resolve: Excluir publicações
forwarded: Encaminhados
@ -601,6 +606,7 @@ pt-BR:
placeholder: Descreva quais ações foram tomadas ou quaisquer outras atualizações relacionadas...
title: Notas
notes_description_html: Visualize e deixe anotações para outros moderadores e para você mesmo no futuro
processed_msg: 'Relatório #%{id} processado com sucesso'
quick_actions_description_html: 'Tome uma ação rápida ou role para baixo para ver o conteúdo denunciado:'
remote_user_placeholder: o usuário remoto de %{instance}
reopen: Reabrir denúncia
@ -982,6 +988,8 @@ pt-BR:
resend_confirmation: Reenviar instruções de confirmação
reset_password: Redefinir senha
rules:
accept: Aceitar
back: Voltar
preamble: Estes são definidos e aplicados pelos moderadores de %{domain}.
title: Algumas regras básicas.
security: Segurança
@ -1235,6 +1243,9 @@ pt-BR:
expires_at: Expira em
uses: Usos
title: Convidar pessoas
lists:
errors:
limit: Você atingiu o número máximo de listas
login_activities:
authentication_methods:
otp: autenticação de dois fatores

@ -1151,6 +1151,8 @@ pt-PT:
storage: Armazenamento de media
featured_tags:
add_new: Adicionar nova
errors:
limit: Já destacou o número máximo de hashtags permitido
hint_html: "<strong>O que são etiquetas em destaque?</strong> Exibidas de forma bem visível no seu perfil público, permitem que as pessoas consultem as suas publicações públicas especificamente sob essas etiquetas. São uma óptima ferramenta para dar seguimento a trabalhos criativos ou projectos de longo prazo."
filters:
contexts:
@ -1258,6 +1260,9 @@ pt-PT:
expires_at: Expira
uses: Usos
title: Convidar pessoas
lists:
errors:
limit: Atingiu o número máximo de listas permitido
login_activities:
authentication_methods:
otp: aplicação de autenticação em duas etapas
@ -1577,6 +1582,7 @@ pt-PT:
'7889238': 3 meses
min_age_label: Limite de idade
min_favs: Manter pelo menos as publicações dos marcadores
min_favs_hint: Não elimina nenhuma das suas publicações que tenha recebido pelo menos este número de favoritos. Deixe em branco para eliminar publicações, independentemente do seu número de favoritos
min_reblogs: Manter as publicações reforçadas mais de
min_reblogs_hint: Não apaga nenhuma das suas publicações que tenha sido partilhada mais do que este número de vezes. Deixe em branco para apagar as publicações, independentemente do número de partilhas
stream_entries:

@ -95,6 +95,7 @@ ru:
moderation:
active: Действующие
all: Все
disabled: Отключено
pending: В ожидании
silenced: Ограниченные
suspended: Заблокированные
@ -139,6 +140,7 @@ ru:
search: Поиск
search_same_email_domain: Другие пользователи с тем же доменом электронной почты
search_same_ip: Другие пользователи с таким же IP
security: Безопасность
security_measures:
only_password: Только пароль
password_and_2fa: Пароль и 2FA
@ -443,6 +445,7 @@ ru:
resolve: Проверить домен
title: Новая блокировка по домену
no_email_domain_block_selected: Блоки домена электронной почты не были изменены, так как не были выбраны
not_permitted: Не разрешено
resolved_dns_records_hint_html: Доменное имя устраняется на следующие MX-домены, которые в конечном итоге отвечают за прием электронной почты. Блокировка MX-домена будет блокировать регистрации с любого адреса электронной почты, который использует тот же MX-домен, даже если видимое доменное имя отличается от него. <strong>Будьте осторожны, чтобы не блокировать основных поставщиков электронной почты</strong>
resolved_through_html: Разрешено через %{domain}
title: Блокировка e-mail доменов
@ -493,6 +496,7 @@ ru:
content_policies:
comment: Внутренняя заметка
description_html: Вы можете определить политики контента, которые будут применяться ко всем учетным записям этого домена и любого из его субдоменов.
limited_federation_mode_description_html: Вы можете выбрать, разрешать ли объединение с этим доменом.
policies:
reject_media: Отклонить медиа
reject_reports: Отклонять жалобы
@ -609,11 +613,13 @@ ru:
assign_to_self: Назначить себе
assigned: Назначенный модератор
by_target_domain: Домен объекта жалобы
cancel: Отменить
category: Категория
category_description_html: Причина, по которой были доложены этот пользователь или содержимое, будет указана при коммуникации с фигурирующим в жалобе пользователем
comment:
none: Нет
comment_description_html: 'В дополнение, %{name} добавил(а) следующий комментарий:'
confirm: Подтвердить
created_at: Создана
delete_and_resolve: Удалить посты
forwarded: Переслано
@ -810,6 +816,7 @@ ru:
suspend: "%{name} приостановил аккаунт %{target}"
appeal_approved: Обжаловано
appeal_pending: Обжалование в обработке
appeal_rejected: Апелляция отклонена
system_checks:
database_schema_check:
message_html: Есть отложенные миграции базы данных. Запустите их, чтобы убедиться, что приложение работает должным образом
@ -847,6 +854,7 @@ ru:
other: Поделился %{count} человек за последнюю неделю
title: Актуальные ссылки
usage_comparison: Поделились %{today} раз сегодня, по сравнению с %{yesterday} вчера
not_allowed_to_trend: Не допущено в популярное
only_allowed: Только разрешенное
pending_review: Ожидает рассмотрения
preview_card_providers:
@ -984,6 +992,7 @@ ru:
applications:
created: Приложение успешно создано
destroyed: Приложение успешно удалено
logout: Выйти
regenerate_token: Повторно сгенерировать токен доступа
token_regenerated: Токен доступа успешно сгенерирован
warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
@ -1020,6 +1029,8 @@ ru:
resend_confirmation: Повторить отправку инструкции для подтверждения
reset_password: Сбросить пароль
rules:
accept: Принять
back: Назад
preamble: Они устанавливаются и применяются модераторами %{domain}.
title: Несколько основных правил.
security: Безопасность

@ -19,6 +19,7 @@ ar:
none: استخدم هذه لإرسال تحذير للمستخدم، دون تشغيل أو إثارة أي إجراء آخر.
sensitive: إجبار جميع مرفقات الوسائط لهذا المستخدم على أن تكون حساسة.
silence: منع المستخدم من القدرة على النشر للعامة، وإخفاء مشاركاته وإشعاراته لمن لا يتبعونه. إغلاق جميع التقارير المقترنة بهذا الحساب.
suspend: منع أي تفاعل من هذا الحساب أو إليه وحذف محتوياته. يمكن التراجع عنه في غضون 30 يوما. إغلاق جميع التقارير المفتوحة ضد هذا الحساب.
warning_preset_id: اختياري. يمكنك إضافة نص مخصص إلى نهاية النموذج
announcement:
all_day: إن أختير، سيتم عرض تواريخ النطاق الزمني فقط
@ -95,6 +96,7 @@ ar:
timeline_preview: الزوار الذين سجلوا خروجهم سيكونون قادرين على تصفح أحدث المشاركات العامة المتاحة على الخادم.
trendable_by_default: تخطي مراجعة المحتوى التريند اليدوي. لا يزال من الممكن الإزالة اللاحقة للعناصر الفردية من التريندات.
trends: تظهر التريندز أي المشاركات وعلامات وقصص الأخبار التي تجذب الانتباه على الخادم الخاص بك.
trends_as_landing_page: إظهار المحتوى المتداوَل للمستخدمين والزوار غير المسجلين بدلاً من وصف هذا الخادم. يتطلب هذا تفعيل المتداولة.
form_challenge:
current_password: إنك بصدد الدخول إلى منطقة آمنة
imports:
@ -230,6 +232,7 @@ ar:
hide: إخفاء بالكامل
warn: إخفاء بتحذير
form_admin_settings:
activity_api_enabled: نشر مُجمل الإحصائيات عن نشاط المستخدمين في واجهة برمجة التطبيقات API
backups_retention_period: فترة الاحتفاظ بأرشيف المستخدم
bootstrap_timeline_accounts: أوصي دائما بهذه الحسابات للمستخدمين الجدد
closed_registrations_message: رسالة مخصصة عندما يكون التسجيل غير متاح

@ -82,7 +82,7 @@ fr-QC:
custom_css: Vous pouvez appliquer des styles personnalisés sur la version Web de Mastodon.
mascot: Remplace l'illustration dans l'interface Web avancée.
media_cache_retention_period: Les fichiers multimédias téléchargés seront supprimés après le nombre de jours spécifiés lorsque la valeur est positive, et seront téléchargés à nouveau sur demande.
peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fediverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général.
peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fédiverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général.
profile_directory: L'annuaire des profils répertorie tous les utilisateurs qui ont opté pour être découverts.
require_invite_text: Lorsque les inscriptions nécessitent une approbation manuelle, rendre le texte de linvitation "Pourquoi voulez-vous vous inscrire ?" obligatoire plutôt que facultatif
site_contact_email: Comment les personnes peuvent vous joindre pour des demandes de renseignements juridiques ou d'assistance.
@ -91,11 +91,13 @@ fr-QC:
site_short_description: Une courte description pour aider à identifier de manière unique votre serveur. Qui l'exécute, à qui il est destiné ?
site_terms: Utilisez votre propre politique de confidentialité ou laissez vide pour utiliser la syntaxe par défaut. Peut être structurée avec la syntaxe Markdown.
site_title: Comment les personnes peuvent se référer à votre serveur en plus de son nom de domaine.
status_page_url: URL d'une page où les gens peuvent voir l'état de ce serveur en cas de panne
theme: Thème que verront les utilisateur·rice·s déconnecté·e·s ainsi que les nouveaux·elles utilisateur·rice·s.
thumbnail: Une image d'environ 2:1 affichée à côté des informations de votre serveur.
timeline_preview: Les visiteurs déconnectés pourront parcourir les derniers messages publics disponibles sur le serveur.
trendable_by_default: Ignorer l'examen manuel du contenu tendance. Des éléments individuels peuvent toujours être supprimés des tendances après coup.
trends: Les tendances montrent quelles publications, hashtags et actualités sont en train de gagner en traction sur votre serveur.
trends_as_landing_page: Afficher le contenu tendance au lieu d'une description de ce serveur pour les comptes déconnectés et les non-inscrit⋅e⋅s. Nécessite que les tendances soient activées.
form_challenge:
current_password: Vous entrez une zone sécurisée
imports:
@ -251,11 +253,13 @@ fr-QC:
site_short_description: Description du serveur
site_terms: Politique de confidentialité
site_title: Nom du serveur
status_page_url: URL de la page de l'état du serveur
theme: Thème par défaut
thumbnail: Miniature du serveur
timeline_preview: Autoriser laccès non authentifié aux fils publics
trendable_by_default: Autoriser les tendances sans révision préalable
trends: Activer les tendances
trends_as_landing_page: Utiliser les tendances comme page d'accueil
interactions:
must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas
must_be_following: Bloquer les notifications des personnes que vous ne suivez pas

@ -259,7 +259,7 @@ it:
timeline_preview: Consenti l'accesso non autenticato alle timeline pubbliche
trendable_by_default: Consenti le tendenze senza revisione preventiva
trends: Abilita le tendenze
trends_as_landing_page: Utilizza le tendenze come pagina di destinazione
trends_as_landing_page: Usa le tendenze come pagina di destinazione
interactions:
must_be_follower: Blocca notifiche da chi non ti segue
must_be_following: Blocca notifiche dalle persone che non segui

@ -101,7 +101,7 @@ ko:
form_challenge:
current_password: 당신은 보안 구역에 진입하고 있습니다
imports:
data: 다른 마스토돈 서버에서 추출된 CSV 파일
data: 다른 마스토돈 서버에서 내보낸 CSV 파일
invite_request:
text: 이 정보는 신청을 검토하는데 도움을 줄 수 있습니다.
ip_block:
@ -116,7 +116,7 @@ ko:
rule:
text: 이 서버 사용자들이 지켜야 할 규칙과 요구사항을 설명해주세요. 짧고 간단하게 작성해주세요
sessions:
otp: '휴대전화에서 생성 된 2단계 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:'
otp: '휴대전화에서 생성된 이중 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:'
webauthn: USB 키라면 삽입했는지 확인하고, 필요하다면 누르세요.
tag:
name: 읽기 쉽게하기 위한 글자의 대소문자만 변경할 수 있습니다.
@ -150,11 +150,11 @@ ko:
text: 커스텀 경고
type: 조치
types:
disable: 비활성화
none: 아무 것도 하지 않
disable: 동결
none: 경고 보내
sensitive: 민감함
silence: 제한
suspend: 정지하고 되돌릴 수 없는 데이터 삭제
suspend: 정지
warning_preset_id: 경고 틀 사용하기
announcement:
all_day: 종일 일정
@ -163,7 +163,7 @@ ko:
starts_at: 이벤트 시작
text: 공지사항
appeal:
text: 이 결정이 왜 번복되어야 하는지에 대해 설명해주세요
text: 이 결정을 번복해야만 하는 이유가 무엇입니까
defaults:
autofollow: 초대를 통한 팔로우
avatar: 아바타
@ -188,7 +188,7 @@ ko:
max_uses: 사용 횟수 제한
new_password: 새로운 암호 입력
note: 자기소개
otp_attempt: 2단계 인증 코드
otp_attempt: 이중 인증 코드
password: 암호
phrase: 키워드 또는 문장
setting_advanced_layout: 고급 웹 UI 활성화
@ -206,11 +206,11 @@ ko:
setting_display_media_default: 기본
setting_display_media_hide_all: 모두 가리기
setting_display_media_show_all: 모두 보이기
setting_expand_spoilers: 열람주의 을 항상 펼치기
setting_expand_spoilers: 열람주의 게시물을 항상 펼치기
setting_hide_network: 내 인맥 숨기기
setting_noindex: 검색엔진의 인덱싱을 거절
setting_reduce_motion: 애니메이션 줄이기
setting_show_application: 툿 작성에 사용한 앱을 공개
setting_show_application: 게시물 작성에 쓰인 애플리케이션 공개
setting_system_font_ui: 시스템의 기본 글꼴을 사용
setting_theme: 사이트 테마
setting_trends: 오늘의 유행 보이기
@ -305,7 +305,7 @@ ko:
webhook:
events: 활성화된 이벤트
url: 엔드포인트 URL
'no': 아니
'no': 아니
not_recommended: 추천하지 않음
recommended: 추천함
required:

@ -1 +1,121 @@
---
my:
simple_form:
hints:
defaults:
password: အနည်းဆုံး စာလုံး ၈ လုံး အသုံးပြုပါ။
setting_display_media_hide_all: မီဒီယာကို အမြဲတမ်းဖျောက်ထားပါ
setting_display_media_show_all: မီဒီယာကို အမြဲတမ်းပြပါ
setting_hide_network: သင်စောင့်ကြည့်မည့်သူများနှင့် သင့်ကိုစောင့်ကြည့်မည့်သူများကို သင့်ပရိုဖိုင်တွင် ဖျောက်ထားနိုင်ပါသည်
setting_noindex: သင်၏ အများမြင်သည့်ပရိုဖိုင်နှင့် ပို့စ်စာမျက်နှာများကို အကျိုးသက်ရောက်သည်
setting_show_application: ပို့စ်တင်ရန်အတွက် သင်အသုံးပြုသည့် အက်ပလီကေးရှင်းကို သင့်ပို့စ်များ၏ အသေးစိတ်ကြည့်ရှုမှုတွင် ပြသမည်ဖြစ်သည်
imports:
data: အခြား Mastodon ဆာဗာမှ CSV ဖိုင်ကို ပို့ထားသည်
invite_request:
text: "၎င်းသည် သင့်အက်ပလီကေးရှင်းကို ပြန်လည်သုံးသပ်ရန်အတွက် ကူညီပေးနိုင်ပါသည်"
ip_block:
severities:
sign_up_requires_approval: အကောင့်အသစ်များသည် သင့်ခွင့်ပြုချက်လိုအပ်ပါသည်
sessions:
otp: သင့်ဖုန်းအက်ပ်မှထုတ်ပေးသောနှစ်ဆင့်ခံလုံခြုံရေးကုဒ်ကို ထည့်ပါ သို့မဟုတ် ပြန်လည်ရယူရေးကုဒ်များထဲမှ တစ်ခုကို အသုံးပြုပါ -
labels:
account:
fields:
value: အကြောင်းအရာ
account_alias:
acct: အကောင့်ဟောင်းကို ကိုင်တွယ်ပါ။
account_migration:
acct: အကောင့်သစ်ကို ကိုင်တွယ်ပါ။
account_warning_preset:
title: ခေါင်းစဥ်
admin_account_action:
type: လုပ်ဆောင်ချက်
types:
none: သတိပေးချက်ပေးပို့ပါ
silence: ကန့်သတ်
announcement:
text: ကြေညာချက်
defaults:
avatar: ကိုယ်စားပြုရုပ်ပုံ
bot: ဤသည်မှာ ဘော့တ်အကောင့်တစ်ခုဖြစ်သည်။
chosen_languages: ဘာသာစကားများကို စစ်ထုတ်ထားခြင်း
confirm_new_password: စကားဝှက်အသစ်ကို အတည်ပြုပါ
confirm_password: စကားဝှက်ကို အတည်ပြုပါ။
context: အကြောင်းအရာများကို စစ်ထုတ်ပါ။
current_password: လက်ရှိစကားဝှက်
data: အချက်အလက်
display_name: ဖော်ပြမည့်အမည်
email: အီးမေးလ်လိပ်စာ
header: မျက်နှာဖုံးပုံ
honeypot: "%{label} (မဖြည့်ပါနှင့်)"
new_password: စကားဝှက်အသစ်
note: ကိုယ်ရေးအကျဉ်း
otp_attempt: နှစ်ဆင့်ခံလုံခြုံရေးကုဒ်
password: စကားဝှက်
phrase: အဓိကစကားလုံး သို့မဟုတ် စကားစု
setting_always_send_emails: အီးမေးလ်သတိပေးချက်များကို အမြဲပို့ပါ
setting_auto_play_gif: ကာတွန်း GIF များကို အလိုအလျောက်ဖွင့်ပါ
setting_display_media: မီဒီယာဖော်ပြမှု
setting_display_media_hide_all: အားလုံးကို ဖျောက်ပါ
setting_display_media_show_all: အားလုံးပြရန်
setting_system_font_ui: စနစ်ရှိ နဂိုမူလ စာလုံးပုံစံကို အသုံးပြုပါ
setting_trends: ယနေ့ ရေပန်းစားသည်များကို ပြပါ
setting_unfollow_modal: တစ်စုံတစ်ဦးကို မစောင့်ကြည့်မီ အတည်ပြုချက် ဒိုင်ယာလော့ခ်ကို ပြပါ
sign_in_token_attempt: လုံခြုံရေးကုဒ်
title: ခေါင်းစဥ်
username: အသုံးပြုသူအမည်
username_or_email: အသုံးပြုသူအမည် သို့မဟုတ် အီးမေးလ်
featured_tag:
name: Hashtag
form_admin_settings:
custom_css: စိတ်ကြိုက်ပြုလုပ်ထားသော CSS
mascot: စိတ်ကြိုက်ပြုလုပ်ထားသော mascot (legacy)
registrations_mode: ဘယ်သူတွေ အကောင့်ဖွင့်နိုင်မလဲ
require_invite_text: ပါဝင်ရန် အကြောင်းပြချက်တစ်ခု လိုအပ်ပါသည်
show_domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများကိုပြရန်
show_domain_blocks_rationale: ဒိုမိန်းများကို ဘာကြောင့် ပိတ်ဆို့ထားရကြောင်း ပြရန်
site_contact_email: ဆက်သွယ်ရမည့် အီးမေးလ်
site_contact_username: ဆက်သွယ်ရမည့် အသုံးပြုသူအမည်
site_short_description: ဆာဗာဖော်ပြချက်
site_terms: ကိုယ်ရေးအချက်အလက်မူဝါဒ
site_title: ဆာဗာအမည်
thumbnail: ဆာဗာ ပုံသေး
interactions:
must_be_follower: စောင့်ကြည့်မနေသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ
must_be_following: သင် စောင့်ကြည့်မထားသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ
must_be_following_dm: သင် စောင့်ကြည့်မထားသူများထံမှ တိုက်ရိုက်မက်ဆေ့ချ်များကို ပိတ်ပါ
invite:
comment: မှတ်ချက်
invite_request:
text: သင် ဘာကြောင့် ပါဝင်ချင်တာလဲ။
ip_block:
comment: မှတ်ချက်
ip: IP
severities:
sign_up_block: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ပါ
sign_up_requires_approval: အကောင့်ဖွင့်ခြင်းများကို ကန့်သတ်ပါ
severity: စည်းမျဉ်း
notification_emails:
favourite: တစ်စုံတစ်ဦးက သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်။
follow: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ခဲ့သည်
follow_request: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုခဲ့သည်
mention: တစ်စုံတစ်ဦးက သင့်ကို ဖော်ပြခဲ့သည်
pending_account: အကောင့်အသစ်ကို ပြန်လည်သုံးသပ်ရန် လိုအပ်သည်
rule:
text: စည်းမျဉ်း
tag:
name: Hashtag
user:
role: အခန်းကဏ္ဍ
user_role:
name: အမည်
permissions_as_keys: ခွင့်ပြုချက်များ
position: ဦးစားပေး
'no': မလုပ်ပါ
required:
mark: "*"
text: လိုအပ်သော
title:
sessions:
webauthn: အကောင့်ဝင်ရန်အတွက် သင့်လုံခြုံရေးကီးများထဲမှ တစ်ခုကို အသုံးပြုပါ
'yes': ဟုတ်ကဲ့

@ -7,12 +7,12 @@ sr:
account_migration:
acct: Наведи корисничко_име@домен налога на који желиш да пређеш
account_warning_preset:
text: Можете користити синтаксу труба, као што су нпр. УРЛ-ова, тарабе и помињања
text: Можете користити синтаксу објава, као што су URL адресе, хеш ознаке и помињања
title: Опционо. Није видљиво примаоцу
admin_account_action:
include_statuses: Корисник ће видети које су објаве проузроковале модерирање или упозорење
send_email_notification: Корисник ће добити објашњење тога шта му се десило са налога
text_html: Опционално. Можете користити синтаксу труба. Можете <a href="%{path}">додати упозоравајућа преподешавање</a> да сачувате време
text_html: Опционално. Можете користити синтаксу објава. Можете <a href="%{path}">додати унапред одређене поставке упозорења</a> за уштеду времена
type_html: Изаберите шта да радите са <strong>%{acct}</strong>
types:
disable: Спречи корисника да користи свој налог, али немој брисати или сакривати његов садржај.
@ -29,7 +29,7 @@ sr:
text: На брисање се можеш жалити само једном
defaults:
autofollow: Особе које се пријаве кроз позивнице ће вас аутоматски запратити
avatar: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
avatar: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px
bot: Овај налог углавном врши аутоматизоване радње и можда се не надгледа
context: Један или више контекста у којима треба да се примени филтер
current_password: Унеси лозинку текућег налога из безбедносних разлога
@ -38,7 +38,7 @@ sr:
discoverable: Дозволи непознатим корисницима да открију твој налог путем препорука, трендова и других функција
email: Биће вам послата е-пошта са потврдом
fields: Можете имати до 4 ставке приказане као табела на вашем налогу
header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
header: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px
inbox_url: Копирајте URL са насловне стране релеја који желите користити
irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен
locale: Језик корисничког окружења, е-поште и мобилних обавештења

@ -18,6 +18,8 @@ sv:
disable: Förhindra användaren från att använda sitt konto, men radera eller dölj inte innehållet.
none: Använd det här för att skicka en varning till användaren, utan att vidta någon ytterligare åtgärd.
sensitive: Tvinga alla denna användares mediebilagor till att flaggas som känsliga.
silence: Hindra användaren från att kunna göra offentliga inlägg, göm deras inlägg och notiser från folk som inte följer dem. Stänger alla anmälningar mot detta kontot.
suspend: Förhindrar all interaktion från eller till detta konto och ta bort dess innehåll. Går att ångra inom 30 dagar. Stänger alla anmälningar mot detta konto.
warning_preset_id: Valfri. Du kan lägga till anpassad text i slutet av förinställningen
announcement:
all_day: När det är markerat visas endast datum för tidsintervallet
@ -72,6 +74,7 @@ sv:
hide: Dölj det filtrerade innehållet helt (beter sig som om det inte fanns)
warn: Dölj det filtrerade innehållet bakom en varning som visar filtrets rubrik
form_admin_settings:
activity_api_enabled: Antalet lokalt publicerade inlägg, aktiva användare och nya registrerade konton per vecka
backups_retention_period: Behåll genererade användararkiv i det angivna antalet dagar.
bootstrap_timeline_accounts: Dessa konton kommer fästas högst upp i nya användares följrekommendationer.
closed_registrations_message: Visas när nyregistreringar är avstängda
@ -79,6 +82,7 @@ sv:
custom_css: Du kan använda anpassade stilar på webbversionen av Mastodon.
mascot: Åsidosätter illustrationen i det avancerade webbgränssnittet.
media_cache_retention_period: Nedladdade mediefiler kommer raderas efter det angivna antalet dagar, om inställt till ett positivt värde, och laddas ned på nytt vid behov.
peers_api_enabled: En lista över domänen den här servern har stött på i fediversum. Ingen data inkluderas om du har federerat med servern, bara att din server känner till den. Detta används av tjänster som samlar statistik om federering i allmänhet.
profile_directory: Profilkatalogen visar alla användare som har samtyckt till att bli upptäckbara.
require_invite_text: Gör fältet "Varför vill du gå med?" obligatoriskt när nyregistreringar kräver manuellt godkännande
site_contact_email: Hur människor kan nå dig för juridiska spörsmål eller supportfrågor.
@ -87,11 +91,13 @@ sv:
site_short_description: En kort beskrivning för att unikt identifiera din server. Vem är det som driver den, vilka är den till för?
site_terms: Använd din egen sekretesspolicy eller lämna tomt för att använda standardinställningen. Kan struktureras med Markdown-syntax.
site_title: Hur folk kan hänvisa till din server förutom med dess domännamn.
status_page_url: URL till en sida där personer kan se serverns status under ett driftavbrott
theme: Tema som utloggade besökare och nya användare ser.
thumbnail: En bild i cirka 2:1-proportioner som visas tillsammans med din serverinformation.
timeline_preview: Utloggade besökare kommer kunna bläddra bland de senaste offentliga inläggen som finns på servern.
trendable_by_default: Hoppa över manuell granskning av trendande innehåll. Enskilda objekt kan ändå raderas från trender retroaktivt.
trends: Trender visar vilka inlägg, hashtaggar och nyheter det pratas om på din server.
trends_as_landing_page: Visa trendande innehåll för utloggade användare och besökare istället för en beskrivning om servern. Kräver att trender är aktiverat.
form_challenge:
current_password: Du går in i ett säkert område
imports:
@ -227,6 +233,7 @@ sv:
hide: Dölj helt
warn: Dölj med en varning
form_admin_settings:
activity_api_enabled: Publicera aggregerad statistik om användaraktivitet i API:et
backups_retention_period: Lagringsperiod för användararkivet
bootstrap_timeline_accounts: Rekommendera alltid dessa konton till nya användare
closed_registrations_message: Anpassat meddelande när nyregistreringar inte är tillgängliga
@ -234,6 +241,7 @@ sv:
custom_css: Anpassad CSS
mascot: Anpassad maskot (tekniskt arv)
media_cache_retention_period: Tid för bibehållande av mediecache
peers_api_enabled: Publicera lista över upptäckta servrar i API:et
profile_directory: Aktivera profilkatalog
registrations_mode: Vem kan registrera sig
require_invite_text: Kräv anledning för att gå med
@ -245,11 +253,13 @@ sv:
site_short_description: Serverbeskrivning
site_terms: Integritetspolicy
site_title: Servernamn
status_page_url: URL för statussida
theme: Standardtema
thumbnail: Serverns tumnagelbild
timeline_preview: Tillåt oautentiserad åtkomst till offentliga tidslinjer
trendable_by_default: Tillåt trender utan föregående granskning
trends: Aktivera trender
trends_as_landing_page: Använd trender som landningssida
interactions:
must_be_follower: Blockera notiser från icke-följare
must_be_following: Blockera notiser från personer du inte följer

@ -49,7 +49,7 @@ zh-TW:
phrase: 無論是嘟文的本文或是內容警告都會被過濾
scopes: 允許讓應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。
setting_aggregate_reblogs: 請勿顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文)
setting_always_send_emails: 一般情況下若您活躍使用 Mastodon ,我們不會寄送 e-mail 通知
setting_always_send_emails: 一般情況下若您活躍使用 Mastodon ,我們不會寄送電子郵件通知
setting_default_sensitive: 敏感內容媒體預設隱藏,且按一下即可重新顯示
setting_display_media_default: 隱藏標為敏感內容的媒體
setting_display_media_hide_all: 總是隱藏所有媒體
@ -62,10 +62,10 @@ zh-TW:
username: 您的使用者名稱將在 %{domain} 是獨一無二的
whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用
domain_allow:
domain: 將能夠攫取本站資料,而自域名該發出的資料也會於本站處理和留存。
domain: 域將能夠攫取本站資料,而自該網域發出的資料也會於本站處理和留存。
email_domain_block:
domain: 這可以是顯示在電子郵件中的網域名稱,或是其使用的 MX 紀錄。其將在註冊時檢查。
with_dns_records: Mastodon 會嘗試解析所給的 DNS 記錄,解析結果一致者將一併封鎖
with_dns_records: Mastodon 會嘗試解析所給域的 DNS 記錄,解析結果一致者將一併封鎖
featured_tag:
name: 這些是您最近使用的一些主題標籤:
filters:
@ -107,7 +107,7 @@ zh-TW:
ip_block:
comment: 可選的,但請記得您為何添加這項規則。
expires_in: IP 位址是經常共用或轉手的有限資源,不建議無限期地封鎖特定 IP 位址。
ip: 請輸入 IPv4 或 IPv6 位址,亦可以用 CIDR 語法以封鎖整個 IP 區段。小心不要自己給一併封鎖掉囉!
ip: 請輸入 IPv4 或 IPv6 位址,亦可以用 CIDR 語法以封鎖整個 IP 區段。小心不要自己給一併封鎖掉囉!
severities:
no_access: 封鎖對所有資源存取
sign_up_block: 無法註冊新帳號
@ -154,7 +154,7 @@ zh-TW:
none: 什麼也不做
sensitive: 敏感内容
silence: 安靜
suspend: 停權並永久刪除帳號資料
suspend: 停權並不可逆的刪除帳號資料
warning_preset_id: 使用警告預設
announcement:
all_day: 全天活動
@ -193,7 +193,7 @@ zh-TW:
phrase: 關鍵字或片語
setting_advanced_layout: 啟用進階網頁介面
setting_aggregate_reblogs: 時間軸中的群組轉嘟
setting_always_send_emails: 總是發送 e-mail 通知
setting_always_send_emails: 總是發送電子郵件通知
setting_auto_play_gif: 自動播放 GIF 動畫
setting_boost_modal: 轉嘟前先詢問我
setting_crop_images: 將未展開嘟文中的圖片裁剪至 16x9
@ -283,7 +283,7 @@ zh-TW:
follow: 當有使用者跟隨您時,傳送電子郵件通知
follow_request: 當有使用者請求跟隨您時,傳送電子郵件通知
mention: 當有使用者在嘟文提及您時,傳送電子郵件通知
pending_account: 需要審核的新帳號
pending_account: 有新的帳號需要審核
reblog: 當有使用者轉嘟您的嘟文時,傳送電子郵件通知
report: 新回報已遞交
trending_tag: 新熱門趨勢需要審核

@ -105,6 +105,7 @@ sr:
reject: Одбаци
remove_avatar: Уклони аватар
remove_header: Одстрани заглавље
removed_avatar_msg: Слика аватара корисника %{username} је успешно уклоњена
resend_confirmation:
already_confirmed: Овој корисник е веќе потврден
send: Препрати го е-мајлот за потврда
@ -152,10 +153,13 @@ sr:
disable_user: Онемогући корисника
enable_user: Омогући корисника
reject_user: Одбаци корисника
remove_avatar_user: Уклони аватар
silence_account: Ограничи налог
suspend_account: Обустави налог
update_status: Уреди објаву
update_user_role: Уреди улогу
actions:
remove_avatar_user_html: "%{name} је уклонио аватар корисника %{target}"
deleted_account: обрисан налог
filter_by_action: Филтрирај по активности
filter_by_user: Филтрирај по кориснику
@ -236,6 +240,9 @@ sr:
create: Додај домен
title: Нова ставка е-поштe у црној листи
title: Црна листа E-поште
export_domain_blocks:
import:
existing_relationships_warning: Постојећи односи у облику праћења
follow_recommendations:
status: Статус
instances:
@ -283,6 +290,8 @@ sr:
new:
title: Креирај ново IP правило
no_ip_block_selected: Ниједно IP правило није промењено јер ниједно није изабрано
relationships:
title: Односи корисника %{acct}
relays:
add_new: Додај нови релеј
delete: Обриши
@ -404,14 +413,14 @@ sr:
your_token: Ваш приступни токен
auth:
change_password: Лозинка
delete_account: Обриши налог
delete_account_html: Ако желите да обришете Ваш налог, можете <a href="%{path}">наставити овде</a>. Бићете упитани да потврдите.
delete_account: Брисање налога
delete_account_html: Ако желите да избришете ваш налог, можете <a href="%{path}">наставити овде</a>. Од вас ће се тражити потврда.
didnt_get_confirmation: Нисте добили поруку са упутствима за потврду налога?
forgot_password: Заборавили сте лозинку?
invalid_reset_password_token: Токен за ресетовање лозинке је неисправан или је истекао. Затражите нови.
login: Пријави се
logout: Одјава
migrate_account: Помери у други налог
migrate_account: Премештање у други налог
migrate_account_html: Ако желите да преусмерите овај налог на неки други, можете то <a href="%{path}">подесити овде</a>.
or_log_in_with: Или се пријавите са
providers:
@ -422,6 +431,9 @@ sr:
reset_password: Ресетуј лозинку
security: Безбедност
set_new_password: Постави нову лозинку
status:
account_status: Статус налога
functional: Ваш налог је потпуно оперативан.
authorize_follow:
already_following: Већ пратите овај налог
error: Нажалост, десила се грешка при тражењу удаљеног налога
@ -466,15 +478,20 @@ sr:
archive_takeout:
date: Датум
download: Преузмите Вашу архиву
hint_html: Можете затражити архиву ваших <strong>труба и отпремљених медија</strong>. Извезени подаци ће бити у АктивитиПаб формату, који можете читати са било којим усаглашеним софтвером. Архиву можете затражити сваких 7 дана.
hint_html: Можете затражити архиву ваших <strong>објава и отпремљених медија</strong>. Извезени подаци ће бити у ActivityPub формату, који може читати било који компатибилан софтвер. Архиву можете затражити сваких 7 дана.
in_progress: Састављање ваше архиве...
request: Затражите Вашу архиву
request: Затражите своју архиву
size: Величина
blocks: Блокирали сте
domain_blocks: Блокови домена
lists: Листе
mutes: Ућуткали сте
mutes: Игноришете
storage: Мултимедијално складиште
featured_tags:
add_new: Додај нову
errors:
limit: Већ сте истакли максималан број хеш ознака
hint_html: "<strong>Шта су истакнуте хеш онаке?</strong> Оне се приказују истакнуто на вашем јавном профилу и омогућују људима да прегледају ваше јавне објаве конкретно под тим хеш ознакама. Оне су сјајан алат за праћење креативних радова или дугорочних пројеката."
filters:
contexts:
home: Временска линија почетне
@ -487,6 +504,7 @@ sr:
invalid_context: Ниједан или неважећи контекст испоручен
index:
delete: Избриши
empty: Немате филтере.
title: Филтери
new:
title: Додај нови филтер
@ -535,6 +553,8 @@ sr:
too_many: Не може се прикачити више од 4 фајла
migrations:
acct: корисник@домен новог налога
incoming_migrations: Премештање из другог налога
incoming_migrations_html: Да бисте прешли са другог налога на овај, прво морате <a href="%{path}">креирате псеудоним налога</a>.
moderation:
title: Модерација
notification_mailer:
@ -573,18 +593,38 @@ sr:
other: Остало
posting_defaults: Подразумевана подешавања објављивања
public_timelines: Јавне временске линије
relationships:
activity: Активност налога
confirm_follow_selected_followers: Да ли сте сигурни да желите да пратите изабране пратиоце?
confirm_remove_selected_followers: Да ли сте сигурни да желите да уклоните изабране пратиоце?
confirm_remove_selected_follows: Да ли сте сигурни да желите да уклоните изабрана праћења?
dormant: Неактиван
follow_selected_followers: Прати изабране пратиоце
followers: Пратиоци
following: Праћења
invited: Позван
last_active: Последњи пут активан
most_recent: Најновији
moved: Премештен
mutual: Заједнички
primary: Примарни
relationship: Однос
remove_selected_domains: Уклони све пратиоце са изабраних домена
remove_selected_followers: Уклони изабране пратиоце
remove_selected_follows: Отпрати изабране кориснике
status: Статус налога
remote_follow:
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
scheduled_statuses:
over_daily_limit: Прекорачили сте границу од %{limit} планираних труба за тај дан
over_total_limit: Прекорачили сте границу од %{limit} планираних труба
over_daily_limit: Прекорачили сте границу од %{limit} планираних објава за данас
over_total_limit: Прекорачили сте границу од %{limit} планираних објава
too_soon: Планирани датум мора бити у будућности
sessions:
activity: Последња активност
browser: Веб читач
browsers:
alipay: Алипеј
chrome: Хром
chrome: Chrome
edge: Мајкрософт Еџ
electron: Електрон
firefox: Фајерфокс
@ -609,13 +649,16 @@ sr:
linux: Линукса
mac: Мека
other: непознате платформе
windows: Виндоуза
windows_mobile: Виндоуз мобилног
windows_phone: Виндоуз телефона
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
revoke: Опозови
revoke_success: Сесија успешно опозвана
title: Сесије
view_authentication_history: Погледајте историју аутентификације вашег налога
settings:
account: Налог
account_settings: Подешавања налога
appearance: Изглед
authorized_apps: Ауторизоване апликације
back: Назад на Мастодон
@ -623,6 +666,7 @@ sr:
development: Развој
edit_profile: Уређивање профила
export: Извоз података
featured_tags: Истакнуте хеш ознаке
import: Увоз
import_and_export: Увоз и извоз
migrate: Пребацивање налога
@ -630,6 +674,7 @@ sr:
preferences: Подешавања
profile: Налог
relationships: Праћења и пратиоци
statuses_cleanup: Аутоматско брисање објава
two_factor_authentication: Двофакторска идентификација
statuses:
attached:
@ -652,7 +697,7 @@ sr:
open_in_web: Отвори у вебу
over_character_limit: ограничење од %{max} карактера прекорачено
pin_errors:
limit: Већ имате прикачен највећи број труба
limit: Већ сте закачили максималан број објава
ownership: Туђа објава се не може закачити
reblog: Подршка не може да се прикачи
show_more: Прикажи још
@ -664,6 +709,40 @@ sr:
public_long: Свако може да види
unlisted: Неизлистано
unlisted_long: Свако може да види, али није излистано на јавним временским линијама
statuses_cleanup:
enabled: Аутоматски избриши старе објаве
enabled_hint: Аутоматски брише ваше објаве када достигну одређени старосни праг, осим ако се не подударају са једним од изузетака у наставку
exceptions: Изузеци
explanation: Пошто је брисање објава скупа операција, ово се ради полако током времена када сервер иначе није заузет. Из тог разлога, ваше објаве могу бити избрисане неко време након што достигну старосни праг.
ignore_favs: Игнориши омиљене
ignore_reblogs: Игнориши подржавања
interaction_exceptions: Изузеци засновани на интеракцијама
interaction_exceptions_explanation: Имајте на уму да не постоји гаранција да ће објаве бити избрисане ако број означавања као омиљених или број подржавања падне испод прага након што га премаше.
keep_direct: Задржи директне поруке
keep_direct_hint: Не брише ниједну од ваших директних порука
keep_media: Задржи објаве са медијским прилозима
keep_media_hint: Не брише ниједну од ваших објава које имају медијске прилоге
keep_pinned: Задржи закачене објаве
keep_pinned_hint: Не брише ниједну од ваших закачених објава
keep_polls: Задржи анкете
keep_polls_hint: Не брише ниједну од ваших анкета
keep_self_bookmark: Задржи објаве које сте додали у обележиваче
keep_self_bookmark_hint: Не брише ваше сопствене објаве ако сте их додлаи у обележиваче
keep_self_fav: Задржи омиљене објаве
keep_self_fav_hint: Не брише ваше сопствене објаве ако сте их означили као омиљене
min_age:
'1209600': 2 седмице
'15778476': 6 месеци
'2629746': 1 месец
'31556952': 1 година
'5259492': 2 месеца
'604800': 1 седмица
'63113904': 2 годинe
'7889238': 3 месеца
min_age_label: Старосни праг
min_favs: Задржи објаве означене као омиљене најмање
min_favs_hint: Не брише ниједну вашу објаву која је добила најмање овај број омиљених. Оставите празно за брисање објава без обзира на њихов број омиљених
min_reblogs_hint: Не брише ниједну вашу објаву која је била подржана најмање оволико пута. Оставите празно за брисање објава без обзира на њихов број подржавања
stream_entries:
pinned: Закачена објава
reblogged: подржано

@ -91,6 +91,7 @@ sv:
moderation:
active: Aktiv
all: Alla
disabled: Inaktiverad
pending: Väntande
silenced: Begränsad
suspended: Avstängda
@ -133,6 +134,7 @@ sv:
search: Sök
search_same_email_domain: Andra användare med samma e-postdomän
search_same_ip: Annan användare med samma IP-adress
security: Säkerhet
security_measures:
only_password: Endast lösenord
password_and_2fa: Lösenord och 2FA
@ -427,6 +429,7 @@ sv:
resolve: Slå upp domän
title: Blockera ny e-postdomän
no_email_domain_block_selected: Inga blockeringar av e-postdomäner ändrades eftersom inga valdes
not_permitted: Ej tillåtet
resolved_dns_records_hint_html: Domännamnet ger uppslag till följande MX-domäner, vilka är ytterst ansvariga för att e-post tas emot. Att blockera en MX-domän blockerar även registreringar från alla e-postadresser som använder samma MX-domän, även om det synliga domännamnet är annorlunda. <strong>Var noga med att inte blockera stora e-postleverantörer.</strong>
resolved_through_html: Uppslagen genom %{domain}
title: Blockerade e-postdomäner
@ -473,6 +476,7 @@ sv:
content_policies:
comment: Intern anteckning
description_html: Du kan definiera innehållspolicyer som kommer tillämpas på alla konton från denna domän samt alla dess underdomäner.
limited_federation_mode_description_html: Du kan välja om du vill tillåta federering med den här domänen.
policies:
reject_media: Avvisa media
reject_reports: Avvisa rapporter
@ -585,11 +589,13 @@ sv:
assign_to_self: Tilldela till mig
assigned: Tilldelad moderator
by_target_domain: Domän för rapporterat konto
cancel: Avbryt
category: Kategori
category_description_html: Anledningen till att kontot och/eller innehållet rapporterades kommer att visas i kommunikation med det rapporterade kontot
comment:
none: Ingen
comment_description_html: 'För att ge mer information, skrev %{name}:'
confirm: Bekräfta
confirm_action: Bekräfta modereringsåtgärd mot @%{acct}
created_at: Anmäld
delete_and_resolve: Ta bort inlägg
@ -628,9 +634,20 @@ sv:
suspend_html: 'Du håller på att <strong>stänga av</strong> <strong>@%{acct}</strong>s konto. Detta kommer:'
actions:
delete_html: Ta bort kränkande inlägg
mark_as_sensitive_html: Markera de anmälda inläggens media som känslig
silence_html: Begränsa kraftigt <strong>@%{acct}</strong> räckvidd genom att göra deras profil och innehåll bara synligt till folk som redan följer dom eller som manuellt söker upp deras profil
suspend_html: Stäng av <strong>@%{acct}</strong>, vilket gör deras profil och innehåll oåtkomligt och omöjligt att interagera med
close_report: 'Markera anmälningen #%{id} som löst'
close_reports_html: Markera <strong>alla</strong> anmälningar mot <strong>@%{acct}</strong> som lösta
delete_data_html: Ta bort <strong>@%{acct}</strong>s profil och innehåll om 30 dagar ifall deras avstängning inte tagits bort under tiden
preview_preamble_html: "<strong>@%{acct}</strong> kommer få en varning med följande innehåll:"
record_strike_html: Registrera en varning mot <strong>@%{acct}</strong> för att hjälpa dig eskalera vid framtida överträdelser från detta konto
send_email_html: Skicka <strong>@%{acct}</strong> ett varningsmejl
warning_placeholder: Valfri ytterligare resonemang för modereringsåtgärd.
target_origin: Ursprung för anmält konto
title: Anmälningar
unassign: Otilldela
unknown_action_msg: 'Okänd åtgärd: %{action}'
unresolved: Olösta
updated_at: Uppdaterad
view_profile: Visa profil
@ -781,6 +798,7 @@ sv:
suspend: "%{name} stängde av %{target}s konto"
appeal_approved: Överklagad
appeal_pending: Överklagande väntar
appeal_rejected: Överklagan avslagen
system_checks:
database_schema_check:
message_html: Det finns väntande databasmigreringar. Vänligen kör dem för att säkerställa att programmet beter sig som förväntat
@ -816,6 +834,7 @@ sv:
other: Delad av %{count} personer under den senaste veckan
title: Trendande länkar
usage_comparison: Delade %{today} gånger idag, jämfört med %{yesterday} igår
not_allowed_to_trend: Inte tillåtet att trenda
only_allowed: Endast tillåtna
pending_review: Väntar på granskning
preview_card_providers:
@ -947,6 +966,7 @@ sv:
applications:
created: Ansökan är framgångsrikt skapad
destroyed: Ansökan är framgångsrikt borttagen
logout: Logga ut
regenerate_token: Regenerera access token
token_regenerated: Access token lyckades regenereras
warning: Var mycket försiktig med denna data. Dela aldrig den med någon!
@ -954,6 +974,8 @@ sv:
auth:
apply_for_account: Ansök om konto
change_password: Lösenord
confirmations:
wrong_email_hint: Om e-postadressen inte är rätt, kan du ändra den i kontoinställningarna.
delete_account: Radera konto
delete_account_html: Om du vill radera ditt konto kan du <a href="%{path}">fortsätta här</a>. Du kommer att bli ombedd att bekräfta.
description:
@ -981,6 +1003,8 @@ sv:
resend_confirmation: Skicka instruktionerna om bekräftelse igen
reset_password: Återställ lösenord
rules:
accept: Godkänn
back: Tillbaka
preamble: Dessa bestäms och upprätthålls av moderatorerna för %{domain}.
title: Några grundregler.
security: Säkerhet
@ -1127,6 +1151,8 @@ sv:
storage: Medialagring
featured_tags:
add_new: Lägg till ny
errors:
limit: Du har redan fäst det maximala antalet hashtags
hint_html: "<strong>Vad är utvalda hashtaggar?</strong> De visas tydligt på din offentliga profil och låter andra bläddra bland dina offentliga inlägg specifikt under dessa hashtaggar. De är ett bra verktyg för att hålla reda på kreativa arbeten eller långsiktiga projekt."
filters:
contexts:
@ -1234,6 +1260,9 @@ sv:
expires_at: Utgår
uses: Användningar
title: Bjud in andra
lists:
errors:
limit: Du har nått det maximala antalet listor
login_activities:
authentication_methods:
otp: tvåfaktorsautentiseringsapp
@ -1374,6 +1403,9 @@ sv:
unrecognized_emoji: är inte en igenkänd emoji
relationships:
activity: Kontoaktivitet
confirm_follow_selected_followers: Är du säker på att du vill följa valda följare?
confirm_remove_selected_followers: Är du säker på att du vill ta bort valda följare?
confirm_remove_selected_follows: Är du säker på att du vill ta bort valda följare?
dormant: Vilande
follow_selected_followers: Följ valda personer
followers: Följare
@ -1550,6 +1582,7 @@ sv:
'7889238': 3 månader
min_age_label: Åldersgräns
min_favs: Behåll favoritmarkerade inlägg i minst
min_favs_hint: Raderar inte några av dina inlägg som har fått minst detta antalet av favoritmarkeringar. Lämna tomt för att ta bort inlägg oavsett hur många favoritmarkeringar de har fått
min_reblogs: Behåll boostade inlägg i minst
min_reblogs_hint: Raderar inte något av dina inlägg som har blivit boostat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal boostar
stream_entries:

@ -1550,6 +1550,7 @@ vi:
'7889238': 3 tháng
min_age_label: Thời điểm
min_favs: Giữ những tút yêu thích lâu hơn
min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
min_reblogs: Giữ những tút đã đăng lại lâu hơn
min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
stream_entries:

@ -1133,6 +1133,8 @@ zh-HK:
storage: 媒體容量大小
featured_tags:
add_new: 新增
errors:
limit: 你推薦的標籤數量已達上限
hint_html: "<strong>甚麼是推薦主題標籤?</strong> 它們會被顯示在你的個人資料頁面,讓其他人可以根據標籤瀏覽你的公開文章,令人們更易找到你創作或者長期作品!"
filters:
contexts:
@ -1232,6 +1234,9 @@ zh-HK:
expires_at: 失效時間
uses: 已使用次數
title: 邀請用戶
lists:
errors:
limit: 你已達到列表數量的上限
login_activities:
authentication_methods:
otp: 兩步認證軟體
@ -1545,6 +1550,7 @@ zh-HK:
'7889238': 3 個月
min_age_label: 按時間篩選
min_favs: 保留超過嘟文最愛門檻
min_favs_hint: 收到此數量或更多最愛的帖文將不會被刪除。 留空可無視最愛數量刪除帖子
min_reblogs: 保留超過嘟文轉嘟門檻
min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除嘟文。
stream_entries:

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

Loading…
Cancel
Save