forked from treehouse/mastodon
Merge pull request #1810 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changesrebase/4.0.0rc1
commit
85d0e34745
|
@ -407,7 +407,7 @@ GEM
|
||||||
net-ssh (>= 2.6.5, < 7.0.0)
|
net-ssh (>= 2.6.5, < 7.0.0)
|
||||||
net-ssh (6.1.0)
|
net-ssh (6.1.0)
|
||||||
nio4r (2.5.8)
|
nio4r (2.5.8)
|
||||||
nokogiri (1.13.6)
|
nokogiri (1.13.7)
|
||||||
mini_portile2 (~> 2.8.0)
|
mini_portile2 (~> 2.8.0)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
nsa (0.2.8)
|
nsa (0.2.8)
|
||||||
|
@ -415,7 +415,7 @@ GEM
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
sidekiq (>= 3.5)
|
sidekiq (>= 3.5)
|
||||||
statsd-ruby (~> 1.4, >= 1.4.0)
|
statsd-ruby (~> 1.4, >= 1.4.0)
|
||||||
oj (3.13.16)
|
oj (3.13.17)
|
||||||
omniauth (1.9.1)
|
omniauth (1.9.1)
|
||||||
hashie (>= 3.4.6)
|
hashie (>= 3.4.6)
|
||||||
rack (>= 1.6.2, < 3)
|
rack (>= 1.6.2, < 3)
|
||||||
|
|
|
@ -24,6 +24,7 @@ class Api::V1::TagsController < Api::BaseController
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_or_create_tag
|
def set_or_create_tag
|
||||||
|
return not_found unless /\A(#{Tag::HASHTAG_NAME_RE})\z/.match?(params[:id])
|
||||||
@tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id])
|
@tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// @ts-check
|
// @ts-check
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Sparklines, SparklinesCurve } from 'react-sparklines';
|
import { Sparklines, SparklinesCurve } from 'react-sparklines';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import Permalink from './permalink';
|
import Permalink from './permalink';
|
||||||
|
@ -9,6 +9,10 @@ import ShortNumber from 'flavours/glitch/components/short_number';
|
||||||
import Skeleton from 'flavours/glitch/components/skeleton';
|
import Skeleton from 'flavours/glitch/components/skeleton';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
totalVolume: { id: 'hashtag.total_volume', defaultMessage: 'Total volume in the last {days, plural, one {day} other {{days} days}}' },
|
||||||
|
});
|
||||||
|
|
||||||
class SilentErrorBoundary extends React.Component {
|
class SilentErrorBoundary extends React.Component {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -41,10 +45,11 @@ class SilentErrorBoundary extends React.Component {
|
||||||
const accountsCountRenderer = (displayNumber, pluralReady) => (
|
const accountsCountRenderer = (displayNumber, pluralReady) => (
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='trends.counter_by_accounts'
|
id='trends.counter_by_accounts'
|
||||||
defaultMessage='{count, plural, one {{counter} person} other {{counter} people}} talking'
|
defaultMessage='{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}'
|
||||||
values={{
|
values={{
|
||||||
count: pluralReady,
|
count: pluralReady,
|
||||||
counter: <strong>{displayNumber}</strong>,
|
counter: <strong>{displayNumber}</strong>,
|
||||||
|
days: 2,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@ -64,7 +69,7 @@ ImmutableHashtag.propTypes = {
|
||||||
hashtag: ImmutablePropTypes.map.isRequired,
|
hashtag: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
const Hashtag = ({ name, href, to, people, uses, history, className }) => (
|
const Hashtag = injectIntl(({ name, href, to, people, uses, history, className, intl }) => (
|
||||||
<div className={classNames('trends__item', className)}>
|
<div className={classNames('trends__item', className)}>
|
||||||
<div className='trends__item__name'>
|
<div className='trends__item__name'>
|
||||||
<Permalink href={href} to={to}>
|
<Permalink href={href} to={to}>
|
||||||
|
@ -74,9 +79,10 @@ const Hashtag = ({ name, href, to, people, uses, history, className }) => (
|
||||||
{typeof people !== 'undefined' ? <ShortNumber value={people} renderer={accountsCountRenderer} /> : <Skeleton width={100} />}
|
{typeof people !== 'undefined' ? <ShortNumber value={people} renderer={accountsCountRenderer} /> : <Skeleton width={100} />}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='trends__item__current'>
|
<abbr className='trends__item__current' title={intl.formatMessage(messages.totalVolume, { days: 2 })}>
|
||||||
{typeof uses !== 'undefined' ? <ShortNumber value={uses} /> : <Skeleton width={42} height={36} />}
|
{typeof uses !== 'undefined' ? <ShortNumber value={uses} /> : <Skeleton width={42} height={36} />}
|
||||||
</div>
|
<span className='trends__item__current__asterisk'>*</span>
|
||||||
|
</abbr>
|
||||||
|
|
||||||
<div className='trends__item__sparkline'>
|
<div className='trends__item__sparkline'>
|
||||||
<SilentErrorBoundary>
|
<SilentErrorBoundary>
|
||||||
|
@ -86,7 +92,7 @@ const Hashtag = ({ name, href, to, people, uses, history, className }) => (
|
||||||
</SilentErrorBoundary>
|
</SilentErrorBoundary>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
));
|
||||||
|
|
||||||
Hashtag.propTypes = {
|
Hashtag.propTypes = {
|
||||||
name: PropTypes.string,
|
name: PropTypes.string,
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import React, { PureComponent } from 'react';
|
||||||
import { LoadingBar } from 'react-redux-loading-bar';
|
import { LoadingBar } from 'react-redux-loading-bar';
|
||||||
import ZoomableImage from './zoomable_image';
|
import ZoomableImage from './zoomable_image';
|
||||||
|
|
||||||
export default class ImageLoader extends React.PureComponent {
|
export default class ImageLoader extends PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
alt: PropTypes.string,
|
alt: PropTypes.string,
|
||||||
|
@ -43,7 +43,7 @@ export default class ImageLoader extends React.PureComponent {
|
||||||
this.loadImage(this.props);
|
this.loadImage(this.props);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps (nextProps) {
|
UNSAFE_componentWillReceiveProps (nextProps) {
|
||||||
if (this.props.src !== nextProps.src) {
|
if (this.props.src !== nextProps.src) {
|
||||||
this.loadImage(nextProps);
|
this.loadImage(nextProps);
|
||||||
}
|
}
|
||||||
|
@ -139,14 +139,18 @@ export default class ImageLoader extends React.PureComponent {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={className}>
|
<div className={className}>
|
||||||
<LoadingBar loading={loading ? 1 : 0} className='loading-bar' style={{ width: this.state.width || width }} />
|
|
||||||
{loading ? (
|
{loading ? (
|
||||||
<canvas
|
<>
|
||||||
className='image-loader__preview-canvas'
|
<div className='loading-bar__container' style={{ width: this.state.width || width }}>
|
||||||
ref={this.setCanvasRef}
|
<LoadingBar className='loading-bar' loading={1} />
|
||||||
width={width}
|
</div>
|
||||||
height={height}
|
<canvas
|
||||||
/>
|
className='image-loader__preview-canvas'
|
||||||
|
ref={this.setCanvasRef}
|
||||||
|
width={width}
|
||||||
|
height={height}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
) : (
|
) : (
|
||||||
<ZoomableImage
|
<ZoomableImage
|
||||||
alt={alt}
|
alt={alt}
|
||||||
|
|
|
@ -442,10 +442,14 @@
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
.loading-bar {
|
.loading-bar__container {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.loading-bar {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
&.image-loader--amorphous .image-loader__preview-canvas {
|
&.image-loader--amorphous .image-loader__preview-canvas {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,6 +176,13 @@
|
||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
color: $secondary-text-color;
|
color: $secondary-text-color;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&__asterisk {
|
||||||
|
color: $darker-text-color;
|
||||||
|
font-size: 18px;
|
||||||
|
vertical-align: super;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__sparkline {
|
&__sparkline {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// @ts-check
|
// @ts-check
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Sparklines, SparklinesCurve } from 'react-sparklines';
|
import { Sparklines, SparklinesCurve } from 'react-sparklines';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import Permalink from './permalink';
|
import Permalink from './permalink';
|
||||||
|
@ -9,6 +9,10 @@ import ShortNumber from 'mastodon/components/short_number';
|
||||||
import Skeleton from 'mastodon/components/skeleton';
|
import Skeleton from 'mastodon/components/skeleton';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
totalVolume: { id: 'hashtag.total_volume', defaultMessage: 'Total volume in the last {days, plural, one {day} other {{days} days}}' },
|
||||||
|
});
|
||||||
|
|
||||||
class SilentErrorBoundary extends React.Component {
|
class SilentErrorBoundary extends React.Component {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -41,10 +45,11 @@ class SilentErrorBoundary extends React.Component {
|
||||||
export const accountsCountRenderer = (displayNumber, pluralReady) => (
|
export const accountsCountRenderer = (displayNumber, pluralReady) => (
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='trends.counter_by_accounts'
|
id='trends.counter_by_accounts'
|
||||||
defaultMessage='{count, plural, one {{counter} person} other {{counter} people}} talking'
|
defaultMessage='{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}'
|
||||||
values={{
|
values={{
|
||||||
count: pluralReady,
|
count: pluralReady,
|
||||||
counter: <strong>{displayNumber}</strong>,
|
counter: <strong>{displayNumber}</strong>,
|
||||||
|
days: 2,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@ -64,7 +69,7 @@ ImmutableHashtag.propTypes = {
|
||||||
hashtag: ImmutablePropTypes.map.isRequired,
|
hashtag: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
const Hashtag = ({ name, href, to, people, uses, history, className }) => (
|
const Hashtag = injectIntl(({ name, href, to, people, uses, history, className, intl }) => (
|
||||||
<div className={classNames('trends__item', className)}>
|
<div className={classNames('trends__item', className)}>
|
||||||
<div className='trends__item__name'>
|
<div className='trends__item__name'>
|
||||||
<Permalink href={href} to={to}>
|
<Permalink href={href} to={to}>
|
||||||
|
@ -74,9 +79,10 @@ const Hashtag = ({ name, href, to, people, uses, history, className }) => (
|
||||||
{typeof people !== 'undefined' ? <ShortNumber value={people} renderer={accountsCountRenderer} /> : <Skeleton width={100} />}
|
{typeof people !== 'undefined' ? <ShortNumber value={people} renderer={accountsCountRenderer} /> : <Skeleton width={100} />}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='trends__item__current'>
|
<abbr className='trends__item__current' title={intl.formatMessage(messages.totalVolume, { days: 2 })}>
|
||||||
{typeof uses !== 'undefined' ? <ShortNumber value={uses} /> : <Skeleton width={42} height={36} />}
|
{typeof uses !== 'undefined' ? <ShortNumber value={uses} /> : <Skeleton width={42} height={36} />}
|
||||||
</div>
|
<span className='trends__item__current__asterisk'>*</span>
|
||||||
|
</abbr>
|
||||||
|
|
||||||
<div className='trends__item__sparkline'>
|
<div className='trends__item__sparkline'>
|
||||||
<SilentErrorBoundary>
|
<SilentErrorBoundary>
|
||||||
|
@ -86,7 +92,7 @@ const Hashtag = ({ name, href, to, people, uses, history, className }) => (
|
||||||
</SilentErrorBoundary>
|
</SilentErrorBoundary>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
));
|
||||||
|
|
||||||
Hashtag.propTypes = {
|
Hashtag.propTypes = {
|
||||||
name: PropTypes.string,
|
name: PropTypes.string,
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import React, { PureComponent } from 'react';
|
||||||
import { LoadingBar } from 'react-redux-loading-bar';
|
import { LoadingBar } from 'react-redux-loading-bar';
|
||||||
import ZoomableImage from './zoomable_image';
|
import ZoomableImage from './zoomable_image';
|
||||||
|
|
||||||
export default class ImageLoader extends React.PureComponent {
|
export default class ImageLoader extends PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
alt: PropTypes.string,
|
alt: PropTypes.string,
|
||||||
|
@ -43,7 +43,7 @@ export default class ImageLoader extends React.PureComponent {
|
||||||
this.loadImage(this.props);
|
this.loadImage(this.props);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps (nextProps) {
|
UNSAFE_componentWillReceiveProps (nextProps) {
|
||||||
if (this.props.src !== nextProps.src) {
|
if (this.props.src !== nextProps.src) {
|
||||||
this.loadImage(nextProps);
|
this.loadImage(nextProps);
|
||||||
}
|
}
|
||||||
|
@ -139,14 +139,18 @@ export default class ImageLoader extends React.PureComponent {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={className}>
|
<div className={className}>
|
||||||
<LoadingBar loading={loading ? 1 : 0} className='loading-bar' style={{ width: this.state.width || width }} />
|
|
||||||
{loading ? (
|
{loading ? (
|
||||||
<canvas
|
<>
|
||||||
className='image-loader__preview-canvas'
|
<div className='loading-bar__container' style={{ width: this.state.width || width }}>
|
||||||
ref={this.setCanvasRef}
|
<LoadingBar className='loading-bar' loading={1} />
|
||||||
width={width}
|
</div>
|
||||||
height={height}
|
<canvas
|
||||||
/>
|
className='image-loader__preview-canvas'
|
||||||
|
ref={this.setCanvasRef}
|
||||||
|
width={width}
|
||||||
|
height={height}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
) : (
|
) : (
|
||||||
<ZoomableImage
|
<ZoomableImage
|
||||||
alt={alt}
|
alt={alt}
|
||||||
|
|
|
@ -290,7 +290,11 @@
|
||||||
{
|
{
|
||||||
"descriptors": [
|
"descriptors": [
|
||||||
{
|
{
|
||||||
"defaultMessage": "{count, plural, one {{counter} person} other {{counter} people}} talking",
|
"defaultMessage": "Total volume in the last {days, plural, one {day} other {{days} days}}",
|
||||||
|
"id": "hashtag.total_volume"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"defaultMessage": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
|
||||||
"id": "trends.counter_by_accounts"
|
"id": "trends.counter_by_accounts"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -3765,4 +3769,4 @@
|
||||||
],
|
],
|
||||||
"path": "app/javascript/mastodon/features/video/index.json"
|
"path": "app/javascript/mastodon/features/video/index.json"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -224,6 +224,7 @@
|
||||||
"hashtag.column_settings.tag_mode.any": "Any of these",
|
"hashtag.column_settings.tag_mode.any": "Any of these",
|
||||||
"hashtag.column_settings.tag_mode.none": "None of these",
|
"hashtag.column_settings.tag_mode.none": "None of these",
|
||||||
"hashtag.column_settings.tag_toggle": "Include additional tags for this column",
|
"hashtag.column_settings.tag_toggle": "Include additional tags for this column",
|
||||||
|
"hashtag.total_volume": "Total volume in the last {days, plural, one {day} other {{days} days}}",
|
||||||
"home.column_settings.basic": "Basic",
|
"home.column_settings.basic": "Basic",
|
||||||
"home.column_settings.show_reblogs": "Show boosts",
|
"home.column_settings.show_reblogs": "Show boosts",
|
||||||
"home.column_settings.show_replies": "Show replies",
|
"home.column_settings.show_replies": "Show replies",
|
||||||
|
@ -522,7 +523,7 @@
|
||||||
"timeline_hint.resources.followers": "Followers",
|
"timeline_hint.resources.followers": "Followers",
|
||||||
"timeline_hint.resources.follows": "Follows",
|
"timeline_hint.resources.follows": "Follows",
|
||||||
"timeline_hint.resources.statuses": "Older posts",
|
"timeline_hint.resources.statuses": "Older posts",
|
||||||
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
|
"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": "Trending now",
|
||||||
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
|
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
|
||||||
"units.short.billion": "{count}B",
|
"units.short.billion": "{count}B",
|
||||||
|
|
|
@ -198,7 +198,7 @@
|
||||||
"explore.trending_tags": "แฮชแท็ก",
|
"explore.trending_tags": "แฮชแท็ก",
|
||||||
"follow_recommendations.done": "เสร็จสิ้น",
|
"follow_recommendations.done": "เสร็จสิ้น",
|
||||||
"follow_recommendations.heading": "ติดตามผู้คนที่คุณต้องการเห็นโพสต์! นี่คือข้อเสนอแนะบางส่วน",
|
"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_recommendations.lead": "โพสต์จากคนที่คุณติดตามจะแสดงตามลำดับเวลาบนฟีดหลักของคุณ อย่ากลัวที่จะทำผิดพลาด คุณสามารถเลิกติดตามผู้คนได้ง่ายๆ ทุกเมื่อ!",
|
||||||
"follow_request.authorize": "อนุญาต",
|
"follow_request.authorize": "อนุญาต",
|
||||||
"follow_request.reject": "ปฏิเสธ",
|
"follow_request.reject": "ปฏิเสธ",
|
||||||
"follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง",
|
"follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง",
|
||||||
|
@ -268,7 +268,7 @@
|
||||||
"lightbox.next": "ถัดไป",
|
"lightbox.next": "ถัดไป",
|
||||||
"lightbox.previous": "ก่อนหน้า",
|
"lightbox.previous": "ก่อนหน้า",
|
||||||
"limited_account_hint.action": "แสดงโปรไฟล์ต่อไป",
|
"limited_account_hint.action": "แสดงโปรไฟล์ต่อไป",
|
||||||
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
|
"limited_account_hint.title": "โปรไฟล์นี้ถูกซ่อนไว้โดยโมเดอเรเตอร์ของเซิร์ฟเวอร์ของคุณ",
|
||||||
"lists.account.add": "เพิ่มไปยังรายการ",
|
"lists.account.add": "เพิ่มไปยังรายการ",
|
||||||
"lists.account.remove": "เอาออกจากรายการ",
|
"lists.account.remove": "เอาออกจากรายการ",
|
||||||
"lists.delete": "ลบรายการ",
|
"lists.delete": "ลบรายการ",
|
||||||
|
@ -360,7 +360,7 @@
|
||||||
"notifications.permission_denied_alert": "ไม่สามารถเปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป เนื่องจากมีการปฏิเสธสิทธิอนุญาตเบราว์เซอร์ก่อนหน้านี้",
|
"notifications.permission_denied_alert": "ไม่สามารถเปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป เนื่องจากมีการปฏิเสธสิทธิอนุญาตเบราว์เซอร์ก่อนหน้านี้",
|
||||||
"notifications.permission_required": "การแจ้งเตือนบนเดสก์ท็อปไม่พร้อมใช้งานเนื่องจากไม่ได้ให้สิทธิอนุญาตที่จำเป็น",
|
"notifications.permission_required": "การแจ้งเตือนบนเดสก์ท็อปไม่พร้อมใช้งานเนื่องจากไม่ได้ให้สิทธิอนุญาตที่จำเป็น",
|
||||||
"notifications_permission_banner.enable": "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป",
|
"notifications_permission_banner.enable": "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป",
|
||||||
"notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
|
"notifications_permission_banner.how_to_control": "หากต้องการรับการแจ้งเตือนเมื่อไม่ได้เปิด Mastodon ให้เปิดใช้การแจ้งเตือนบนเดสก์ท็อป คุณสามารถควบคุมได้ตามความต้องการด้วยการโต้ตอบประเภทที่สร้างการแจ้งเตือนบนเดสก์ท็อปผ่านปุ่ม {icon} ด้านบนเมื่อเปิดใช้งาน",
|
||||||
"notifications_permission_banner.title": "ไม่พลาดสิ่งใด",
|
"notifications_permission_banner.title": "ไม่พลาดสิ่งใด",
|
||||||
"picture_in_picture.restore": "นำกลับมา",
|
"picture_in_picture.restore": "นำกลับมา",
|
||||||
"poll.closed": "ปิดแล้ว",
|
"poll.closed": "ปิดแล้ว",
|
||||||
|
|
|
@ -314,7 +314,7 @@
|
||||||
"navigation_bar.preferences": "首选项",
|
"navigation_bar.preferences": "首选项",
|
||||||
"navigation_bar.public_timeline": "跨站公共时间轴",
|
"navigation_bar.public_timeline": "跨站公共时间轴",
|
||||||
"navigation_bar.security": "安全",
|
"navigation_bar.security": "安全",
|
||||||
"notification.admin.report": "{name} reported {target}",
|
"notification.admin.report": "{name} 已报告 {target}",
|
||||||
"notification.admin.sign_up": "{name} 注册了",
|
"notification.admin.sign_up": "{name} 注册了",
|
||||||
"notification.favourite": "{name} 喜欢了你的嘟文",
|
"notification.favourite": "{name} 喜欢了你的嘟文",
|
||||||
"notification.follow": "{name} 开始关注你",
|
"notification.follow": "{name} 开始关注你",
|
||||||
|
@ -327,7 +327,7 @@
|
||||||
"notification.update": "{name} 编辑了嘟文",
|
"notification.update": "{name} 编辑了嘟文",
|
||||||
"notifications.clear": "清空通知列表",
|
"notifications.clear": "清空通知列表",
|
||||||
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
|
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
|
||||||
"notifications.column_settings.admin.report": "New reports:",
|
"notifications.column_settings.admin.report": "新报告",
|
||||||
"notifications.column_settings.admin.sign_up": "新注册:",
|
"notifications.column_settings.admin.sign_up": "新注册:",
|
||||||
"notifications.column_settings.alert": "桌面通知",
|
"notifications.column_settings.alert": "桌面通知",
|
||||||
"notifications.column_settings.favourite": "喜欢:",
|
"notifications.column_settings.favourite": "喜欢:",
|
||||||
|
@ -433,7 +433,7 @@
|
||||||
"report.thanks.title_actionable": "感谢提交举报,我们将会进行处理。",
|
"report.thanks.title_actionable": "感谢提交举报,我们将会进行处理。",
|
||||||
"report.unfollow": "取消关注 @{name}",
|
"report.unfollow": "取消关注 @{name}",
|
||||||
"report.unfollow_explanation": "你正在关注此账户。如果要想在你的主页上不再看到他们的帖子,取消对他们的关注即可。",
|
"report.unfollow_explanation": "你正在关注此账户。如果要想在你的主页上不再看到他们的帖子,取消对他们的关注即可。",
|
||||||
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
|
"report_notification.attached_statuses": "{count, plural, one {{count} 嘟文} other {{count} 嘟文}} 附件",
|
||||||
"report_notification.categories.other": "其他",
|
"report_notification.categories.other": "其他",
|
||||||
"report_notification.categories.spam": "骚扰",
|
"report_notification.categories.spam": "骚扰",
|
||||||
"report_notification.categories.violation": "违反规则",
|
"report_notification.categories.violation": "违反规则",
|
||||||
|
@ -468,7 +468,7 @@
|
||||||
"status.embed": "嵌入",
|
"status.embed": "嵌入",
|
||||||
"status.favourite": "喜欢",
|
"status.favourite": "喜欢",
|
||||||
"status.filtered": "已过滤",
|
"status.filtered": "已过滤",
|
||||||
"status.hide": "Hide toot",
|
"status.hide": "屏蔽嘟文",
|
||||||
"status.history.created": "{name} 创建于 {date}",
|
"status.history.created": "{name} 创建于 {date}",
|
||||||
"status.history.edited": "{name} 编辑于 {date}",
|
"status.history.edited": "{name} 编辑于 {date}",
|
||||||
"status.load_more": "加载更多",
|
"status.load_more": "加载更多",
|
||||||
|
@ -492,7 +492,7 @@
|
||||||
"status.report": "举报 @{name}",
|
"status.report": "举报 @{name}",
|
||||||
"status.sensitive_warning": "敏感内容",
|
"status.sensitive_warning": "敏感内容",
|
||||||
"status.share": "分享",
|
"status.share": "分享",
|
||||||
"status.show_filter_reason": "Show anyway",
|
"status.show_filter_reason": "继续显示",
|
||||||
"status.show_less": "隐藏内容",
|
"status.show_less": "隐藏内容",
|
||||||
"status.show_less_all": "隐藏全部内容",
|
"status.show_less_all": "隐藏全部内容",
|
||||||
"status.show_more": "显示更多",
|
"status.show_more": "显示更多",
|
||||||
|
|
|
@ -1783,10 +1783,14 @@ a.account__display-name {
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
.loading-bar {
|
.loading-bar__container {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.loading-bar {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
&.image-loader--amorphous .image-loader__preview-canvas {
|
&.image-loader--amorphous .image-loader__preview-canvas {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
@ -7239,6 +7243,13 @@ noscript {
|
||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
color: $secondary-text-color;
|
color: $secondary-text-color;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&__asterisk {
|
||||||
|
color: $darker-text-color;
|
||||||
|
font-size: 18px;
|
||||||
|
vertical-align: super;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__sparkline {
|
&__sparkline {
|
||||||
|
|
|
@ -62,7 +62,7 @@ class Account < ApplicationRecord
|
||||||
)
|
)
|
||||||
|
|
||||||
USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
|
USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
|
||||||
MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:alnum:]\.\-]+[[:alnum:]]+)?)/i
|
MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[[:word:]]+)?)/i
|
||||||
URL_PREFIX_RE = /\Ahttp(s?):\/\/[^\/]+/
|
URL_PREFIX_RE = /\Ahttp(s?):\/\/[^\/]+/
|
||||||
|
|
||||||
include Attachmentable
|
include Attachmentable
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Tag < ApplicationRecord
|
||||||
has_many :followers, through: :passive_relationships, source: :account
|
has_many :followers, through: :passive_relationships, source: :account
|
||||||
|
|
||||||
HASHTAG_SEPARATORS = "_\u00B7\u200c"
|
HASHTAG_SEPARATORS = "_\u00B7\u200c"
|
||||||
HASHTAG_NAME_RE = "([[:alnum:]_][[:alnum:]#{HASHTAG_SEPARATORS}]*[[:alpha:]#{HASHTAG_SEPARATORS}][[:alnum:]#{HASHTAG_SEPARATORS}]*[[:alnum:]_])|([[:alnum:]_]*[[:alpha:]][[:alnum:]_]*)"
|
HASHTAG_NAME_RE = "([[:word:]_][[:word:]#{HASHTAG_SEPARATORS}]*[[:alpha:]#{HASHTAG_SEPARATORS}][[:word:]#{HASHTAG_SEPARATORS}]*[[:word:]_])|([[:word:]_]*[[:alpha:]][[:word:]_]*)"
|
||||||
HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
|
HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
|
||||||
|
|
||||||
validates :name, presence: true, format: { with: /\A(#{HASHTAG_NAME_RE})\z/i }
|
validates :name, presence: true, format: { with: /\A(#{HASHTAG_NAME_RE})\z/i }
|
||||||
|
|
|
@ -38,3 +38,9 @@ af:
|
||||||
email:
|
email:
|
||||||
blocked: maak gebruik van 'n e-pos verskaffer wat nie toegelaat word nie
|
blocked: maak gebruik van 'n e-pos verskaffer wat nie toegelaat word nie
|
||||||
unreachable: blyk nie te bestaan nie
|
unreachable: blyk nie te bestaan nie
|
||||||
|
user_role:
|
||||||
|
attributes:
|
||||||
|
permissions_as_keys:
|
||||||
|
own_role: kan nie verander word met jou huidige rol nie
|
||||||
|
position:
|
||||||
|
own_role: kan nie verander word met jou huidige rol nie
|
||||||
|
|
|
@ -45,5 +45,7 @@ ca:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: inclou permisos que no són segurs per al rol base
|
dangerous: inclou permisos que no són segurs per al rol base
|
||||||
elevated: no pot incloure permisos que el teu rol actual no té
|
elevated: no pot incloure permisos que el teu rol actual no té
|
||||||
|
own_role: no es pot canviar amb el teu rol actual
|
||||||
position:
|
position:
|
||||||
elevated: no pot ser superior al teu rol actual
|
elevated: no pot ser superior al teu rol actual
|
||||||
|
own_role: no pot ser canviat amb el teu rol actual
|
||||||
|
|
|
@ -45,5 +45,6 @@ da:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: omfat tilladelser, som ikke er sikre for basisrollen
|
dangerous: omfat tilladelser, som ikke er sikre for basisrollen
|
||||||
elevated: kan ikke omfatte tilladelser, din aktuelle rolle ikke besidder
|
elevated: kan ikke omfatte tilladelser, din aktuelle rolle ikke besidder
|
||||||
|
own_role: kan ikke ændres med din aktuelle rolle
|
||||||
position:
|
position:
|
||||||
elevated: kan ikke være højere end din aktuelle rolle
|
elevated: kan ikke være højere end din aktuelle rolle
|
||||||
|
|
|
@ -30,3 +30,9 @@ el:
|
||||||
email:
|
email:
|
||||||
blocked: χρησιμοποιεί μη επιτρεπόμενο πάροχο e-mail
|
blocked: χρησιμοποιεί μη επιτρεπόμενο πάροχο e-mail
|
||||||
unreachable: δεν φαίνεται να υπάρχει
|
unreachable: δεν φαίνεται να υπάρχει
|
||||||
|
user_role:
|
||||||
|
attributes:
|
||||||
|
permissions_as_keys:
|
||||||
|
own_role: δεν μπορεί να αλλάξει με τον τρέχοντα ρόλο σας
|
||||||
|
position:
|
||||||
|
own_role: δεν μπορεί να αλλάξει με τον τρέχοντα ρόλο σας
|
||||||
|
|
|
@ -45,5 +45,7 @@ es-AR:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: incluir permisos que no son seguros para el rol base
|
dangerous: incluir permisos que no son seguros para el rol base
|
||||||
elevated: no se pueden incluir permisos que tu rol actual no posea
|
elevated: no se pueden incluir permisos que tu rol actual no posea
|
||||||
|
own_role: no se puede cambiar con tu rol actual
|
||||||
position:
|
position:
|
||||||
elevated: no puede ser mayor que tu rol actual
|
elevated: no puede ser mayor que tu rol actual
|
||||||
|
own_role: no se puede cambiar con tu rol actual
|
||||||
|
|
|
@ -38,3 +38,12 @@ es-MX:
|
||||||
email:
|
email:
|
||||||
blocked: utiliza un proveedor de correo no autorizado
|
blocked: utiliza un proveedor de correo no autorizado
|
||||||
unreachable: no parece existir
|
unreachable: no parece existir
|
||||||
|
role_id:
|
||||||
|
elevated: no puede ser mayor que tu rol actual
|
||||||
|
user_role:
|
||||||
|
attributes:
|
||||||
|
permissions_as_keys:
|
||||||
|
dangerous: incluir permisos que no son seguros para el rol base
|
||||||
|
elevated: no se pueden incluir permisos que tu rol actual no posea
|
||||||
|
position:
|
||||||
|
elevated: no puede ser mayor que tu rol actual
|
||||||
|
|
|
@ -45,5 +45,7 @@ es:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: incluir permisos que no son seguros para el rol base
|
dangerous: incluir permisos que no son seguros para el rol base
|
||||||
elevated: no se pueden incluir permisos que tu rol actual no posea
|
elevated: no se pueden incluir permisos que tu rol actual no posea
|
||||||
|
own_role: no se puede cambiar con tu rol actual
|
||||||
position:
|
position:
|
||||||
elevated: no puede ser mayor que tu rol actual
|
elevated: no puede ser mayor que tu rol actual
|
||||||
|
own_role: no se puede cambiar con tu rol actual
|
||||||
|
|
|
@ -45,5 +45,7 @@ gl:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: inclúe permisos que non son seguros para o rol básico
|
dangerous: inclúe permisos que non son seguros para o rol básico
|
||||||
elevated: non pode incluir permisos que o teu rol actual non posúe
|
elevated: non pode incluir permisos que o teu rol actual non posúe
|
||||||
|
own_role: non pode ser modificado co teu rol actual
|
||||||
position:
|
position:
|
||||||
elevated: non pode superar ao teu rol actual
|
elevated: non pode superar ao teu rol actual
|
||||||
|
own_role: non pode ser modificado co teu rol actual
|
||||||
|
|
|
@ -45,5 +45,7 @@ hu:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: tartalmaz olyan engedélyeket is, melyek az alap szerephez nem biztonságosak
|
dangerous: tartalmaz olyan engedélyeket is, melyek az alap szerephez nem biztonságosak
|
||||||
elevated: nem tartalmazhat olyan engedélyeket, melyek nincsenek benne a jelenlegi szerepedben
|
elevated: nem tartalmazhat olyan engedélyeket, melyek nincsenek benne a jelenlegi szerepedben
|
||||||
|
own_role: nem megváltoztatható a jelenlegi szerepköröddel
|
||||||
position:
|
position:
|
||||||
elevated: nem lehet magasabb, mint a jelenlegi szereped
|
elevated: nem lehet magasabb, mint a jelenlegi szereped
|
||||||
|
own_role: nem megváltoztatható a jelenlegi szerepköröddel
|
||||||
|
|
|
@ -45,5 +45,7 @@ io:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: inkluzas permisi quo ne esas segura por bazrolo
|
dangerous: inkluzas permisi quo ne esas segura por bazrolo
|
||||||
elevated: ne povas inkluzar permisi quon vua nuna rolo ne havas
|
elevated: ne povas inkluzar permisi quon vua nuna rolo ne havas
|
||||||
|
own_role: ne povas divenesar kun vua nuna rolo
|
||||||
position:
|
position:
|
||||||
elevated: ne povas divenar plu alta kam vua nuna rolo
|
elevated: ne povas divenar plu alta kam vua nuna rolo
|
||||||
|
own_role: ne povas divenesar kun vua nuna rolo
|
||||||
|
|
|
@ -45,5 +45,7 @@ is:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: hefur heimildir sem ekki eru öruggar fyrir grunnhlutverk
|
dangerous: hefur heimildir sem ekki eru öruggar fyrir grunnhlutverk
|
||||||
elevated: getur ekki haft heimildir sem núverandi hlutverk þitt er ekki með
|
elevated: getur ekki haft heimildir sem núverandi hlutverk þitt er ekki með
|
||||||
|
own_role: er ekki hægt að breyta með þinu hlutverki
|
||||||
position:
|
position:
|
||||||
elevated: getur ekki verið veigameiri en núverandi hlutverk þitt
|
elevated: getur ekki verið veigameiri en núverandi hlutverk þitt
|
||||||
|
own_role: er ekki hægt að breyta með þinu hlutverki
|
||||||
|
|
|
@ -45,5 +45,7 @@ it:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: include i permessi non sicuri per il ruolo di base
|
dangerous: include i permessi non sicuri per il ruolo di base
|
||||||
elevated: non è possibile includere i permessi che il tuo ruolo attuale non possiede
|
elevated: non è possibile includere i permessi che il tuo ruolo attuale non possiede
|
||||||
|
own_role: non può essere modificato con il tuo ruolo attuale
|
||||||
position:
|
position:
|
||||||
elevated: non può essere superiore al tuo ruolo attuale
|
elevated: non può essere superiore al tuo ruolo attuale
|
||||||
|
own_role: non può essere modificato con il tuo ruolo attuale
|
||||||
|
|
|
@ -45,5 +45,7 @@ ko:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: 기본 역할로 사용하기에 안전하지 않은 권한을 포함하고 있습니다
|
dangerous: 기본 역할로 사용하기에 안전하지 않은 권한을 포함하고 있습니다
|
||||||
elevated: 당신의 현재 역할이 가지고 있지 않은 권한은 포함할 수 없습니다
|
elevated: 당신의 현재 역할이 가지고 있지 않은 권한은 포함할 수 없습니다
|
||||||
|
own_role: 당신의 현재 역할을 변경할 수 없습니다
|
||||||
position:
|
position:
|
||||||
elevated: 당신의 현재 역할보다 높을 수 없습니다
|
elevated: 당신의 현재 역할보다 높을 수 없습니다
|
||||||
|
own_role: 당신의 현재 역할을 변경할 수 없습니다
|
||||||
|
|
|
@ -45,5 +45,7 @@ lv:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: ietver atļaujas, kas nav drošas pamata lomai
|
dangerous: ietver atļaujas, kas nav drošas pamata lomai
|
||||||
elevated: nevar ietvert atļaujas, kas nepieder tavai pašreizējai lomai
|
elevated: nevar ietvert atļaujas, kas nepieder tavai pašreizējai lomai
|
||||||
|
own_role: nevar mainīt pert tavu pašreizējo lomu
|
||||||
position:
|
position:
|
||||||
elevated: nevar būt augstāka par tavu pašreizējo lomu
|
elevated: nevar būt augstāka par tavu pašreizējo lomu
|
||||||
|
own_role: nevar mainīt pert tavu pašreizējo lomu
|
||||||
|
|
|
@ -38,3 +38,12 @@ pl:
|
||||||
email:
|
email:
|
||||||
blocked: używa niedozwolonego dostawcy poczty elektronicznej
|
blocked: używa niedozwolonego dostawcy poczty elektronicznej
|
||||||
unreachable: wydaje się nie istnieć
|
unreachable: wydaje się nie istnieć
|
||||||
|
role_id:
|
||||||
|
elevated: nie może być wyższa niż twoja bieżąca rola
|
||||||
|
user_role:
|
||||||
|
attributes:
|
||||||
|
permissions_as_keys:
|
||||||
|
own_role: nie można zmienić z aktualną rolą
|
||||||
|
position:
|
||||||
|
elevated: nie może być wyższa niż twoja bieżąca rola
|
||||||
|
own_role: nie można zmienić z aktualną rolą
|
||||||
|
|
|
@ -45,5 +45,7 @@ pt-PT:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: incluir permissões que não são seguras para a função base
|
dangerous: incluir permissões que não são seguras para a função base
|
||||||
elevated: não pode incluir permissões que a sua função atual não possui
|
elevated: não pode incluir permissões que a sua função atual não possui
|
||||||
|
own_role: não pode ser alterado com a sua função atual
|
||||||
position:
|
position:
|
||||||
elevated: não pode ser maior que o da sua função atual
|
elevated: não pode ser maior que o da sua função atual
|
||||||
|
own_role: não pode ser alterado com a sua função atual
|
||||||
|
|
|
@ -44,3 +44,4 @@ ru:
|
||||||
attributes:
|
attributes:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: включить разрешения, небезопасные для базовой роли
|
dangerous: включить разрешения, небезопасные для базовой роли
|
||||||
|
own_role: невозможно изменить с вашей текущей ролью
|
||||||
|
|
|
@ -45,5 +45,7 @@ sl:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: vključi pravice, ki niso varne za osnovno vlogo
|
dangerous: vključi pravice, ki niso varne za osnovno vlogo
|
||||||
elevated: ni mogoče vključiti pravic, ki jih vaša trenutna vloga ne vsebuje
|
elevated: ni mogoče vključiti pravic, ki jih vaša trenutna vloga ne vsebuje
|
||||||
|
own_role: ni mogoče spremeniti z vašo trenutno vlogo
|
||||||
position:
|
position:
|
||||||
elevated: ne more biti višje od vaše trenutne vloge
|
elevated: ne more biti višje od vaše trenutne vloge
|
||||||
|
own_role: ni mogoče spremeniti z vašo trenutno vlogo
|
||||||
|
|
|
@ -45,5 +45,7 @@ sq:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: përfshi leje që s’janë të parrezik për rolin bazë
|
dangerous: përfshi leje që s’janë të parrezik për rolin bazë
|
||||||
elevated: s’mund të përfshijë leje të cilat roli juaj i tanishëm s’i përfshin
|
elevated: s’mund të përfshijë leje të cilat roli juaj i tanishëm s’i përfshin
|
||||||
|
own_role: s’mund të ndryshohet me rolin tuaj të tanishëm
|
||||||
position:
|
position:
|
||||||
elevated: s’mund të jetë më i lartë sesa roli juaj i tanishëm
|
elevated: s’mund të jetë më i lartë sesa roli juaj i tanishëm
|
||||||
|
own_role: s’mund të ndryshohet me rolin tuaj të tanishëm
|
||||||
|
|
|
@ -38,3 +38,12 @@ th:
|
||||||
email:
|
email:
|
||||||
blocked: ใช้ผู้ให้บริการอีเมลที่ไม่ได้รับอนุญาต
|
blocked: ใช้ผู้ให้บริการอีเมลที่ไม่ได้รับอนุญาต
|
||||||
unreachable: ดูเหมือนว่าจะไม่มีอยู่
|
unreachable: ดูเหมือนว่าจะไม่มีอยู่
|
||||||
|
role_id:
|
||||||
|
elevated: ไม่สามารถสูงกว่าบทบาทปัจจุบันของคุณ
|
||||||
|
user_role:
|
||||||
|
attributes:
|
||||||
|
permissions_as_keys:
|
||||||
|
dangerous: รวมสิทธิ์ที่ไม่ปลอดภัยสำหรับบทบาทพื้นฐาน
|
||||||
|
elevated: ไม่สามารถรวบรวมสิทธิ์ในบทบาทปัจจุบันของคุณไม่ได้
|
||||||
|
position:
|
||||||
|
elevated: ไม่สามารถสูงกว่าบทบาทปัจจุบันของคุณ
|
||||||
|
|
|
@ -45,5 +45,7 @@ uk:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: включити небезпечні для базової ролі дозволи
|
dangerous: включити небезпечні для базової ролі дозволи
|
||||||
elevated: не можна включити права, якими не володіє ваша поточна роль
|
elevated: не можна включити права, якими не володіє ваша поточна роль
|
||||||
|
own_role: не можна змінити у вашій поточній ролі
|
||||||
position:
|
position:
|
||||||
elevated: не може бути вищою за поточну роль
|
elevated: не може бути вищою за поточну роль
|
||||||
|
own_role: не можна змінити у вашій поточній ролі
|
||||||
|
|
|
@ -25,6 +25,10 @@ zh-CN:
|
||||||
attributes:
|
attributes:
|
||||||
url:
|
url:
|
||||||
invalid: 不是有效的 URL。
|
invalid: 不是有效的 URL。
|
||||||
|
doorkeeper/application:
|
||||||
|
attributes:
|
||||||
|
website:
|
||||||
|
invalid: 网址无效
|
||||||
status:
|
status:
|
||||||
attributes:
|
attributes:
|
||||||
reblog:
|
reblog:
|
||||||
|
@ -34,3 +38,13 @@ zh-CN:
|
||||||
email:
|
email:
|
||||||
blocked: 使用了被封禁的电子邮件提供商
|
blocked: 使用了被封禁的电子邮件提供商
|
||||||
unreachable: 似乎不存在
|
unreachable: 似乎不存在
|
||||||
|
role_id:
|
||||||
|
elevated: 不能高于您当前的角色
|
||||||
|
user_role:
|
||||||
|
attributes:
|
||||||
|
permissions_as_keys:
|
||||||
|
dangerous: 包含对基本角色不安全的权限
|
||||||
|
elevated: 不能包含您当前角色不拥有的权限
|
||||||
|
own_role: 无法以您当前的身份更改
|
||||||
|
position:
|
||||||
|
elevated: 不能高于您当前的角色
|
||||||
|
|
|
@ -45,5 +45,7 @@ zh-TW:
|
||||||
permissions_as_keys:
|
permissions_as_keys:
|
||||||
dangerous: 包含對基本角色不安全的權限
|
dangerous: 包含對基本角色不安全的權限
|
||||||
elevated: 不能包含您目前角色不具備的權限
|
elevated: 不能包含您目前角色不具備的權限
|
||||||
|
own_role: 無法被您目前的角色更改
|
||||||
position:
|
position:
|
||||||
elevated: 不能高於您目前的角色
|
elevated: 不能高於您目前的角色
|
||||||
|
own_role: 無法被您目前的角色更改
|
||||||
|
|
|
@ -7,7 +7,7 @@ ko:
|
||||||
send_paranoid_instructions: 당신의 이메일이 우리의 DB에 있을 경우 몇 분 이내로 확인 메일이 발송 됩니다. 이메일을 받지 못 한 경우, 스팸 폴더를 확인하세요.
|
send_paranoid_instructions: 당신의 이메일이 우리의 DB에 있을 경우 몇 분 이내로 확인 메일이 발송 됩니다. 이메일을 받지 못 한 경우, 스팸 폴더를 확인하세요.
|
||||||
failure:
|
failure:
|
||||||
already_authenticated: 이미 로그인 된 상태입니다.
|
already_authenticated: 이미 로그인 된 상태입니다.
|
||||||
inactive: 계정이 활성화 되지 않았습니다.
|
inactive: 계정이 아직 활성화 되지 않았습니다.
|
||||||
invalid: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다.
|
invalid: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다.
|
||||||
last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다.
|
last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다.
|
||||||
locked: 계정이 잠겼습니다.
|
locked: 계정이 잠겼습니다.
|
||||||
|
|
|
@ -81,16 +81,25 @@ th:
|
||||||
errors:
|
errors:
|
||||||
messages:
|
messages:
|
||||||
access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ
|
access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ
|
||||||
|
credential_flow_not_configured: การไหลของข้อมูลรับรองรหัสผ่านเจ้าของทรัพยากรล้มเหลวเนื่องจาก Doorkeeper.configure.resource_owner_from_credentials ไม่ได้ถูกกำหนดค่า
|
||||||
|
invalid_client: การตรวจสอบสิทธิ์ไคลเอ็นต์ล้มเหลวเนื่องจากไคลเอ็นต์ที่ไม่รู้จัก ไม่รวมการตรวจสอบไคลเอ็นต์ หรือวิธีการตรวจสอบสิทธิ์ที่ไม่รองรับ
|
||||||
|
invalid_grant: การให้สิทธิ์ที่ระบุไม่ถูกต้อง หมดอายุ เพิกถอน ไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการให้สิทธิ์ หรือออกให้ไคลเอ็นต์อื่น
|
||||||
invalid_redirect_uri: URI การเปลี่ยนเส้นทางที่รวมอยู่ไม่ถูกต้อง
|
invalid_redirect_uri: URI การเปลี่ยนเส้นทางที่รวมอยู่ไม่ถูกต้อง
|
||||||
invalid_request:
|
invalid_request:
|
||||||
missing_param: 'พารามิเตอร์ที่จำเป็นขาดหายไป: %{value}'
|
missing_param: 'พารามิเตอร์ที่จำเป็นขาดหายไป: %{value}'
|
||||||
|
request_not_authorized: คำขอต้องได้รับอนุญาต พารามิเตอร์ที่จำเป็นสำหรับการให้สิทธิ์คำขอขาดหายไปหรือไม่ถูกต้อง
|
||||||
|
unknown: คำขอไม่มีพารามิเตอร์ที่จำเป็น มีค่าพารามิเตอร์ที่ไม่รองรับ หรืออยู่ในรูปแบบที่ไม่ถูกต้อง
|
||||||
|
invalid_resource_owner: ข้อมูลรับรองเจ้าของทรัพยากรที่ระบุไม่ถูกต้อง หรือไม่พบเจ้าของทรัพยากร
|
||||||
invalid_scope: ขอบเขตที่ขอไม่ถูกต้อง ไม่รู้จัก หรือผิดรูปแบบ
|
invalid_scope: ขอบเขตที่ขอไม่ถูกต้อง ไม่รู้จัก หรือผิดรูปแบบ
|
||||||
invalid_token:
|
invalid_token:
|
||||||
expired: โทเคนการเข้าถึงหมดอายุแล้ว
|
expired: โทเคนการเข้าถึงหมดอายุแล้ว
|
||||||
revoked: เพิกถอนโทเคนการเข้าถึงแล้ว
|
revoked: เพิกถอนโทเคนการเข้าถึงแล้ว
|
||||||
unknown: โทเคนการเข้าถึงไม่ถูกต้อง
|
unknown: โทเคนการเข้าถึงไม่ถูกต้อง
|
||||||
resource_owner_authenticator_not_configured: การค้นหาเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_authenticator
|
resource_owner_authenticator_not_configured: การค้นหาเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_authenticator
|
||||||
|
server_error: เซิร์ฟเวอร์การให้สิทธิ์พบสภาวะที่ไม่คาดคิดซึ่งทำให้ไม่สามารถดำเนินการตามคำขอได้
|
||||||
|
temporarily_unavailable: ขณะนี้เซิร์ฟเวอร์การให้สิทธิ์ไม่สามารถจัดการตามคำขอได้ เนื่องจากการโอเวอร์โหลดหรือมีการบำรุงรักษาเซิร์ฟเวอร์ชั่วคราว
|
||||||
unauthorized_client: ไคลเอ็นต์ไม่ได้รับอนุญาตให้ทำคำขอนี้โดยใช้วิธีการนี้
|
unauthorized_client: ไคลเอ็นต์ไม่ได้รับอนุญาตให้ทำคำขอนี้โดยใช้วิธีการนี้
|
||||||
|
unsupported_grant_type: ประเภทการให้สิทธิ์ไม่ได้รับการสนับสนุนโดยเซิร์ฟเวอร์การให้สิทธิ์นะ
|
||||||
unsupported_response_type: เซิร์ฟเวอร์การอนุญาตไม่รองรับชนิดการตอบสนองนี้
|
unsupported_response_type: เซิร์ฟเวอร์การอนุญาตไม่รองรับชนิดการตอบสนองนี้
|
||||||
flash:
|
flash:
|
||||||
applications:
|
applications:
|
||||||
|
|
|
@ -2,15 +2,15 @@
|
||||||
eo:
|
eo:
|
||||||
about:
|
about:
|
||||||
about_hashtag_html: Ĉi tiuj estas la publikaj mesaĝoj markitaj per <strong>#%{hashtag}</strong>. Vi povas interagi kun ili se vi havas konton ie ajn en la fediverse.
|
about_hashtag_html: Ĉi tiuj estas la publikaj mesaĝoj markitaj per <strong>#%{hashtag}</strong>. Vi povas interagi kun ili se vi havas konton ie ajn en la fediverse.
|
||||||
about_mastodon_html: Mastodon estas socia reto bazita sur malfermitaj retaj protokoloj kaj sur libera malfermitkoda programo. Ĝi estas sencentra kiel retmesaĝoj.
|
about_mastodon_html: 'Mastodon estas socia retejo de la estonteco: sen reklamo, sen kompania gvato, etika dezajno kaj malcentraligo! Vi regu viajn datumojn kun Mastodon!'
|
||||||
about_this: Pri
|
about_this: Pri
|
||||||
active_count_after: aktiva
|
active_count_after: aktivaj
|
||||||
active_footnote: Monate Aktivaj Uzantoj (MAU)
|
active_footnote: Monate Aktivaj Uzantoj (MAU)
|
||||||
administered_by: 'Administrata de:'
|
administered_by: 'Administrata de:'
|
||||||
api: API
|
api: API
|
||||||
apps: Poŝtelefonaj aplikaĵoj
|
apps: Poŝtelefonaj aplikaĵoj
|
||||||
apps_platforms: Uzu Mastodon ĉe iOS, Android kaj aliajn platformojn
|
apps_platforms: Uzu Mastodon de iOS, Android, kaj aliaj substratoj
|
||||||
browse_directory: Esplori profilujo kaj filtri per interesoj
|
browse_directory: Esplori la profilujon kaj filtri en interesoj
|
||||||
browse_local_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon
|
browse_local_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon
|
||||||
browse_public_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon
|
browse_public_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon
|
||||||
contact: Kontakto
|
contact: Kontakto
|
||||||
|
@ -40,11 +40,12 @@ eo:
|
||||||
unavailable_content: Moderigitaj serviloj
|
unavailable_content: Moderigitaj serviloj
|
||||||
unavailable_content_description:
|
unavailable_content_description:
|
||||||
domain: Servilo
|
domain: Servilo
|
||||||
reason: 'Kialo:'
|
reason: Motivo
|
||||||
rejecting_media: 'La aŭdovidaj dosieroj de ĉi tiuj serviloj ne estos prilaboritaj aŭ stokitaj, kaj neniu bildeto estos montrita, do necesas klaki permane por vidi la originalan afiŝon:'
|
rejecting_media: 'La aŭdovidaj dosieroj de ĉi tiuj serviloj ne estos prilaboritaj aŭ stokitaj, kaj neniu bildeto estos montrita, do necesas klaki permane por vidi la originalan afiŝon:'
|
||||||
rejecting_media_title: Filtritaj aŭdovidaĵoj
|
rejecting_media_title: Filtritaj aŭdovidaĵoj
|
||||||
silenced: 'La mesaĝoj de tiuj serviloj estos kaŝitaj de publikaj templinio kaj konversacioj, kaj la interagoj de la uzantoj donas neniun sciigon, ĝis vi sekvos ilin:'
|
silenced: 'La mesaĝoj de tiuj serviloj estos kaŝitaj de publikaj templinio kaj konversacioj, kaj la interagoj de la uzantoj donas neniun sciigon, ĝis vi sekvos ilin:'
|
||||||
silenced_title: Silentigitaj serviloj
|
silenced_title: Limigitaj serviloj
|
||||||
|
suspended: 'Neniu datumo de ĉi tiuj serviloj estos prilaboritaj, stokitaj, aŭ interŝanĝitaj, neeble fari interagon aŭ komunikon kun la uzantoj de ĉi tiuj serviloj:'
|
||||||
suspended_title: Suspenditaj serviloj
|
suspended_title: Suspenditaj serviloj
|
||||||
user_count_after:
|
user_count_after:
|
||||||
one: uzanto
|
one: uzanto
|
||||||
|
@ -154,8 +155,9 @@ eo:
|
||||||
push_subscription_expires: Eksvalidiĝo de la abono al PuSH
|
push_subscription_expires: Eksvalidiĝo de la abono al PuSH
|
||||||
redownload: Aktualigi profilon
|
redownload: Aktualigi profilon
|
||||||
reject: Malakcepti
|
reject: Malakcepti
|
||||||
remove_avatar: Forigi la rolfigron
|
remove_avatar: Forigi la rolfiguron
|
||||||
remove_header: Forigi kapan bildon
|
remove_header: Forigi kapan bildon
|
||||||
|
removed_avatar_msg: La bildo de la rolfiguro de %{username} estas sukcese forigita
|
||||||
resend_confirmation:
|
resend_confirmation:
|
||||||
already_confirmed: Ĉi tiu uzanto jam estas konfirmita
|
already_confirmed: Ĉi tiu uzanto jam estas konfirmita
|
||||||
send: Resendi konfirman retmesaĝon
|
send: Resendi konfirman retmesaĝon
|
||||||
|
@ -227,7 +229,7 @@ eo:
|
||||||
memorialize_account: Memorigu Konton
|
memorialize_account: Memorigu Konton
|
||||||
promote_user: Promocii Uzanton
|
promote_user: Promocii Uzanton
|
||||||
reject_user: Malakcepti Uzanton
|
reject_user: Malakcepti Uzanton
|
||||||
remove_avatar_user: Forigi la rolfigron
|
remove_avatar_user: Forigi la rolfiguron
|
||||||
reopen_report: Remalfermi signalon
|
reopen_report: Remalfermi signalon
|
||||||
reset_password_user: Restarigi pasvorton
|
reset_password_user: Restarigi pasvorton
|
||||||
resolve_report: Solvitaj reporto
|
resolve_report: Solvitaj reporto
|
||||||
|
@ -518,6 +520,8 @@ eo:
|
||||||
view_profile: Vidi profilon
|
view_profile: Vidi profilon
|
||||||
roles:
|
roles:
|
||||||
everyone: Implicitaj permesoj
|
everyone: Implicitaj permesoj
|
||||||
|
privileges:
|
||||||
|
delete_user_data: Forviŝi la datumojn de la uzanto
|
||||||
rules:
|
rules:
|
||||||
add_new: Aldoni regulon
|
add_new: Aldoni regulon
|
||||||
delete: Forigi
|
delete: Forigi
|
||||||
|
@ -1117,7 +1121,7 @@ eo:
|
||||||
ios: iOS
|
ios: iOS
|
||||||
linux: Linux
|
linux: Linux
|
||||||
mac: Mac
|
mac: Mac
|
||||||
other: nekonata platformo
|
other: nekonata substrato
|
||||||
windows: Windows
|
windows: Windows
|
||||||
windows_mobile: Windows Mobile
|
windows_mobile: Windows Mobile
|
||||||
windows_phone: Windows Phone
|
windows_phone: Windows Phone
|
||||||
|
@ -1262,7 +1266,7 @@ eo:
|
||||||
suspend: Konto suspendita
|
suspend: Konto suspendita
|
||||||
welcome:
|
welcome:
|
||||||
edit_profile_action: Agordi profilon
|
edit_profile_action: Agordi profilon
|
||||||
edit_profile_step: Vi povas proprigi vian profilon per alŝuto de profilbildo, fonbildo, ŝanĝo de via afiŝita nomo kaj pli. Se vi ŝatus kontroli novajn sekvantojn antaŭ ol ili rajtas sekvi vin, vi povas ŝlosi vian konton.
|
edit_profile_step: Vi povas personecigi vian profilon en alŝuto de rolfiguro, paĝokapa bildo, en ŝanĝo de via vidiga nomo kaj pli. Se vi volas ekzameni novajn sekvantojn antaŭ ol permesi al ili aboni vin, vi povas agordi vian konton kiel privata.
|
||||||
explanation: Jen kelkaj konsiloj por helpi vin komenci
|
explanation: Jen kelkaj konsiloj por helpi vin komenci
|
||||||
final_action: Ekmesaĝi
|
final_action: Ekmesaĝi
|
||||||
final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka templinio kaj en la kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions.'
|
final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka templinio kaj en la kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions.'
|
||||||
|
|
|
@ -538,7 +538,7 @@ is:
|
||||||
public_comment: Opinber athugasemd
|
public_comment: Opinber athugasemd
|
||||||
purge: Henda
|
purge: Henda
|
||||||
purge_description_html: Ef þú heldur að þetta lén sé farið endanlega af netinu, geturðu eytt öllum færslum aðganga og tengdum gögnum frá þessu léni úr gagnageymslum þínum. Þetta gæti tekið þó nokkra stund.
|
purge_description_html: Ef þú heldur að þetta lén sé farið endanlega af netinu, geturðu eytt öllum færslum aðganga og tengdum gögnum frá þessu léni úr gagnageymslum þínum. Þetta gæti tekið þó nokkra stund.
|
||||||
title: Samband
|
title: Netþjónasambönd
|
||||||
total_blocked_by_us: Útilokað af okkur
|
total_blocked_by_us: Útilokað af okkur
|
||||||
total_followed_by_them: Fylgt af þeim
|
total_followed_by_them: Fylgt af þeim
|
||||||
total_followed_by_us: Fylgt af okkur
|
total_followed_by_us: Fylgt af okkur
|
||||||
|
@ -681,10 +681,30 @@ is:
|
||||||
manage_appeals_description: Leyfir notendum að yfirfara áfrýjanir vegna aðgerða umsjónarfólks
|
manage_appeals_description: Leyfir notendum að yfirfara áfrýjanir vegna aðgerða umsjónarfólks
|
||||||
manage_blocks: Sýsla með útilokanir
|
manage_blocks: Sýsla með útilokanir
|
||||||
manage_blocks_description: Leyfir notendum að loka á tölvupóstþjónustur og IP-vistföng
|
manage_blocks_description: Leyfir notendum að loka á tölvupóstþjónustur og IP-vistföng
|
||||||
|
manage_custom_emojis: Sýsla með sérsniðin tjáningartákn
|
||||||
|
manage_custom_emojis_description: Leyfir notendum að sýsla með sérsniðin tjáningartákn á netþjóninum
|
||||||
|
manage_federation: Sýsla með netþjónasambönd
|
||||||
|
manage_federation_description: Leyfir notendum að loka á eða leyfa samþættingu við önnur lén (federation) og stýra afhendingu skilaboða
|
||||||
|
manage_invites: Sýsla með boðsgesti
|
||||||
|
manage_invites_description: Leyfir notendum að vafra um og gera boðstengla óvirka
|
||||||
|
manage_reports: Sýsla með kærur
|
||||||
|
manage_reports_description: Leyfir notendum að yfirfara kærur og framkvæma umsýsluaðgerðir sem byggjast á þeim
|
||||||
|
manage_roles: Sýsla með hlutverk
|
||||||
|
manage_roles_description: Leyfir notendum að sýsla með hlutverk og úthluta hlutverkum sem eru réttminni en þeirra eigið
|
||||||
manage_rules: Sýsla með reglur
|
manage_rules: Sýsla með reglur
|
||||||
manage_rules_description: Leyfir notendum að breyta reglum á netþjóninum
|
manage_rules_description: Leyfir notendum að breyta reglum á netþjóninum
|
||||||
manage_settings: Sýsla með stillingar
|
manage_settings: Sýsla með stillingar
|
||||||
manage_settings_description: Leyfir notendum að breyta stillingum vefsvæðisins
|
manage_settings_description: Leyfir notendum að breyta stillingum vefsvæðisins
|
||||||
|
manage_taxonomies: Sýsla með vægi efnis
|
||||||
|
manage_taxonomies_description: Leyfir notendum að yfirfara vinsælt efni og uppfæra stillingar myllumerkja
|
||||||
|
manage_user_access: Sýsla með notendaaðgang
|
||||||
|
manage_user_access_description: Leyfir notendum að gera tveggja-þátta auðkenningu annarra notenda óvirka, breyta tölvupóstfangi þeirra og endurstilla lykilorð
|
||||||
|
manage_users: Sýsla með notendur
|
||||||
|
manage_users_description: Leyfir notendum að sýsla með nánari upplýsingar um aðra notendur og framkvæma umsýsluaðgerðir gagnvart þeim
|
||||||
|
manage_webhooks: Sýsla með Webhook-vefkrækjur
|
||||||
|
manage_webhooks_description: Leyfir notendum að setja upp webhook-vefkrækjur vagna stjórnunartengdra atburða
|
||||||
|
view_audit_log: Skoða atvikaskráningu
|
||||||
|
view_audit_log_description: Leyfir notendum að skoða feril stjórnunaraðgerða á netþjóninum
|
||||||
view_dashboard: Skoða stjórnborð
|
view_dashboard: Skoða stjórnborð
|
||||||
view_dashboard_description: Leyfir notendum að skoða stjórnborðið og sjá ýmsar mælingar
|
view_dashboard_description: Leyfir notendum að skoða stjórnborðið og sjá ýmsar mælingar
|
||||||
view_devops: Kerfisstjórar
|
view_devops: Kerfisstjórar
|
||||||
|
|
|
@ -648,8 +648,10 @@ ko:
|
||||||
moderation: 중재
|
moderation: 중재
|
||||||
special: 특수
|
special: 특수
|
||||||
delete: 삭제
|
delete: 삭제
|
||||||
|
description_html: "<strong>사용자 역할</strong>을 통해, 사용자들이 마스토돈의 어떤 기능과 영역에 접근할 수 있을지 설정할 수 있습니다."
|
||||||
edit: "%{name} 역할 수정"
|
edit: "%{name} 역할 수정"
|
||||||
everyone: 기본 권한
|
everyone: 기본 권한
|
||||||
|
everyone_full_description_html: 이것은 <strong>모든 사용자</strong>에게 적용될 <strong>기본 역할</strong>이며, 역할을 지정하지 않아도 적용됩니다. 다른 모든 역할들은 여기에서 권한을 상속합니다.
|
||||||
permissions_count:
|
permissions_count:
|
||||||
other: "%{count} 개의 권한"
|
other: "%{count} 개의 권한"
|
||||||
privileges:
|
privileges:
|
||||||
|
|
|
@ -725,6 +725,14 @@ pl:
|
||||||
manage_taxonomies: Zarządzaj taksonomiami
|
manage_taxonomies: Zarządzaj taksonomiami
|
||||||
manage_taxonomies_description: Pozwala użytkownikom przeglądać najpopularniejsze treści i aktualizować ustawienia hasztagów
|
manage_taxonomies_description: Pozwala użytkownikom przeglądać najpopularniejsze treści i aktualizować ustawienia hasztagów
|
||||||
manage_user_access: Zarządzaj dostępem użytkownika
|
manage_user_access: Zarządzaj dostępem użytkownika
|
||||||
|
manage_users: Zarządzanie użytkownikami
|
||||||
|
manage_webhooks: Zarządzanie webhookami
|
||||||
|
view_audit_log: Wyświetl dziennik zdarzeń
|
||||||
|
view_audit_log_description: Pozwala użytkownikom zobaczyć historię działań administracyjnych na serwerze
|
||||||
|
view_dashboard: Wyświetl panel
|
||||||
|
view_devops: Devops
|
||||||
|
view_devops_description: Pozwala użytkownikom na dostęp do paneli Sidekiq i pgHero
|
||||||
|
title: Role
|
||||||
rules:
|
rules:
|
||||||
add_new: Dodaj zasadę
|
add_new: Dodaj zasadę
|
||||||
delete: Usuń
|
delete: Usuń
|
||||||
|
|
|
@ -98,9 +98,11 @@ is:
|
||||||
chosen_languages: Þegar merkt er við þetta, birtast einungis færslur á völdum tungumálum á opinberum tímalínum
|
chosen_languages: Þegar merkt er við þetta, birtast einungis færslur á völdum tungumálum á opinberum tímalínum
|
||||||
role: Hlutverk stýrir hvaða heimildir notandinn hefur
|
role: Hlutverk stýrir hvaða heimildir notandinn hefur
|
||||||
user_role:
|
user_role:
|
||||||
|
color: Litur sem notaður er fyrir hlutverkið allsstaðar í viðmótinu, sem RGB-gildi á hex-sniði
|
||||||
highlighted: Þetta gerir hlutverk sýnilegt opinberlega
|
highlighted: Þetta gerir hlutverk sýnilegt opinberlega
|
||||||
name: Opinbert heiti hlutverks, ef birta á hlutverk sem merki
|
name: Opinbert heiti hlutverks, ef birta á hlutverk sem merki
|
||||||
permissions_as_keys: Notendur með þetta hlutverk munu hafa aðgang að...
|
permissions_as_keys: Notendur með þetta hlutverk munu hafa aðgang að...
|
||||||
|
position: Rétthærra hlutverk ákvarðar lausn árekstra í ákveðnum tilfellum. Sumar aðgerðir er aðeins hægt að framkvæma á hlutverk með lægri forgangi
|
||||||
webhook:
|
webhook:
|
||||||
events: Veldu atburði sem á að senda
|
events: Veldu atburði sem á að senda
|
||||||
url: Hvert atburðir verða sendir
|
url: Hvert atburðir verða sendir
|
||||||
|
|
|
@ -102,6 +102,7 @@ ko:
|
||||||
highlighted: 이 역할이 공개적으로 보이도록 설정합니다
|
highlighted: 이 역할이 공개적으로 보이도록 설정합니다
|
||||||
name: 역할이 배지로 표시될 경우, 그 역할에 대한 공개적인 이름입니다
|
name: 역할이 배지로 표시될 경우, 그 역할에 대한 공개적인 이름입니다
|
||||||
permissions_as_keys: 이 역할을 가진 사용자는 다음에 접근할 수 있게 됩니다...
|
permissions_as_keys: 이 역할을 가진 사용자는 다음에 접근할 수 있게 됩니다...
|
||||||
|
position: 특정 상황에서 충돌이 발생할 경우 더 높은 역할이 충돌을 해결합니다. 특정 작업은 우선순위가 낮은 역할에 대해서만 수행될 수 있습니다
|
||||||
webhook:
|
webhook:
|
||||||
events: 전송할 이벤트를 선택하세요
|
events: 전송할 이벤트를 선택하세요
|
||||||
url: 이벤트가 어디로 전송될 지
|
url: 이벤트가 어디로 전송될 지
|
||||||
|
|
|
@ -234,6 +234,14 @@ pl:
|
||||||
name: Hashtag
|
name: Hashtag
|
||||||
trendable: Pozwól na wyświetlanie tego hashtagu w „Na czasie”
|
trendable: Pozwól na wyświetlanie tego hashtagu w „Na czasie”
|
||||||
usable: Pozwól na umieszczanie tego hashtagu we wpisach
|
usable: Pozwól na umieszczanie tego hashtagu we wpisach
|
||||||
|
user:
|
||||||
|
role: Rola
|
||||||
|
user_role:
|
||||||
|
color: Kolor odznaki
|
||||||
|
highlighted: Wyświetl rolę jako odznakę na profilach użytkowników
|
||||||
|
name: Nazwa
|
||||||
|
permissions_as_keys: Uprawnienia
|
||||||
|
position: Priorytet
|
||||||
webhook:
|
webhook:
|
||||||
events: Włączone zdarzenia
|
events: Włączone zdarzenia
|
||||||
url: Endpoint URL
|
url: Endpoint URL
|
||||||
|
|
|
@ -64,9 +64,15 @@ th:
|
||||||
domain_allow:
|
domain_allow:
|
||||||
domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และจะประมวลผลและจัดเก็บข้อมูลขาเข้าจากโดเมน
|
domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และจะประมวลผลและจัดเก็บข้อมูลขาเข้าจากโดเมน
|
||||||
email_domain_block:
|
email_domain_block:
|
||||||
|
domain: อาจเป็นชื่อโดเมนที่แสดงในที่อยู่อีเมลหรือทะเบียน MX ที่ใช้อยู่ พวกเขาอาจจะได้รับการตรวจสอบเมื่อมีการสมัคร
|
||||||
with_dns_records: จะทำการพยายามแปลงที่อยู่ระเบียน DNS ของโดเมนที่กำหนดและจะปิดกั้นผลลัพธ์เช่นกัน
|
with_dns_records: จะทำการพยายามแปลงที่อยู่ระเบียน DNS ของโดเมนที่กำหนดและจะปิดกั้นผลลัพธ์เช่นกัน
|
||||||
featured_tag:
|
featured_tag:
|
||||||
name: 'คุณอาจต้องการใช้หนึ่งในนี้:'
|
name: 'คุณอาจต้องการใช้หนึ่งในนี้:'
|
||||||
|
filters:
|
||||||
|
action: เลือกการดำเนินการเมื่อโพสต์ตรงกับตัวกรอง
|
||||||
|
actions:
|
||||||
|
hide: ซ่อนเนื้อหาที่ถูกกรองโดยสิ้นเชิง ทำตัวราวกับว่าไม่มีอยู่จริง
|
||||||
|
warn: ซ่อนเนื้อหาที่ถูกกรองไว้ด้านหลังคำเตือนที่กล่าวถึงชื่อตัวกรอง
|
||||||
form_challenge:
|
form_challenge:
|
||||||
current_password: คุณกำลังเข้าสู่พื้นที่ปลอดภัย
|
current_password: คุณกำลังเข้าสู่พื้นที่ปลอดภัย
|
||||||
imports:
|
imports:
|
||||||
|
@ -75,6 +81,7 @@ th:
|
||||||
text: นี่จะช่วยให้เราตรวจทานใบสมัครของคุณ
|
text: นี่จะช่วยให้เราตรวจทานใบสมัครของคุณ
|
||||||
ip_block:
|
ip_block:
|
||||||
comment: ไม่จำเป็น จดจำเหตุผลที่คุณเพิ่มกฎนี้
|
comment: ไม่จำเป็น จดจำเหตุผลที่คุณเพิ่มกฎนี้
|
||||||
|
expires_in: ที่อยู่ IP เป็นทรัพยากร บางครั้งมีการแบ่งปันและมักเปลี่ยนมือ ด้วยเหตุผลนี้ จึงไม่แนะนำให้บล็อก IP
|
||||||
ip: ป้อนที่อยู่ IPv4 หรือ IPv6 คุณสามารถปิดกั้นทั้งช่วงได้โดยใช้ไวยากรณ์ CIDR ระวังอย่าล็อคตัวคุณเองออก!
|
ip: ป้อนที่อยู่ IPv4 หรือ IPv6 คุณสามารถปิดกั้นทั้งช่วงได้โดยใช้ไวยากรณ์ CIDR ระวังอย่าล็อคตัวคุณเองออก!
|
||||||
severities:
|
severities:
|
||||||
no_access: ปิดกั้นการเข้าถึงทรัพยากรทั้งหมด
|
no_access: ปิดกั้นการเข้าถึงทรัพยากรทั้งหมด
|
||||||
|
@ -84,12 +91,21 @@ th:
|
||||||
text: อธิบายกฎหรือข้อกำหนดสำหรับผู้ใช้ในเซิร์ฟเวอร์นี้ พยายามทำให้กฎหรือข้อกำหนดสั้นและเรียบง่าย
|
text: อธิบายกฎหรือข้อกำหนดสำหรับผู้ใช้ในเซิร์ฟเวอร์นี้ พยายามทำให้กฎหรือข้อกำหนดสั้นและเรียบง่าย
|
||||||
sessions:
|
sessions:
|
||||||
otp: 'ป้อนรหัสสองปัจจัยที่สร้างโดยแอปในโทรศัพท์ของคุณหรือใช้หนึ่งในรหัสกู้คืนของคุณ:'
|
otp: 'ป้อนรหัสสองปัจจัยที่สร้างโดยแอปในโทรศัพท์ของคุณหรือใช้หนึ่งในรหัสกู้คืนของคุณ:'
|
||||||
|
webauthn: หากเป็นคีย์ USB อย่าลืมเสียบไว้ และหากจำเป็น ให้แตะคีย์นั้นไว้นะ
|
||||||
tag:
|
tag:
|
||||||
name: คุณสามารถเปลี่ยนได้เฉพาะตัวพิมพ์ใหญ่เล็กของตัวอักษรเท่านั้น ตัวอย่างเช่น เพื่อทำให้ตัวอักษรอ่านได้ง่ายขึ้น
|
name: คุณสามารถเปลี่ยนได้เฉพาะตัวพิมพ์ใหญ่เล็กของตัวอักษรเท่านั้น ตัวอย่างเช่น เพื่อทำให้ตัวอักษรอ่านได้ง่ายขึ้น
|
||||||
user:
|
user:
|
||||||
chosen_languages: เมื่อกาเครื่องหมาย จะแสดงเฉพาะโพสต์ในภาษาที่เลือกในเส้นเวลาสาธารณะเท่านั้น
|
chosen_languages: เมื่อกาเครื่องหมาย จะแสดงเฉพาะโพสต์ในภาษาที่เลือกในเส้นเวลาสาธารณะเท่านั้น
|
||||||
|
role: ควบคุมบทบาท ว่าผู้ใช้มีสิทธิใดบ้าง
|
||||||
|
user_role:
|
||||||
|
color: สีที่จะใช้สำหรับบทบาทตลอดทั้ง UI เป็น RGB ในรูปแบบฐานสิบหก
|
||||||
|
highlighted: ทำให้บทบาทนี้ปรากฏต่อสู่สาธารณะ
|
||||||
|
name: ชื่อสาธารณะของบทบาท หากกำหนดบทบาทให้แสดงเป็นตราสัญลักษณ์
|
||||||
|
permissions_as_keys: ผู้ใช้ที่มีบทบาทนี้จะมีสิทธิ์เข้าถึง...
|
||||||
|
position: บทบาทที่สูงขึ้นอาจจะตัดสินใจแก้ไขข้อขัดแย้งในบางสถานการณ์ การดำเนินการบางอย่างสามารถทำได้เฉพาะกับบทบาทที่มีลำดับความสำคัญต่ำกว่า
|
||||||
webhook:
|
webhook:
|
||||||
events: เลือกเหตุการณ์ที่จะส่ง
|
events: เลือกเหตุการณ์ที่จะส่ง
|
||||||
|
url: กิจกรรมจะถูกส่งไปที่
|
||||||
labels:
|
labels:
|
||||||
account:
|
account:
|
||||||
fields:
|
fields:
|
||||||
|
@ -120,6 +136,8 @@ th:
|
||||||
scheduled_at: จัดกำหนดการเผยแพร่
|
scheduled_at: จัดกำหนดการเผยแพร่
|
||||||
starts_at: การเริ่มต้นเหตุการณ์
|
starts_at: การเริ่มต้นเหตุการณ์
|
||||||
text: ประกาศ
|
text: ประกาศ
|
||||||
|
appeal:
|
||||||
|
text: อธิบายว่าเหตุใดจึงควรกลับคำตัดสินนี้
|
||||||
defaults:
|
defaults:
|
||||||
autofollow: เชิญให้ติดตามบัญชีของคุณ
|
autofollow: เชิญให้ติดตามบัญชีของคุณ
|
||||||
avatar: ภาพประจำตัว
|
avatar: ภาพประจำตัว
|
||||||
|
@ -184,6 +202,10 @@ th:
|
||||||
with_dns_records: รวมระเบียน MX และ IP ของโดเมน
|
with_dns_records: รวมระเบียน MX และ IP ของโดเมน
|
||||||
featured_tag:
|
featured_tag:
|
||||||
name: แฮชแท็ก
|
name: แฮชแท็ก
|
||||||
|
filters:
|
||||||
|
actions:
|
||||||
|
hide: ซ่อนอย่างสมบูรณ์
|
||||||
|
warn: ซ่อนพร้อมคำเตือน
|
||||||
interactions:
|
interactions:
|
||||||
must_be_follower: ปิดกั้นการแจ้งเตือนจากผู้ที่ไม่ใช่ผู้ติดตาม
|
must_be_follower: ปิดกั้นการแจ้งเตือนจากผู้ที่ไม่ใช่ผู้ติดตาม
|
||||||
must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม
|
must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม
|
||||||
|
@ -220,9 +242,13 @@ th:
|
||||||
user:
|
user:
|
||||||
role: บทบาท
|
role: บทบาท
|
||||||
user_role:
|
user_role:
|
||||||
|
color: สีของตรา
|
||||||
|
highlighted: แสดงบทบาทเป็นเครื่องหมายบนโปรไฟล์ผู้ใช้
|
||||||
name: ชื่อ
|
name: ชื่อ
|
||||||
permissions_as_keys: สิทธิอนุญาต
|
permissions_as_keys: สิทธิอนุญาต
|
||||||
|
position: ระดับความสำคัญ
|
||||||
webhook:
|
webhook:
|
||||||
|
events: เปิดใช้งานอีเว้น
|
||||||
url: URL ปลายทาง
|
url: URL ปลายทาง
|
||||||
'no': ไม่
|
'no': ไม่
|
||||||
recommended: แนะนำ
|
recommended: แนะนำ
|
||||||
|
|
|
@ -68,6 +68,11 @@ zh-CN:
|
||||||
with_dns_records: Mastodon 会尝试解析所给域名的 DNS 记录,然后把解析结果一并封禁
|
with_dns_records: Mastodon 会尝试解析所给域名的 DNS 记录,然后把解析结果一并封禁
|
||||||
featured_tag:
|
featured_tag:
|
||||||
name: 你可能想要使用以下之一:
|
name: 你可能想要使用以下之一:
|
||||||
|
filters:
|
||||||
|
action: 选择在帖子匹配过滤器时要执行的操作
|
||||||
|
actions:
|
||||||
|
hide: 彻底屏蔽过滤内容,犹如它不曾存在过一般
|
||||||
|
warn: 在警告中提及过滤器标题后,隐藏过滤内容
|
||||||
form_challenge:
|
form_challenge:
|
||||||
current_password: 你正在进入安全区域
|
current_password: 你正在进入安全区域
|
||||||
imports:
|
imports:
|
||||||
|
@ -91,6 +96,16 @@ zh-CN:
|
||||||
name: 你只能改变字母的大小写,让它更易读
|
name: 你只能改变字母的大小写,让它更易读
|
||||||
user:
|
user:
|
||||||
chosen_languages: 仅选中语言的嘟文会出现在公共时间轴上(全不选则显示所有语言的嘟文)
|
chosen_languages: 仅选中语言的嘟文会出现在公共时间轴上(全不选则显示所有语言的嘟文)
|
||||||
|
role: 角色决定该用户拥有的权限
|
||||||
|
user_role:
|
||||||
|
color: 整个用户界面中,该角色使用的颜色,以RGB 十六进制格式
|
||||||
|
highlighted: 这使角色公开可见
|
||||||
|
name: 角色的公开名称,如果角色设置为展示的徽章
|
||||||
|
permissions_as_keys: 具有此角色的用户将有权访问...
|
||||||
|
position: 较高的角色决定在某些情况下解决冲突。某些行动只能对优先级较低的角色执行
|
||||||
|
webhook:
|
||||||
|
events: 选择要发送的事件
|
||||||
|
url: 事件将发送到哪个地点
|
||||||
labels:
|
labels:
|
||||||
account:
|
account:
|
||||||
fields:
|
fields:
|
||||||
|
@ -178,6 +193,7 @@ zh-CN:
|
||||||
setting_use_pending_items: 慢速模式
|
setting_use_pending_items: 慢速模式
|
||||||
severity: 级别
|
severity: 级别
|
||||||
sign_in_token_attempt: 安全码
|
sign_in_token_attempt: 安全码
|
||||||
|
title: 标题
|
||||||
type: 导入数据类型
|
type: 导入数据类型
|
||||||
username: 用户名
|
username: 用户名
|
||||||
username_or_email: 用户名或电子邮件地址
|
username_or_email: 用户名或电子邮件地址
|
||||||
|
@ -186,6 +202,10 @@ zh-CN:
|
||||||
with_dns_records: 包括该域名的 MX 记录和 IP 地址
|
with_dns_records: 包括该域名的 MX 记录和 IP 地址
|
||||||
featured_tag:
|
featured_tag:
|
||||||
name: 话题标签
|
name: 话题标签
|
||||||
|
filters:
|
||||||
|
actions:
|
||||||
|
hide: 完全隐藏
|
||||||
|
warn: 隐藏时显示警告信息
|
||||||
interactions:
|
interactions:
|
||||||
must_be_follower: 屏蔽来自未关注我的用户的通知
|
must_be_follower: 屏蔽来自未关注我的用户的通知
|
||||||
must_be_following: 屏蔽来自我未关注的用户的通知
|
must_be_following: 屏蔽来自我未关注的用户的通知
|
||||||
|
@ -219,6 +239,17 @@ zh-CN:
|
||||||
name: 话题标签
|
name: 话题标签
|
||||||
trendable: 允许在热门下显示此话题
|
trendable: 允许在热门下显示此话题
|
||||||
usable: 允许嘟文使用此话题标签
|
usable: 允许嘟文使用此话题标签
|
||||||
|
user:
|
||||||
|
role: 角色
|
||||||
|
user_role:
|
||||||
|
color: 徽章颜色
|
||||||
|
highlighted: 用户配置中以徽章显示角色
|
||||||
|
name: 名称
|
||||||
|
permissions_as_keys: 权限设置
|
||||||
|
position: 优先权
|
||||||
|
webhook:
|
||||||
|
events: 已启用事件
|
||||||
|
url: 端点网址
|
||||||
'no': 否
|
'no': 否
|
||||||
recommended: 推荐
|
recommended: 推荐
|
||||||
required:
|
required:
|
||||||
|
|
|
@ -22,6 +22,9 @@ th:
|
||||||
federation_hint_html: ด้วยบัญชีที่ %{instance} คุณจะสามารถติดตามผู้คนในเซิร์ฟเวอร์ Mastodon และอื่น ๆ
|
federation_hint_html: ด้วยบัญชีที่ %{instance} คุณจะสามารถติดตามผู้คนในเซิร์ฟเวอร์ Mastodon และอื่น ๆ
|
||||||
get_apps: ลองแอปมือถือ
|
get_apps: ลองแอปมือถือ
|
||||||
hosted_on: Mastodon ที่โฮสต์ที่ %{domain}
|
hosted_on: Mastodon ที่โฮสต์ที่ %{domain}
|
||||||
|
instance_actor_flash: 'บัญชีนี้เป็นนักแสดงเสมือนที่ใช้เพื่อเป็นตัวแทนของเซิร์ฟเวอร์เอง ไม่ใช่ผู้ใช้รายบุคคล แต่มันก็ถูกใช้เพื่อวัตถุประสงค์ในการรวมกลุ่มและไม่ควรถูกบล็อก เว้นแต่คุณต้องการบล็อกทั้งอินสแตนซ์นั้น ซึ่งในกรณีนี้คุณควรใช้บล็อกโดเมนนะ
|
||||||
|
|
||||||
|
'
|
||||||
learn_more: เรียนรู้เพิ่มเติม
|
learn_more: เรียนรู้เพิ่มเติม
|
||||||
logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username} ในปัจจุบัน
|
logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username} ในปัจจุบัน
|
||||||
logout_before_registering: คุณได้เข้าสู่ระบบอยู่แล้ว
|
logout_before_registering: คุณได้เข้าสู่ระบบอยู่แล้ว
|
||||||
|
@ -46,6 +49,7 @@ th:
|
||||||
silenced_title: เซิร์ฟเวอร์ที่จำกัดอยู่
|
silenced_title: เซิร์ฟเวอร์ที่จำกัดอยู่
|
||||||
suspended: 'จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์เหล่านี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์เหล่านี้เป็นไปไม่ได้:'
|
suspended: 'จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์เหล่านี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์เหล่านี้เป็นไปไม่ได้:'
|
||||||
suspended_title: เซิร์ฟเวอร์ที่ระงับอยู่
|
suspended_title: เซิร์ฟเวอร์ที่ระงับอยู่
|
||||||
|
unavailable_content_html: โดยทั่วไปแล้ว Mastodon อนุญาตให้คุณดูเนื้อหาและโต้ตอบกับผู้ใช้งานจากเซิร์ฟเวอร์อื่นใน fediverse เหล่านี้เป็นข้อยกเว้นที่เกิดขึ้นบนเซิร์ฟเวอร์นี้โดยเฉพาะ
|
||||||
user_count_after:
|
user_count_after:
|
||||||
other: ผู้ใช้
|
other: ผู้ใช้
|
||||||
user_count_before: บ้านของ
|
user_count_before: บ้านของ
|
||||||
|
@ -58,6 +62,7 @@ th:
|
||||||
followers:
|
followers:
|
||||||
other: ผู้ติดตาม
|
other: ผู้ติดตาม
|
||||||
following: กำลังติดตาม
|
following: กำลังติดตาม
|
||||||
|
instance_actor_flash: บัญชีนี้เป็นนักแสดงเสมือนที่ใช้เพื่อเป็นตัวแทนของเซิร์ฟเวอร์เอง แต่ก็ไม่ใช่ผู้ใช้รายบุคคล แต่มันถูกใช้เพื่อวัตถุประสงค์ของการรวมกลุ่มและไม่ควรถูกระงับ
|
||||||
joined: เข้าร่วมเมื่อ %{date}
|
joined: เข้าร่วมเมื่อ %{date}
|
||||||
last_active: ใช้งานล่าสุด
|
last_active: ใช้งานล่าสุด
|
||||||
link_verified_on: ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ %{date}
|
link_verified_on: ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ %{date}
|
||||||
|
@ -156,6 +161,7 @@ th:
|
||||||
most_recent_ip: IP ล่าสุด
|
most_recent_ip: IP ล่าสุด
|
||||||
no_account_selected: ไม่มีการเปลี่ยนแปลงบัญชีเนื่องจากไม่มีการเลือก
|
no_account_selected: ไม่มีการเปลี่ยนแปลงบัญชีเนื่องจากไม่มีการเลือก
|
||||||
no_limits_imposed: ไม่มีการกำหนดขีดจำกัด
|
no_limits_imposed: ไม่มีการกำหนดขีดจำกัด
|
||||||
|
no_role_assigned: ไม่มีการกำหนดบทบาท
|
||||||
not_subscribed: ไม่ได้บอกรับ
|
not_subscribed: ไม่ได้บอกรับ
|
||||||
pending: การตรวจทานที่รอดำเนินการ
|
pending: การตรวจทานที่รอดำเนินการ
|
||||||
perform_full_suspension: ระงับ
|
perform_full_suspension: ระงับ
|
||||||
|
@ -201,6 +207,8 @@ th:
|
||||||
subscribe: บอกรับ
|
subscribe: บอกรับ
|
||||||
suspend: ระงับ
|
suspend: ระงับ
|
||||||
suspended: ระงับอยู่
|
suspended: ระงับอยู่
|
||||||
|
suspension_irreversible: ข้อมูลของบัญชีนี้ถูกลบไม่สามารถย้อนกลับได้ คุณสามารถระงับบัญชีเพื่อให้ใช้งานได้ แต่จะไม่กู้คืนข้อมูลใดๆทั้งสิ้น ที่เคยมีอยู่ก่อนหน้านี้
|
||||||
|
suspension_reversible_hint_html: บัญชีถูกระงับ และข้อมูลจะถูกลบออกอย่างสมบูรณ์ในวันที่ %{date} ก่อนหน้านั้น บัญชีสามารถกู้คืนได้โดยไม่มีผลร้ายใดๆทั้งสิ้น ถ้าหากคุณต้องการลบข้อมูลของบัญชีทั้งหมดในทันที คุณสามารถทำได้ด้านล่างนี้
|
||||||
title: บัญชี
|
title: บัญชี
|
||||||
unblock_email: เลิกปิดกั้นที่อยู่อีเมล
|
unblock_email: เลิกปิดกั้นที่อยู่อีเมล
|
||||||
unblocked_email_msg: เลิกปิดกั้นที่อยู่อีเมลของ %{username} สำเร็จ
|
unblocked_email_msg: เลิกปิดกั้นที่อยู่อีเมลของ %{username} สำเร็จ
|
||||||
|
@ -291,6 +299,7 @@ th:
|
||||||
destroy_instance_html: "%{name} ได้ล้างข้อมูลโดเมน %{target}"
|
destroy_instance_html: "%{name} ได้ล้างข้อมูลโดเมน %{target}"
|
||||||
destroy_ip_block_html: "%{name} ได้ลบกฎสำหรับ IP %{target}"
|
destroy_ip_block_html: "%{name} ได้ลบกฎสำหรับ IP %{target}"
|
||||||
destroy_status_html: "%{name} ได้เอาโพสต์โดย %{target} ออก"
|
destroy_status_html: "%{name} ได้เอาโพสต์โดย %{target} ออก"
|
||||||
|
destroy_unavailable_domain_html: "%{name} ได้พักการจัดส่งไปยังโดเมน %{target}"
|
||||||
disable_2fa_user_html: "%{name} ได้ปิดใช้งานความต้องการสองปัจจัยสำหรับผู้ใช้ %{target}"
|
disable_2fa_user_html: "%{name} ได้ปิดใช้งานความต้องการสองปัจจัยสำหรับผู้ใช้ %{target}"
|
||||||
disable_custom_emoji_html: "%{name} ได้ปิดใช้งานอีโมจิ %{target}"
|
disable_custom_emoji_html: "%{name} ได้ปิดใช้งานอีโมจิ %{target}"
|
||||||
disable_sign_in_token_auth_user_html: "%{name} ได้ปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับ %{target}"
|
disable_sign_in_token_auth_user_html: "%{name} ได้ปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับ %{target}"
|
||||||
|
@ -410,6 +419,8 @@ th:
|
||||||
destroyed_msg: เลิกทำการปิดกั้นโดเมนแล้ว
|
destroyed_msg: เลิกทำการปิดกั้นโดเมนแล้ว
|
||||||
domain: โดเมน
|
domain: โดเมน
|
||||||
edit: แก้ไขการปิดกั้นโดเมน
|
edit: แก้ไขการปิดกั้นโดเมน
|
||||||
|
existing_domain_block: คุณได้กำหนดขีดจำกัดที่เข้มงวดขึ้นแล้วบน %{name}
|
||||||
|
existing_domain_block_html: คุณได้กำหนดขีดจำกัดที่เข้มงวดขึ้นใน %{name} แล้วคุณต้อง <a href="%{unblock_url}">unblock</a> ก่อน
|
||||||
new:
|
new:
|
||||||
create: สร้างการปิดกั้น
|
create: สร้างการปิดกั้น
|
||||||
hint: การปิดกั้นโดเมนจะไม่ป้องกันการสร้างรายการบัญชีในฐานข้อมูล แต่จะใช้วิธีการควบคุมที่เฉพาะเจาะจงกับบัญชีเหล่านั้นย้อนหลังและโดยอัตโนมัติ
|
hint: การปิดกั้นโดเมนจะไม่ป้องกันการสร้างรายการบัญชีในฐานข้อมูล แต่จะใช้วิธีการควบคุมที่เฉพาะเจาะจงกับบัญชีเหล่านั้นย้อนหลังและโดยอัตโนมัติ
|
||||||
|
@ -420,8 +431,11 @@ th:
|
||||||
suspend: ระงับ
|
suspend: ระงับ
|
||||||
title: การปิดกั้นโดเมนใหม่
|
title: การปิดกั้นโดเมนใหม่
|
||||||
obfuscate: ทำให้ชื่อโดเมนคลุมเครือ
|
obfuscate: ทำให้ชื่อโดเมนคลุมเครือ
|
||||||
|
obfuscate_hint: อาจมีผลทำให้ชื่อโดเมนสับสนบางส่วนในรายการหากเปิดใช้งานการโฆษณารายการข้อจำกัดของโดเมน
|
||||||
private_comment: ความคิดเห็นส่วนตัว
|
private_comment: ความคิดเห็นส่วนตัว
|
||||||
|
private_comment_hint: แสดงความคิดเห็นเกี่ยวกับข้อจำกัดของโดเมนนี้สำหรับการใช้งานภายในโดยผู้ดูแล
|
||||||
public_comment: ความคิดเห็นสาธารณะ
|
public_comment: ความคิดเห็นสาธารณะ
|
||||||
|
public_comment_hint: แสดงความคิดเห็นเกี่ยวกับข้อจำกัดโดเมนนี้สำหรับบุคคลทั่วไป หากต้องการโฆษณารายการข้อจำกัดโดเมนเปิดใช้งานอยู่
|
||||||
reject_media: ปฏิเสธไฟล์สื่อ
|
reject_media: ปฏิเสธไฟล์สื่อ
|
||||||
reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเซิร์ฟเวอร์ออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
|
reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเซิร์ฟเวอร์ออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
|
||||||
reject_reports: ปฏิเสธรายงาน
|
reject_reports: ปฏิเสธรายงาน
|
||||||
|
|
|
@ -99,11 +99,17 @@ zh-CN:
|
||||||
avatar: 头像
|
avatar: 头像
|
||||||
by_domain: 域名
|
by_domain: 域名
|
||||||
change_email:
|
change_email:
|
||||||
|
changed_msg: 已成功更改电子邮件地址!
|
||||||
current_email: 当前的电子邮箱
|
current_email: 当前的电子邮箱
|
||||||
label: 更改电子邮箱
|
label: 更改电子邮箱
|
||||||
new_email: 新的电子邮箱
|
new_email: 新的电子邮箱
|
||||||
submit: 更改电子邮件地址
|
submit: 更改电子邮件地址
|
||||||
title: 为 %{username} 更改电子邮箱
|
title: 为 %{username} 更改电子邮箱
|
||||||
|
change_role:
|
||||||
|
changed_msg: 已成功更改角色!
|
||||||
|
label: 更改角色
|
||||||
|
no_role: 未设置角色
|
||||||
|
title: 为 %{username} 更改角色
|
||||||
confirm: 确认
|
confirm: 确认
|
||||||
confirmed: 已确认
|
confirmed: 已确认
|
||||||
confirming: 等待确认
|
confirming: 等待确认
|
||||||
|
@ -147,6 +153,7 @@ zh-CN:
|
||||||
active: 活跃
|
active: 活跃
|
||||||
all: 全部
|
all: 全部
|
||||||
pending: 待审核
|
pending: 待审核
|
||||||
|
silenced: 受限
|
||||||
suspended: 已封禁
|
suspended: 已封禁
|
||||||
title: 管理
|
title: 管理
|
||||||
moderation_notes: 管理员备注
|
moderation_notes: 管理员备注
|
||||||
|
@ -154,6 +161,7 @@ zh-CN:
|
||||||
most_recent_ip: 最后一次活跃的 IP 地址
|
most_recent_ip: 最后一次活跃的 IP 地址
|
||||||
no_account_selected: 因为没有选中任何账号,所以没有更改
|
no_account_selected: 因为没有选中任何账号,所以没有更改
|
||||||
no_limits_imposed: 无限制
|
no_limits_imposed: 无限制
|
||||||
|
no_role_assigned: 未定角色
|
||||||
not_subscribed: 未订阅
|
not_subscribed: 未订阅
|
||||||
pending: 待审核
|
pending: 待审核
|
||||||
perform_full_suspension: 封禁
|
perform_full_suspension: 封禁
|
||||||
|
@ -179,6 +187,7 @@ zh-CN:
|
||||||
reset: 重置
|
reset: 重置
|
||||||
reset_password: 重置密码
|
reset_password: 重置密码
|
||||||
resubscribe: 重新订阅
|
resubscribe: 重新订阅
|
||||||
|
role: 角色
|
||||||
search: 搜索
|
search: 搜索
|
||||||
search_same_email_domain: 其他具有相同电子邮箱域名的用户
|
search_same_email_domain: 其他具有相同电子邮箱域名的用户
|
||||||
search_same_ip: 具有相同IP的其他用户
|
search_same_ip: 具有相同IP的其他用户
|
||||||
|
@ -626,6 +635,57 @@ zh-CN:
|
||||||
unresolved: 未处理
|
unresolved: 未处理
|
||||||
updated_at: 更新时间
|
updated_at: 更新时间
|
||||||
view_profile: 查看资料
|
view_profile: 查看资料
|
||||||
|
roles:
|
||||||
|
add_new: 添加角色
|
||||||
|
assigned_users:
|
||||||
|
other: "%{count} 用户"
|
||||||
|
categories:
|
||||||
|
administration: 管理
|
||||||
|
devops: 开发运维
|
||||||
|
invites: 邀请
|
||||||
|
moderation: 监察
|
||||||
|
special: 特殊
|
||||||
|
delete: 刪除
|
||||||
|
description_html: 使用 <strong>用户角色</strong>,您可以自定义您的用户可以访问的功能和区域。
|
||||||
|
edit: 编辑 '%{name}' 角色
|
||||||
|
everyone: 默认权限
|
||||||
|
everyone_full_description_html: 这是影响到 <strong>所有用户</strong>的<strong>基础角色</strong>,包括未指定角色的用户。 其他所有的角色都继承着它的权限。
|
||||||
|
permissions_count:
|
||||||
|
other: "%{count} 权限"
|
||||||
|
privileges:
|
||||||
|
administrator: 管理员
|
||||||
|
administrator_description: 拥有此权限的用户将绕过每个权限
|
||||||
|
delete_user_data: 删除用户数据
|
||||||
|
delete_user_data_description: 允许用户立即删除其他用户的数据
|
||||||
|
invite_users: 邀请用户
|
||||||
|
invite_users_description: 允许用户邀请新人加入服务器
|
||||||
|
manage_announcements: 管理公告
|
||||||
|
manage_announcements_description: 允许用户管理服务器上的通知
|
||||||
|
manage_appeals: 管理申诉
|
||||||
|
manage_appeals_description: 允许用户审查对适度动作的上诉
|
||||||
|
manage_blocks: 管理版块
|
||||||
|
manage_blocks_description: 允许用户屏蔽电子邮件提供商和IP地址
|
||||||
|
manage_custom_emojis: 管理自定义表情
|
||||||
|
manage_custom_emojis_description: 允许用户管理服务器上的自定义表情
|
||||||
|
manage_federation: 管理联邦
|
||||||
|
manage_invites: 管理邀请
|
||||||
|
manage_invites_description: 允许用户浏览和停用邀请链接
|
||||||
|
manage_reports: 管理报告
|
||||||
|
manage_reports_description: 允许用户查看报告并对其执行审核操作
|
||||||
|
manage_roles: 管理角色
|
||||||
|
manage_roles_description: 允许用户管理和分配比他们权限低的角色
|
||||||
|
manage_rules: 管理规则
|
||||||
|
manage_rules_description: 允许用户更改服务器规则
|
||||||
|
manage_settings: 管理设置
|
||||||
|
manage_settings_description: 允许用户更改站点设置
|
||||||
|
manage_users: 管理用户
|
||||||
|
manage_users_description: 允许用户查看其他用户信息并对他们执行审核操作
|
||||||
|
manage_webhooks: 管理网钩
|
||||||
|
manage_webhooks_description: 允许用户为管理事件设置网钩
|
||||||
|
view_audit_log: 查看审核日志
|
||||||
|
view_audit_log_description: 允许用户在服务器上查看管理操作历史
|
||||||
|
view_dashboard: 查看仪表板
|
||||||
|
view_dashboard_description: 允许用户访问仪表盘和各种指标
|
||||||
rules:
|
rules:
|
||||||
add_new: 添加规则
|
add_new: 添加规则
|
||||||
delete: 删除
|
delete: 删除
|
||||||
|
@ -823,7 +883,11 @@ zh-CN:
|
||||||
webhooks:
|
webhooks:
|
||||||
delete: 删除
|
delete: 删除
|
||||||
disable: 禁用
|
disable: 禁用
|
||||||
|
disabled: 已禁用
|
||||||
enable: 启用
|
enable: 启用
|
||||||
|
status: 状态
|
||||||
|
title: 网钩
|
||||||
|
webhook: 网钩
|
||||||
admin_mailer:
|
admin_mailer:
|
||||||
new_appeal:
|
new_appeal:
|
||||||
actions:
|
actions:
|
||||||
|
@ -1084,8 +1148,11 @@ zh-CN:
|
||||||
index:
|
index:
|
||||||
delete: 删除
|
delete: 删除
|
||||||
empty: 你没有过滤器。
|
empty: 你没有过滤器。
|
||||||
|
keywords:
|
||||||
|
other: "%{count} 关键词"
|
||||||
title: 过滤器
|
title: 过滤器
|
||||||
new:
|
new:
|
||||||
|
save: 保存新过滤器
|
||||||
title: 添加新的过滤器
|
title: 添加新的过滤器
|
||||||
footer:
|
footer:
|
||||||
developers: 开发者
|
developers: 开发者
|
||||||
|
@ -1202,6 +1269,8 @@ zh-CN:
|
||||||
copy_account_note_text: 这个用户迁移自 %{acct},你曾为其添加备注:
|
copy_account_note_text: 这个用户迁移自 %{acct},你曾为其添加备注:
|
||||||
notification_mailer:
|
notification_mailer:
|
||||||
admin:
|
admin:
|
||||||
|
report:
|
||||||
|
subject: "%{name} 提交了报告"
|
||||||
sign_up:
|
sign_up:
|
||||||
subject: "%{name} 注册了"
|
subject: "%{name} 注册了"
|
||||||
digest:
|
digest:
|
||||||
|
|
|
@ -554,7 +554,7 @@ Rails.application.routes.draw do
|
||||||
resource :note, only: :create, controller: 'accounts/notes'
|
resource :note, only: :create, controller: 'accounts/notes'
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :tags, only: [:show], constraints: { id: /#{Tag::HASHTAG_NAME_RE}/ } do
|
resources :tags, only: [:show] do
|
||||||
member do
|
member do
|
||||||
post :follow
|
post :follow
|
||||||
post :unfollow
|
post :unfollow
|
||||||
|
|
24
package.json
24
package.json
|
@ -24,13 +24,13 @@
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/core": "^7.18.6",
|
"@babel/core": "^7.18.9",
|
||||||
"@babel/plugin-proposal-decorators": "^7.18.6",
|
"@babel/plugin-proposal-decorators": "^7.18.9",
|
||||||
"@babel/plugin-transform-react-inline-elements": "^7.18.6",
|
"@babel/plugin-transform-react-inline-elements": "^7.18.6",
|
||||||
"@babel/plugin-transform-runtime": "^7.18.6",
|
"@babel/plugin-transform-runtime": "^7.18.9",
|
||||||
"@babel/preset-env": "^7.18.6",
|
"@babel/preset-env": "^7.18.9",
|
||||||
"@babel/preset-react": "^7.18.6",
|
"@babel/preset-react": "^7.18.6",
|
||||||
"@babel/runtime": "^7.18.6",
|
"@babel/runtime": "^7.18.9",
|
||||||
"@gamestdio/websocket": "^0.3.2",
|
"@gamestdio/websocket": "^0.3.2",
|
||||||
"@github/webauthn-json": "^0.5.7",
|
"@github/webauthn-json": "^0.5.7",
|
||||||
"@rails/ujs": "^6.1.6",
|
"@rails/ujs": "^6.1.6",
|
||||||
|
@ -104,14 +104,14 @@
|
||||||
"react-notification": "^6.8.5",
|
"react-notification": "^6.8.5",
|
||||||
"react-overlays": "^0.9.3",
|
"react-overlays": "^0.9.3",
|
||||||
"react-redux": "^7.2.8",
|
"react-redux": "^7.2.8",
|
||||||
"react-redux-loading-bar": "^4.0.8",
|
"react-redux-loading-bar": "^5.0.4",
|
||||||
"react-router-dom": "^4.1.1",
|
"react-router-dom": "^4.1.1",
|
||||||
"react-router-scroll-4": "^1.0.0-beta.1",
|
"react-router-scroll-4": "^1.0.0-beta.1",
|
||||||
"react-select": "^5.4.0",
|
"react-select": "^5.4.0",
|
||||||
"react-sparklines": "^1.7.0",
|
"react-sparklines": "^1.7.0",
|
||||||
"react-swipeable-views": "^0.14.0",
|
"react-swipeable-views": "^0.14.0",
|
||||||
"react-textarea-autosize": "^8.3.4",
|
"react-textarea-autosize": "^8.3.4",
|
||||||
"react-toggle": "^4.1.2",
|
"react-toggle": "^4.1.3",
|
||||||
"redis": "^4.0.6 <4.1.0",
|
"redis": "^4.0.6 <4.1.0",
|
||||||
"redux": "^4.2.0",
|
"redux": "^4.2.0",
|
||||||
"redux-immutable": "^4.0.0",
|
"redux-immutable": "^4.0.0",
|
||||||
|
@ -138,20 +138,20 @@
|
||||||
"webpack-cli": "^3.3.12",
|
"webpack-cli": "^3.3.12",
|
||||||
"webpack-merge": "^5.8.0",
|
"webpack-merge": "^5.8.0",
|
||||||
"wicg-inert": "^3.1.2",
|
"wicg-inert": "^3.1.2",
|
||||||
"ws": "^8.8.0"
|
"ws": "^8.8.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/eslint-parser": "^7.18.2",
|
"@babel/eslint-parser": "^7.18.9",
|
||||||
"@testing-library/jest-dom": "^5.16.4",
|
"@testing-library/jest-dom": "^5.16.4",
|
||||||
"@testing-library/react": "^12.1.5",
|
"@testing-library/react": "^12.1.5",
|
||||||
"babel-jest": "^28.1.2",
|
"babel-jest": "^28.1.3",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-plugin-import": "~2.26.0",
|
"eslint-plugin-import": "~2.26.0",
|
||||||
"eslint-plugin-jsx-a11y": "~6.6.0",
|
"eslint-plugin-jsx-a11y": "~6.6.0",
|
||||||
"eslint-plugin-promise": "~6.0.0",
|
"eslint-plugin-promise": "~6.0.0",
|
||||||
"eslint-plugin-react": "~7.30.1",
|
"eslint-plugin-react": "~7.30.1",
|
||||||
"jest": "^28.1.2",
|
"jest": "^28.1.3",
|
||||||
"jest-environment-jsdom": "^28.1.2",
|
"jest-environment-jsdom": "^28.1.3",
|
||||||
"postcss-scss": "^4.0.4",
|
"postcss-scss": "^4.0.4",
|
||||||
"prettier": "^2.7.1",
|
"prettier": "^2.7.1",
|
||||||
"raf": "^3.4.1",
|
"raf": "^3.4.1",
|
||||||
|
|
Loading…
Reference in New Issue