Add translations to Auto Tagging

(cherry picked from commit 17a6683dbb7eb914b4732fc310044ec9baa3f141)
This commit is contained in:
Bogdan 2023-07-26 07:46:02 +03:00 committed by Mark McDowall
parent cac101bdee
commit cd0ea4ce66
7 changed files with 51 additions and 29 deletions

View File

@ -6,6 +6,7 @@ import IconButton from 'Components/Link/IconButton';
import ConfirmModal from 'Components/Modal/ConfirmModal';
import TagList from 'Components/TagList';
import { icons, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import EditAutoTaggingModal from './EditAutoTaggingModal';
import styles from './AutoTagging.css';
@ -63,7 +64,7 @@ export default function AutoTagging(props) {
<div>
<IconButton
className={styles.cloneButton}
title="Clone Auto Tag"
title={translate('CloneAutoTag')}
name={icons.CLONE}
onPress={onClonePress}
/>
@ -112,9 +113,9 @@ export default function AutoTagging(props) {
<ConfirmModal
isOpen={isDeleteModalOpen}
kind={kinds.DANGER}
title="Delete Auto Tag"
message={`Are you sure you want to delete the auto tag '${name}'?`}
confirmLabel="Delete"
title={translate('DeleteAutoTag')}
message={translate('DeleteAutoTagHelpText', { name })}
confirmLabel={translate('Delete')}
isSpinning={isDeleting}
onConfirm={onConfirmDelete}
onCancel={onDeleteModalClose}

View File

@ -10,6 +10,7 @@ import { cloneAutoTagging, deleteAutoTagging, fetchAutoTaggings } from 'Store/Ac
import createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector';
import createTagsSelector from 'Store/Selectors/createTagsSelector';
import sortByName from 'Utilities/Array/sortByName';
import translate from 'Utilities/String/translate';
import AutoTagging from './AutoTagging';
import EditAutoTaggingModal from './EditAutoTaggingModal';
import styles from './AutoTaggings.css';
@ -55,9 +56,9 @@ export default function AutoTaggings() {
}, [dispatch]);
return (
<FieldSet legend="Auto Tagging">
<FieldSet legend={translate('AutoTagging')}>
<PageSectionContent
errorMessage="Unable to load auto taggimg"
errorMessage={translate('UnableToLoadAutoTagging')}
error={error}
isFetching={isFetching}
isPopulated={isPopulated}

View File

@ -24,6 +24,7 @@ import {
setAutoTaggingValue
} from 'Store/Actions/settingsActions';
import { createProviderSettingsSelectorHook } from 'Store/Selectors/createProviderSettingsSelector';
import translate from 'Utilities/String/translate';
import AddSpecificationModal from './Specifications/AddSpecificationModal';
import EditSpecificationModal from './Specifications/EditSpecificationModal';
import Specification from './Specifications/Specification';
@ -110,7 +111,7 @@ export default function EditAutoTaggingModalContent(props) {
<ModalContent onModalClose={onModalClose}>
<ModalHeader>
{id ? 'Edit Auto Tag' : 'Add Auto Tag'}
{id ? translate('EditAutoTag') : translate('AddAutoTag')}
</ModalHeader>
<ModalBody>
@ -136,7 +137,7 @@ export default function EditAutoTaggingModalContent(props) {
>
<FormGroup>
<FormLabel>
Name
{translate('Name')}
</FormLabel>
<FormInputGroup
@ -148,19 +149,19 @@ export default function EditAutoTaggingModalContent(props) {
</FormGroup>
<FormGroup>
<FormLabel>{'Remove Tags Automatically'}</FormLabel>
<FormLabel>{translate('RemoveTagsAutomatically')}</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="removeTagsAutomatically"
helpText={'Remove tags automatically if conditions are not met'}
helpText={translate('RemoveTagsAutomaticallyHelpText')}
{...removeTagsAutomatically}
onChange={onInputChange}
/>
</FormGroup>
<FormGroup>
<FormLabel>Tags</FormLabel>
<FormLabel>{translate('Tags')}</FormLabel>
<FormInputGroup
type={inputTypes.TAG}
@ -171,7 +172,7 @@ export default function EditAutoTaggingModalContent(props) {
</FormGroup>
</Form>
<FieldSet legend={'Conditions'}>
<FieldSet legend={translate('Conditions')}>
<div className={styles.autoTaggings}>
{
specifications.map((tag) => {
@ -229,7 +230,7 @@ export default function EditAutoTaggingModalContent(props) {
kind={kinds.DANGER}
onPress={onDeleteAutoTaggingPress}
>
Delete
{translate('Delete')}
</Button> :
null
}
@ -245,7 +246,7 @@ export default function EditAutoTaggingModalContent(props) {
<Button
onPress={onModalClose}
>
Cancel
{translate('Cancel')}
</Button>
<SpinnerErrorButton
@ -253,7 +254,7 @@ export default function EditAutoTaggingModalContent(props) {
error={saveError}
onPress={onSavePress}
>
Save
{translate('Save')}
</SpinnerErrorButton>
</ModalFooter>
</ModalContent>

View File

@ -5,6 +5,7 @@ import Link from 'Components/Link/Link';
import Menu from 'Components/Menu/Menu';
import MenuContent from 'Components/Menu/MenuContent';
import { sizes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import AddSpecificationPresetMenuItem from './AddSpecificationPresetMenuItem';
import styles from './AddSpecificationItem.css';
@ -45,7 +46,7 @@ export default function AddSpecificationItem(props) {
size={sizes.SMALL}
onPress={onWrappedSpecificationSelect}
>
Custom
{translate('Custom')}
</Button>
<Menu className={styles.presetsMenu}>
@ -53,7 +54,7 @@ export default function AddSpecificationItem(props) {
className={styles.presetsMenuButton}
size={sizes.SMALL}
>
Presets
{translate('Presets')}
</Button>
<MenuContent>
@ -81,7 +82,7 @@ export default function AddSpecificationItem(props) {
to={infoLink}
size={sizes.SMALL}
>
More Info
{translate('MoreInfo')}
</Button> :
null
}

View File

@ -13,6 +13,7 @@ import {
fetchAutoTaggingSpecificationSchema,
selectAutoTaggingSpecificationSchema
} from 'Store/Actions/settingsActions';
import translate from 'Utilities/String/translate';
import AddSpecificationItem from './AddSpecificationItem';
import styles from './AddSpecificationModalContent.css';
@ -44,7 +45,7 @@ export default function AddSpecificationModalContent(props) {
return (
<ModalContent onModalClose={onModalClose}>
<ModalHeader>
Add Condition
{translate('AddCondition')}
</ModalHeader>
<ModalBody>
@ -93,7 +94,7 @@ export default function AddSpecificationModalContent(props) {
<Button
onPress={onModalClose}
>
Close
{translate('Close')}
</Button>
</ModalFooter>
</ModalContent>

View File

@ -22,6 +22,7 @@ import {
setAutoTaggingSpecificationValue
} from 'Store/Actions/settingsActions';
import { createProviderSettingsSelectorHook } from 'Store/Selectors/createProviderSettingsSelector';
import translate from 'Utilities/String/translate';
import styles from './EditSpecificationModalContent.css';
function EditSpecificationModalContent(props) {
@ -71,7 +72,7 @@ function EditSpecificationModalContent(props) {
return (
<ModalContent onModalClose={onCancelPress}>
<ModalHeader>
{`${id ? 'Edit' : 'Add'} Condition - ${implementationName}`}
{`${id ? translate('EditCondition') : translate('AddCondition')} - ${implementationName}`}
</ModalHeader>
<ModalBody>
@ -94,7 +95,7 @@ function EditSpecificationModalContent(props) {
<FormGroup>
<FormLabel>
Name
{translate('Name')}
</FormLabel>
<FormInputGroup
@ -122,28 +123,28 @@ function EditSpecificationModalContent(props) {
<FormGroup>
<FormLabel>
Negate
{translate('Negate')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="negate"
{...negate}
helpText={`If checked, the auto tagging rule will not apply if this ${implementationName} condition matches.`}
helpText={translate('AutoTaggingNegateHelpText', { name: implementationName })}
onChange={onInputChange}
/>
</FormGroup>
<FormGroup>
<FormLabel>
Required
{translate('Required')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="required"
{...required}
helpText={`This ${implementationName} condition must match for the auto tagging rule to apply. Otherwise a single ${implementationName} match is sufficient.`}
helpText={translate('AutoTaggingRequiredHelpText', { name: implementationName })}
onChange={onInputChange}
/>
</FormGroup>
@ -157,7 +158,7 @@ function EditSpecificationModalContent(props) {
kind={kinds.DANGER}
onPress={onDeleteSpecificationPress}
>
Delete
{translate('Delete')}
</Button> :
null
}
@ -165,14 +166,14 @@ function EditSpecificationModalContent(props) {
<Button
onPress={onCancelPress}
>
Cancel
{translate('Cancel')}
</Button>
<SpinnerErrorButton
isSpinning={false}
onPress={onSavePress}
>
Save
{translate('Save')}
</SpinnerErrorButton>
</ModalFooter>
</ModalContent>

View File

@ -4,6 +4,8 @@
"Actions": "Actions",
"Activity": "Activity",
"Add": "Add",
"AddAutoTag": "Add Auto Tag",
"AddCondition": "Add Condition",
"AddNew": "Add New",
"Added": "Added",
"AddingTag": "Adding tag",
@ -29,6 +31,9 @@
"AudioInfo": "Audio Info",
"AudioLanguages": "Audio Languages",
"AutoAdd": "Auto Add",
"AutoTagging": "Auto Tagging",
"AutoTaggingNegateHelpText": "If checked, the auto tagging rule will not apply if this {name} condition matches.",
"AutoTaggingRequiredHelpText": "This {name} condition must match for the auto tagging rule to apply. Otherwise a single {name} match is sufficient.",
"AutomaticAdd": "Automatic Add",
"Backup": "Backup",
"BackupNow": "Backup Now",
@ -44,10 +49,12 @@
"CancelPendingTask": "Are you sure you want to cancel this pending task?",
"Certification": "Certification",
"Clear": "Clear",
"CloneAutoTag": "Clone Auto Tag",
"CloneCondition": "Clone Condition",
"CloneCustomFormat": "Clone Custom Format",
"Close": "Close",
"Component": "Component",
"Conditions": "Conditions",
"Connect": "Connect",
"ContinuingOnly": "Continuing Only",
"CountDownloadClientsSelected": "{count} download client(s) selected",
@ -61,6 +68,8 @@
"Daily": "Daily",
"Date": "Date",
"Delete": "Delete",
"DeleteAutoTag": "Delete Auto Tag",
"DeleteAutoTagHelpText": "Are you sure you want to delete the auto tag '{name}'?",
"DeleteBackup": "Delete Backup",
"DeleteBackupMessageText": "Are you sure you want to delete the backup '{name}'?",
"DeleteCondition": "Delete Condition",
@ -93,6 +102,8 @@
"DownloadClients": "Download Clients",
"Duration": "Duration",
"Edit": "Edit",
"EditAutoTag": "Edit Auto Tag",
"EditCondition": "Edit Condition",
"EditSelectedDownloadClients": "Edit Selected Download Clients",
"EditSelectedImportLists": "Edit Selected Import Lists",
"EditSelectedIndexers": "Edit Selected Indexers",
@ -205,6 +216,7 @@
"MountHealthCheckMessage": "Mount containing a series path is mounted read-only: ",
"MultiSeason": "Multi-Season",
"Name": "Name",
"Negate": "Negate",
"Negated": "Negated",
"Network": "Network",
"New": "New",
@ -287,6 +299,8 @@
"RemoveSelectedItemQueueMessageText": "Are you sure you want to remove 1 item from the queue?",
"RemoveSelectedItems": "Remove Selected Items",
"RemoveSelectedItemsQueueMessageText": "Are you sure you want to remove {0} items from the queue?",
"RemoveTagsAutomatically": "Remove Tags Automatically",
"RemoveTagsAutomaticallyHelpText": "Remove tags automatically if conditions are not met",
"RemovedFromTaskQueue": "Removed from task queue",
"RemovedSeriesMultipleRemovedHealthCheckMessage": "Series {0} were removed from TheTVDB",
"RemovedSeriesSingleRemovedHealthCheckMessage": "Series {0} was removed from TheTVDB",
@ -310,6 +324,7 @@
"RootFolderMultipleMissingHealthCheckMessage": "Multiple root folders are missing: {0}",
"RootFolderPath": "Root Folder Path",
"Runtime": "Runtime",
"Save": "Save",
"SceneNumbering": "Scene Numbering",
"Scheduled": "Scheduled",
"SearchForMonitoredEpisodes": "Search for monitored episodes",
@ -353,6 +368,7 @@
"Type": "Type",
"UI": "UI",
"UI Language": "UI Language",
"UnableToLoadAutoTagging": "Unable to load auto tagging",
"UnableToLoadBackups": "Unable to load backups",
"UnableToUpdateSonarrDirectly": "Unable to update Sonarr directly,",
"Unmonitored": "Unmonitored",