Localization framework

This commit is contained in:
nitsua
2021-04-16 22:01:47 -04:00
committed by ta264
parent 144134446d
commit d87bf5ae63
196 changed files with 3074 additions and 924 deletions
@@ -11,6 +11,7 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import styles from './EditReleaseProfileModalContent.css';
// Tab, enter, and comma
@@ -48,26 +49,30 @@ function EditReleaseProfileModalContent(props) {
<ModalBody>
<Form {...otherProps}>
<FormGroup>
<FormLabel>Enable Profile</FormLabel>
<FormLabel>
{translate('EnableProfile')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="enabled"
helpText="Check to enable release profile"
helpText={translate('EnabledHelpText')}
{...enabled}
onChange={onInputChange}
/>
</FormGroup>
<FormGroup>
<FormLabel>Must Contain</FormLabel>
<FormLabel>
{translate('MustContain')}
</FormLabel>
<FormInputGroup
type={inputTypes.TEXT_TAG}
name="required"
helpText="The release must contain at least one of these terms (case insensitive)"
helpText={translate('RequiredHelpText')}
kind={kinds.SUCCESS}
placeholder="Add new restriction"
placeholder={translate('RequiredPlaceHolder')}
delimiters={tagInputDelimiters}
{...required}
onChange={onInputChange}
@@ -75,14 +80,16 @@ function EditReleaseProfileModalContent(props) {
</FormGroup>
<FormGroup>
<FormLabel>Must Not Contain</FormLabel>
<FormLabel>
{translate('MustNotContain')}
</FormLabel>
<FormInputGroup
type={inputTypes.TEXT_TAG}
name="ignored"
helpText="The release will be rejected if it contains one or more of terms (case insensitive)"
helpText={translate('IgnoredHelpText')}
kind={kinds.DANGER}
placeholder="Add new restriction"
placeholder={translate('IgnoredPlaceHolder')}
delimiters={tagInputDelimiters}
{...ignored}
onChange={onInputChange}
@@ -90,30 +97,34 @@ function EditReleaseProfileModalContent(props) {
</FormGroup>
<FormGroup>
<FormLabel>Preferred</FormLabel>
<FormLabel>
{translate('Preferred')}
</FormLabel>
<FormInputGroup
type={inputTypes.KEY_VALUE_LIST}
name="preferred"
helpTexts={[
'The release will be preferred based on the each term\'s score (case insensitive)',
'A positive score will be more preferred',
'A negative score will be less preferred'
translate('PreferredHelpTexts1'),
translate('PreferredHelpTexts2'),
translate('PreferredHelpTexts3')
]}
{...preferred}
keyPlaceholder="Term"
valuePlaceholder="Score"
keyPlaceholder={translate('Term')}
valuePlaceholder={translate('Score')}
onChange={onInputChange}
/>
</FormGroup>
<FormGroup>
<FormLabel>Include Preferred when Renaming</FormLabel>
<FormLabel>
{translate('IncludePreferredWhenRenaming')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="includePreferredWhenRenaming"
helpText={indexerId.value === 0 ? 'Include in {Preferred Words} renaming format' : 'Only supported when Indexer is set to (All)'}
helpText={indexerId.value === 0 ? translate('IndexerIdvalue0IncludeInPreferredWordsRenamingFormat') : translate('IndexerIdvalue0OnlySupportedWhenIndexerIsSetToAll')}
{...includePreferredWhenRenaming}
onChange={onInputChange}
isDisabled={indexerId.value !== 0}
@@ -121,12 +132,14 @@ function EditReleaseProfileModalContent(props) {
</FormGroup>
<FormGroup>
<FormLabel>Indexer</FormLabel>
<FormLabel>
{translate('Indexer')}
</FormLabel>
<FormInputGroup
type={inputTypes.INDEXER_SELECT}
name="indexerId"
helpText="Specify what indexer the profile applies to"
helpText={translate('IndexerIdHelpText')}
{...indexerId}
includeAny={true}
onChange={onInputChange}
@@ -134,12 +147,14 @@ function EditReleaseProfileModalContent(props) {
</FormGroup>
<FormGroup>
<FormLabel>Tags</FormLabel>
<FormLabel>
{translate('Tags')}
</FormLabel>
<FormInputGroup
type={inputTypes.TAG}
name="tags"
helpText="Release profiles will apply to authors with at least one matching tag. Leave blank to apply to all authors"
helpText={translate('TagsHelpText')}
{...tags}
onChange={onInputChange}
/>
@@ -7,6 +7,7 @@ import ConfirmModal from 'Components/Modal/ConfirmModal';
import TagList from 'Components/TagList';
import { kinds } from 'Helpers/Props';
import split from 'Utilities/String/split';
import translate from 'Utilities/String/translate';
import EditReleaseProfileModalConnector from './EditReleaseProfileModalConnector';
import styles from './ReleaseProfile.css';
@@ -171,9 +172,9 @@ class ReleaseProfile extends Component {
<ConfirmModal
isOpen={isDeleteReleaseProfileModalOpen}
kind={kinds.DANGER}
title="Delete ReleaseProfile"
message={'Are you sure you want to delete this releaseProfile?'}
confirmLabel="Delete"
title={translate('DeleteReleaseProfile')}
message={translate('DeleteReleaseProfileMessageText')}
confirmLabel={translate('Delete')}
onConfirm={this.onConfirmDeleteReleaseProfile}
onCancel={this.onDeleteReleaseProfileModalClose}
/>
@@ -5,6 +5,7 @@ import FieldSet from 'Components/FieldSet';
import Icon from 'Components/Icon';
import PageSectionContent from 'Components/Page/PageSectionContent';
import { icons } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import EditReleaseProfileModalConnector from './EditReleaseProfileModalConnector';
import ReleaseProfile from './ReleaseProfile';
import styles from './ReleaseProfiles.css';
@@ -46,9 +47,9 @@ class ReleaseProfiles extends Component {
} = this.props;
return (
<FieldSet legend="Release Profiles">
<FieldSet legend={translate('ReleaseProfiles')}>
<PageSectionContent
errorMessage="Unable to load ReleaseProfiles"
errorMessage={translate('UnableToLoadReleaseProfiles')}
{...otherProps}
>
<div className={styles.releaseProfiles}>