kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
add posting language user setting
rodzic
444e3641ee
commit
03310a39cd
|
@ -323,7 +323,10 @@
|
||||||
"preferences.fields.demetricator_label": "Use Demetricator",
|
"preferences.fields.demetricator_label": "Use Demetricator",
|
||||||
"preferences.fields.dyslexic_font_label": "Dyslexic mode",
|
"preferences.fields.dyslexic_font_label": "Dyslexic mode",
|
||||||
"preferences.fields.expand_spoilers_label": "Always expand posts marked with content warnings",
|
"preferences.fields.expand_spoilers_label": "Always expand posts marked with content warnings",
|
||||||
"preferences.fields.language_label": "Language",
|
"preferences.fields.language_label": "Interface language",
|
||||||
|
"preferences.fields.language_hint": "The language of the user interface, e-mails and push notifications",
|
||||||
|
"preferences.fields.post_language_label": "Posting language",
|
||||||
|
"preferences.fields.post_language_hint": "The language of your posts cannot currently be detected automatically",
|
||||||
"preferences.fields.privacy_label": "Post privacy",
|
"preferences.fields.privacy_label": "Post privacy",
|
||||||
"preferences.fields.reduce_motion_label": "Reduce motion in animations",
|
"preferences.fields.reduce_motion_label": "Reduce motion in animations",
|
||||||
"preferences.fields.system_font_label": "Use system\"s default font",
|
"preferences.fields.system_font_label": "Use system\"s default font",
|
||||||
|
|
|
@ -178,6 +178,7 @@ export function submitCompose(routerHistory, group) {
|
||||||
visibility: getState().getIn(['compose', 'privacy']),
|
visibility: getState().getIn(['compose', 'privacy']),
|
||||||
content_type: getState().getIn(['compose', 'content_type']),
|
content_type: getState().getIn(['compose', 'content_type']),
|
||||||
poll: getState().getIn(['compose', 'poll'], null),
|
poll: getState().getIn(['compose', 'poll'], null),
|
||||||
|
language: getState().getIn(['settings', 'posting_language'], null),
|
||||||
group_id: group ? group.get('id') : null,
|
group_id: group ? group.get('id') : null,
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
|
|
|
@ -22,6 +22,7 @@ const defaultSettings = ImmutableMap({
|
||||||
defaultPrivacy: 'public',
|
defaultPrivacy: 'public',
|
||||||
themeMode: 'light',
|
themeMode: 'light',
|
||||||
locale: navigator.language.split(/[-_]/)[0] || 'en',
|
locale: navigator.language.split(/[-_]/)[0] || 'en',
|
||||||
|
posting_language: navigator.language.split(/[-_]/)[0] || '',
|
||||||
explanationBox: true,
|
explanationBox: true,
|
||||||
|
|
||||||
systemFont: false,
|
systemFont: false,
|
||||||
|
|
|
@ -193,10 +193,11 @@ export class SelectDropdown extends ImmutablePureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
label: FormPropTypes.label,
|
label: FormPropTypes.label,
|
||||||
items: PropTypes.object.isRequired,
|
items: PropTypes.object.isRequired,
|
||||||
|
hint: PropTypes.node,
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { label, items, ...props } = this.props;
|
const { label, items, hint, ...props } = this.props;
|
||||||
|
|
||||||
const optionElems = Object.keys(items).map(item => (
|
const optionElems = Object.keys(items).map(item => (
|
||||||
<option key={item} value={item}>{items[item]}</option>
|
<option key={item} value={item}>{items[item]}</option>
|
||||||
|
@ -205,7 +206,9 @@ export class SelectDropdown extends ImmutablePureComponent {
|
||||||
const selectElem = <select {...props}>{optionElems}</select>;
|
const selectElem = <select {...props}>{optionElems}</select>;
|
||||||
|
|
||||||
return label ? (
|
return label ? (
|
||||||
<LabelInputContainer label={label}>{selectElem}</LabelInputContainer>
|
<LabelInputContainer label={label}>{selectElem}
|
||||||
|
{hint && <span className='hint'>{hint}</span>}
|
||||||
|
</LabelInputContainer>
|
||||||
) : selectElem;
|
) : selectElem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,12 +113,22 @@ class Preferences extends ImmutablePureComponent {
|
||||||
<Column icon='cog' heading={intl.formatMessage(messages.heading)} backBtnSlim>
|
<Column icon='cog' heading={intl.formatMessage(messages.heading)} backBtnSlim>
|
||||||
<SimpleForm>
|
<SimpleForm>
|
||||||
<FieldsGroup>
|
<FieldsGroup>
|
||||||
<SelectDropdown
|
<div className='select-languages__container'>
|
||||||
label={<FormattedMessage id='preferences.fields.language_label' defaultMessage='Language' />}
|
<SelectDropdown
|
||||||
items={languages}
|
label={<FormattedMessage id='preferences.fields.language_label' defaultMessage='Interface language' />}
|
||||||
defaultValue={settings.get('locale')}
|
hint={<FormattedMessage id='preferences.fields.language_hint' defaultMessage='The language of the user interface, e-mails and push notifications' />}
|
||||||
onChange={this.onSelectChange(['locale'])}
|
items={languages}
|
||||||
/>
|
defaultValue={settings.get('locale')}
|
||||||
|
onChange={this.onSelectChange(['locale'])}
|
||||||
|
/>
|
||||||
|
<SelectDropdown
|
||||||
|
label={<FormattedMessage id='preferences.fields.posting_language_label' defaultMessage='Posting language' />}
|
||||||
|
hint={<FormattedMessage id='preferences.fields.posting_language_hint' defaultMessage='The language of your posts cannot currently be detected automatically' />}
|
||||||
|
items={languages}
|
||||||
|
defaultValue={settings.get('posting_language')}
|
||||||
|
onChange={this.onSelectChange(['posting_language'])}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</FieldsGroup>
|
</FieldsGroup>
|
||||||
|
|
||||||
<FieldsGroup>
|
<FieldsGroup>
|
||||||
|
|
|
@ -71,3 +71,4 @@
|
||||||
@import 'components/error-boundary';
|
@import 'components/error-boundary';
|
||||||
@import 'components/video-player';
|
@import 'components/video-player';
|
||||||
@import 'components/audio-player';
|
@import 'components/audio-player';
|
||||||
|
@import 'components/language-preferences';
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
.select-languages__container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-around;
|
||||||
|
|
||||||
|
.label_input {
|
||||||
|
width: 50%;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
}
|
Ładowanie…
Reference in New Issue