mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-12 21:36:43 +00:00
Merge remote-tracking branch 'origin/master' into merge-upstream
Conflicts: README.md
This commit is contained in:
commit
f8e934f955
|
@ -1,4 +1,4 @@
|
||||||
web: PORT=3000 bundle exec puma -C config/puma.rb
|
web: env PORT=3000 bundle exec puma -C config/puma.rb
|
||||||
sidekiq: PORT=3000 bundle exec sidekiq
|
sidekiq: env PORT=3000 bundle exec sidekiq
|
||||||
stream: PORT=4000 yarn run start
|
stream: env PORT=4000 yarn run start
|
||||||
webpack: ./bin/webpack-dev-server --listen-host 0.0.0.0
|
webpack: ./bin/webpack-dev-server --listen-host 0.0.0.0
|
||||||
|
|
|
@ -24,7 +24,7 @@ defineMessages({
|
||||||
const fetchRelatedRelationships = (dispatch, notifications) => {
|
const fetchRelatedRelationships = (dispatch, notifications) => {
|
||||||
const accountIds = notifications.filter(item => item.type === 'follow').map(item => item.account.id);
|
const accountIds = notifications.filter(item => item.type === 'follow').map(item => item.account.id);
|
||||||
|
|
||||||
if (accountIds > 0) {
|
if (accountIds.length > 0) {
|
||||||
dispatch(fetchRelationships(accountIds));
|
dispatch(fetchRelationships(accountIds));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,26 +12,6 @@ const messages = defineMessages({
|
||||||
toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },
|
toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const shiftToPoint = (containerToImageRatio, containerSize, imageSize, focusSize, toMinus) => {
|
|
||||||
const containerCenter = Math.floor(containerSize / 2);
|
|
||||||
const focusFactor = (focusSize + 1) / 2;
|
|
||||||
const scaledImage = Math.floor(imageSize / containerToImageRatio);
|
|
||||||
|
|
||||||
let focus = Math.floor(focusFactor * scaledImage);
|
|
||||||
|
|
||||||
if (toMinus) focus = scaledImage - focus;
|
|
||||||
|
|
||||||
let focusOffset = focus - containerCenter;
|
|
||||||
|
|
||||||
const remainder = scaledImage - focus;
|
|
||||||
const containerRemainder = containerSize - containerCenter;
|
|
||||||
|
|
||||||
if (remainder < containerRemainder) focusOffset -= containerRemainder - remainder;
|
|
||||||
if (focusOffset < 0) focusOffset = 0;
|
|
||||||
|
|
||||||
return (focusOffset * -100 / containerSize) + '%';
|
|
||||||
};
|
|
||||||
|
|
||||||
class Item extends React.PureComponent {
|
class Item extends React.PureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
|
@ -44,8 +24,6 @@ class Item extends React.PureComponent {
|
||||||
index: PropTypes.number.isRequired,
|
index: PropTypes.number.isRequired,
|
||||||
size: PropTypes.number.isRequired,
|
size: PropTypes.number.isRequired,
|
||||||
onClick: PropTypes.func.isRequired,
|
onClick: PropTypes.func.isRequired,
|
||||||
containerWidth: PropTypes.number,
|
|
||||||
containerHeight: PropTypes.number,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
|
@ -84,7 +62,7 @@ class Item extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { attachment, index, size, standalone, containerWidth, containerHeight } = this.props;
|
const { attachment, index, size, standalone } = this.props;
|
||||||
|
|
||||||
let width = 50;
|
let width = 50;
|
||||||
let height = 100;
|
let height = 100;
|
||||||
|
@ -143,45 +121,16 @@ class Item extends React.PureComponent {
|
||||||
|
|
||||||
const originalUrl = attachment.get('url');
|
const originalUrl = attachment.get('url');
|
||||||
const originalWidth = attachment.getIn(['meta', 'original', 'width']);
|
const originalWidth = attachment.getIn(['meta', 'original', 'width']);
|
||||||
const originalHeight = attachment.getIn(['meta', 'original', 'height']);
|
|
||||||
|
|
||||||
const hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';
|
const hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';
|
||||||
|
|
||||||
const srcSet = hasSize ? `${originalUrl} ${originalWidth}w, ${previewUrl} ${previewWidth}w` : null;
|
const srcSet = hasSize ? `${originalUrl} ${originalWidth}w, ${previewUrl} ${previewWidth}w` : null;
|
||||||
const sizes = hasSize ? `(min-width: 1025px) ${320 * (width / 100)}px, ${width}vw` : null;
|
const sizes = hasSize ? `(min-width: 1025px) ${320 * (width / 100)}px, ${width}vw` : null;
|
||||||
|
|
||||||
const focusX = attachment.getIn(['meta', 'focus', 'x']);
|
const focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;
|
||||||
const focusY = attachment.getIn(['meta', 'focus', 'y']);
|
const focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;
|
||||||
const imageStyle = {};
|
const x = ((focusX / 2) + .5) * 100;
|
||||||
|
const y = ((focusY / -2) + .5) * 100;
|
||||||
if (originalWidth && originalHeight && containerWidth && containerHeight && focusX && focusY) {
|
|
||||||
const widthRatio = originalWidth / (containerWidth * (width / 100));
|
|
||||||
const heightRatio = originalHeight / (containerHeight * (height / 100));
|
|
||||||
|
|
||||||
let hShift = 0;
|
|
||||||
let vShift = 0;
|
|
||||||
|
|
||||||
if (widthRatio > heightRatio) {
|
|
||||||
hShift = shiftToPoint(heightRatio, (containerWidth * (width / 100)), originalWidth, focusX);
|
|
||||||
} else if(widthRatio < heightRatio) {
|
|
||||||
vShift = shiftToPoint(widthRatio, (containerHeight * (height / 100)), originalHeight, focusY, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (originalWidth > originalHeight) {
|
|
||||||
imageStyle.height = '100%';
|
|
||||||
imageStyle.width = 'auto';
|
|
||||||
imageStyle.minWidth = '100%';
|
|
||||||
} else {
|
|
||||||
imageStyle.height = 'auto';
|
|
||||||
imageStyle.width = '100%';
|
|
||||||
imageStyle.minHeight = '100%';
|
|
||||||
}
|
|
||||||
|
|
||||||
imageStyle.top = vShift;
|
|
||||||
imageStyle.left = hShift;
|
|
||||||
} else {
|
|
||||||
imageStyle.height = '100%';
|
|
||||||
}
|
|
||||||
|
|
||||||
thumbnail = (
|
thumbnail = (
|
||||||
<a
|
<a
|
||||||
|
@ -196,7 +145,7 @@ class Item extends React.PureComponent {
|
||||||
sizes={sizes}
|
sizes={sizes}
|
||||||
alt={attachment.get('description')}
|
alt={attachment.get('description')}
|
||||||
title={attachment.get('description')}
|
title={attachment.get('description')}
|
||||||
style={imageStyle}
|
style={{ objectPosition: `${x}% ${y}%` }}
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
);
|
);
|
||||||
|
@ -320,7 +269,7 @@ export default class MediaGallery extends React.PureComponent {
|
||||||
if (this.isStandaloneEligible()) {
|
if (this.isStandaloneEligible()) {
|
||||||
children = <Item standalone onClick={this.handleClick} attachment={media.get(0)} />;
|
children = <Item standalone onClick={this.handleClick} attachment={media.get(0)} />;
|
||||||
} else {
|
} else {
|
||||||
children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} onClick={this.handleClick} attachment={attachment} index={i} size={size} containerWidth={width} containerHeight={style.height} />);
|
children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} onClick={this.handleClick} attachment={attachment} index={i} size={size} />);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ const mapStateToProps = (state, { params: { accountId }, withReplies = false })
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusIds: state.getIn(['timelines', `account:${path}`, 'items'], ImmutableList()),
|
statusIds: state.getIn(['timelines', `account:${path}`, 'items'], ImmutableList()),
|
||||||
featuredStatusIds: state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], ImmutableList()),
|
featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], ImmutableList()),
|
||||||
isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']),
|
isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']),
|
||||||
hasMore: !!state.getIn(['timelines', `account:${path}`, 'next']),
|
hasMore: !!state.getIn(['timelines', `account:${path}`, 'next']),
|
||||||
};
|
};
|
||||||
|
@ -40,14 +40,18 @@ export default class AccountTimeline extends ImmutablePureComponent {
|
||||||
const { params: { accountId }, withReplies } = this.props;
|
const { params: { accountId }, withReplies } = this.props;
|
||||||
|
|
||||||
this.props.dispatch(fetchAccount(accountId));
|
this.props.dispatch(fetchAccount(accountId));
|
||||||
this.props.dispatch(refreshAccountFeaturedTimeline(accountId));
|
if (!withReplies) {
|
||||||
|
this.props.dispatch(refreshAccountFeaturedTimeline(accountId));
|
||||||
|
}
|
||||||
this.props.dispatch(refreshAccountTimeline(accountId, withReplies));
|
this.props.dispatch(refreshAccountTimeline(accountId, withReplies));
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps (nextProps) {
|
componentWillReceiveProps (nextProps) {
|
||||||
if ((nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) || nextProps.withReplies !== this.props.withReplies) {
|
if ((nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) || nextProps.withReplies !== this.props.withReplies) {
|
||||||
this.props.dispatch(fetchAccount(nextProps.params.accountId));
|
this.props.dispatch(fetchAccount(nextProps.params.accountId));
|
||||||
this.props.dispatch(refreshAccountFeaturedTimeline(nextProps.params.accountId));
|
if (!nextProps.withReplies) {
|
||||||
|
this.props.dispatch(refreshAccountFeaturedTimeline(nextProps.params.accountId));
|
||||||
|
}
|
||||||
this.props.dispatch(refreshAccountTimeline(nextProps.params.accountId, nextProps.params.withReplies));
|
this.props.dispatch(refreshAccountTimeline(nextProps.params.accountId, nextProps.params.withReplies));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
import { me } from '../../../initial_state';
|
import { me } from '../../../initial_state';
|
||||||
|
|
||||||
const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\w*[a-zA-Z]\w*)/i;
|
const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\w*[a-zA-Z·]\w*)/i;
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),
|
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),
|
||||||
|
|
|
@ -103,7 +103,7 @@ export default class FocalPointModal extends ImmutablePureComponent {
|
||||||
const height = media.getIn(['meta', 'original', 'height']) || null;
|
const height = media.getIn(['meta', 'original', 'height']) || null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='modal-root__modal video-modal'>
|
<div className='modal-root__modal video-modal focal-point-modal'>
|
||||||
<div className={classNames('focal-point', { dragging })} ref={this.setRef}>
|
<div className={classNames('focal-point', { dragging })} ref={this.setRef}>
|
||||||
<ImageLoader
|
<ImageLoader
|
||||||
previewSrc={media.get('preview_url')}
|
previewSrc={media.get('preview_url')}
|
||||||
|
|
|
@ -130,6 +130,15 @@ export default class MediaModal extends ImmutablePureComponent {
|
||||||
return null;
|
return null;
|
||||||
}).toArray();
|
}).toArray();
|
||||||
|
|
||||||
|
// you can't use 100vh, because the viewport height is taller
|
||||||
|
// than the visible part of the document in some mobile
|
||||||
|
// browsers when it's address bar is visible.
|
||||||
|
// https://developers.google.com/web/updates/2016/12/url-bar-resizing
|
||||||
|
const swipeableViewsStyle = {
|
||||||
|
width: '100%',
|
||||||
|
height: '100%',
|
||||||
|
};
|
||||||
|
|
||||||
const containerStyle = {
|
const containerStyle = {
|
||||||
alignItems: 'center', // center vertically
|
alignItems: 'center', // center vertically
|
||||||
};
|
};
|
||||||
|
@ -145,23 +154,15 @@ export default class MediaModal extends ImmutablePureComponent {
|
||||||
role='presentation'
|
role='presentation'
|
||||||
onClick={onClose}
|
onClick={onClose}
|
||||||
>
|
>
|
||||||
<div className='media-modal__content'>
|
<ReactSwipeableViews
|
||||||
<ReactSwipeableViews
|
style={swipeableViewsStyle}
|
||||||
style={{
|
containerStyle={containerStyle}
|
||||||
// you can't use 100vh, because the viewport height is taller
|
onChangeIndex={this.handleSwipe}
|
||||||
// than the visible part of the document in some mobile
|
onSwitching={this.handleSwitching}
|
||||||
// browsers when it's address bar is visible.
|
index={index}
|
||||||
// https://developers.google.com/web/updates/2016/12/url-bar-resizing
|
>
|
||||||
height: `${document.body.clientHeight}px`,
|
{content}
|
||||||
}}
|
</ReactSwipeableViews>
|
||||||
containerStyle={containerStyle}
|
|
||||||
onChangeIndex={this.handleSwipe}
|
|
||||||
onSwitching={this.handleSwitching}
|
|
||||||
index={index}
|
|
||||||
>
|
|
||||||
{content}
|
|
||||||
</ReactSwipeableViews>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className={navigationClassName}>
|
<div className={navigationClassName}>
|
||||||
<IconButton className='media-modal__close' title={intl.formatMessage(messages.close)} icon='times' onClick={onClose} size={40} />
|
<IconButton className='media-modal__close' title={intl.formatMessage(messages.close)} icon='times' onClick={onClose} size={40} />
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}",
|
"account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}",
|
||||||
"account.blocked": "محظور",
|
"account.blocked": "محظور",
|
||||||
"account.disclaimer_full": "قد لا تعكس المعلومات أدناه الملف الشخصي الكامل للمستخدم.",
|
"account.disclaimer_full": "قد لا تعكس المعلومات أدناه الملف الشخصي الكامل للمستخدم.",
|
||||||
"account.domain_blocked": "Domain hidden",
|
"account.domain_blocked": "النطاق مخفي",
|
||||||
"account.edit_profile": "تعديل الملف الشخصي",
|
"account.edit_profile": "تعديل الملف الشخصي",
|
||||||
"account.follow": "تابِع",
|
"account.follow": "تابِع",
|
||||||
"account.followers": "المتابعون",
|
"account.followers": "المتابعون",
|
||||||
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "محتوى حساس",
|
"status.sensitive_warning": "محتوى حساس",
|
||||||
"status.share": "مشاركة",
|
"status.share": "مشاركة",
|
||||||
"status.show_less": "إعرض أقلّ",
|
"status.show_less": "إعرض أقلّ",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "أظهر المزيد",
|
"status.show_more": "أظهر المزيد",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
||||||
"status.unpin": "فك التدبيس من الملف الشخصي",
|
"status.unpin": "فك التدبيس من الملف الشخصي",
|
||||||
"tabs_bar.federated_timeline": "الموحَّد",
|
"tabs_bar.federated_timeline": "الموحَّد",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Деликатно съдържание",
|
"status.sensitive_warning": "Деликатно съдържание",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Show less",
|
"status.show_less": "Show less",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Show more",
|
"status.show_more": "Show more",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "Unmute conversation",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Federated",
|
"tabs_bar.federated_timeline": "Federated",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Contingut sensible",
|
"status.sensitive_warning": "Contingut sensible",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
"status.show_less": "Mostra menys",
|
"status.show_less": "Mostra menys",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Mostra més",
|
"status.show_more": "Mostra més",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Activar conversació",
|
"status.unmute_conversation": "Activar conversació",
|
||||||
"status.unpin": "Deslliga del perfil",
|
"status.unpin": "Deslliga del perfil",
|
||||||
"tabs_bar.federated_timeline": "Federada",
|
"tabs_bar.federated_timeline": "Federada",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Heikle Inhalte",
|
"status.sensitive_warning": "Heikle Inhalte",
|
||||||
"status.share": "Teilen",
|
"status.share": "Teilen",
|
||||||
"status.show_less": "Weniger anzeigen",
|
"status.show_less": "Weniger anzeigen",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Mehr anzeigen",
|
"status.show_more": "Mehr anzeigen",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Stummschaltung von Thread aufheben",
|
"status.unmute_conversation": "Stummschaltung von Thread aufheben",
|
||||||
"status.unpin": "Vom Profil lösen",
|
"status.unpin": "Vom Profil lösen",
|
||||||
"tabs_bar.federated_timeline": "Föderation",
|
"tabs_bar.federated_timeline": "Föderation",
|
||||||
|
|
|
@ -1375,6 +1375,14 @@
|
||||||
"defaultMessage": "Block",
|
"defaultMessage": "Block",
|
||||||
"id": "confirmations.block.confirm"
|
"id": "confirmations.block.confirm"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"defaultMessage": "Show more for all",
|
||||||
|
"id": "status.show_more_all"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"defaultMessage": "Show less for all",
|
||||||
|
"id": "status.show_less_all"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"defaultMessage": "Are you sure you want to block {name}?",
|
"defaultMessage": "Are you sure you want to block {name}?",
|
||||||
"id": "confirmations.block.message"
|
"id": "confirmations.block.message"
|
||||||
|
|
|
@ -259,7 +259,9 @@
|
||||||
"status.sensitive_warning": "Sensitive content",
|
"status.sensitive_warning": "Sensitive content",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Show less",
|
"status.show_less": "Show less",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Show more",
|
"status.show_more": "Show more",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "Unmute conversation",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Federated",
|
"tabs_bar.federated_timeline": "Federated",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Tikla enhavo",
|
"status.sensitive_warning": "Tikla enhavo",
|
||||||
"status.share": "Diskonigi",
|
"status.share": "Diskonigi",
|
||||||
"status.show_less": "Malgrandigi",
|
"status.show_less": "Malgrandigi",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Grandigi",
|
"status.show_more": "Grandigi",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Malsilentigi konversacion",
|
"status.unmute_conversation": "Malsilentigi konversacion",
|
||||||
"status.unpin": "Depingli de profilo",
|
"status.unpin": "Depingli de profilo",
|
||||||
"tabs_bar.federated_timeline": "Fratara tempolinio",
|
"tabs_bar.federated_timeline": "Fratara tempolinio",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Contenido sensible",
|
"status.sensitive_warning": "Contenido sensible",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
"status.show_less": "Mostrar menos",
|
"status.show_less": "Mostrar menos",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Mostrar más",
|
"status.show_more": "Mostrar más",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Dejar de silenciar conversación",
|
"status.unmute_conversation": "Dejar de silenciar conversación",
|
||||||
"status.unpin": "Dejar de fijar",
|
"status.unpin": "Dejar de fijar",
|
||||||
"tabs_bar.federated_timeline": "Federado",
|
"tabs_bar.federated_timeline": "Federado",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "محتوای حساس",
|
"status.sensitive_warning": "محتوای حساس",
|
||||||
"status.share": "همرسانی",
|
"status.share": "همرسانی",
|
||||||
"status.show_less": "نهفتن",
|
"status.show_less": "نهفتن",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "نمایش",
|
"status.show_more": "نمایش",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "باصداکردن گفتگو",
|
"status.unmute_conversation": "باصداکردن گفتگو",
|
||||||
"status.unpin": "برداشتن نوشتهٔ ثابت نمایه",
|
"status.unpin": "برداشتن نوشتهٔ ثابت نمایه",
|
||||||
"tabs_bar.federated_timeline": "همگانی",
|
"tabs_bar.federated_timeline": "همگانی",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"account.block": "Estä @{name}",
|
"account.block": "Estä @{name}",
|
||||||
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
|
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
|
||||||
"account.blocked": "Blocked",
|
"account.blocked": "Estetty",
|
||||||
"account.disclaimer_full": "Alla olevat käyttäjän profiilitiedot saattavat olla epätäydellisiä.",
|
"account.disclaimer_full": "Alla olevat käyttäjän profiilitiedot saattavat olla epätäydellisiä.",
|
||||||
"account.domain_blocked": "Domain hidden",
|
"account.domain_blocked": "Domain hidden",
|
||||||
"account.edit_profile": "Muokkaa",
|
"account.edit_profile": "Muokkaa",
|
||||||
|
@ -15,9 +15,9 @@
|
||||||
"account.moved_to": "{name} on muuttanut instanssiin:",
|
"account.moved_to": "{name} on muuttanut instanssiin:",
|
||||||
"account.mute": "Mykistä @{name}",
|
"account.mute": "Mykistä @{name}",
|
||||||
"account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
|
"account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
|
||||||
"account.muted": "Muted",
|
"account.muted": "Mykistetty",
|
||||||
"account.posts": "Töötit",
|
"account.posts": "Töötit",
|
||||||
"account.posts_with_replies": "Toots with replies",
|
"account.posts_with_replies": "Töötit ja vastaukset",
|
||||||
"account.report": "Report @{name}",
|
"account.report": "Report @{name}",
|
||||||
"account.requested": "Odottaa hyväksyntää. Klikkaa peruuttaaksesi seurauspyynnön",
|
"account.requested": "Odottaa hyväksyntää. Klikkaa peruuttaaksesi seurauspyynnön",
|
||||||
"account.share": "Jaa käyttäjän @{name} profiili",
|
"account.share": "Jaa käyttäjän @{name} profiili",
|
||||||
|
@ -211,22 +211,22 @@
|
||||||
"relative_time.minutes": "{number}m",
|
"relative_time.minutes": "{number}m",
|
||||||
"relative_time.seconds": "{number}s",
|
"relative_time.seconds": "{number}s",
|
||||||
"reply_indicator.cancel": "Peruuta",
|
"reply_indicator.cancel": "Peruuta",
|
||||||
"report.forward": "Forward to {target}",
|
"report.forward": "Uudelleenohjaa kohteeseen {target}",
|
||||||
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
|
"report.forward_hint": "Tämä tili on toiselta serveriltä. Haluatko, että myös sinne lähetetään anonymisoitu kopio ilmiantoraportista?",
|
||||||
"report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
|
"report.hint": "Ilmianto lähetetään instanssisi moderaattoreille. Voit antaa kuvauksen käyttäjän ilmiantamisen syystä alle:",
|
||||||
"report.placeholder": "Lisäkommentit",
|
"report.placeholder": "Lisäkommentit",
|
||||||
"report.submit": "Submit",
|
"report.submit": "Submit",
|
||||||
"report.target": "Reporting",
|
"report.target": "Reporting",
|
||||||
"search.placeholder": "Hae",
|
"search.placeholder": "Hae",
|
||||||
"search_popout.search_format": "Tarkennettu haku",
|
"search_popout.search_format": "Tarkennettu haku",
|
||||||
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
|
"search_popout.tips.full_text": "Tekstihaku palauttaa statuspäivitykset jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä käyttäjänimet, nimimerkit ja hastagit jotka sisältävät tekstin.",
|
||||||
"search_popout.tips.hashtag": "hashtagi",
|
"search_popout.tips.hashtag": "hashtagi",
|
||||||
"search_popout.tips.status": "status",
|
"search_popout.tips.status": "status",
|
||||||
"search_popout.tips.text": "Pelkkä tekstihaku palauttaa hakua vastaavat nimimerkit, käyttäjänimet ja hastagit",
|
"search_popout.tips.text": "Pelkkä tekstihaku palauttaa hakua vastaavat nimimerkit, käyttäjänimet ja hastagit",
|
||||||
"search_popout.tips.user": "käyttäjä",
|
"search_popout.tips.user": "käyttäjä",
|
||||||
"search_results.accounts": "People",
|
"search_results.accounts": "Ihmiset",
|
||||||
"search_results.hashtags": "Hashtags",
|
"search_results.hashtags": "Hashtagit",
|
||||||
"search_results.statuses": "Toots",
|
"search_results.statuses": "Töötit",
|
||||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||||
"standalone.public_title": "Kurkistus sisälle...",
|
"standalone.public_title": "Kurkistus sisälle...",
|
||||||
"status.block": "Block @{name}",
|
"status.block": "Block @{name}",
|
||||||
|
@ -242,7 +242,7 @@
|
||||||
"status.mute_conversation": "Mykistä keskustelu",
|
"status.mute_conversation": "Mykistä keskustelu",
|
||||||
"status.open": "Laajenna statuspäivitys",
|
"status.open": "Laajenna statuspäivitys",
|
||||||
"status.pin": "Kiinnitä profiiliin",
|
"status.pin": "Kiinnitä profiiliin",
|
||||||
"status.pinned": "Pinned toot",
|
"status.pinned": "Kiinnitetty töötti",
|
||||||
"status.reblog": "Buustaa",
|
"status.reblog": "Buustaa",
|
||||||
"status.reblogged_by": "{name} buustasi",
|
"status.reblogged_by": "{name} buustasi",
|
||||||
"status.reply": "Vastaa",
|
"status.reply": "Vastaa",
|
||||||
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Arkaluontoista sisältöä",
|
"status.sensitive_warning": "Arkaluontoista sisältöä",
|
||||||
"status.share": "Jaa",
|
"status.share": "Jaa",
|
||||||
"status.show_less": "Näytä vähemmän",
|
"status.show_less": "Näytä vähemmän",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Näytä lisää",
|
"status.show_more": "Näytä lisää",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Poista mykistys keskustelulta",
|
"status.unmute_conversation": "Poista mykistys keskustelulta",
|
||||||
"status.unpin": "Irrota profiilista",
|
"status.unpin": "Irrota profiilista",
|
||||||
"tabs_bar.federated_timeline": "Federated",
|
"tabs_bar.federated_timeline": "Federated",
|
||||||
|
@ -263,7 +265,7 @@
|
||||||
"upload_area.title": "Raahaa ja pudota tähän ladataksesi",
|
"upload_area.title": "Raahaa ja pudota tähän ladataksesi",
|
||||||
"upload_button.label": "Lisää mediaa",
|
"upload_button.label": "Lisää mediaa",
|
||||||
"upload_form.description": "Anna kuvaus näkörajoitteisia varten",
|
"upload_form.description": "Anna kuvaus näkörajoitteisia varten",
|
||||||
"upload_form.focus": "Crop",
|
"upload_form.focus": "Rajaa",
|
||||||
"upload_form.undo": "Peru",
|
"upload_form.undo": "Peru",
|
||||||
"upload_progress.label": "Ladataan...",
|
"upload_progress.label": "Ladataan...",
|
||||||
"video.close": "Sulje video",
|
"video.close": "Sulje video",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Contenu sensible",
|
"status.sensitive_warning": "Contenu sensible",
|
||||||
"status.share": "Partager",
|
"status.share": "Partager",
|
||||||
"status.show_less": "Replier",
|
"status.show_less": "Replier",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Déplier",
|
"status.show_more": "Déplier",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Ne plus masquer la conversation",
|
"status.unmute_conversation": "Ne plus masquer la conversation",
|
||||||
"status.unpin": "Retirer du profil",
|
"status.unpin": "Retirer du profil",
|
||||||
"tabs_bar.federated_timeline": "Fil public global",
|
"tabs_bar.federated_timeline": "Fil public global",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Contido sensible",
|
"status.sensitive_warning": "Contido sensible",
|
||||||
"status.share": "Compartir",
|
"status.share": "Compartir",
|
||||||
"status.show_less": "Mostrar menos",
|
"status.show_less": "Mostrar menos",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Mostrar máis",
|
"status.show_more": "Mostrar máis",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Non acalar a conversa",
|
"status.unmute_conversation": "Non acalar a conversa",
|
||||||
"status.unpin": "Despegar do perfil",
|
"status.unpin": "Despegar do perfil",
|
||||||
"tabs_bar.federated_timeline": "Federado",
|
"tabs_bar.federated_timeline": "Federado",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "תוכן רגיש",
|
"status.sensitive_warning": "תוכן רגיש",
|
||||||
"status.share": "שיתוף",
|
"status.share": "שיתוף",
|
||||||
"status.show_less": "הראה פחות",
|
"status.show_less": "הראה פחות",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "הראה יותר",
|
"status.show_more": "הראה יותר",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "הסרת השתקת שיחה",
|
"status.unmute_conversation": "הסרת השתקת שיחה",
|
||||||
"status.unpin": "לשחרר מקיבוע באודות",
|
"status.unpin": "לשחרר מקיבוע באודות",
|
||||||
"tabs_bar.federated_timeline": "ציר זמן בין-קהילתי",
|
"tabs_bar.federated_timeline": "ציר זמן בין-קהילתי",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Osjetljiv sadržaj",
|
"status.sensitive_warning": "Osjetljiv sadržaj",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Pokaži manje",
|
"status.show_less": "Pokaži manje",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Pokaži više",
|
"status.show_more": "Pokaži više",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Poništi utišavanje razgovora",
|
"status.unmute_conversation": "Poništi utišavanje razgovora",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Federalni",
|
"tabs_bar.federated_timeline": "Federalni",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Érzékeny tartalom",
|
"status.sensitive_warning": "Érzékeny tartalom",
|
||||||
"status.share": "Megosztás",
|
"status.share": "Megosztás",
|
||||||
"status.show_less": "Kevesebb",
|
"status.show_less": "Kevesebb",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Többet",
|
"status.show_more": "Többet",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Beszélgetés némításának elvonása",
|
"status.unmute_conversation": "Beszélgetés némításának elvonása",
|
||||||
"status.unpin": "Kitűzés eltávolítása a profilról",
|
"status.unpin": "Kitűzés eltávolítása a profilról",
|
||||||
"tabs_bar.federated_timeline": "Federált",
|
"tabs_bar.federated_timeline": "Federált",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Կասկածելի բովանդակություն",
|
"status.sensitive_warning": "Կասկածելի բովանդակություն",
|
||||||
"status.share": "Կիսվել",
|
"status.share": "Կիսվել",
|
||||||
"status.show_less": "Պակաս",
|
"status.show_less": "Պակաս",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Ավելին",
|
"status.show_more": "Ավելին",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Ապալռեցնել խոսակցությունը",
|
"status.unmute_conversation": "Ապալռեցնել խոսակցությունը",
|
||||||
"status.unpin": "Հանել անձնական էջից",
|
"status.unpin": "Հանել անձնական էջից",
|
||||||
"tabs_bar.federated_timeline": "Դաշնային",
|
"tabs_bar.federated_timeline": "Դաշնային",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Konten sensitif",
|
"status.sensitive_warning": "Konten sensitif",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Tampilkan lebih sedikit",
|
"status.show_less": "Tampilkan lebih sedikit",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Tampilkan semua",
|
"status.show_more": "Tampilkan semua",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "Unmute conversation",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Gabungan",
|
"tabs_bar.federated_timeline": "Gabungan",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Trubliva kontenajo",
|
"status.sensitive_warning": "Trubliva kontenajo",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Montrar mine",
|
"status.show_less": "Montrar mine",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Montrar plue",
|
"status.show_more": "Montrar plue",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "Unmute conversation",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Federata",
|
"tabs_bar.federated_timeline": "Federata",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Materiale sensibile",
|
"status.sensitive_warning": "Materiale sensibile",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Mostra meno",
|
"status.show_less": "Mostra meno",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Mostra di più",
|
"status.show_more": "Mostra di più",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "Unmute conversation",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Federazione",
|
"tabs_bar.federated_timeline": "Federazione",
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"account.block_domain": "{domain}全体を非表示",
|
"account.block_domain": "{domain}全体を非表示",
|
||||||
"account.blocked": "ブロック済み",
|
"account.blocked": "ブロック済み",
|
||||||
"account.disclaimer_full": "以下の情報は不正確な可能性があります。",
|
"account.disclaimer_full": "以下の情報は不正確な可能性があります。",
|
||||||
"account.domain_blocked": "Domain hidden",
|
"account.domain_blocked": "ドメイン非表示中",
|
||||||
"account.edit_profile": "プロフィールを編集",
|
"account.edit_profile": "プロフィールを編集",
|
||||||
"account.follow": "フォロー",
|
"account.follow": "フォロー",
|
||||||
"account.followers": "フォロワー",
|
"account.followers": "フォロワー",
|
||||||
|
@ -259,7 +259,9 @@
|
||||||
"status.sensitive_warning": "閲覧注意",
|
"status.sensitive_warning": "閲覧注意",
|
||||||
"status.share": "共有",
|
"status.share": "共有",
|
||||||
"status.show_less": "隠す",
|
"status.show_less": "隠す",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "もっと見る",
|
"status.show_more": "もっと見る",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "会話のミュートを解除",
|
"status.unmute_conversation": "会話のミュートを解除",
|
||||||
"status.unpin": "プロフィールの固定表示を解除",
|
"status.unpin": "プロフィールの固定表示を解除",
|
||||||
"tabs_bar.federated_timeline": "連合",
|
"tabs_bar.federated_timeline": "連合",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "민감한 미디어",
|
"status.sensitive_warning": "민감한 미디어",
|
||||||
"status.share": "공유",
|
"status.share": "공유",
|
||||||
"status.show_less": "숨기기",
|
"status.show_less": "숨기기",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "더 보기",
|
"status.show_more": "더 보기",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "이 대화의 뮤트 해제하기",
|
"status.unmute_conversation": "이 대화의 뮤트 해제하기",
|
||||||
"status.unpin": "고정 해제",
|
"status.unpin": "고정 해제",
|
||||||
"tabs_bar.federated_timeline": "연합",
|
"tabs_bar.federated_timeline": "연합",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Gevoelige inhoud",
|
"status.sensitive_warning": "Gevoelige inhoud",
|
||||||
"status.share": "Delen",
|
"status.share": "Delen",
|
||||||
"status.show_less": "Minder tonen",
|
"status.show_less": "Minder tonen",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Meer tonen",
|
"status.show_more": "Meer tonen",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Conversatie niet meer negeren",
|
"status.unmute_conversation": "Conversatie niet meer negeren",
|
||||||
"status.unpin": "Van profielpagina losmaken",
|
"status.unpin": "Van profielpagina losmaken",
|
||||||
"tabs_bar.federated_timeline": "Globaal",
|
"tabs_bar.federated_timeline": "Globaal",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Følsomt innhold",
|
"status.sensitive_warning": "Følsomt innhold",
|
||||||
"status.share": "Del",
|
"status.share": "Del",
|
||||||
"status.show_less": "Vis mindre",
|
"status.show_less": "Vis mindre",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Vis mer",
|
"status.show_more": "Vis mer",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Ikke demp samtale",
|
"status.unmute_conversation": "Ikke demp samtale",
|
||||||
"status.unpin": "Angre festing på profilen",
|
"status.unpin": "Angre festing på profilen",
|
||||||
"tabs_bar.federated_timeline": "Felles",
|
"tabs_bar.federated_timeline": "Felles",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Contengut sensible",
|
"status.sensitive_warning": "Contengut sensible",
|
||||||
"status.share": "Partejar",
|
"status.share": "Partejar",
|
||||||
"status.show_less": "Tornar plegar",
|
"status.show_less": "Tornar plegar",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Desplegar",
|
"status.show_more": "Desplegar",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Tornar mostrar la conversacion",
|
"status.unmute_conversation": "Tornar mostrar la conversacion",
|
||||||
"status.unpin": "Tirar del perfil",
|
"status.unpin": "Tirar del perfil",
|
||||||
"tabs_bar.federated_timeline": "Flux public global",
|
"tabs_bar.federated_timeline": "Flux public global",
|
||||||
|
|
|
@ -258,8 +258,10 @@
|
||||||
"status.sensitive_toggle": "Naciśnij aby wyświetlić",
|
"status.sensitive_toggle": "Naciśnij aby wyświetlić",
|
||||||
"status.sensitive_warning": "Wrażliwa zawartość",
|
"status.sensitive_warning": "Wrażliwa zawartość",
|
||||||
"status.share": "Udostępnij",
|
"status.share": "Udostępnij",
|
||||||
"status.show_less": "Pokaż mniej",
|
"status.show_less": "Zwiń",
|
||||||
"status.show_more": "Pokaż więcej",
|
"status.show_less_all": "Zwiń wszystkie",
|
||||||
|
"status.show_more": "Rozwiń",
|
||||||
|
"status.show_more_all": "Rozwiń wszystkie",
|
||||||
"status.unmute_conversation": "Cofnij wyciszenie konwersacji",
|
"status.unmute_conversation": "Cofnij wyciszenie konwersacji",
|
||||||
"status.unpin": "Odepnij z profilu",
|
"status.unpin": "Odepnij z profilu",
|
||||||
"tabs_bar.federated_timeline": "Globalne",
|
"tabs_bar.federated_timeline": "Globalne",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Conteúdo sensível",
|
"status.sensitive_warning": "Conteúdo sensível",
|
||||||
"status.share": "Compartilhar",
|
"status.share": "Compartilhar",
|
||||||
"status.show_less": "Mostrar menos",
|
"status.show_less": "Mostrar menos",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Mostrar mais",
|
"status.show_more": "Mostrar mais",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Desativar silêncio desta conversa",
|
"status.unmute_conversation": "Desativar silêncio desta conversa",
|
||||||
"status.unpin": "Desafixar do perfil",
|
"status.unpin": "Desafixar do perfil",
|
||||||
"tabs_bar.federated_timeline": "Global",
|
"tabs_bar.federated_timeline": "Global",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Conteúdo sensível",
|
"status.sensitive_warning": "Conteúdo sensível",
|
||||||
"status.share": "Compartilhar",
|
"status.share": "Compartilhar",
|
||||||
"status.show_less": "Mostrar menos",
|
"status.show_less": "Mostrar menos",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Mostrar mais",
|
"status.show_more": "Mostrar mais",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Deixar de silenciar esta conversa",
|
"status.unmute_conversation": "Deixar de silenciar esta conversa",
|
||||||
"status.unpin": "Não fixar no perfil",
|
"status.unpin": "Não fixar no perfil",
|
||||||
"tabs_bar.federated_timeline": "Global",
|
"tabs_bar.federated_timeline": "Global",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Чувствительный контент",
|
"status.sensitive_warning": "Чувствительный контент",
|
||||||
"status.share": "Поделиться",
|
"status.share": "Поделиться",
|
||||||
"status.show_less": "Свернуть",
|
"status.show_less": "Свернуть",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Развернуть",
|
"status.show_more": "Развернуть",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Снять глушение с треда",
|
"status.unmute_conversation": "Снять глушение с треда",
|
||||||
"status.unpin": "Открепить от профиля",
|
"status.unpin": "Открепить от профиля",
|
||||||
"tabs_bar.federated_timeline": "Глобальная",
|
"tabs_bar.federated_timeline": "Глобальная",
|
||||||
|
|
|
@ -217,8 +217,8 @@
|
||||||
"report.placeholder": "Ďalšie komentáre",
|
"report.placeholder": "Ďalšie komentáre",
|
||||||
"report.submit": "Poslať",
|
"report.submit": "Poslať",
|
||||||
"report.target": "Nahlásenie {target}",
|
"report.target": "Nahlásenie {target}",
|
||||||
"search.placeholder": "Hľadať",
|
"search.placeholder": "Hľadaj",
|
||||||
"search_popout.search_format": "Pokročilý formát vyhľadávania",
|
"search_popout.search_format": "Pokročilé vyhľadávanie",
|
||||||
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
|
"search_popout.tips.full_text": "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": "haštag",
|
"search_popout.tips.hashtag": "haštag",
|
||||||
"search_popout.tips.status": "status",
|
"search_popout.tips.status": "status",
|
||||||
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Chúlostivý obsah",
|
"status.sensitive_warning": "Chúlostivý obsah",
|
||||||
"status.share": "Zdieľať",
|
"status.share": "Zdieľať",
|
||||||
"status.show_less": "Zobraz menej",
|
"status.show_less": "Zobraz menej",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Zobraz viac",
|
"status.show_more": "Zobraz viac",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Prestať ignorovať konverzáciu",
|
"status.unmute_conversation": "Prestať ignorovať konverzáciu",
|
||||||
"status.unpin": "Odopnúť z profilu",
|
"status.unpin": "Odopnúť z profilu",
|
||||||
"tabs_bar.federated_timeline": "Federovaná",
|
"tabs_bar.federated_timeline": "Federovaná",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Osetljiv sadržaj",
|
"status.sensitive_warning": "Osetljiv sadržaj",
|
||||||
"status.share": "Podeli",
|
"status.share": "Podeli",
|
||||||
"status.show_less": "Prikaži manje",
|
"status.show_less": "Prikaži manje",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Prikaži više",
|
"status.show_more": "Prikaži više",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Uključi prepisku",
|
"status.unmute_conversation": "Uključi prepisku",
|
||||||
"status.unpin": "Otkači sa profila",
|
"status.unpin": "Otkači sa profila",
|
||||||
"tabs_bar.federated_timeline": "Federisano",
|
"tabs_bar.federated_timeline": "Federisano",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Осетљив садржај",
|
"status.sensitive_warning": "Осетљив садржај",
|
||||||
"status.share": "Подели",
|
"status.share": "Подели",
|
||||||
"status.show_less": "Прикажи мање",
|
"status.show_less": "Прикажи мање",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Прикажи више",
|
"status.show_more": "Прикажи више",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Укључи преписку",
|
"status.unmute_conversation": "Укључи преписку",
|
||||||
"status.unpin": "Откачи са профила",
|
"status.unpin": "Откачи са профила",
|
||||||
"tabs_bar.federated_timeline": "Федерисано",
|
"tabs_bar.federated_timeline": "Федерисано",
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"account.block": "Blockera @{name}",
|
"account.block": "Blockera @{name}",
|
||||||
"account.block_domain": "Dölj allt från {domain}",
|
"account.block_domain": "Dölj allt från {domain}",
|
||||||
"account.blocked": "Blocked",
|
"account.blocked": "Blockerad",
|
||||||
"account.disclaimer_full": "Informationen nedan kan spegla användarens profil ofullständigt.",
|
"account.disclaimer_full": "Informationen nedan kan spegla användarens profil ofullständigt.",
|
||||||
"account.domain_blocked": "Domain hidden",
|
"account.domain_blocked": "Domän gömd",
|
||||||
"account.edit_profile": "Redigera profil",
|
"account.edit_profile": "Redigera profil",
|
||||||
"account.follow": "Följ",
|
"account.follow": "Följ",
|
||||||
"account.followers": "Följare",
|
"account.followers": "Följare",
|
||||||
|
@ -15,9 +15,9 @@
|
||||||
"account.moved_to": "{name} har flyttat till:",
|
"account.moved_to": "{name} har flyttat till:",
|
||||||
"account.mute": "Tysta @{name}",
|
"account.mute": "Tysta @{name}",
|
||||||
"account.mute_notifications": "Stäng av notifieringar från @{name}",
|
"account.mute_notifications": "Stäng av notifieringar från @{name}",
|
||||||
"account.muted": "Muted",
|
"account.muted": "Nertystad",
|
||||||
"account.posts": "Inlägg",
|
"account.posts": "Inlägg",
|
||||||
"account.posts_with_replies": "Toots with replies",
|
"account.posts_with_replies": "Toots med svar",
|
||||||
"account.report": "Rapportera @{name}",
|
"account.report": "Rapportera @{name}",
|
||||||
"account.requested": "Inväntar godkännande. Klicka för att avbryta följförfrågan",
|
"account.requested": "Inväntar godkännande. Klicka för att avbryta följförfrågan",
|
||||||
"account.share": "Dela @{name}'s profil",
|
"account.share": "Dela @{name}'s profil",
|
||||||
|
@ -211,20 +211,20 @@
|
||||||
"relative_time.minutes": "{number}m",
|
"relative_time.minutes": "{number}m",
|
||||||
"relative_time.seconds": "{number}s",
|
"relative_time.seconds": "{number}s",
|
||||||
"reply_indicator.cancel": "Ångra",
|
"reply_indicator.cancel": "Ångra",
|
||||||
"report.forward": "Forward to {target}",
|
"report.forward": "Vidarebefordra till {target}",
|
||||||
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
|
"report.forward_hint": "Kontot är från en annan server. Skicka även en anonymiserad kopia av anmälan dit?",
|
||||||
"report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
|
"report.hint": "Anmälan skickas till din instans moderatorer. Du kan ge en förklaring till varför du har anmält detta konto nedan:",
|
||||||
"report.placeholder": "Ytterligare kommentarer",
|
"report.placeholder": "Ytterligare kommentarer",
|
||||||
"report.submit": "Skicka",
|
"report.submit": "Skicka",
|
||||||
"report.target": "Rapporterar {target}",
|
"report.target": "Rapporterar {target}",
|
||||||
"search.placeholder": "Sök",
|
"search.placeholder": "Sök",
|
||||||
"search_popout.search_format": "Avancerat sökformat",
|
"search_popout.search_format": "Avancerat sökformat",
|
||||||
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
|
"search_popout.tips.full_text": "Enkel text returnerar statusar där du har skrivit, favoriserat, knuffat eller nämnts samt med matchande användarnamn, visningsnamn och hashtags.",
|
||||||
"search_popout.tips.hashtag": "hashtag",
|
"search_popout.tips.hashtag": "hashtag",
|
||||||
"search_popout.tips.status": "status",
|
"search_popout.tips.status": "status",
|
||||||
"search_popout.tips.text": "Enkel text returnerar matchande visningsnamn, användarnamn och hashtags",
|
"search_popout.tips.text": "Enkel text returnerar matchande visningsnamn, användarnamn och hashtags",
|
||||||
"search_popout.tips.user": "användare",
|
"search_popout.tips.user": "användare",
|
||||||
"search_results.accounts": "People",
|
"search_results.accounts": "Människor",
|
||||||
"search_results.hashtags": "Hashtags",
|
"search_results.hashtags": "Hashtags",
|
||||||
"search_results.statuses": "Toots",
|
"search_results.statuses": "Toots",
|
||||||
"search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
|
"search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
|
||||||
|
@ -242,7 +242,7 @@
|
||||||
"status.mute_conversation": "Tysta konversation",
|
"status.mute_conversation": "Tysta konversation",
|
||||||
"status.open": "Utvidga denna status",
|
"status.open": "Utvidga denna status",
|
||||||
"status.pin": "Fäst i profil",
|
"status.pin": "Fäst i profil",
|
||||||
"status.pinned": "Pinned toot",
|
"status.pinned": "Fäst toot",
|
||||||
"status.reblog": "Knuff",
|
"status.reblog": "Knuff",
|
||||||
"status.reblogged_by": "{name} knuffade",
|
"status.reblogged_by": "{name} knuffade",
|
||||||
"status.reply": "Svara",
|
"status.reply": "Svara",
|
||||||
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Känsligt innehåll",
|
"status.sensitive_warning": "Känsligt innehåll",
|
||||||
"status.share": "Dela",
|
"status.share": "Dela",
|
||||||
"status.show_less": "Visa mindre",
|
"status.show_less": "Visa mindre",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Visa mer",
|
"status.show_more": "Visa mer",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Öppna konversation",
|
"status.unmute_conversation": "Öppna konversation",
|
||||||
"status.unpin": "Ångra fäst i profil",
|
"status.unpin": "Ångra fäst i profil",
|
||||||
"tabs_bar.federated_timeline": "Förenad",
|
"tabs_bar.federated_timeline": "Förenad",
|
||||||
|
@ -263,7 +265,7 @@
|
||||||
"upload_area.title": "Dra & släpp för att ladda upp",
|
"upload_area.title": "Dra & släpp för att ladda upp",
|
||||||
"upload_button.label": "Lägg till media",
|
"upload_button.label": "Lägg till media",
|
||||||
"upload_form.description": "Beskriv för synskadade",
|
"upload_form.description": "Beskriv för synskadade",
|
||||||
"upload_form.focus": "Crop",
|
"upload_form.focus": "Beskär",
|
||||||
"upload_form.undo": "Ångra",
|
"upload_form.undo": "Ångra",
|
||||||
"upload_progress.label": "Laddar upp...",
|
"upload_progress.label": "Laddar upp...",
|
||||||
"video.close": "Stäng video",
|
"video.close": "Stäng video",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Sensitive content",
|
"status.sensitive_warning": "Sensitive content",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Show less",
|
"status.show_less": "Show less",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Show more",
|
"status.show_more": "Show more",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "Unmute conversation",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Federated",
|
"tabs_bar.federated_timeline": "Federated",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Hassas içerik",
|
"status.sensitive_warning": "Hassas içerik",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Daha azı",
|
"status.show_less": "Daha azı",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Daha fazlası",
|
"status.show_more": "Daha fazlası",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "Unmute conversation",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Federe",
|
"tabs_bar.federated_timeline": "Federe",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "Непристойний зміст",
|
"status.sensitive_warning": "Непристойний зміст",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "Згорнути",
|
"status.show_less": "Згорнути",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "Розгорнути",
|
"status.show_more": "Розгорнути",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "Зняти глушення з діалогу",
|
"status.unmute_conversation": "Зняти глушення з діалогу",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "Unpin from profile",
|
||||||
"tabs_bar.federated_timeline": "Глобальна",
|
"tabs_bar.federated_timeline": "Глобальна",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "敏感内容",
|
"status.sensitive_warning": "敏感内容",
|
||||||
"status.share": "分享",
|
"status.share": "分享",
|
||||||
"status.show_less": "隐藏内容",
|
"status.show_less": "隐藏内容",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "显示内容",
|
"status.show_more": "显示内容",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "不再隐藏此对话",
|
"status.unmute_conversation": "不再隐藏此对话",
|
||||||
"status.unpin": "在个人资料页面取消置顶",
|
"status.unpin": "在个人资料页面取消置顶",
|
||||||
"tabs_bar.federated_timeline": "跨站",
|
"tabs_bar.federated_timeline": "跨站",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "敏感內容",
|
"status.sensitive_warning": "敏感內容",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "減少顯示",
|
"status.show_less": "減少顯示",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "顯示更多",
|
"status.show_more": "顯示更多",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "解禁對話",
|
"status.unmute_conversation": "解禁對話",
|
||||||
"status.unpin": "解除置頂",
|
"status.unpin": "解除置頂",
|
||||||
"tabs_bar.federated_timeline": "跨站",
|
"tabs_bar.federated_timeline": "跨站",
|
||||||
|
|
|
@ -252,7 +252,9 @@
|
||||||
"status.sensitive_warning": "敏感內容",
|
"status.sensitive_warning": "敏感內容",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
"status.show_less": "看少點",
|
"status.show_less": "看少點",
|
||||||
|
"status.show_less_all": "Show less for all",
|
||||||
"status.show_more": "看更多",
|
"status.show_more": "看更多",
|
||||||
|
"status.show_more_all": "Show more for all",
|
||||||
"status.unmute_conversation": "不消音對話",
|
"status.unmute_conversation": "不消音對話",
|
||||||
"status.unpin": "解除置頂",
|
"status.unpin": "解除置頂",
|
||||||
"tabs_bar.federated_timeline": "聯盟",
|
"tabs_bar.federated_timeline": "聯盟",
|
||||||
|
|
|
@ -35,6 +35,8 @@ import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrde
|
||||||
import uuid from '../uuid';
|
import uuid from '../uuid';
|
||||||
import { me } from '../initial_state';
|
import { me } from '../initial_state';
|
||||||
|
|
||||||
|
const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\u0009\u000a\u000b\u000c\u000d';
|
||||||
|
|
||||||
const initialState = ImmutableMap({
|
const initialState = ImmutableMap({
|
||||||
mounted: 0,
|
mounted: 0,
|
||||||
sensitive: false,
|
sensitive: false,
|
||||||
|
@ -135,12 +137,14 @@ const updateSuggestionTags = (state, token) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const insertEmoji = (state, position, emojiData) => {
|
const insertEmoji = (state, position, emojiData) => {
|
||||||
const emoji = emojiData.native;
|
const oldText = state.get('text');
|
||||||
|
const needsSpace = emojiData.custom && position > 0 && !allowedAroundShortCode.includes(oldText[position - 1]);
|
||||||
|
const emoji = needsSpace ? ' ' + emojiData.native : emojiData.native;
|
||||||
|
|
||||||
return state.withMutations(map => {
|
return state.merge({
|
||||||
map.update('text', oldText => `${oldText.slice(0, position)}${emoji} ${oldText.slice(position)}`);
|
text: `${oldText.slice(0, position)}${emoji} ${oldText.slice(position)}`,
|
||||||
map.set('focusDate', new Date());
|
focusDate: new Date(),
|
||||||
map.set('idempotencyKey', uuid());
|
idempotencyKey: uuid(),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3422,8 +3422,12 @@ a.status-card {
|
||||||
img,
|
img,
|
||||||
canvas,
|
canvas,
|
||||||
video {
|
video {
|
||||||
max-width: 100vw;
|
max-width: 100%;
|
||||||
max-height: 100vh;
|
/*
|
||||||
|
put margins on top and bottom of image to avoid the screen coverd by
|
||||||
|
image.
|
||||||
|
*/
|
||||||
|
max-height: 80%;
|
||||||
width: auto;
|
width: auto;
|
||||||
height: auto;
|
height: auto;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
@ -3435,11 +3439,6 @@ a.status-card {
|
||||||
background: url('~images/void.png') repeat;
|
background: url('~images/void.png') repeat;
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
.react-swipeable-view-container {
|
|
||||||
width: 100vw;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.media-modal__closer {
|
.media-modal__closer {
|
||||||
|
@ -4315,18 +4314,16 @@ a.status-card {
|
||||||
display: block;
|
display: block;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: $ui-secondary-color;
|
color: $ui-secondary-color;
|
||||||
height: 100%;
|
|
||||||
line-height: 0;
|
line-height: 0;
|
||||||
|
|
||||||
&,
|
&,
|
||||||
img {
|
img {
|
||||||
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
position: relative;
|
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
height: auto;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5076,6 +5073,12 @@ noscript {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.focal-point-modal {
|
||||||
|
max-width: 80vw;
|
||||||
|
max-height: 80vh;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
.focal-point {
|
.focal-point {
|
||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -5085,6 +5088,14 @@ noscript {
|
||||||
cursor: move;
|
cursor: move;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 80vw;
|
||||||
|
max-height: 80vh;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
&__reticle {
|
&__reticle {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
class Tag < ApplicationRecord
|
class Tag < ApplicationRecord
|
||||||
has_and_belongs_to_many :statuses
|
has_and_belongs_to_many :statuses
|
||||||
|
|
||||||
HASHTAG_NAME_RE = '[[:word:]_]*[[:alpha:]_][[:word:]_]*'
|
HASHTAG_NAME_RE = '[[:word:]_]*[[:alpha:]_·][[:word:]_]*'
|
||||||
HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
|
HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
|
||||||
|
|
||||||
validates :name, presence: true, uniqueness: true, format: { with: /\A#{HASHTAG_NAME_RE}\z/i }
|
validates :name, presence: true, uniqueness: true, format: { with: /\A#{HASHTAG_NAME_RE}\z/i }
|
||||||
|
|
|
@ -11,10 +11,14 @@ ar:
|
||||||
domain_count_after: خوادم أخرى
|
domain_count_after: خوادم أخرى
|
||||||
domain_count_before: متصل بـ
|
domain_count_before: متصل بـ
|
||||||
features:
|
features:
|
||||||
|
humane_approach_body: تعلُّمًا مِن فشل الشبكات الأخرى، غاية ماستدون هي بلوغ الخيارات الأخلاقية في التصميم لمُحارَبة إسائة إستعمال شبكات التواصل الإجتماعية.
|
||||||
humane_approach_title: أسلوب يعيد الإعتبار للإنسان
|
humane_approach_title: أسلوب يعيد الإعتبار للإنسان
|
||||||
not_a_product_body: ماستدون ليس شبكة تجارية. لا يحتوي على إعلانات و لا يقوم باستغلال البيانات و لا هو بِبُستان مُسيَّج. لا تحكم فيه وليس له أية هيئةٍ مركزيةٍ.
|
not_a_product_body: ماستدون ليس شبكة تجارية. لا يحتوي على إعلانات و لا يقوم باستغلال البيانات و لا هو بِبُستان مُسيَّج. لا تحكم فيه وليس له أية هيئةٍ مركزيةٍ.
|
||||||
not_a_product_title: إنك إنسان و لست سلعة
|
not_a_product_title: إنك إنسان و لست سلعة
|
||||||
|
real_conversation_body: يُمكنكم التعبير عن آرائكم بكل حرية بفضل 500 حرف و انتقاء دقيق للمحتوى و الوسائط بفضل أدوات التحذير التي هي بين أيديكم.
|
||||||
real_conversation_title: مبني لتحقيق تواصل حقيقي
|
real_conversation_title: مبني لتحقيق تواصل حقيقي
|
||||||
|
within_reach_body: إبقوا على اتصال دائم بأصدقائكم حيثما كانوا عبر عدة تطبيقات لنظام آي أواس و أندرويد و عدة منصات أخرى بفضل واجهة برمجية للتطبيقات و بيئة صديقة للتطوير.
|
||||||
|
within_reach_title: في مُتناوَل يدك دائمًا
|
||||||
generic_description: "%{domain} هو سيرفر من بين سيرفرات الشبكة"
|
generic_description: "%{domain} هو سيرفر من بين سيرفرات الشبكة"
|
||||||
hosted_on: ماستدون مُستضاف على %{domain}
|
hosted_on: ماستدون مُستضاف على %{domain}
|
||||||
learn_more: تعلم المزيد
|
learn_more: تعلم المزيد
|
||||||
|
@ -49,11 +53,13 @@ ar:
|
||||||
created_at: التاريخ
|
created_at: التاريخ
|
||||||
created_msg: تم إنشاء ملاحظة الإشراف بنجاح !
|
created_msg: تم إنشاء ملاحظة الإشراف بنجاح !
|
||||||
delete: حذف
|
delete: حذف
|
||||||
|
destroyed_msg: تم تدمير ملاحظة الإشراف بنجاح !
|
||||||
accounts:
|
accounts:
|
||||||
are_you_sure: متأكد ؟
|
are_you_sure: متأكد ؟
|
||||||
by_domain: النطاق
|
by_domain: النطاق
|
||||||
confirm: تأكيد
|
confirm: تأكيد
|
||||||
confirmed: مؤكَّد
|
confirmed: مؤكَّد
|
||||||
|
demote: إنزال الرُتبة الوظيفية
|
||||||
disable: تعطيل
|
disable: تعطيل
|
||||||
disable_two_factor_authentication: تعطيل 2FA
|
disable_two_factor_authentication: تعطيل 2FA
|
||||||
disabled: معطَّل
|
disabled: معطَّل
|
||||||
|
@ -87,6 +93,7 @@ ar:
|
||||||
most_recent: الأحدث
|
most_recent: الأحدث
|
||||||
title: الترتيب
|
title: الترتيب
|
||||||
profile_url: رابط الملف الشخصي
|
profile_url: رابط الملف الشخصي
|
||||||
|
promote: ترقية
|
||||||
protocol: البروتوكول
|
protocol: البروتوكول
|
||||||
public: عمومي
|
public: عمومي
|
||||||
redownload: تحديث الصورة الرمزية
|
redownload: تحديث الصورة الرمزية
|
||||||
|
@ -100,31 +107,53 @@ ar:
|
||||||
user: مستخدِم
|
user: مستخدِم
|
||||||
salmon_url: عنوان رابط سالمون Salmon
|
salmon_url: عنوان رابط سالمون Salmon
|
||||||
search: البحث
|
search: البحث
|
||||||
|
show:
|
||||||
|
created_reports: البلاغات التي أنشأها هذا الحساب
|
||||||
|
report: التقرير
|
||||||
|
targeted_reports: التقريرات التي أُنشِأت ضد هذا الحساب
|
||||||
statuses: المنشورات
|
statuses: المنشورات
|
||||||
title: الحسابات
|
title: الحسابات
|
||||||
|
undo_suspension: إلغاء تعليق الحساب
|
||||||
username: إسم المستخدم
|
username: إسم المستخدم
|
||||||
web: الويب
|
web: الويب
|
||||||
action_logs:
|
action_logs:
|
||||||
actions:
|
actions:
|
||||||
|
confirm_user: "%{name} قد قام بتأكيد عنوان البريد الإلكتروني لـ %{target}"
|
||||||
create_custom_emoji: "%{name} قام برفع إيموجي جديد %{target}"
|
create_custom_emoji: "%{name} قام برفع إيموجي جديد %{target}"
|
||||||
create_domain_block: "%{name} قام بحجب نطاق %{target}"
|
create_domain_block: "%{name} قام بحجب نطاق %{target}"
|
||||||
|
create_email_domain_block: "%{name} قد قام بحظر نطاق البريد الإلكتروني %{target}"
|
||||||
|
demote_user: "%{name} قد قام بإنزال الرتبة الوظيفية لـ %{target}"
|
||||||
destroy_domain_block: "%{name} قام بإلغاء الحجب عن النطاق %{target}"
|
destroy_domain_block: "%{name} قام بإلغاء الحجب عن النطاق %{target}"
|
||||||
|
disable_2fa_user: "%{name} لقد قام بتعطيل ميزة المصادقة بخطوتين للمستخدم %{target}"
|
||||||
disable_custom_emoji: "%{name} قام بتعطيل الإيموجي %{target}"
|
disable_custom_emoji: "%{name} قام بتعطيل الإيموجي %{target}"
|
||||||
|
disable_user: "%{name} لقد قام بتعطيل تسجيل الدخول للمستخدِم %{target}"
|
||||||
enable_custom_emoji: "%{name} قام بتنشيط الإيموجي %{target}"
|
enable_custom_emoji: "%{name} قام بتنشيط الإيموجي %{target}"
|
||||||
|
enable_user: "%{name} لقد قام بتنشيط تسجيل الدخول للمستخدِم %{target}"
|
||||||
promote_user: "%{name} قام بترقية المستخدم %{target}"
|
promote_user: "%{name} قام بترقية المستخدم %{target}"
|
||||||
|
reset_password_user: "%{name} لقد قام بإعادة تعيين الكلمة السرية الخاصة بـ %{target}"
|
||||||
update_custom_emoji: "%{name} قام بتحديث الإيموجي %{target}"
|
update_custom_emoji: "%{name} قام بتحديث الإيموجي %{target}"
|
||||||
title: سِجلّ التفتيش و المعاينة
|
title: سِجلّ التفتيش و المعاينة
|
||||||
custom_emojis:
|
custom_emojis:
|
||||||
by_domain: النطاق
|
by_domain: النطاق
|
||||||
|
copied_msg: تم إنشاء نسخة محلية للإيموجي بنجاح
|
||||||
copy: نسخ
|
copy: نسخ
|
||||||
|
copy_failed_msg: فشلت عملية إنشاء نسخة محلية لهذا الإيموجي
|
||||||
created_msg: تم إنشاء الإيموجي بنجاح !
|
created_msg: تم إنشاء الإيموجي بنجاح !
|
||||||
delete: حذف
|
delete: حذف
|
||||||
|
destroyed_msg: تمت عملية تدمير الإيموجي بنجاح !
|
||||||
disable: تعطيل
|
disable: تعطيل
|
||||||
|
disabled_msg: تمت عملية تعطيل ذلك الإيموجي بنجاح
|
||||||
emoji: إيموجي
|
emoji: إيموجي
|
||||||
enable: تفعيل
|
enable: تفعيل
|
||||||
|
enabled_msg: تم تنشيط ذاك الإيموجي بنجاح
|
||||||
image_hint: ملف PNG إلى غاية حجم 50 ك.ب
|
image_hint: ملف PNG إلى غاية حجم 50 ك.ب
|
||||||
|
new:
|
||||||
|
title: إضافة إيموجي خاص جديد
|
||||||
|
shortcode: الترميز المُصَغّر
|
||||||
shortcode_hint: على الأقل حرفين، و فقط رموز أبجدية عددية و أسطر سفلية
|
shortcode_hint: على الأقل حرفين، و فقط رموز أبجدية عددية و أسطر سفلية
|
||||||
title: الإيموجي الخاصة
|
title: الإيموجي الخاصة
|
||||||
|
update_failed_msg: تعذرت عملية تحذيث ذاك الإيموجي
|
||||||
|
updated_msg: تم تحديث الإيموجي بنجاح !
|
||||||
upload: رفع
|
upload: رفع
|
||||||
domain_blocks:
|
domain_blocks:
|
||||||
add_new: إضافة نطاق جديد
|
add_new: إضافة نطاق جديد
|
||||||
|
@ -135,9 +164,11 @@ ar:
|
||||||
noop: لا شيء
|
noop: لا شيء
|
||||||
silence: كتم
|
silence: كتم
|
||||||
title: حجب نطاق جديد
|
title: حجب نطاق جديد
|
||||||
|
reject_media: رفض ملفات الوسائط
|
||||||
severities:
|
severities:
|
||||||
noop: لا شيء
|
noop: لا شيء
|
||||||
show:
|
show:
|
||||||
|
title: رفع حظر النطاق عن %{domain}
|
||||||
undo: إلغاء
|
undo: إلغاء
|
||||||
undo: إلغاء
|
undo: إلغاء
|
||||||
email_domain_blocks:
|
email_domain_blocks:
|
||||||
|
@ -145,6 +176,7 @@ ar:
|
||||||
domain: النطاق
|
domain: النطاق
|
||||||
new:
|
new:
|
||||||
create: إضافة نطاق
|
create: إضافة نطاق
|
||||||
|
title: القائمة السوداء للبريد الإلكتروني
|
||||||
instances:
|
instances:
|
||||||
account_count: الحسابات المعروفة
|
account_count: الحسابات المعروفة
|
||||||
domain_name: النطاق
|
domain_name: النطاق
|
||||||
|
@ -156,8 +188,10 @@ ar:
|
||||||
all: الكل
|
all: الكل
|
||||||
available: المتوفرة
|
available: المتوفرة
|
||||||
expired: المنتهي صلاحيتها
|
expired: المنتهي صلاحيتها
|
||||||
|
title: التصفية
|
||||||
title: الدعوات
|
title: الدعوات
|
||||||
reports:
|
reports:
|
||||||
|
action_taken_by: تم اتخاذ الإجراء مِن طرف
|
||||||
are_you_sure: هل أنت متأكد ؟
|
are_you_sure: هل أنت متأكد ؟
|
||||||
comment:
|
comment:
|
||||||
label: تعليق
|
label: تعليق
|
||||||
|
@ -174,6 +208,7 @@ ar:
|
||||||
settings:
|
settings:
|
||||||
contact_information:
|
contact_information:
|
||||||
email: البريد الإلكتروني المهني
|
email: البريد الإلكتروني المهني
|
||||||
|
username: الإتصال بالمستخدِم
|
||||||
registrations:
|
registrations:
|
||||||
closed_message:
|
closed_message:
|
||||||
title: رسالة التسجيلات المقفلة
|
title: رسالة التسجيلات المقفلة
|
||||||
|
@ -221,6 +256,7 @@ ar:
|
||||||
regenerate_token: إعادة توليد رمز النفاذ
|
regenerate_token: إعادة توليد رمز النفاذ
|
||||||
your_token: رمز نفاذك
|
your_token: رمز نفاذك
|
||||||
auth:
|
auth:
|
||||||
|
agreement_html: بقبولك التسجيل فإنك تُصرِّح قبول <a href="%{rules_path}">قواعد مثيل الخادوم</a> و <a href="%{terms_path}">شروط الخدمة التي نوفرها لك</a>.
|
||||||
confirm_email: تأكيد عنوان البريد الإلكتروني
|
confirm_email: تأكيد عنوان البريد الإلكتروني
|
||||||
delete_account: حذف حساب
|
delete_account: حذف حساب
|
||||||
delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك <a href="%{path}">المواصلة هنا</a>. سوف يُطلَبُ منك التأكيد قبل الحذف.
|
delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك <a href="%{path}">المواصلة هنا</a>. سوف يُطلَبُ منك التأكيد قبل الحذف.
|
||||||
|
@ -275,6 +311,11 @@ ar:
|
||||||
content: نحن متأسفون، لقد حدث خطأ ما مِن جانبنا.
|
content: نحن متأسفون، لقد حدث خطأ ما مِن جانبنا.
|
||||||
title: هذه الصفحة خاطئة
|
title: هذه الصفحة خاطئة
|
||||||
exports:
|
exports:
|
||||||
|
archive_takeout:
|
||||||
|
download: تنزيل نسخة لحسابك
|
||||||
|
hint_html: بإمكانك طلب نسخة كاملة لـ <strong>كافة تبويقاتك و الوسائط التي قمت بنشرها</strong>. البيانات المُصدَّرة ستكون محفوظة على شكل نسق ActivityPub و باستطاعتك قراءتها بأي برنامج يدعم هذا النسق.
|
||||||
|
in_progress: عملية جمع نسخة لبيانات حسابك جارية …
|
||||||
|
request: طلب نسخة لحسابك
|
||||||
blocks: قمت بحظر
|
blocks: قمت بحظر
|
||||||
csv: CSV
|
csv: CSV
|
||||||
follows: أنت تتبع
|
follows: أنت تتبع
|
||||||
|
@ -314,7 +355,7 @@ ar:
|
||||||
table:
|
table:
|
||||||
expires_at: تنتهي مدة صلاحيتها في
|
expires_at: تنتهي مدة صلاحيتها في
|
||||||
title: دعوة أشخاص
|
title: دعوة أشخاص
|
||||||
landing_strip_html: "<strong>%{name}</strong> is a user on %{link_to_root_path}. You can follow them or interact with them if you have an account anywhere in the fediverse.."
|
landing_strip_html: "<strong>%{name}</strong> هو أحد مُستخدِمي %{link_to_root_path}. بإمكانك متابعته أو التواصل معه إن كنت تملك حسابًا أيا كان على البيئة الموحَّدة فيديفرس."
|
||||||
landing_strip_signup_html: إن كنت لا تملك واحدا، يمكنك <a href="%{sign_up_path}">التسجيل مِن هنا</a>.
|
landing_strip_signup_html: إن كنت لا تملك واحدا، يمكنك <a href="%{sign_up_path}">التسجيل مِن هنا</a>.
|
||||||
lists:
|
lists:
|
||||||
errors:
|
errors:
|
||||||
|
@ -371,7 +412,9 @@ ar:
|
||||||
trillion: T
|
trillion: T
|
||||||
unit: ''
|
unit: ''
|
||||||
pagination:
|
pagination:
|
||||||
|
newer: الأحدَث
|
||||||
next: التالي
|
next: التالي
|
||||||
|
older: الأقدَم
|
||||||
prev: السابق
|
prev: السابق
|
||||||
truncate: "…"
|
truncate: "…"
|
||||||
preferences:
|
preferences:
|
||||||
|
@ -488,6 +531,10 @@ ar:
|
||||||
recovery_codes_regenerated: تم إعادة توليد رموز الإسترجاع الإحتياطية بنجاح
|
recovery_codes_regenerated: تم إعادة توليد رموز الإسترجاع الإحتياطية بنجاح
|
||||||
setup: تنشيط
|
setup: تنشيط
|
||||||
wrong_code: الرمز الذي أدخلته غير صالح ! تحقق من صحة الوقت على الخادم و الجهاز ؟
|
wrong_code: الرمز الذي أدخلته غير صالح ! تحقق من صحة الوقت على الخادم و الجهاز ؟
|
||||||
|
user_mailer:
|
||||||
|
backup_ready:
|
||||||
|
subject: نسخة بيانات حسابك جاهزة للتنزيل
|
||||||
|
title: المغادرة بأرشيف الحساب
|
||||||
users:
|
users:
|
||||||
invalid_email: عنوان البريد الإلكتروني غير صالح
|
invalid_email: عنوان البريد الإلكتروني غير صالح
|
||||||
invalid_otp_token: الرمز الثنائي غير صالح
|
invalid_otp_token: الرمز الثنائي غير صالح
|
||||||
|
|
|
@ -57,7 +57,7 @@ fi:
|
||||||
prompt: Applikaatio %{client_name} pyytää lupaa tilillesi
|
prompt: Applikaatio %{client_name} pyytää lupaa tilillesi
|
||||||
title: Valtuutus vaaditaan
|
title: Valtuutus vaaditaan
|
||||||
show:
|
show:
|
||||||
title: Copy this authorization code and paste it to the application.
|
title: Kopioi tämä valtuutuskoodi ja liitä se applikaatioon.
|
||||||
authorized_applications:
|
authorized_applications:
|
||||||
buttons:
|
buttons:
|
||||||
revoke: Evää
|
revoke: Evää
|
||||||
|
@ -73,7 +73,7 @@ fi:
|
||||||
messages:
|
messages:
|
||||||
access_denied: Resurssin omistaja tai valtuutus palvelin hylkäsi pyynnönr.
|
access_denied: Resurssin omistaja tai valtuutus palvelin hylkäsi pyynnönr.
|
||||||
credential_flow_not_configured: Resurssin omistajan salasana epäonnistui koska Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu.
|
credential_flow_not_configured: Resurssin omistajan salasana epäonnistui koska Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu.
|
||||||
invalid_client: Asiakkaan valtuutus epäonnistui koska tuntematon asiakas, asiakas ei sisältänyt valtuutusta, tai tukematon valtuutus tapa
|
invalid_client: Asiakkaan valtuutus epäonnistui koska tuntematon asiakas, asiakas ei sisältänyt valtuutusta, tai tukematon valtuutus tapa.
|
||||||
invalid_grant: Antamasi valtuutus lupa on joko väärä, erääntynyt, peruttu, ei vastaa uudelleenohjaus URI jota käytetään valtuutus pyynnössä, tai se myönnettin toiselle asiakkaalle.
|
invalid_grant: Antamasi valtuutus lupa on joko väärä, erääntynyt, peruttu, ei vastaa uudelleenohjaus URI jota käytetään valtuutus pyynnössä, tai se myönnettin toiselle asiakkaalle.
|
||||||
invalid_redirect_uri: Uudelleenohjaus uri ei ole oikein.
|
invalid_redirect_uri: Uudelleenohjaus uri ei ole oikein.
|
||||||
invalid_request: Pyynnöstä puutti parametri, sisältää tukemattoman parametri arvonn, tai on korruptoitunut.
|
invalid_request: Pyynnöstä puutti parametri, sisältää tukemattoman parametri arvonn, tai on korruptoitunut.
|
||||||
|
|
|
@ -114,6 +114,6 @@ sv:
|
||||||
application:
|
application:
|
||||||
title: OAuth-behörighet krävs
|
title: OAuth-behörighet krävs
|
||||||
scopes:
|
scopes:
|
||||||
follow: följ, blockera, ta bort blockering och sluta följa konton
|
follow: följa, blockera, ta bort blockerade och sluta följa konton
|
||||||
read: läs dina kontodata
|
read: läsa dina kontodata
|
||||||
write: posta på dina vägnar
|
write: posta åt dig
|
||||||
|
|
|
@ -120,8 +120,8 @@ fi:
|
||||||
body: 'Tässä on pieni yhteenveto palvelimelta %{instance} viimeksi kun olit paikalla %{since}:'
|
body: 'Tässä on pieni yhteenveto palvelimelta %{instance} viimeksi kun olit paikalla %{since}:'
|
||||||
mention: "%{name} mainitsi sinut:"
|
mention: "%{name} mainitsi sinut:"
|
||||||
new_followers_summary:
|
new_followers_summary:
|
||||||
one: Olet saanut yhden uuden seuraajan! Jee!
|
one: Olet myös saanut yhden uuden seuraajan poissaollessasi! Jee!
|
||||||
other: Olet saanut %{count} uutta seuraajaa! Loistavaa!
|
other: Olet saanut %{count} uutta seuraajaa poissaollessasi! Loistavaa!
|
||||||
subject:
|
subject:
|
||||||
one: "1 uusi ilmoitus viimeisen käyntisi jälkeen \U0001F418"
|
one: "1 uusi ilmoitus viimeisen käyntisi jälkeen \U0001F418"
|
||||||
other: "%{count} uutta ilmoitusta viimeisen käyntisi jälkeen \U0001F418"
|
other: "%{count} uutta ilmoitusta viimeisen käyntisi jälkeen \U0001F418"
|
||||||
|
|
|
@ -4,41 +4,43 @@ fi:
|
||||||
hints:
|
hints:
|
||||||
defaults:
|
defaults:
|
||||||
avatar: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 400x400px
|
avatar: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 400x400px
|
||||||
|
digest: Lähetetään vain pitkän poissaolon jälkeen, ja vain jos olet vastaanottanut yksityisviestejä poissaolosi aikana.
|
||||||
display_name: Korkeintaan 30 merkkiä
|
display_name: Korkeintaan 30 merkkiä
|
||||||
header: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 700x335px
|
header: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 700x335px
|
||||||
locked: Vaatii sinun manuaalisesti hyväksymään seuraajat ja asettaa julkaisujen yksityisyyden vain seuraajille
|
locked: Vaatii sinun manuaalisesti hyväksymään seuraajat, ja asettaa julkaisujen yksityisyyden vain seuraajille
|
||||||
note: Korkeintaan 160 merkkiä
|
note: Korkeintaan 160 merkkiä
|
||||||
imports:
|
imports:
|
||||||
data: CSV tiedosto tuotu toiselta Mastodon palvelimelta
|
data: CSV tiedosto tuotu toiselta Mastodon palvelimelta
|
||||||
labels:
|
labels:
|
||||||
defaults:
|
defaults:
|
||||||
avatar: Avatar
|
avatar: Profiilikuva
|
||||||
confirm_new_password: Varmista uusi salasana
|
confirm_new_password: Varmista uusi salasana
|
||||||
confirm_password: Varmista salasana
|
confirm_password: Varmista salasana
|
||||||
current_password: Nykyinen salasana
|
current_password: Nykyinen salasana
|
||||||
data: Data
|
data: Data
|
||||||
display_name: Näykyvä nimi
|
display_name: Näykyvä nimi
|
||||||
email: Sähköpostiosoite
|
email: Sähköpostiosoite
|
||||||
header: Header
|
header: Otsake
|
||||||
locale: Kieli
|
locale: Kieli
|
||||||
locked: Tee tilistä yksityinen
|
locked: Tee tilistä yksityinen
|
||||||
|
max_uses: Max käyttökerrat
|
||||||
new_password: Uusi salasana
|
new_password: Uusi salasana
|
||||||
note: Bio
|
note: Bio
|
||||||
otp_attempt: Kaksivaiheinen koodi
|
otp_attempt: Kaksivaiheinen koodi
|
||||||
password: Salasana
|
password: Salasana
|
||||||
setting_default_privacy: Julkaisun yksityisyys
|
setting_default_privacy: Julkaisun yksityisyys
|
||||||
type: Tuonti tyyppi
|
type: Tuontityyppi
|
||||||
username: Käyttäjänimi
|
username: Käyttäjänimi
|
||||||
interactions:
|
interactions:
|
||||||
must_be_follower: Estä ilmoitukset käyttäjiltä jotka eivät seuraa sinua
|
must_be_follower: Estä ilmoitukset käyttäjiltä jotka eivät seuraa sinua
|
||||||
must_be_following: Estä ilmoitukset käyttäjiltä joita et seuraa
|
must_be_following: Estä ilmoitukset käyttäjiltä joita et seuraa
|
||||||
notification_emails:
|
notification_emails:
|
||||||
digest: Send digest e-mails
|
digest: Lähetä koosteviestejä sähköpostilla
|
||||||
favourite: Lähetä s-posti kun joku tykkää statuksestasi
|
favourite: Lähetä sähköposti, kun joku tykkää statuksestasi
|
||||||
follow: Lähetä s-posti kun joku seuraa sinua
|
follow: Lähetä sähköposti, kun joku seuraa sinua
|
||||||
follow_request: Lähetä s-posti kun joku pyytää seurata sinua
|
follow_request: Lähetä sähköposti, kun joku pyytää seurata sinua
|
||||||
mention: Lähetä s-posti kun joku mainitsee sinut
|
mention: Lähetä sähköposti, kun joku mainitsee sinut
|
||||||
reblog: Lähetä s-posti kun joku buustaa julkaisusi
|
reblog: Lähetä sähköposti, kun joku buustaa julkaisusi
|
||||||
'no': Ei
|
'no': Ei
|
||||||
required:
|
required:
|
||||||
mark: "*"
|
mark: "*"
|
||||||
|
|
|
@ -13,8 +13,8 @@ sv:
|
||||||
note:
|
note:
|
||||||
one: <span class="note-counter">1</span> tecken kvar
|
one: <span class="note-counter">1</span> tecken kvar
|
||||||
other: <span class="note-counter">%{count}</span> tecken kvar
|
other: <span class="note-counter">%{count}</span> tecken kvar
|
||||||
setting_noindex: Påverkar din offentliga profil och status sidor
|
setting_noindex: Påverkar din offentliga profil och statussidor
|
||||||
setting_theme: Påverkar hur Mastodon ser ut när du är inloggad från vilken enhet som helst.
|
setting_theme: Påverkar hur Mastodon ser ut oavsett från vilken enhet du är inloggad.
|
||||||
imports:
|
imports:
|
||||||
data: CSV-fil som exporteras från en annan Mastodon-instans
|
data: CSV-fil som exporteras från en annan Mastodon-instans
|
||||||
sessions:
|
sessions:
|
||||||
|
@ -32,7 +32,7 @@ sv:
|
||||||
email: E-postadress
|
email: E-postadress
|
||||||
expires_in: Förfaller efter
|
expires_in: Förfaller efter
|
||||||
filtered_languages: Filtrerade språk
|
filtered_languages: Filtrerade språk
|
||||||
header: Rubrik
|
header: Bakgrundsbild
|
||||||
locale: Språk
|
locale: Språk
|
||||||
locked: Lås konto
|
locked: Lås konto
|
||||||
max_uses: Högst antal användningar
|
max_uses: Högst antal användningar
|
||||||
|
@ -45,6 +45,7 @@ sv:
|
||||||
setting_default_privacy: Postintegritet
|
setting_default_privacy: Postintegritet
|
||||||
setting_default_sensitive: Markera alltid media som känsligt
|
setting_default_sensitive: Markera alltid media som känsligt
|
||||||
setting_delete_modal: Visa bekräftelsedialog innan du raderar en toot
|
setting_delete_modal: Visa bekräftelsedialog innan du raderar en toot
|
||||||
|
setting_display_sensitive_media: Visa alltid media märkt som känsligt
|
||||||
setting_noindex: Uteslutning av sökmotorindexering
|
setting_noindex: Uteslutning av sökmotorindexering
|
||||||
setting_reduce_motion: Minska rörelser i animationer
|
setting_reduce_motion: Minska rörelser i animationer
|
||||||
setting_system_font_ui: Använd systemets standardfont
|
setting_system_font_ui: Använd systemets standardfont
|
||||||
|
|
|
@ -397,8 +397,8 @@ sk:
|
||||||
about_x_months: "%{count}mesiace"
|
about_x_months: "%{count}mesiace"
|
||||||
about_x_years: "%{count}rok"
|
about_x_years: "%{count}rok"
|
||||||
almost_x_years: "%{count}rok"
|
almost_x_years: "%{count}rok"
|
||||||
half_a_minute: Len teraz
|
half_a_minute: Práve teraz
|
||||||
less_than_x_seconds: Len teraz
|
less_than_x_seconds: Práve teraz
|
||||||
over_x_years: "%{count}rok"
|
over_x_years: "%{count}rok"
|
||||||
x_days: "%{count}dni"
|
x_days: "%{count}dni"
|
||||||
x_minutes: ''
|
x_minutes: ''
|
||||||
|
@ -629,6 +629,8 @@ sk:
|
||||||
terms:
|
terms:
|
||||||
title: Podmienky užívania, a pravidlá o súkromí pre %{instance}
|
title: Podmienky užívania, a pravidlá o súkromí pre %{instance}
|
||||||
two_factor_authentication:
|
two_factor_authentication:
|
||||||
|
enable: Povoliť
|
||||||
|
generate_recovery_codes: Vygeneruj zálohové kódy
|
||||||
setup: Nastavenie
|
setup: Nastavenie
|
||||||
user_mailer:
|
user_mailer:
|
||||||
backup_ready:
|
backup_ready:
|
||||||
|
@ -640,12 +642,15 @@ sk:
|
||||||
explanation: Tu nájdeš nejaké tipy do začiatku
|
explanation: Tu nájdeš nejaké tipy do začiatku
|
||||||
final_action: Začni prispievať
|
final_action: Začni prispievať
|
||||||
final_step: 'Začnite písať! Aj bez následovníkov budú vaše verejné správy videné ostatnými, napríklad na lokálnej osi a pod haštagmi. Môžete sa ostatným predstaviť pod haštagom #introductions.'
|
final_step: 'Začnite písať! Aj bez následovníkov budú vaše verejné správy videné ostatnými, napríklad na lokálnej osi a pod haštagmi. Môžete sa ostatným predstaviť pod haštagom #introductions.'
|
||||||
|
full_handle: Adresa tvojho profilu v celom formáte
|
||||||
review_preferences_action: Zmeniť nastavenia
|
review_preferences_action: Zmeniť nastavenia
|
||||||
subject: Vitaj na Mastodone
|
subject: Vitaj na Mastodone
|
||||||
tip_local_timeline: Lokálna os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia!
|
tip_local_timeline: Lokálna os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia!
|
||||||
tip_mobile_webapp: Pokiaľ ti prehliadač ponúkne možnosť pridať Mastodon na tvoju obrazovku, môžeš potom dostávať notifikácie skoro ako z natívnej aplikácie!
|
tip_mobile_webapp: Pokiaľ ti prehliadač ponúkne možnosť pridať Mastodon na tvoju obrazovku, môžeš potom dostávať notifikácie skoro ako z natívnej aplikácie!
|
||||||
|
tips: Tipy
|
||||||
title: Vitaj na palube, %{name}!
|
title: Vitaj na palube, %{name}!
|
||||||
users:
|
users:
|
||||||
invalid_email: Emailová adresa je neplatná
|
invalid_email: Emailová adresa je neplatná
|
||||||
invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu
|
invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu
|
||||||
|
seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné.
|
||||||
signed_in_as: 'Prihlásený ako:'
|
signed_in_as: 'Prihlásený ako:'
|
||||||
|
|
|
@ -273,6 +273,9 @@ sv:
|
||||||
contact_information:
|
contact_information:
|
||||||
email: Företag E-post
|
email: Företag E-post
|
||||||
username: Användarnamn för kontakt
|
username: Användarnamn för kontakt
|
||||||
|
hero:
|
||||||
|
desc_html: Visas på framsidan. Minst 600x100px rekommenderas. Om inte angiven faller den tillbaka på instansens miniatyrbild
|
||||||
|
title: Hjältebild
|
||||||
peers_api_enabled:
|
peers_api_enabled:
|
||||||
desc_html: Domännamn denna instans har påträffat i fediverse
|
desc_html: Domännamn denna instans har påträffat i fediverse
|
||||||
title: Publicera lista över upptäckta instanser
|
title: Publicera lista över upptäckta instanser
|
||||||
|
@ -356,6 +359,7 @@ sv:
|
||||||
your_token: Din access token
|
your_token: Din access token
|
||||||
auth:
|
auth:
|
||||||
agreement_html: Genom att registrera dig godkänner du att följa <a href="%{rules_path}">instansens regler</a> och <a href="%{terms_path}">våra användarvillkor</a>.
|
agreement_html: Genom att registrera dig godkänner du att följa <a href="%{rules_path}">instansens regler</a> och <a href="%{terms_path}">våra användarvillkor</a>.
|
||||||
|
change_password: Lösenord
|
||||||
confirm_email: Bekräfta e-postadress
|
confirm_email: Bekräfta e-postadress
|
||||||
delete_account: Ta bort konto
|
delete_account: Ta bort 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.
|
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.
|
||||||
|
@ -366,11 +370,13 @@ sv:
|
||||||
logout: Logga ut
|
logout: Logga ut
|
||||||
migrate_account: Flytta till ett annat konto
|
migrate_account: Flytta till ett annat konto
|
||||||
migrate_account_html: Om du vill omdirigera detta konto till ett annat, kan du <a href="%{path}">konfigurera det här</a>.
|
migrate_account_html: Om du vill omdirigera detta konto till ett annat, kan du <a href="%{path}">konfigurera det här</a>.
|
||||||
|
or: eller
|
||||||
or_log_in_with: Eller logga in med
|
or_log_in_with: Eller logga in med
|
||||||
providers:
|
providers:
|
||||||
cas: CAS
|
cas: CAS
|
||||||
saml: SAML
|
saml: SAML
|
||||||
register: Registrera
|
register: Registrera
|
||||||
|
register_elsewhere: Registrera dig på en annan server
|
||||||
resend_confirmation: Skicka instruktionerna om bekräftelse igen
|
resend_confirmation: Skicka instruktionerna om bekräftelse igen
|
||||||
reset_password: Återställ lösenord
|
reset_password: Återställ lösenord
|
||||||
security: Säkerhet
|
security: Säkerhet
|
||||||
|
@ -420,14 +426,21 @@ sv:
|
||||||
title: Den här sidan är inte korrekt
|
title: Den här sidan är inte korrekt
|
||||||
noscript_html: För att använda Mastodon webbapplikationen, vänligen aktivera JavaScript. Alternativt kan du prova en av <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">inhemska appar</a> för Mastodon för din plattform.
|
noscript_html: För att använda Mastodon webbapplikationen, vänligen aktivera JavaScript. Alternativt kan du prova en av <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">inhemska appar</a> för Mastodon för din plattform.
|
||||||
exports:
|
exports:
|
||||||
|
archive_takeout:
|
||||||
|
date: Datum
|
||||||
|
download: Ladda ner ditt arkiv
|
||||||
|
hint_html: Du kan begära ett arkiv av dina <strong>toots och uppladdad media</strong>. Den exporterade datan kommer att vara i ActivityPub-format och läsbar av kompatibel programvara.
|
||||||
|
in_progress: Kompilerar ditt arkiv...
|
||||||
|
request: Efterfråga ditt arkiv
|
||||||
|
size: Storlek
|
||||||
blocks: Du blockerar
|
blocks: Du blockerar
|
||||||
csv: CSV
|
csv: CSV
|
||||||
follows: Du följer
|
follows: Du följer
|
||||||
mutes: Du tystar
|
mutes: Du tystar
|
||||||
storage: Media lagring
|
storage: Medialagring
|
||||||
followers:
|
followers:
|
||||||
domain: Domän
|
domain: Domän
|
||||||
explanation_html: Om du vill se integriteten för dina statusar måste du vara medveten om vem som följer dig. <strong>Dina privata statusar levereras till alla instanser där du har följare</strong>. Du kanske vill granska dem och ta bort följare om du inte litar på att din integritet respekteras av staff eller programvaran i instanserna.
|
explanation_html: Om du vill försäkra integriteten av dina statusar måste du vara medveten om vem som följer dig. <strong>Dina privata statusar levereras till alla instanser där du har följare</strong>. Du kanske vill granska och eventuellt ta bort följare om du inte litar på att din integritet respekteras hos medarbetarna eller programvara i dessa instanser.
|
||||||
followers_count: Antal följare
|
followers_count: Antal följare
|
||||||
lock_link: Lås ditt konto
|
lock_link: Lås ditt konto
|
||||||
purge: Ta bort från följare
|
purge: Ta bort från följare
|
||||||
|
@ -435,7 +448,7 @@ sv:
|
||||||
one: I processen med soft-blocking följare från en domän ...
|
one: I processen med soft-blocking följare från en domän ...
|
||||||
other: I processen med soft-blocking följare från %{count} domäner...
|
other: I processen med soft-blocking följare från %{count} domäner...
|
||||||
true_privacy_html: Kom ihåg att <strong>sann integritet kan bara uppnås med end-to-end kryptering</strong>.
|
true_privacy_html: Kom ihåg att <strong>sann integritet kan bara uppnås med end-to-end kryptering</strong>.
|
||||||
unlocked_warning_html: Vem som helst kan följa dig omedelbart se dina privata statusar. %{lock_link} för att kunna granska och avvisa följare.
|
unlocked_warning_html: Vem som helst kan följa dig för att omedelbart se dina privata statusar. %{lock_link} för att kunna granska och avvisa följare.
|
||||||
unlocked_warning_title: Ditt konto är inte låst
|
unlocked_warning_title: Ditt konto är inte låst
|
||||||
generic:
|
generic:
|
||||||
changes_saved_msg: Ändringar sparades framgångsrikt!
|
changes_saved_msg: Ändringar sparades framgångsrikt!
|
||||||
|
@ -448,9 +461,9 @@ sv:
|
||||||
preface: Du kan importera data som du exporterat från en annan instans, till exempel en lista över personer du följer eller blockerar.
|
preface: Du kan importera data som du exporterat från en annan instans, till exempel en lista över personer du följer eller blockerar.
|
||||||
success: Dina uppgifter har laddats upp och kommer nu att behandlas snarast
|
success: Dina uppgifter har laddats upp och kommer nu att behandlas snarast
|
||||||
types:
|
types:
|
||||||
blocking: Blockering lista
|
blocking: Lista av blockerade
|
||||||
following: Följare lista
|
following: Lista av följare
|
||||||
muting: Tystade lista
|
muting: Lista av nertystade
|
||||||
upload: Ladda upp
|
upload: Ladda upp
|
||||||
in_memoriam_html: Till minne av.
|
in_memoriam_html: Till minne av.
|
||||||
invites:
|
invites:
|
||||||
|
@ -535,7 +548,9 @@ sv:
|
||||||
trillion: T
|
trillion: T
|
||||||
unit: enhet
|
unit: enhet
|
||||||
pagination:
|
pagination:
|
||||||
|
newer: Nyare
|
||||||
next: Nästa
|
next: Nästa
|
||||||
|
older: Äldre
|
||||||
prev: Tidigare
|
prev: Tidigare
|
||||||
truncate: "…"
|
truncate: "…"
|
||||||
preferences:
|
preferences:
|
||||||
|
@ -551,7 +566,7 @@ sv:
|
||||||
group:
|
group:
|
||||||
title: "%{count} meddelanden"
|
title: "%{count} meddelanden"
|
||||||
mention:
|
mention:
|
||||||
action_boost: Boosta
|
action_boost: Knuffa
|
||||||
action_expand: Visa mer
|
action_expand: Visa mer
|
||||||
action_favourite: Favoriter
|
action_favourite: Favoriter
|
||||||
title: "%{name} nämnde dig"
|
title: "%{name} nämnde dig"
|
||||||
|
@ -609,7 +624,7 @@ sv:
|
||||||
delete: Konto radering
|
delete: Konto radering
|
||||||
development: Utveckling
|
development: Utveckling
|
||||||
edit_profile: Redigera profil
|
edit_profile: Redigera profil
|
||||||
export: Data export
|
export: Exportera data
|
||||||
followers: Auktoriserade följare
|
followers: Auktoriserade följare
|
||||||
import: Import
|
import: Import
|
||||||
migrate: Kontoflytt
|
migrate: Kontoflytt
|
||||||
|
@ -625,7 +640,7 @@ sv:
|
||||||
limit: Du har redan fäst det maximala antalet toots
|
limit: Du har redan fäst det maximala antalet toots
|
||||||
ownership: Någon annans toot kan inte fästas
|
ownership: Någon annans toot kan inte fästas
|
||||||
private: Icke-offentliga toot kan inte fästas
|
private: Icke-offentliga toot kan inte fästas
|
||||||
reblog: En boost kan inte fästas
|
reblog: Knuffar kan inte fästas
|
||||||
show_more: Visa mer
|
show_more: Visa mer
|
||||||
title: '%{name}: "%{quote}"'
|
title: '%{name}: "%{quote}"'
|
||||||
visibilities:
|
visibilities:
|
||||||
|
@ -634,7 +649,7 @@ sv:
|
||||||
public: Offentlig
|
public: Offentlig
|
||||||
public_long: Alla kan se
|
public_long: Alla kan se
|
||||||
unlisted: Olistade
|
unlisted: Olistade
|
||||||
unlisted_long: Alla kan se, men inte listade på offentliga tidslinjer
|
unlisted_long: Alla kan se, men listas inte på offentliga tidslinjer
|
||||||
stream_entries:
|
stream_entries:
|
||||||
click_to_show: Klicka för att visa
|
click_to_show: Klicka för att visa
|
||||||
pinned: Fäst toot
|
pinned: Fäst toot
|
||||||
|
@ -717,7 +732,7 @@ sv:
|
||||||
default: "%b %d, %Y, %H:%M"
|
default: "%b %d, %Y, %H:%M"
|
||||||
two_factor_authentication:
|
two_factor_authentication:
|
||||||
code_hint: Ange koden som genererats av din autentiseringsapp för att bekräfta
|
code_hint: Ange koden som genererats av din autentiseringsapp för att bekräfta
|
||||||
description_html: Om du aktiverar <strong>tvåfaktors autentisering</strong>, loggar in kommer att kräva att du är i besittning av din telefon, vilket kommer att generera tokens för dig att uppge.
|
description_html: Om du aktiverar <strong>tvåstegsautentisering</strong> kommer inloggningen kräva att du har din telefon tillgänglig, vilket kommer att generera tokens för dig att uppge.
|
||||||
disable: Avaktivera
|
disable: Avaktivera
|
||||||
enable: Aktivera
|
enable: Aktivera
|
||||||
enabled: Tvåfaktorsautentisering är aktiverad
|
enabled: Tvåfaktorsautentisering är aktiverad
|
||||||
|
@ -732,9 +747,13 @@ sv:
|
||||||
setup: Ställ in
|
setup: Ställ in
|
||||||
wrong_code: Den angivna koden var ogiltig! Är servertid och enhetstid korrekt?
|
wrong_code: Den angivna koden var ogiltig! Är servertid och enhetstid korrekt?
|
||||||
user_mailer:
|
user_mailer:
|
||||||
|
backup_ready:
|
||||||
|
explanation: Du begärde en fullständig säkerhetskopiering av ditt Mastodon-konto. Det är nu klart för nedladdning!
|
||||||
|
subject: Ditt arkiv är klart för nedladdning
|
||||||
|
title: Arkivuttagning
|
||||||
welcome:
|
welcome:
|
||||||
edit_profile_action: Profilinställning
|
edit_profile_action: Profilinställning
|
||||||
edit_profile_step: Du kan anpassa din profil genom att ladda upp en avatar, rubrik, ändra ditt visningsnamn och mer. Om du vill granska nya följare innan de får följa dig kan du låsa ditt konto.
|
edit_profile_step: Du kan anpassa din profil genom att ladda upp en avatar, bakgrundsbild, ändra ditt visningsnamn och mer. Om du vill granska nya följare innan de får följa dig kan du låsa ditt konto.
|
||||||
explanation: Här är några tips för att komma igång
|
explanation: Här är några tips för att komma igång
|
||||||
final_action: Börja posta
|
final_action: Börja posta
|
||||||
final_step: 'Börja posta! Även utan anhängare kan dina offentliga meddelanden ses av andra, till exempel på den lokala tidslinjen och i hashtags. Du får gärna presentera dig via hashtaggen #introductions.'
|
final_step: 'Börja posta! Även utan anhängare kan dina offentliga meddelanden ses av andra, till exempel på den lokala tidslinjen och i hashtags. Du får gärna presentera dig via hashtaggen #introductions.'
|
||||||
|
@ -753,4 +772,5 @@ sv:
|
||||||
users:
|
users:
|
||||||
invalid_email: E-postadressen är ogiltig
|
invalid_email: E-postadressen är ogiltig
|
||||||
invalid_otp_token: Ogiltig tvåfaktorkod
|
invalid_otp_token: Ogiltig tvåfaktorkod
|
||||||
|
seamless_external_login: Du är inloggad via en extern tjänst, så lösenord och e-postinställningar är inte tillgängliga.
|
||||||
signed_in_as: 'Inloggad som:'
|
signed_in_as: 'Inloggad som:'
|
||||||
|
|
|
@ -13,7 +13,7 @@ module Mastodon
|
||||||
end
|
end
|
||||||
|
|
||||||
def patch
|
def patch
|
||||||
0
|
1
|
||||||
end
|
end
|
||||||
|
|
||||||
def pre
|
def pre
|
||||||
|
@ -21,7 +21,7 @@ module Mastodon
|
||||||
end
|
end
|
||||||
|
|
||||||
def flags
|
def flags
|
||||||
''
|
'rc2'
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_a
|
def to_a
|
||||||
|
|
|
@ -224,24 +224,43 @@ namespace :mastodon do
|
||||||
prompt.say "\n"
|
prompt.say "\n"
|
||||||
|
|
||||||
loop do
|
loop do
|
||||||
env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q|
|
if prompt.yes?('Do you want to send e-mails from localhost?', default: false)
|
||||||
q.required true
|
env['SMTP_SERVER'] = 'localhost'
|
||||||
q.default 'smtp.mailgun.org'
|
env['SMTP_PORT'] = 25
|
||||||
q.modify :strip
|
env['SMTP_AUTH_METHOD'] = 'none'
|
||||||
end
|
env['SMTP_OPENSSL_VERIFY_MODE'] = 'none'
|
||||||
|
else
|
||||||
|
env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q|
|
||||||
|
q.required true
|
||||||
|
q.default 'smtp.mailgun.org'
|
||||||
|
q.modify :strip
|
||||||
|
end
|
||||||
|
|
||||||
env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q|
|
env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q|
|
||||||
q.required true
|
q.required true
|
||||||
q.default 587
|
q.default 587
|
||||||
q.convert :int
|
q.convert :int
|
||||||
end
|
end
|
||||||
|
|
||||||
env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q|
|
env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q|
|
||||||
q.modify :strip
|
q.modify :strip
|
||||||
end
|
end
|
||||||
|
|
||||||
env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q|
|
env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q|
|
||||||
q.echo false
|
q.echo false
|
||||||
|
end
|
||||||
|
|
||||||
|
env['SMTP_AUTH_METHOD'] = prompt.ask('SMTP authentication:') do |q|
|
||||||
|
q.required
|
||||||
|
q.default 'plain'
|
||||||
|
q.modify :strip
|
||||||
|
end
|
||||||
|
|
||||||
|
env['SMTP_OPENSSL_VERIFY_MODE'] = prompt.ask('SMTP OpenSSL verify mode:') do |q|
|
||||||
|
q.required
|
||||||
|
q.default 'peer'
|
||||||
|
q.modify :strip
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
env['SMTP_FROM_ADDRESS'] = prompt.ask('E-mail address to send e-mails "from":') do |q|
|
env['SMTP_FROM_ADDRESS'] = prompt.ask('E-mail address to send e-mails "from":') do |q|
|
||||||
|
@ -261,7 +280,8 @@ namespace :mastodon do
|
||||||
:user_name => env['SMTP_LOGIN'].presence,
|
:user_name => env['SMTP_LOGIN'].presence,
|
||||||
:password => env['SMTP_PASSWORD'].presence,
|
:password => env['SMTP_PASSWORD'].presence,
|
||||||
:domain => env['LOCAL_DOMAIN'],
|
:domain => env['LOCAL_DOMAIN'],
|
||||||
:authentication => :plain,
|
:authentication => env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain,
|
||||||
|
:openssl_verify_mode => env['SMTP_OPENSSL_VERIFY_MODE'],
|
||||||
:enable_starttls_auto => true,
|
:enable_starttls_auto => true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,6 +291,7 @@ namespace :mastodon do
|
||||||
|
|
||||||
mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!'
|
mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!'
|
||||||
mail.deliver
|
mail.deliver
|
||||||
|
break
|
||||||
rescue StandardError => e
|
rescue StandardError => e
|
||||||
prompt.error 'E-mail could not be sent with this configuration, try again.'
|
prompt.error 'E-mail could not be sent with this configuration, try again.'
|
||||||
prompt.error e.message
|
prompt.error e.message
|
||||||
|
@ -302,7 +323,7 @@ namespace :mastodon do
|
||||||
prompt.say 'Running `RAILS_ENV=production rails db:setup` ...'
|
prompt.say 'Running `RAILS_ENV=production rails db:setup` ...'
|
||||||
prompt.say "\n"
|
prompt.say "\n"
|
||||||
|
|
||||||
if cmd.run!({ RAILS_ENV: 'production' }, :rails, 'db:setup').failure?
|
if cmd.run!({ RAILS_ENV: 'production', SAFETY_ASSURED: 1 }, :rails, 'db:setup').failure?
|
||||||
prompt.say "\n"
|
prompt.say "\n"
|
||||||
prompt.error 'That failed! Perhaps your configuration is not right'
|
prompt.error 'That failed! Perhaps your configuration is not right'
|
||||||
else
|
else
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.2 KiB |
Loading…
Reference in a new issue