Release Wondering wapiti (#231)

* [FIX] the reply content type is missing (#214)

* [ADD] Custom emoji installation documentation  (#213)

* [CH] Move custom emoji doc in customization doc

* Revert "[CH] Disable server statuses streaming when on small devices as it can disturb user navigation (#128)"

This reverts commit 4a1515472b as it causes issues on home timeline

* [ADD] Add option to disable quote RT (#220)

* [FIX] Fix double message entry when no chats (#221)

* [CH] Remove settings password options when using ldap (#222)

* [ADD] Add an icon to describe privacy (#223)

* [FIX] Fix wrong default privacy after first compose modal (#229)

* [FIX] Fix Quoted status CW not being forwarded nor hidden (#230)

* Fix i18n issues

* bump version

---------

Co-authored-by: SevicheCC <91365763+Sevichecc@users.noreply.github.com>
Co-authored-by: нездалисько <105280814+uandreew@users.noreply.github.com>
Co-authored-by: clovis <clovis@synapse-medicine.com>
This commit is contained in:
Clovis 2023-06-25 20:30:43 +02:00 committed by GitHub
parent a684ec9e32
commit 9cf92b9ed4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
84 changed files with 323 additions and 160 deletions

View file

@ -53,11 +53,15 @@ const SidebarNavigation = () => {
}); });
} }
menu.push({ // we only want to add this option is it's not already shown
to: '/messages', // so only when chats are supported
text: intl.formatMessage(messages.direct), if (features.chats) {
icon: require('@tabler/icons/mail.svg'), menu.push({
}); to: '/messages',
text: intl.formatMessage(messages.direct),
icon: require('@tabler/icons/mail.svg'),
});
}
if (features.bookmarks) { if (features.bookmarks) {
menu.push({ menu.push({
@ -75,7 +79,7 @@ const SidebarNavigation = () => {
}); });
} }
if(features.profileDirectory) { if (features.profileDirectory) {
menu.push({ menu.push({
to: '/directory', to: '/directory',
text: intl.formatMessage(messages.directory), text: intl.formatMessage(messages.directory),
@ -131,7 +135,7 @@ const SidebarNavigation = () => {
<SidebarNavigationLink <SidebarNavigationLink
to='/messages' to='/messages'
icon={require('@tabler/icons/mail.svg')} icon={require('@tabler/icons/mail.svg')}
text={<FormattedMessage id='navigation.direct_messages' defaultMessage='Messages' />} text={<FormattedMessage id='column.direct' defaultMessage='Direct messages' />}
/> />
); );
} }

View file

@ -1,6 +1,6 @@
import classNames from 'classnames'; import classNames from 'classnames';
import { List as ImmutableList } from 'immutable'; import { List as ImmutableList } from 'immutable';
import React from 'react'; import React, { useMemo } from 'react';
import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
@ -109,6 +109,8 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
const isStaff = account ? account.staff : false; const isStaff = account ? account.staff : false;
const isAdmin = account ? account.admin : false; const isAdmin = account ? account.admin : false;
const quotePosts = useMemo(() => features.quotePosts && soapboxConfig.quotePosts, [features, soapboxConfig]);
if (!status) { if (!status) {
return null; return null;
} }
@ -601,7 +603,7 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
text={withLabels ? intl.formatMessage(messages.reply) : undefined} text={withLabels ? intl.formatMessage(messages.reply) : undefined}
/> />
{(features.quotePosts && me) ? ( {(quotePosts && me) ? (
<DropdownMenuContainer <DropdownMenuContainer
items={reblogMenu} items={reblogMenu}
disabled={!publicStatus} disabled={!publicStatus}

View file

@ -11,7 +11,7 @@ import { toggleStatusHidden } from 'soapbox/actions/statuses';
import Icon from 'soapbox/components/icon'; import Icon from 'soapbox/components/icon';
import AccountContainer from 'soapbox/containers/account_container'; import AccountContainer from 'soapbox/containers/account_container';
import QuotedStatus from 'soapbox/features/status/containers/quoted_status_container'; import QuotedStatus from 'soapbox/features/status/containers/quoted_status_container';
import { useAppDispatch, useSettings } from 'soapbox/hooks'; import { useAppDispatch, useSettings, useLogo } from 'soapbox/hooks';
import { defaultMediaVisibility, textForScreenReader, getActualStatus } from 'soapbox/utils/status'; import { defaultMediaVisibility, textForScreenReader, getActualStatus } from 'soapbox/utils/status';
import StatusActionBar from './status-action-bar'; import StatusActionBar from './status-action-bar';
@ -79,6 +79,8 @@ const Status: React.FC<IStatus> = (props) => {
const actualStatus = getActualStatus(status); const actualStatus = getActualStatus(status);
const logo = useLogo();
// Track height changes we know about to compensate scrolling. // Track height changes we know about to compensate scrolling.
useEffect(() => { useEffect(() => {
didShowCard.current = Boolean(!muted && !hidden && status?.card); didShowCard.current = Boolean(!muted && !hidden && status?.card);
@ -207,61 +209,6 @@ const Status: React.FC<IStatus> = (props) => {
); );
} }
if (status.reblog && typeof status.reblog === 'object') {
const displayNameHtml = { __html: String(status.getIn(['account', 'display_name_html'])) };
reblogElement = (
<NavLink
to={`/@${status.getIn(['account', 'acct'])}`}
onClick={(event) => event.stopPropagation()}
className='hidden sm:flex items-center text-gray-700 dark:text-gray-600 text-xs font-medium space-x-1 hover:underline'
>
<Icon src={require('@tabler/icons/repeat.svg')} className='text-green-600' />
<HStack alignItems='center'>
<FormattedMessage
id='status.reblogged_by'
defaultMessage='{name} reposted'
values={{
name: <bdi className='max-w-[100px] truncate pr-1'>
<strong className='text-gray-800 dark:text-gray-200' dangerouslySetInnerHTML={displayNameHtml} />
</bdi>,
}}
/>
</HStack>
</NavLink>
);
reblogElementMobile = (
<div className='pb-5 -mt-2 sm:hidden truncate'>
<NavLink
to={`/@${status.getIn(['account', 'acct'])}`}
onClick={(event) => event.stopPropagation()}
className='flex items-center text-gray-700 dark:text-gray-600 text-xs font-medium space-x-1 hover:underline'
>
<Icon src={require('@tabler/icons/repeat.svg')} className='text-green-600' />
<span>
<FormattedMessage
id='status.reblogged_by'
defaultMessage='{name} reposted'
values={{
name: <bdi>
<strong className='text-gray-800 dark:text-gray-200' dangerouslySetInnerHTML={displayNameHtml} />
</bdi>,
}}
/>
</span>
</NavLink>
</div>
);
rebloggedByText = intl.formatMessage(
messages.reblogged_by,
{ name: String(status.getIn(['account', 'acct'])) },
);
}
let quote; let quote;
if (actualStatus.quote) { if (actualStatus.quote) {
@ -299,7 +246,10 @@ const Status: React.FC<IStatus> = (props) => {
className={classNames('status cursor-pointer', { focusable })} className={classNames('status cursor-pointer', { focusable })}
tabIndex={focusable && !muted ? 0 : undefined} tabIndex={focusable && !muted ? 0 : undefined}
data-featured={featured ? 'true' : null} data-featured={featured ? 'true' : null}
aria-label={textForScreenReader(intl, actualStatus, rebloggedByText)} aria-label={textForScreenReader(intl, actualStatus, intl.formatMessage(
messages.reblogged_by,
{ name: String(status.getIn(['account', 'acct'])) },
))}
ref={node} ref={node}
onClick={() => history.push(statusUrl)} onClick={() => history.push(statusUrl)}
role='link' role='link'
@ -324,22 +274,61 @@ const Status: React.FC<IStatus> = (props) => {
})} })}
data-id={status.id} data-id={status.id}
> >
{reblogElementMobile}
<div className='mb-4'> <div className='flex mb-3'>
<AccountContainer <div className='grow'>
key={String(actualStatus.getIn(['account', 'id']))} {
id={String(actualStatus.getIn(['account', 'id']))} status.reblog && typeof status.reblog === 'object' && (
timestamp={actualStatus.created_at} <NavLink
timestampUrl={statusUrl} to={`/@${status.getIn(['account', 'acct'])}`}
action={reblogElement} onClick={(event) => event.stopPropagation()}
hideActions={!reblogElement} className='flex items-center mb-3 text-gray-700 dark:text-gray-600 text-xs font-medium space-x-1 hover:underline'
showEdit={!!actualStatus.edited_at} >
showProfileHoverCard={hoverable} <Icon src={require('@tabler/icons/repeat.svg')} className='text-green-600' />
withLinkToProfile={hoverable}
/> <HStack alignItems='center'>
<FormattedMessage
id='status.reblogged_by'
defaultMessage='{name} reposted'
values={{
name: <bdi className='max-w-[100px] truncate pr-1'>
<strong className='text-gray-800 dark:text-gray-200' dangerouslySetInnerHTML={{ __html: String(status.getIn(['account', 'display_name_html'])) }} />
</bdi>,
}}
/>
</HStack>
</NavLink>
)
}
<AccountContainer
key={String(actualStatus.getIn(['account', 'id']))}
id={String(actualStatus.getIn(['account', 'id']))}
timestamp={actualStatus.created_at}
timestampUrl={statusUrl}
hideActions
showEdit={!!actualStatus.edited_at}
showProfileHoverCard={hoverable}
withLinkToProfile={hoverable}
/>
</div>
{
actualStatus.visibility === 'public' && <Icon aria-hidden src={require('@tabler/icons/world.svg')} className='h-5 w-5 shrink-0 text-gray-400 dark:text-gray-600' />
}
{
actualStatus.visibility === 'unlisted' && <Icon aria-hidden src={require('@tabler/icons/eye-off.svg')} className='h-5 w-5 shrink-0 text-gray-400 dark:text-gray-600' />
}
{
actualStatus.visibility === 'local' && <Icon aria-hidden src={logo} className='h-5 w-5 shrink-0 text-gray-400 dark:text-gray-600' />
}
{
actualStatus.visibility === 'private' && <Icon aria-hidden src={require('@tabler/icons/lock.svg')} className='h-5 w-5 shrink-0 text-gray-400 dark:text-gray-600' />
}
{
actualStatus.visibility === 'direct' && <Icon aria-hidden src={require('@tabler/icons/mail.svg')} className='h-5 w-5 shrink-0 text-gray-400 dark:text-gray-600' />
}
</div> </div>
<div className='status__content-wrapper'> <div className='status__content-wrapper'>
{!group && actualStatus.group && ( {!group && actualStatus.group && (
<div className='status__meta'> <div className='status__meta'>
@ -368,7 +357,7 @@ const Status: React.FC<IStatus> = (props) => {
onToggleVisibility={handleToggleMediaVisibility} onToggleVisibility={handleToggleMediaVisibility}
/> />
{quote} {!actualStatus.hidden && quote}
{!hideActionBar && ( {!hideActionBar && (
<div className='pt-4'> <div className='pt-4'>

View file

@ -6,10 +6,11 @@ import { expandCommunityTimeline } from 'soapbox/actions/timelines';
import PullToRefresh from 'soapbox/components/pull-to-refresh'; import PullToRefresh from 'soapbox/components/pull-to-refresh';
import { Column } from 'soapbox/components/ui'; import { Column } from 'soapbox/components/ui';
import { useAppDispatch, useSettings } from 'soapbox/hooks'; import { useAppDispatch, useSettings } from 'soapbox/hooks';
import { isMobile } from 'soapbox/is_mobile';
import Timeline from '../ui/components/timeline'; import Timeline from '../ui/components/timeline';
import ColumnSettings from './containers/column_settings_container';
const messages = defineMessages({ const messages = defineMessages({
title: { id: 'column.community', defaultMessage: 'Local timeline' }, title: { id: 'column.community', defaultMessage: 'Local timeline' },
}); });
@ -33,13 +34,11 @@ const CommunityTimeline = () => {
useEffect(() => { useEffect(() => {
dispatch(expandCommunityTimeline({ onlyMedia } as any)); dispatch(expandCommunityTimeline({ onlyMedia } as any));
if (!isMobile(window.innerWidth)) { const disconnect = dispatch(connectCommunityStream({ onlyMedia } as any));
const disconnect = dispatch(connectCommunityStream({ onlyMedia } as any));
return () => { return () => {
disconnect(); disconnect();
}; };
}
}, [onlyMedia]); }, [onlyMedia]);
return ( return (

View file

@ -12,6 +12,7 @@ import AutosuggestInput from 'soapbox/components/autosuggest_input';
import AutosuggestTextarea from 'soapbox/components/autosuggest_textarea'; import AutosuggestTextarea from 'soapbox/components/autosuggest_textarea';
import Icon from 'soapbox/components/icon'; import Icon from 'soapbox/components/icon';
import { Button, Stack } from 'soapbox/components/ui'; import { Button, Stack } from 'soapbox/components/ui';
import SvgIcon from 'soapbox/components/ui/icon/svg-icon';
import { isMobile } from 'soapbox/is_mobile'; import { isMobile } from 'soapbox/is_mobile';
import EmojiPickerDropdown from '../../../containers/emoji_picker_dropdown_container'; import EmojiPickerDropdown from '../../../containers/emoji_picker_dropdown_container';
@ -31,6 +32,8 @@ import UploadButtonContainer from '../containers/upload_button_container';
import WarningContainer from '../containers/warning_container'; import WarningContainer from '../containers/warning_container';
import { countableText } from '../util/counter'; import { countableText } from '../util/counter';
import TextCharacterCounter from './text_character_counter'; import TextCharacterCounter from './text_character_counter';
import VisualCharacterCounter from './visual_character_counter'; import VisualCharacterCounter from './visual_character_counter';
@ -45,8 +48,10 @@ const messages = defineMessages({
message: { id: 'compose_form.message', defaultMessage: 'Message' }, message: { id: 'compose_form.message', defaultMessage: 'Message' },
schedule: { id: 'compose_form.schedule', defaultMessage: 'Schedule' }, schedule: { id: 'compose_form.schedule', defaultMessage: 'Schedule' },
saveChanges: { id: 'compose_form.save_changes', defaultMessage: 'Save changes' }, saveChanges: { id: 'compose_form.save_changes', defaultMessage: 'Save changes' },
marked: { id: 'compose_form.spoiler.marked', defaultMessage: 'Text is hidden behind warning' },
}); });
export default @withRouter export default @withRouter
class ComposeForm extends ImmutablePureComponent { class ComposeForm extends ImmutablePureComponent {
@ -85,10 +90,12 @@ class ComposeForm extends ImmutablePureComponent {
clickableAreaRef: PropTypes.object, clickableAreaRef: PropTypes.object,
scheduledAt: PropTypes.instanceOf(Date), scheduledAt: PropTypes.instanceOf(Date),
features: PropTypes.object.isRequired, features: PropTypes.object.isRequired,
spoilerForced: PropTypes.bool,
}; };
static defaultProps = { static defaultProps = {
showSearch: false, showSearch: false,
spoilerForced: false,
}; };
handleChange = (e) => { handleChange = (e) => {
@ -256,7 +263,7 @@ class ComposeForm extends ImmutablePureComponent {
} }
render() { render() {
const { intl, onPaste, showSearch, anyMedia, shouldCondense, autoFocus, isModalOpen, maxTootChars, scheduledStatusCount, features } = this.props; const { intl, onPaste, showSearch, anyMedia, shouldCondense, autoFocus, isModalOpen, maxTootChars, scheduledStatusCount, features, spoilerForced } = this.props;
const condensed = shouldCondense && !this.state.composeFocused && this.isEmpty() && !this.props.isUploading; const condensed = shouldCondense && !this.state.composeFocused && this.isEmpty() && !this.props.isUploading;
const disabled = this.props.isSubmitting; const disabled = this.props.isSubmitting;
const text = [this.props.spoilerText, countableText(this.props.text)].join(''); const text = [this.props.spoilerText, countableText(this.props.text)].join('');
@ -327,7 +334,7 @@ class ComposeForm extends ImmutablePureComponent {
value={this.props.spoilerText} value={this.props.spoilerText}
onChange={this.handleChangeSpoilerText} onChange={this.handleChangeSpoilerText}
onKeyDown={this.handleKeyDown} onKeyDown={this.handleKeyDown}
disabled={!this.props.spoiler} disabled={this.props.spoilerForced || !this.props.spoiler}
ref={this.setSpoilerText} ref={this.setSpoilerText}
suggestions={this.props.suggestions} suggestions={this.props.suggestions}
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested} onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
@ -380,7 +387,13 @@ class ComposeForm extends ImmutablePureComponent {
{features.polls && <PollButtonContainer />} {features.polls && <PollButtonContainer />}
{features.privacyScopes && <PrivacyDropdownContainer />} {features.privacyScopes && <PrivacyDropdownContainer />}
{features.scheduledStatuses && <ScheduleButtonContainer />} {features.scheduledStatuses && <ScheduleButtonContainer />}
{features.spoilers && <SpoilerButtonContainer />} {features.spoilers && (
spoilerForced ? <SvgIcon
className={classNames('cursor-not-allowed text-primary-600 hover:text-primary-500 dark:text-primary-400 dark:hover:text-primary-300')}
src={require('@tabler/icons/alert-triangle.svg')}
title={intl.formatMessage(messages.marked)}
/> : <SpoilerButtonContainer />
)}
{features.richText && <MarkdownButtonContainer />} {features.richText && <MarkdownButtonContainer />}
</div> </div>

View file

@ -166,7 +166,7 @@ const PrivacyDropdown: React.FC<IPrivacyDropdown> = ({
const options = [ const options = [
{ icon: require('@tabler/icons/world.svg'), value: 'public', text: intl.formatMessage(messages.public_short), meta: intl.formatMessage(messages.public_long) }, { icon: require('@tabler/icons/world.svg'), value: 'public', text: intl.formatMessage(messages.public_short), meta: intl.formatMessage(messages.public_long) },
{ icon: require('@tabler/icons/lock-open.svg'), value: 'unlisted', text: intl.formatMessage(messages.unlisted_short), meta: intl.formatMessage(messages.unlisted_long) }, { icon: require('@tabler/icons/eye-off.svg'), value: 'unlisted', text: intl.formatMessage(messages.unlisted_short), meta: intl.formatMessage(messages.unlisted_long) },
...(features.localOnlyPrivacy ? [{ icon: logo, value: 'local', text: intl.formatMessage(messages.local_short), meta: intl.formatMessage(messages.local_long) }] : []), ...(features.localOnlyPrivacy ? [{ icon: logo, value: 'local', text: intl.formatMessage(messages.local_short), meta: intl.formatMessage(messages.local_long) }] : []),
{ icon: require('@tabler/icons/lock.svg'), value: 'private', text: intl.formatMessage(messages.private_short), meta: intl.formatMessage(messages.private_long) }, { icon: require('@tabler/icons/lock.svg'), value: 'private', text: intl.formatMessage(messages.private_short), meta: intl.formatMessage(messages.private_long) },
{ icon: require('@tabler/icons/mail.svg'), value: 'direct', text: intl.formatMessage(messages.direct_short), meta: intl.formatMessage(messages.direct_long) }, { icon: require('@tabler/icons/mail.svg'), value: 'direct', text: intl.formatMessage(messages.direct_short), meta: intl.formatMessage(messages.direct_long) },

View file

@ -13,6 +13,7 @@ import {
} from 'soapbox/actions/compose'; } from 'soapbox/actions/compose';
import { getFeatures } from 'soapbox/utils/features'; import { getFeatures } from 'soapbox/utils/features';
import ComposeForm from '../components/compose_form'; import ComposeForm from '../components/compose_form';
const mapStateToProps = state => { const mapStateToProps = state => {
@ -23,6 +24,7 @@ const mapStateToProps = state => {
suggestions: state.getIn(['compose', 'suggestions']), suggestions: state.getIn(['compose', 'suggestions']),
spoiler: state.getIn(['compose', 'spoiler']), spoiler: state.getIn(['compose', 'spoiler']),
spoilerText: state.getIn(['compose', 'spoiler_text']), spoilerText: state.getIn(['compose', 'spoiler_text']),
spoilerForced: state.getIn(['compose', 'spoiler_forced']),
privacy: state.getIn(['compose', 'privacy']), privacy: state.getIn(['compose', 'privacy']),
focusDate: state.getIn(['compose', 'focusDate']), focusDate: state.getIn(['compose', 'focusDate']),
caretPosition: state.getIn(['compose', 'caretPosition']), caretPosition: state.getIn(['compose', 'caretPosition']),

View file

@ -1,4 +1,4 @@
import React, { useEffect } from 'react'; import React, { useEffect, useRef } from 'react';
import { defineMessages, useIntl, FormattedMessage } from 'react-intl'; import { defineMessages, useIntl, FormattedMessage } from 'react-intl';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
@ -21,6 +21,9 @@ const HomeTimeline: React.FC = () => {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const features = useFeatures(); const features = useFeatures();
const polling = useRef<NodeJS.Timer | null>(null);
const isPartial = useAppSelector(state => state.timelines.get('home')?.isPartial === true);
const currentAccountId = useAppSelector(state => state.timelines.get('home')?.feedAccountId as string | undefined); const currentAccountId = useAppSelector(state => state.timelines.get('home')?.feedAccountId as string | undefined);
const siteTitle = useAppSelector(state => state.instance.title); const siteTitle = useAppSelector(state => state.instance.title);
const currentAccountRelationship = useAppSelector(state => currentAccountId ? state.relationships.get(currentAccountId) : null); const currentAccountRelationship = useAppSelector(state => currentAccountId ? state.relationships.get(currentAccountId) : null);
@ -29,10 +32,37 @@ const HomeTimeline: React.FC = () => {
dispatch(expandHomeTimeline({ maxId, accountId: currentAccountId })); dispatch(expandHomeTimeline({ maxId, accountId: currentAccountId }));
}; };
// Mastodon generates the feed in Redis, and can return a partial timeline
// (HTTP 206) for new users. Poll until we get a full page of results.
const checkIfReloadNeeded = () => {
if (isPartial) {
polling.current = setInterval(() => {
dispatch(expandHomeTimeline());
}, 3000);
} else {
stopPolling();
}
};
const stopPolling = () => {
if (polling.current) {
clearInterval(polling.current);
polling.current = null;
}
};
const handleRefresh = () => { const handleRefresh = () => {
return dispatch(expandHomeTimeline({ maxId: null, accountId: currentAccountId })); return dispatch(expandHomeTimeline({ maxId: null, accountId: currentAccountId }));
}; };
useEffect(() => {
checkIfReloadNeeded();
return () => {
stopPolling();
};
}, [isPartial]);
useEffect(() => { useEffect(() => {
// Check to see if we still follow the user that is selected in the Feed Carousel. // Check to see if we still follow the user that is selected in the Feed Carousel.
if (currentAccountId) { if (currentAccountId) {

View file

@ -31,7 +31,7 @@ const Privacy = ({ onNext } : { onNext : () => void}) => {
</div> </div>
<div className='flex-grow-1 w-1/2'> <div className='flex-grow-1 w-1/2'>
<h4 className='items-center text-xl font-bold'> <h4 className='items-center text-xl font-bold'>
<Icon className='inline-block text-primary-500 align-middle mr-1 w-6 h-6' src={require('@tabler/icons/lock-open.svg')} /> <Icon className='inline-block text-primary-500 align-middle mr-1 w-6 h-6' src={require('@tabler/icons/eye-off.svg')} />
<span className='align-middle'> <span className='align-middle'>
<FormattedMessage id='onboarding.privacy.unlisted-title' defaultMessage='Unlisted' /> <FormattedMessage id='onboarding.privacy.unlisted-title' defaultMessage='Unlisted' />
</span> </span>

View file

@ -8,7 +8,6 @@ import { expandPublicTimeline, expandBubbleTimeline } from 'soapbox/actions/time
import PullToRefresh from 'soapbox/components/pull-to-refresh'; import PullToRefresh from 'soapbox/components/pull-to-refresh';
import { Button, Column, Text } from 'soapbox/components/ui'; import { Button, Column, Text } from 'soapbox/components/ui';
import { useAppDispatch, useAppSelector, useSettings, useFeatures, useOwnAccount } from 'soapbox/hooks'; import { useAppDispatch, useAppSelector, useSettings, useFeatures, useOwnAccount } from 'soapbox/hooks';
import { isMobile } from 'soapbox/is_mobile';
import PinnedHostsPicker from '../remote_timeline/components/pinned_hosts_picker'; import PinnedHostsPicker from '../remote_timeline/components/pinned_hosts_picker';
import Timeline from '../ui/components/timeline'; import Timeline from '../ui/components/timeline';
@ -40,7 +39,7 @@ const CommunityTimeline = () => {
}, [dispatch]); }, [dispatch]);
const handleLoadMore = React.useCallback((maxId: string) => { const handleLoadMore = React.useCallback((maxId: string) => {
if (!bubbleTimeline) { if(!bubbleTimeline) {
dispatch(expandPublicTimeline({ maxId, onlyMedia })); dispatch(expandPublicTimeline({ maxId, onlyMedia }));
} else { } else {
dispatch(expandBubbleTimeline({ maxId, onlyMedia })); dispatch(expandBubbleTimeline({ maxId, onlyMedia }));
@ -48,7 +47,7 @@ const CommunityTimeline = () => {
}, [bubbleTimeline, dispatch, onlyMedia]); }, [bubbleTimeline, dispatch, onlyMedia]);
const handleRefresh = React.useCallback(() => { const handleRefresh = React.useCallback(() => {
if (!bubbleTimeline) { if(!bubbleTimeline) {
return dispatch(expandPublicTimeline({ onlyMedia } as any)); return dispatch(expandPublicTimeline({ onlyMedia } as any));
} else { } else {
return dispatch(expandBubbleTimeline({ onlyMedia } as any)); return dispatch(expandBubbleTimeline({ onlyMedia } as any));
@ -56,15 +55,13 @@ const CommunityTimeline = () => {
}, [bubbleTimeline, dispatch, onlyMedia]); }, [bubbleTimeline, dispatch, onlyMedia]);
useEffect(() => { useEffect(() => {
if (!bubbleTimeline) { if(!bubbleTimeline) {
dispatch(expandPublicTimeline({ onlyMedia } as any)); dispatch(expandPublicTimeline({ onlyMedia } as any));
if (!isMobile(window.innerWidth)) { const disconnect = dispatch(connectPublicStream({ onlyMedia }));
const disconnect = dispatch(connectPublicStream({ onlyMedia }));
return () => { return () => {
disconnect(); disconnect();
}; };
}
} else { } else {
dispatch(expandBubbleTimeline({ onlyMedia } as any)); dispatch(expandBubbleTimeline({ onlyMedia } as any));
// bubble timeline doesnt have streaming for now // bubble timeline doesnt have streaming for now
@ -75,37 +72,37 @@ const CommunityTimeline = () => {
<Column label={intl.formatMessage(messages.title)} transparent withHeader={false}> <Column label={intl.formatMessage(messages.title)} transparent withHeader={false}>
<PinnedHostsPicker /> <PinnedHostsPicker />
{showExplanationBox && <div className='mb-4'> {showExplanationBox && <div className='mb-4'>
<Text size='lg' weight='bold' className='mb-2'> <Text size="lg" weight="bold" className="mb-2">
<FormattedMessage id='fediverse_tab.explanation_box.title' defaultMessage='What is the Fediverse?' /> <FormattedMessage id='fediverse_tab.explanation_box.title' defaultMessage='What is the Fediverse?' />
</Text> </Text>
<FormattedMessage <FormattedMessage
id='fediverse_tab.explanation_box.explanation' id='fediverse_tab.explanation_box.explanation'
defaultMessage='{site_title} is part of the Fediverse, a social network made up of thousands of independent social media sites (aka "servers"). The posts you see here are from 3rd-party servers. You have the freedom to engage with them, or to block any server you don&apos;t like. Pay attention to the full username after the second @ symbol to know which server a post is from. To see only {site_title} posts, visit {local}.' defaultMessage='{site_title} is part of the Fediverse, a social network made up of thousands of independent social media sites (aka "servers"). The posts you see here are from 3rd-party servers. You have the freedom to engage with them, or to block any server you don&apos;t like. Pay attention to the full username after the second @ symbol to know which server a post is from. To see only {site_title} posts, visit {local}.'
values={{ values={{
site_title: siteTitle, site_title: siteTitle,
local: ( local: (
<Link to='/timeline/local'> <Link to='/timeline/local'>
<FormattedMessage <FormattedMessage
id='empty_column.home.local_tab' id='empty_column.home.local_tab'
defaultMessage='the {site_title} tab' defaultMessage='the {site_title} tab'
values={{ site_title: siteTitle }} values={{ site_title: siteTitle }}
/> />
</Link> </Link>
), ),
}} }}
/> />
{ {
bubbleTimeline && ( bubbleTimeline && (
<p className='mt-2'> <p className='mt-2'>
<FormattedMessage id='fediverse_tab.explanation_box.bubble' defaultMessage='This timeline shows you all the statuses published on a selection of other instances curated by your moderators.' /> <FormattedMessage id='fediverse_tab.explanation_box.bubble' defaultMessage='This timeline shows you all the statuses published on a selection of other instances curated by your moderators.' />
</p> </p>
) )
} }
<div className='text-right'> <div className="text-right">
<Button theme='link' onClick={dismissExplanationBox}> <Button theme="link" onClick={dismissExplanationBox}>
<FormattedMessage id='fediverse_tab.explanation_box.dismiss' defaultMessage="Don\'t show again" /> <FormattedMessage id='fediverse_tab.explanation_box.dismiss' defaultMessage="Don\'t show again" />
</Button> </Button>
</div> </div>
</div>} </div>}
<PullToRefresh onRefresh={handleRefresh}> <PullToRefresh onRefresh={handleRefresh}>
<Timeline <Timeline

View file

@ -7,6 +7,7 @@ import { fetchMfa } from 'soapbox/actions/mfa';
import List, { ListItem } from 'soapbox/components/list'; import List, { ListItem } from 'soapbox/components/list';
import { Card, CardBody, CardHeader, CardTitle, Column } from 'soapbox/components/ui'; import { Card, CardBody, CardHeader, CardTitle, Column } from 'soapbox/components/ui';
import { useAppSelector, useOwnAccount } from 'soapbox/hooks'; import { useAppSelector, useOwnAccount } from 'soapbox/hooks';
import { ConfigDB } from 'soapbox/utils/config_db';
import { getFeatures } from 'soapbox/utils/features'; import { getFeatures } from 'soapbox/utils/features';
import Preferences from '../preferences'; import Preferences from '../preferences';
@ -41,6 +42,7 @@ const Settings = () => {
const intl = useIntl(); const intl = useIntl();
const mfa = useAppSelector((state) => state.security.get('mfa')); const mfa = useAppSelector((state) => state.security.get('mfa'));
const configuration = useAppSelector((state) => state.admin.get('configs'));
const features = useAppSelector((state) => getFeatures(state.instance)); const features = useAppSelector((state) => getFeatures(state.instance));
const account = useOwnAccount(); const account = useOwnAccount();
@ -59,6 +61,7 @@ const Settings = () => {
const navigateToFilters = () => history.push('/filters'); const navigateToFilters = () => history.push('/filters');
const isMfaEnabled = mfa.getIn(['settings', 'totp']); const isMfaEnabled = mfa.getIn(['settings', 'totp']);
const isLdapEnabled = React.useMemo(() => ConfigDB.find(configuration, ':pleroma', ':ldap')?.get('value').find((e) => e.get('tuple').get(0) === ':enabled')?.getIn(['tuple', 1]), [configuration]);
useEffect(() => { useEffect(() => {
dispatch(fetchMfa()); dispatch(fetchMfa());
@ -111,7 +114,11 @@ const Settings = () => {
{features.security && ( {features.security && (
<> <>
<ListItem label={intl.formatMessage(messages.changeEmail)} onClick={navigateToChangeEmail} /> <ListItem label={intl.formatMessage(messages.changeEmail)} onClick={navigateToChangeEmail} />
<ListItem label={intl.formatMessage(messages.changePassword)} onClick={navigateToChangePassword} /> {
!isLdapEnabled && (
<ListItem label={intl.formatMessage(messages.changePassword)} onClick={navigateToChangePassword} />
)
}
<ListItem label={intl.formatMessage(messages.configureMfa)} onClick={navigateToMfa}> <ListItem label={intl.formatMessage(messages.configureMfa)} onClick={navigateToMfa}>
{isMfaEnabled ? {isMfaEnabled ?
intl.formatMessage(messages.mfaEnabled) : intl.formatMessage(messages.mfaEnabled) :

View file

@ -44,6 +44,7 @@ const messages = defineMessages({
verifiedCanEditNameLabel: { id: 'soapbox_config.verified_can_edit_name_label', defaultMessage: 'Allow verified users to edit their own display name.' }, verifiedCanEditNameLabel: { id: 'soapbox_config.verified_can_edit_name_label', defaultMessage: 'Allow verified users to edit their own display name.' },
displayFqnLabel: { id: 'soapbox_config.display_fqn_label', defaultMessage: 'Display domain (eg @user@domain) for local accounts.' }, displayFqnLabel: { id: 'soapbox_config.display_fqn_label', defaultMessage: 'Display domain (eg @user@domain) for local accounts.' },
greentextLabel: { id: 'soapbox_config.greentext_label', defaultMessage: 'Enable greentext support' }, greentextLabel: { id: 'soapbox_config.greentext_label', defaultMessage: 'Enable greentext support' },
quoteRT: { id: 'soapbox_config.quote_rt', defaultMessage: 'Enable Quote RT' },
promoPanelIconsLink: { id: 'soapbox_config.hints.promo_panel_icons.link', defaultMessage: 'Soapbox Icons List' }, promoPanelIconsLink: { id: 'soapbox_config.hints.promo_panel_icons.link', defaultMessage: 'Soapbox Icons List' },
authenticatedProfileLabel: { id: 'soapbox_config.authenticated_profile_label', defaultMessage: 'Profiles require authentication' }, authenticatedProfileLabel: { id: 'soapbox_config.authenticated_profile_label', defaultMessage: 'Profiles require authentication' },
authenticatedProfileHint: { id: 'soapbox_config.authenticated_profile_hint', defaultMessage: 'Users must be logged-in to view replies and media on user profiles.' }, authenticatedProfileHint: { id: 'soapbox_config.authenticated_profile_hint', defaultMessage: 'Users must be logged-in to view replies and media on user profiles.' },
@ -262,6 +263,13 @@ const SoapboxConfig: React.FC = () => {
/> />
</ListItem> </ListItem>
<ListItem label={intl.formatMessage(messages.quoteRT)}>
<Toggle
checked={soapbox.quotePosts === true}
onChange={handleChange(['quotePosts'], (e) => e.target.checked)}
/>
</ListItem>
<ListItem <ListItem
label={intl.formatMessage(messages.authenticatedProfileLabel)} label={intl.formatMessage(messages.authenticatedProfileLabel)}
hint={intl.formatMessage(messages.authenticatedProfileHint)} hint={intl.formatMessage(messages.authenticatedProfileHint)}

View file

@ -116,9 +116,7 @@ const ProfileDropdown: React.FC<IProfileDropdown> = ({ account, children }) => {
{menuItem.toggle} {menuItem.toggle}
</div> </div>
); );
} else if (!menuItem.text) { } else if (menuItem.text) {
return <MenuDivider key={idx} />;
} else {
const Comp: any = menuItem.action ? MenuItem : MenuLink; const Comp: any = menuItem.action ? MenuItem : MenuLink;
const itemProps = menuItem.action ? { onSelect: menuItem.action } : { to: menuItem.to, as: Link }; const itemProps = menuItem.action ? { onSelect: menuItem.action } : { to: menuItem.to, as: Link };

View file

@ -35,6 +35,7 @@ import HomePage from 'soapbox/pages/home_page';
import ProfilePage from 'soapbox/pages/profile_page'; import ProfilePage from 'soapbox/pages/profile_page';
import StatusPage from 'soapbox/pages/status_page'; import StatusPage from 'soapbox/pages/status_page';
import { getAccessToken, getVapidKey } from 'soapbox/utils/auth'; import { getAccessToken, getVapidKey } from 'soapbox/utils/auth';
import { ConfigDB } from 'soapbox/utils/config_db';
import { isStandalone } from 'soapbox/utils/state'; import { isStandalone } from 'soapbox/utils/state';
// import GroupSidebarPanel from '../groups/sidebar_panel'; // import GroupSidebarPanel from '../groups/sidebar_panel';
@ -116,6 +117,7 @@ import {
} from './util/async-components'; } from './util/async-components';
import { WrappedRoute } from './util/react_router_helpers'; import { WrappedRoute } from './util/react_router_helpers';
// Dummy import, to make sure that <Status /> ends up in the application bundle. // Dummy import, to make sure that <Status /> ends up in the application bundle.
// Without this it ends up in ~8 very commonly used bundles. // Without this it ends up in ~8 very commonly used bundles.
import 'soapbox/components/status'; import 'soapbox/components/status';
@ -161,6 +163,8 @@ const SwitchingColumnsArea: React.FC = ({ children }) => {
const features = useFeatures(); const features = useFeatures();
const { search } = useLocation(); const { search } = useLocation();
const configuration = useAppSelector((state) => state.admin.get('configs'));
const isLdapEnabled = React.useMemo(() => ConfigDB.find(configuration, ':pleroma', ':ldap')?.get('value').find((e) => e.get('tuple').get(0) === ':enabled')?.getIn(['tuple', 1]), [configuration]);
const { authenticatedProfile, cryptoAddresses } = useSoapboxConfig(); const { authenticatedProfile, cryptoAddresses } = useSoapboxConfig();
const hasCrypto = cryptoAddresses.size > 0; const hasCrypto = cryptoAddresses.size > 0;
@ -282,7 +286,11 @@ const SwitchingColumnsArea: React.FC = ({ children }) => {
{features.accountAliases && <WrappedRoute path='/settings/aliases' page={DefaultPage} component={Aliases} content={children} />} {features.accountAliases && <WrappedRoute path='/settings/aliases' page={DefaultPage} component={Aliases} content={children} />}
{features.accountMoving && <WrappedRoute path='/settings/migration' page={DefaultPage} component={Migration} content={children} />} {features.accountMoving && <WrappedRoute path='/settings/migration' page={DefaultPage} component={Migration} content={children} />}
<WrappedRoute path='/settings/email' page={DefaultPage} component={EditEmail} content={children} /> <WrappedRoute path='/settings/email' page={DefaultPage} component={EditEmail} content={children} />
<WrappedRoute path='/settings/password' page={DefaultPage} component={EditPassword} content={children} /> {
!isLdapEnabled && (
<WrappedRoute path='/settings/password' page={DefaultPage} component={EditPassword} content={children} />
)
}
<WrappedRoute path='/settings/account' page={DefaultPage} component={DeleteAccount} content={children} /> <WrappedRoute path='/settings/account' page={DefaultPage} component={DeleteAccount} content={children} />
<WrappedRoute path='/settings/media_display' page={DefaultPage} component={MediaDisplay} content={children} /> <WrappedRoute path='/settings/media_display' page={DefaultPage} component={MediaDisplay} content={children} />
<WrappedRoute path='/settings/mfa' page={DefaultPage} component={MfaForm} exact /> <WrappedRoute path='/settings/mfa' page={DefaultPage} component={MfaForm} exact />

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -531,7 +531,7 @@
"federation_restrictions.not_disclosed_message": "{siteTitle} does not disclose federation restrictions through the API.", "federation_restrictions.not_disclosed_message": "{siteTitle} does not disclose federation restrictions through the API.",
"fediverse_tab.explanation_box.bubble": "This timeline shows you all the statuses published on a selection of other instances curated by your moderators.", "fediverse_tab.explanation_box.bubble": "This timeline shows you all the statuses published on a selection of other instances curated by your moderators.",
"fediverse_tab.explanation_box.dismiss": "Don't show again", "fediverse_tab.explanation_box.dismiss": "Don't show again",
"fediverse_tab.explanation_box.explanation": "{site_title} forma part del Fediverse, una xarxa social formada per milers de servidors independents. Els missatges que veus aquí són de servidors de tercers. Tens la llibertat de interectuar amb ells, o de bloquejar qualsevol servidor que no vulguis veure. Per saber a quin servidor es troba una publicació fixat en el domini després del segon @ al nom d'usuari. Per veure només les publicacions de {site.title}, visita {local}.", "fediverse_tab.explanation_box.explanation": "{site_title} is part of the Fediverse, a social network made up of thousands of independent social media sites (aka \"servers\"). The posts you see here are from 3rd-party servers. You have the freedom to engage with them, or to block any server you don't like. Pay attention to the full username after the second @ symbol to know which server a post is from. To see only {site_title} posts, visit {local}.",
"fediverse_tab.explanation_box.title": "Què és el Fediverse?", "fediverse_tab.explanation_box.title": "Què és el Fediverse?",
"feed_suggestions.heading": "Suggested profiles", "feed_suggestions.heading": "Suggested profiles",
"feed_suggestions.view_all": "View all", "feed_suggestions.view_all": "View all",
@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icona", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icona",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Etiqueta", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Etiqueta",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edita les dades de configuració directament. Els canvis fets directament al fitxer JSON substituiran els camps de formulari de més amunt. Fes clic a Desa per aplicar els canvis.", "soapbox_config.raw_json_hint": "Edita les dades de configuració directament. Els canvis fets directament al fitxer JSON substituiran els camps de formulari de més amunt. Fes clic a Desa per aplicar els canvis.",
"soapbox_config.raw_json_label": "Avançat: Edita les dades JSON en brut", "soapbox_config.raw_json_label": "Avançat: Edita les dades JSON en brut",
"soapbox_config.save": "Desa", "soapbox_config.save": "Desa",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Ikona", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Ikona",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Štítek", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Štítek",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Upravte data nastavení přímo. Změny udělané přímo do JSON přepíše předchozí formulář. Zmáčkněte Uložit pro aplikaci změn.", "soapbox_config.raw_json_hint": "Upravte data nastavení přímo. Změny udělané přímo do JSON přepíše předchozí formulář. Zmáčkněte Uložit pro aplikaci změn.",
"soapbox_config.raw_json_label": "Pokročilé: Upravit JSON data", "soapbox_config.raw_json_label": "Pokročilé: Upravit JSON data",
"soapbox_config.save": "Uložit", "soapbox_config.save": "Uložit",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Speichern", "soapbox_config.save": "Speichern",

View file

@ -748,6 +748,10 @@
"defaultMessage": "Profile directory", "defaultMessage": "Profile directory",
"id": "navigation_bar.profile_directory" "id": "navigation_bar.profile_directory"
}, },
{
"defaultMessage": "Dashboard",
"id": "tabs_bar.dashboard"
},
{ {
"defaultMessage": "Switch accounts", "defaultMessage": "Switch accounts",
"id": "profile_dropdown.switch_account" "id": "profile_dropdown.switch_account"
@ -809,10 +813,6 @@
"defaultMessage": "Chats", "defaultMessage": "Chats",
"id": "tabs_bar.chats" "id": "tabs_bar.chats"
}, },
{
"defaultMessage": "Messages",
"id": "navigation.direct_messages"
},
{ {
"defaultMessage": "Home", "defaultMessage": "Home",
"id": "tabs_bar.home" "id": "tabs_bar.home"
@ -2351,6 +2351,10 @@
"defaultMessage": "Save changes", "defaultMessage": "Save changes",
"id": "compose_form.save_changes" "id": "compose_form.save_changes"
}, },
{
"defaultMessage": "Text is hidden behind warning",
"id": "compose_form.spoiler.marked"
},
{ {
"defaultMessage": "You have scheduled posts. {click_here} to see them.", "defaultMessage": "You have scheduled posts. {click_here} to see them.",
"id": "compose_form.scheduled_statuses.message" "id": "compose_form.scheduled_statuses.message"
@ -5148,6 +5152,10 @@
"defaultMessage": "Enable greentext support", "defaultMessage": "Enable greentext support",
"id": "soapbox_config.greentext_label" "id": "soapbox_config.greentext_label"
}, },
{
"defaultMessage": "Enable Quote RT",
"id": "soapbox_config.quote_rt"
},
{ {
"defaultMessage": "Soapbox Icons List", "defaultMessage": "Soapbox Icons List",
"id": "soapbox_config.hints.promo_panel_icons.link" "id": "soapbox_config.hints.promo_panel_icons.link"

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "𐑲𐑒𐑪𐑯", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "𐑲𐑒𐑪𐑯",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "𐑧𐑛𐑦𐑑 𐑞 𐑕𐑧𐑑𐑦𐑙𐑟 𐑛𐑱𐑑𐑩 𐑛𐑦𐑮𐑧𐑒𐑑𐑤𐑦. 𐑗𐑱𐑯𐑡𐑩𐑟 𐑥𐑱𐑛 𐑛𐑦𐑮𐑧𐑒𐑑𐑤𐑦 𐑑 𐑞 JSON 𐑓𐑲𐑤 𐑢𐑦𐑤 𐑴𐑝𐑼𐑮𐑲𐑛 𐑞 𐑓𐑹𐑥 𐑓𐑰𐑤𐑛𐑟 𐑩𐑚𐑳𐑝. 𐑒𐑤𐑦𐑒 𐑕𐑱𐑝 𐑑 𐑩𐑐𐑤𐑲 𐑘𐑹 𐑗𐑱𐑯𐑡𐑩𐑟.", "soapbox_config.raw_json_hint": "𐑧𐑛𐑦𐑑 𐑞 𐑕𐑧𐑑𐑦𐑙𐑟 𐑛𐑱𐑑𐑩 𐑛𐑦𐑮𐑧𐑒𐑑𐑤𐑦. 𐑗𐑱𐑯𐑡𐑩𐑟 𐑥𐑱𐑛 𐑛𐑦𐑮𐑧𐑒𐑑𐑤𐑦 𐑑 𐑞 JSON 𐑓𐑲𐑤 𐑢𐑦𐑤 𐑴𐑝𐑼𐑮𐑲𐑛 𐑞 𐑓𐑹𐑥 𐑓𐑰𐑤𐑛𐑟 𐑩𐑚𐑳𐑝. 𐑒𐑤𐑦𐑒 𐑕𐑱𐑝 𐑑 𐑩𐑐𐑤𐑲 𐑘𐑹 𐑗𐑱𐑯𐑡𐑩𐑟.",
"soapbox_config.raw_json_label": "𐑩𐑛𐑝𐑭𐑯𐑕𐑑: 𐑧𐑛𐑦𐑑 raw JSON 𐑛𐑱𐑑𐑩", "soapbox_config.raw_json_label": "𐑩𐑛𐑝𐑭𐑯𐑕𐑑: 𐑧𐑛𐑦𐑑 raw JSON 𐑛𐑱𐑑𐑩",
"soapbox_config.save": "𐑕𐑱𐑝", "soapbox_config.save": "𐑕𐑱𐑝",
@ -1133,7 +1134,7 @@
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} 𐑤𐑧𐑓𐑑", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} 𐑤𐑧𐑓𐑑",
"time_remaining.moments": "𐑥𐑴𐑥𐑩𐑯𐑑𐑕 remaining", "time_remaining.moments": "𐑥𐑴𐑥𐑩𐑯𐑑𐑕 remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} 𐑤𐑧𐑓𐑑", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} 𐑤𐑧𐑓𐑑",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people} 𐑑𐑷𐑒𐑦𐑙", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"trends.title": "𐑑𐑮𐑧𐑯𐑛𐑟", "trends.title": "𐑑𐑮𐑧𐑯𐑛𐑟",
"ui.beforeunload": "𐑘𐑹 𐑛𐑮𐑭𐑓𐑑 𐑢𐑦𐑤 𐑚𐑰 𐑤𐑪𐑕𐑑 𐑦𐑓 𐑿 𐑤𐑰𐑝.", "ui.beforeunload": "𐑘𐑹 𐑛𐑮𐑭𐑓𐑑 𐑢𐑦𐑤 𐑚𐑰 𐑤𐑪𐑕𐑑 𐑦𐑓 𐑿 𐑤𐑰𐑝.",
"unauthorized_modal.text": "𐑿 𐑯𐑰𐑛 𐑑 𐑚𐑰 𐑤𐑪𐑜𐑛 𐑦𐑯 𐑑 𐑛𐑵 𐑞𐑨𐑑.", "unauthorized_modal.text": "𐑿 𐑯𐑰𐑛 𐑑 𐑚𐑰 𐑤𐑪𐑜𐑛 𐑦𐑯 𐑑 𐑛𐑵 𐑞𐑨𐑑.",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -862,8 +862,8 @@
"privacy.public.short": "Public", "privacy.public.short": "Public",
"privacy.unlisted.long": "Ne pas afficher dans les fils publics", "privacy.unlisted.long": "Ne pas afficher dans les fils publics",
"privacy.unlisted.short": "Non listé", "privacy.unlisted.short": "Non listé",
"profile_dropdown.add_account": "Add an existing account", "profile_dropdown.add_account": "Ajouter un compte existant",
"profile_dropdown.logout": "Log out @{acct}", "profile_dropdown.logout": "Se déconnecter",
"profile_dropdown.switch_account": "Switch accounts", "profile_dropdown.switch_account": "Switch accounts",
"profile_dropdown.theme": "Thème", "profile_dropdown.theme": "Thème",
"profile_fields_panel.title": "À propos", "profile_fields_panel.title": "À propos",
@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Activer les citations (Quote RT)",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Avancé: Editer le fichier JSON", "soapbox_config.raw_json_label": "Avancé: Editer le fichier JSON",
"soapbox_config.save": "Enregistrer", "soapbox_config.save": "Enregistrer",
@ -1071,7 +1072,7 @@
"status.open": "Déplier ce statut", "status.open": "Déplier ce statut",
"status.pin": "Épingler sur le profil", "status.pin": "Épingler sur le profil",
"status.pinned": "Statut épinglé", "status.pinned": "Statut épinglé",
"status.quote": "Quote post", "status.quote": "Citer",
"status.reactions.cry": "Sad", "status.reactions.cry": "Sad",
"status.reactions.empty": "No one has reacted to this post yet. When someone does, they will show up here.", "status.reactions.empty": "No one has reacted to this post yet. When someone does, they will show up here.",
"status.reactions.heart": "Love", "status.reactions.heart": "Love",
@ -1082,7 +1083,7 @@
"status.read_more": "En savoir plus", "status.read_more": "En savoir plus",
"status.reblog": "Partager", "status.reblog": "Partager",
"status.reblog_private": "Booster vers laudience originale", "status.reblog_private": "Booster vers laudience originale",
"status.reblogged_by": "{name} a partagé:", "status.reblogged_by": "{name} a partagé",
"status.reblogs.empty": "Personne na encore partagé ce statut. Lorsque quelquun le fera, il apparaîtra ici.", "status.reblogs.empty": "Personne na encore partagé ce statut. Lorsque quelquun le fera, il apparaîtra ici.",
"status.redraft": "Effacer et ré-écrire", "status.redraft": "Effacer et ré-écrire",
"status.remove_account_from_group": "Remove account from group", "status.remove_account_from_group": "Remove account from group",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -309,7 +309,7 @@
"compose_form.save_changes": "Save changes", "compose_form.save_changes": "Save changes",
"compose_form.schedule": "לתזמן", "compose_form.schedule": "לתזמן",
"compose_form.scheduled_statuses.click_here": "לחץ כאן", "compose_form.scheduled_statuses.click_here": "לחץ כאן",
"compose_form.scheduled_statuses.message": "יש לך פוסטים מתוזמנים. {לחץ_כאן} כדי לראות אותם.", "compose_form.scheduled_statuses.message": "יש לך פוסטים מתוזמנים. כדי לראות אותם.",
"compose_form.sensitive.hide": "סמן מדיה כרגישה", "compose_form.sensitive.hide": "סמן מדיה כרגישה",
"compose_form.sensitive.marked": "מדיה מסומנת כרגישה", "compose_form.sensitive.marked": "מדיה מסומנת כרגישה",
"compose_form.sensitive.unmarked": "מדיה לא מסומנת כרגישה", "compose_form.sensitive.unmarked": "מדיה לא מסומנת כרגישה",
@ -863,7 +863,7 @@
"privacy.unlisted.long": "לא יופיע בפידים הציבוריים המשותפים", "privacy.unlisted.long": "לא יופיע בפידים הציבוריים המשותפים",
"privacy.unlisted.short": "לא לפיד הכללי", "privacy.unlisted.short": "לא לפיד הכללי",
"profile_dropdown.add_account": "הוסף חשבון קיים", "profile_dropdown.add_account": "הוסף חשבון קיים",
"profile_dropdown.logout": "התנתק מ-{account}", "profile_dropdown.logout": "התנתק מ",
"profile_dropdown.switch_account": "Switch accounts", "profile_dropdown.switch_account": "Switch accounts",
"profile_dropdown.theme": "Theme", "profile_dropdown.theme": "Theme",
"profile_fields_panel.title": "Profile fields", "profile_fields_panel.title": "Profile fields",
@ -914,8 +914,8 @@
"remote_instance.federation_panel.no_restrictions_message": "{siteTitle} לא הטיל הגבלות על {host}.", "remote_instance.federation_panel.no_restrictions_message": "{siteTitle} לא הטיל הגבלות על {host}.",
"remote_instance.federation_panel.restricted_message": "{siteTitle} חוסם את כל הפעילויות של {host}.", "remote_instance.federation_panel.restricted_message": "{siteTitle} חוסם את כל הפעילויות של {host}.",
"remote_instance.federation_panel.some_restrictions_message": "{siteTitle} הטיל כמה הגבלות על {host}.", "remote_instance.federation_panel.some_restrictions_message": "{siteTitle} הטיל כמה הגבלות על {host}.",
"remote_instance.pin_host": "הצמד {מארח}", "remote_instance.pin_host": "הצמד",
"remote_instance.unpin_host": "בטל הצמדה של {מארח}", "remote_instance.unpin_host": "בטל הצמדה של",
"remote_interaction.account_placeholder": "הזן את username@domain שממנו ברצונך לפעול", "remote_interaction.account_placeholder": "הזן את username@domain שממנו ברצונך לפעול",
"remote_interaction.divider": "או", "remote_interaction.divider": "או",
"remote_interaction.favourite": "המשך לסמן לייק", "remote_interaction.favourite": "המשך לסמן לייק",
@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "סמל", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "סמל",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "תווית", "soapbox_config.promo_panel.meta_fields.label_placeholder": "תווית",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "ערוך את נתוני ההגדרות ישירות. שינויים שנעשו ישירות בקובץ JSON יעקפו את שדות הטופס שלמעלה. לחץ על שמור כדי להחיל את השינויים שלך.", "soapbox_config.raw_json_hint": "ערוך את נתוני ההגדרות ישירות. שינויים שנעשו ישירות בקובץ JSON יעקפו את שדות הטופס שלמעלה. לחץ על שמור כדי להחיל את השינויים שלך.",
"soapbox_config.raw_json_label": "מתקדם: ערוך נתוני JSON גולמיים", "soapbox_config.raw_json_label": "מתקדם: ערוך נתוני JSON גולמיים",
"soapbox_config.save": "שמור", "soapbox_config.save": "שמור",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -142,7 +142,7 @@
"admin_nav.reports": "Kærur", "admin_nav.reports": "Kærur",
"age_verification.fail": "You must be {ageMinimum, plural, one {# year} other {# years}} old or older.", "age_verification.fail": "You must be {ageMinimum, plural, one {# year} other {# years}} old or older.",
"age_verification.header": "Enter your birth date", "age_verification.header": "Enter your birth date",
"alert.unexpected.body": "Afsakaðu truflunina. Ef vandamálið heldur áfram skaltu láta hjálparliðið vita. Þú getur líka {clear_cookies} en þetta mun skrá þig út.", "alert.unexpected.body": "Afsakaðu truflunina. Ef vandamálið heldur áfram skaltu láta hjálparliðið vita. Þú getur líka en þetta mun skrá þig út.",
"alert.unexpected.browser": "Vafri", "alert.unexpected.browser": "Vafri",
"alert.unexpected.clear_cookies": "hreinsað vafrakökur og vafragögn", "alert.unexpected.clear_cookies": "hreinsað vafrakökur og vafragögn",
"alert.unexpected.links.help": "Hjálparmiðstöð", "alert.unexpected.links.help": "Hjálparmiðstöð",
@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Salva", "soapbox_config.save": "Salva",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "保存", "soapbox_config.save": "保存",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -444,7 +444,7 @@
"edit_profile.hints.header": "PNG, GIF lub JPG. Zostanie zmniejszony do {size}", "edit_profile.hints.header": "PNG, GIF lub JPG. Zostanie zmniejszony do {size}",
"edit_profile.hints.hide_network": "To, kogo obserwujesz i kto Cię obserwuje nie będzie wyświetlane na Twoim profilu", "edit_profile.hints.hide_network": "To, kogo obserwujesz i kto Cię obserwuje nie będzie wyświetlane na Twoim profilu",
"edit_profile.hints.locked": "Wymaga ręcznego zatwierdzania obserwacji", "edit_profile.hints.locked": "Wymaga ręcznego zatwierdzania obserwacji",
"edit_profile.hints.meta_fields": "Możesz ustawić {count, plural, one {# niestandardowe pole} few {# niestandardowe pola} many {# niestandardowych pól} wyświetlanych na Twoim profilu.", "edit_profile.hints.meta_fields": "You can have up to {count, plural, one {# custom field} other {# custom fields}} displayed on your profile.",
"edit_profile.hints.stranger_notifications": "Wyświetlaj tylko powiadomienia od osób, które obserwujesz", "edit_profile.hints.stranger_notifications": "Wyświetlaj tylko powiadomienia od osób, które obserwujesz",
"edit_profile.save": "Zapisz", "edit_profile.save": "Zapisz",
"edit_profile.success": "Zapisano profil!", "edit_profile.success": "Zapisano profil!",
@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Ikona", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Ikona",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Podpis", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Podpis",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "Adres URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "Adres URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edytuj ustawienia bezpośrednio. Zmiany dokonane w pliku JSON zastąpią powyższe ustawienia. Naciśnij Zapisz, aby zastosować zmiany.", "soapbox_config.raw_json_hint": "Edytuj ustawienia bezpośrednio. Zmiany dokonane w pliku JSON zastąpią powyższe ustawienia. Naciśnij Zapisz, aby zastosować zmiany.",
"soapbox_config.raw_json_label": "Zaawansowane: Edytuj surowe dane JSON", "soapbox_config.raw_json_label": "Zaawansowane: Edytuj surowe dane JSON",
"soapbox_config.save": "Zapisz", "soapbox_config.save": "Zapisz",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Ícone", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Ícone",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Descrição", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Descrição",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edita os dados das definições diretamente. Alterações são feitas diretamente no ficheiro JSON que substituirão os campos do formulário acima. Clica Guardar para aplicar as alterações.", "soapbox_config.raw_json_hint": "Edita os dados das definições diretamente. Alterações são feitas diretamente no ficheiro JSON que substituirão os campos do formulário acima. Clica Guardar para aplicar as alterações.",
"soapbox_config.raw_json_label": "Avançado: Editar dados JSON diretamente", "soapbox_config.raw_json_label": "Avançado: Editar dados JSON diretamente",
"soapbox_config.save": "Guardar", "soapbox_config.save": "Guardar",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -687,7 +687,7 @@
"migration.fields.acct.label": "Обробка нового облікового запису", "migration.fields.acct.label": "Обробка нового облікового запису",
"migration.fields.acct.placeholder": "username@domain", "migration.fields.acct.placeholder": "username@domain",
"migration.fields.confirm_password.label": "Поточний пароль", "migration.fields.confirm_password.label": "Поточний пароль",
"migration.hint": "Це призведе до переміщення ваших підписників до нового облікового запису. Ніякі інші дані не будуть переміщені. Щоб виконати міграцію, спочатку потрібно {посилання} на ваш новий акаунт.", "migration.hint": "Це призведе до переміщення ваших підписників до нового облікового запису. Ніякі інші дані не будуть переміщені. Щоб виконати міграцію, спочатку потрібно на ваш новий акаунт.",
"migration.hint.link": "створити псевдонім облікового запису", "migration.hint.link": "створити псевдонім облікового запису",
"migration.move_account.fail": "Міграції облікового запису не відбулося.", "migration.move_account.fail": "Міграції облікового запису не відбулося.",
"migration.move_account.success": "Обліковий запис успішно перенесено.", "migration.move_account.success": "Обліковий запис успішно перенесено.",
@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Іконка", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Іконка",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Лейбл", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Лейбл",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Відредагуйте дані налаштувань безпосередньо. Зміни, внесені безпосередньо в JSON-файл, замінять поля форми вище. Натисніть 'Зберегти', щоб застосувати зміни.", "soapbox_config.raw_json_hint": "Відредагуйте дані налаштувань безпосередньо. Зміни, внесені безпосередньо в JSON-файл, замінять поля форми вище. Натисніть 'Зберегти', щоб застосувати зміни.",
"soapbox_config.raw_json_label": "Розширений: Редагування необроблених даних JSON", "soapbox_config.raw_json_label": "Розширений: Редагування необроблених даних JSON",
"soapbox_config.save": "Зберігти", "soapbox_config.save": "Зберігти",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "图标", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "图标",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "标签", "soapbox_config.promo_panel.meta_fields.label_placeholder": "标签",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "直接编辑JSON数据。将覆盖此页所有设定。单击以应用更改。", "soapbox_config.raw_json_hint": "直接编辑JSON数据。将覆盖此页所有设定。单击以应用更改。",
"soapbox_config.raw_json_label": "高级编辑JSON数据", "soapbox_config.raw_json_label": "高级编辑JSON数据",
"soapbox_config.save": "保存更改", "soapbox_config.save": "保存更改",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -1036,6 +1036,7 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.quote_rt": "Enable Quote RT",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.save": "Save", "soapbox_config.save": "Save",

View file

@ -99,6 +99,7 @@ export const SoapboxConfigRecord = ImmutableRecord({
gdpr: false, gdpr: false,
gdprUrl: '', gdprUrl: '',
greentext: false, greentext: false,
quotePosts: true,
promoPanel: PromoPanelRecord(), promoPanel: PromoPanelRecord(),
navlinks: ImmutableMap({ navlinks: ImmutableMap({
homeFooter: ImmutableList<FooterItem>(), homeFooter: ImmutableList<FooterItem>(),

View file

@ -19,7 +19,7 @@ import { normalizePoll } from 'soapbox/normalizers/poll';
import type { ReducerAccount } from 'soapbox/reducers/accounts'; import type { ReducerAccount } from 'soapbox/reducers/accounts';
import type { Account, Attachment, Card, Emoji, Mention, Poll, EmbeddedEntity } from 'soapbox/types/entities'; import type { Account, Attachment, Card, Emoji, Mention, Poll, EmbeddedEntity } from 'soapbox/types/entities';
export type StatusVisibility = 'public' | 'unlisted' | 'private' | 'direct'; export type StatusVisibility = 'public' | 'unlisted' | 'local' | 'private' | 'direct';
// https://docs.joinmastodon.org/entities/status/ // https://docs.joinmastodon.org/entities/status/
export const StatusRecord = ImmutableRecord({ export const StatusRecord = ImmutableRecord({

View file

@ -101,6 +101,7 @@ export const ReducerRecord = ImmutableRecord({
sensitive: false, sensitive: false,
spoiler: false, spoiler: false,
spoiler_text: '', spoiler_text: '',
spoiler_forced: false,
suggestions: ImmutableList(), suggestions: ImmutableList(),
suggestion_token: null as string | null, suggestion_token: null as string | null,
tagHistory: ImmutableList<string>(), tagHistory: ImmutableList<string>(),
@ -143,7 +144,9 @@ export const statusToMentionsAccountIdsArray = (status: StatusEntity, account: A
function clearAll(state: State) { function clearAll(state: State) {
return ReducerRecord({ return ReducerRecord({
content_type: state.default_content_type, content_type: state.default_content_type,
default_content_type: state.default_content_type,
privacy: state.default_privacy, privacy: state.default_privacy,
default_privacy: state.default_privacy,
idempotencyKey: uuid(), idempotencyKey: uuid(),
}); });
} }
@ -359,8 +362,9 @@ export default function compose(state = ReducerRecord({ idempotencyKey: uuid(),
map.set('caretPosition', null); map.set('caretPosition', null);
map.set('idempotencyKey', uuid()); map.set('idempotencyKey', uuid());
map.set('content_type', state.default_content_type); map.set('content_type', state.default_content_type);
map.set('spoiler', false); map.set('spoiler', !!action.status.getIn(['pleroma', 'spoiler_text', 'text/plain']));
map.set('spoiler_text', ''); map.set('spoiler_forced', !!action.status.getIn(['pleroma', 'spoiler_text', 'text/plain']));
map.set('spoiler_text', action.status.getIn(['pleroma', 'spoiler_text', 'text/plain']) || '');
}); });
case COMPOSE_SUBMIT_REQUEST: case COMPOSE_SUBMIT_REQUEST:
return state.set('is_submitting', true); return state.set('is_submitting', true);

View file

@ -31,6 +31,7 @@ The instance logo must be a valid svg file. It will be shown in pages using the
If you want the logo to match your color settings, you will need to update it so every `fill` or `stroke` property that you want to change use the special value `currentColor` If you want the logo to match your color settings, you will need to update it so every `fill` or `stroke` property that you want to change use the special value `currentColor`
https://css-tricks.com/currentcolor/ https://css-tricks.com/currentcolor/
## About pages ## About pages
It is possible to create arbitrary HTML pages under `/about/:page` on your website. It is possible to create arbitrary HTML pages under `/about/:page` on your website.
@ -44,3 +45,31 @@ If you create a file called `index.html`, it will be treated as the root (availa
For convenience, Mangane ships with sample files under `instance/about.example`. For convenience, Mangane ships with sample files under `instance/about.example`.
Simply rename that directory to `about` and start editing! Simply rename that directory to `about` and start editing!
## How to add new emojis to a reaction on a status?
1. We clone the Mangane repository to our computer/server and then open the file **app/soapbox/locales/defaultMessages.json**
In it, we look for the field `"defaultMessage": "Love","`.
After it, we indent to write code for our emoji (to make the translation work).
![](https://telegra.ph/file/2aac2c64934dae56f8357.png)
In my case, I translated the emoji "Okay" and named its ID as "status.reactions.okay".
2. Now we go to **app/soapbox/components/status-action-bar.tsx** and search for `_reactionHeart: { id: 'status.reactions.heart', defaultMessage: 'Love' },` After that, we simply duplicate its code, replacing "heart" and "love" with the name and description of our emoji. For example, we replace `status.reactions.heart" with "status.reactions.okay` and replace `defaultMessage: 'Love'` with `defaultMessage: 'I'm okay'` (default language is English).
![enter image description here](https://telegra.ph/file/583bc89b8aa9af7dc24d0.png)
3. After this step, we go to the file with our localization and add new translation lines. In my case, it's Ukrainian localization, so the file **app/soapbox/locales/uk.json**
![enter image description here](https://telegra.ph/file/22af87c7465d0ca430479.png)
4. "Now that we have finished with the localization, we go to the configuration file of Mangane(Soapbox), which is located at app/soapbox/normalizers/soapbox/soapbox_config.ts, and look for `❤️,` in it.
We can add our newly created emoji in a similar manner. For example, we can add our "Okay" emoji by adding the following line to the config file: `'👌',`
This will add the "Okay" emoji to the list of available reactions in the app."
![enter image description here](https://telegra.ph/file/e22708475171d322b6f23.png)
5. In this file, we are almost done. Now, we go to the last file, which is **app/soapbox/utils/emoji_reacts.ts**. We can add our newly created emoji in the same way as we did in soapbox_config.ts and we are done.
![enter image description here](https://telegra.ph/file/f3913bff911e18fe1c345.png)
Now, we need to build Mangane and install it on our instance. After installation, the new reactions will appear when we click the 'Refresh' button on the website.
If you want to see how I did it in my repository, you can check it out at the following [link.](https://github.com/ua-thinking/ak.noleron.com/commit/2d20b259f95b0a895d376a43890d523c189d0781)

View file

@ -1,6 +1,6 @@
{ {
"name": "mangane-fe", "name": "mangane-fe",
"version": "hyperactive-sloth", "version": "wondering-wapiti",
"displayName": "Mangane", "displayName": "Mangane",
"description": "Devanture pour https://bdx.town", "description": "Devanture pour https://bdx.town",
"homepage": "https://bdx.town", "homepage": "https://bdx.town",