Translate sidebar strings

This commit is contained in:
Stevie Robinson 2023-07-15 23:37:31 +02:00 committed by GitHub
parent 35e171f7b1
commit c206b92912
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 63 additions and 32 deletions

View File

@ -10,6 +10,7 @@ import { icons } from 'Helpers/Props';
import locationShape from 'Helpers/Props/Shapes/locationShape'; import locationShape from 'Helpers/Props/Shapes/locationShape';
import dimensions from 'Styles/Variables/dimensions'; import dimensions from 'Styles/Variables/dimensions';
import HealthStatusConnector from 'System/Status/Health/HealthStatusConnector'; import HealthStatusConnector from 'System/Status/Health/HealthStatusConnector';
import translate from 'Utilities/String/translate';
import MessagesConnector from './Messages/MessagesConnector'; import MessagesConnector from './Messages/MessagesConnector';
import PageSidebarItem from './PageSidebarItem'; import PageSidebarItem from './PageSidebarItem';
import styles from './PageSidebar.css'; import styles from './PageSidebar.css';
@ -20,16 +21,16 @@ const SIDEBAR_WIDTH = parseInt(dimensions.sidebarWidth);
const links = [ const links = [
{ {
iconName: icons.SERIES_CONTINUING, iconName: icons.SERIES_CONTINUING,
title: 'Series', title: translate('Series'),
to: '/', to: '/',
alias: '/series', alias: '/series',
children: [ children: [
{ {
title: 'Add New', title: translate('AddNew'),
to: '/add/new' to: '/add/new'
}, },
{ {
title: 'Library Import', title: translate('LibraryImport'),
to: '/add/import' to: '/add/import'
} }
] ]
@ -37,26 +38,26 @@ const links = [
{ {
iconName: icons.CALENDAR, iconName: icons.CALENDAR,
title: 'Calendar', title: translate('Calendar'),
to: '/calendar' to: '/calendar'
}, },
{ {
iconName: icons.ACTIVITY, iconName: icons.ACTIVITY,
title: 'Activity', title: translate('Activity'),
to: '/activity/queue', to: '/activity/queue',
children: [ children: [
{ {
title: 'Queue', title: translate('Queue'),
to: '/activity/queue', to: '/activity/queue',
statusComponent: QueueStatusConnector statusComponent: QueueStatusConnector
}, },
{ {
title: 'History', title: translate('History'),
to: '/activity/history' to: '/activity/history'
}, },
{ {
title: 'Blocklist', title: translate('Blocklist'),
to: '/activity/blocklist' to: '/activity/blocklist'
} }
] ]
@ -64,15 +65,15 @@ const links = [
{ {
iconName: icons.WARNING, iconName: icons.WARNING,
title: 'Wanted', title: translate('Wanted'),
to: '/wanted/missing', to: '/wanted/missing',
children: [ children: [
{ {
title: 'Missing', title: translate('Missing'),
to: '/wanted/missing' to: '/wanted/missing'
}, },
{ {
title: 'Cutoff Unmet', title: translate('CutoffUnmet'),
to: '/wanted/cutoffunmet' to: '/wanted/cutoffunmet'
} }
] ]
@ -80,59 +81,59 @@ const links = [
{ {
iconName: icons.SETTINGS, iconName: icons.SETTINGS,
title: 'Settings', title: translate('Settings'),
to: '/settings', to: '/settings',
children: [ children: [
{ {
title: 'Media Management', title: translate('MediaManagement'),
to: '/settings/mediamanagement' to: '/settings/mediamanagement'
}, },
{ {
title: 'Profiles', title: translate('Profiles'),
to: '/settings/profiles' to: '/settings/profiles'
}, },
{ {
title: 'Quality', title: translate('Quality'),
to: '/settings/quality' to: '/settings/quality'
}, },
{ {
title: 'Custom Formats', title: translate('CustomFormats'),
to: '/settings/customformats' to: '/settings/customformats'
}, },
{ {
title: 'Indexers', title: translate('Indexers'),
to: '/settings/indexers' to: '/settings/indexers'
}, },
{ {
title: 'Download Clients', title: translate('DownloadClients'),
to: '/settings/downloadclients' to: '/settings/downloadclients'
}, },
{ {
title: 'Import Lists', title: translate('ImportLists'),
to: '/settings/importlists' to: '/settings/importlists'
}, },
{ {
title: 'Connect', title: translate('Connect'),
to: '/settings/connect' to: '/settings/connect'
}, },
{ {
title: 'Metadata', title: translate('Metadata'),
to: '/settings/metadata' to: '/settings/metadata'
}, },
{ {
title: 'Metadata Source', title: translate('MetadataSource'),
to: '/settings/metadatasource' to: '/settings/metadatasource'
}, },
{ {
title: 'Tags', title: translate('Tags'),
to: '/settings/tags' to: '/settings/tags'
}, },
{ {
title: 'General', title: translate('General'),
to: '/settings/general' to: '/settings/general'
}, },
{ {
title: 'UI', title: translate('UI'),
to: '/settings/ui' to: '/settings/ui'
} }
] ]
@ -140,32 +141,32 @@ const links = [
{ {
iconName: icons.SYSTEM, iconName: icons.SYSTEM,
title: 'System', title: translate('System'),
to: '/system/status', to: '/system/status',
children: [ children: [
{ {
title: 'Status', title: translate('Status'),
to: '/system/status', to: '/system/status',
statusComponent: HealthStatusConnector statusComponent: HealthStatusConnector
}, },
{ {
title: 'Tasks', title: translate('Tasks'),
to: '/system/tasks' to: '/system/tasks'
}, },
{ {
title: 'Backup', title: translate('Backup'),
to: '/system/backup' to: '/system/backup'
}, },
{ {
title: 'Updates', title: translate('Updates'),
to: '/system/updates' to: '/system/updates'
}, },
{ {
title: 'Events', title: translate('Events'),
to: '/system/events' to: '/system/events'
}, },
{ {
title: 'Log Files', title: translate('LogFiles'),
to: '/system/logs/files' to: '/system/logs/files'
} }
] ]

View File

@ -1,7 +1,9 @@
{ {
"Activity": "Activity",
"Add": "Add", "Add": "Add",
"Added": "Added", "Added": "Added",
"AddingTag": "Adding tag", "AddingTag": "Adding tag",
"AddNew": "Add New",
"ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file", "ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file",
"AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update", "AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update",
"Apply": "Apply", "Apply": "Apply",
@ -13,19 +15,25 @@
"ApplyTagsHelpTextReplace": "Replace: Replace the tags with the entered tags (enter no tags to clear all tags)", "ApplyTagsHelpTextReplace": "Replace: Replace the tags with the entered tags (enter no tags to clear all tags)",
"AutoAdd": "Auto Add", "AutoAdd": "Auto Add",
"AutomaticAdd": "Automatic Add", "AutomaticAdd": "Automatic Add",
"Backup": "Backup",
"Blocklist": "Blocklist",
"BlocklistRelease": "Blocklist Release", "BlocklistRelease": "Blocklist Release",
"BlocklistReleaseHelpText": "Prevents Sonarr from automatically grabbing this release again", "BlocklistReleaseHelpText": "Prevents Sonarr from automatically grabbing this release again",
"BlocklistReleases": "Blocklist Releases", "BlocklistReleases": "Blocklist Releases",
"Browser Reload Required": "Browser Reload Required", "Browser Reload Required": "Browser Reload Required",
"Calendar": "Calendar",
"Cancel": "Cancel", "Cancel": "Cancel",
"CloneCondition": "Clone Condition", "CloneCondition": "Clone Condition",
"CloneCustomFormat": "Clone Custom Format", "CloneCustomFormat": "Clone Custom Format",
"Close": "Close", "Close": "Close",
"Connect": "Connect",
"CountDownloadClientsSelected": "{count} download client(s) selected", "CountDownloadClientsSelected": "{count} download client(s) selected",
"CountImportListsSelected": "{count} import list(s) selected", "CountImportListsSelected": "{count} import list(s) selected",
"CountIndexersSelected": "{count} indexer(s) selected", "CountIndexersSelected": "{count} indexer(s) selected",
"CountSeasons": "{count} seasons", "CountSeasons": "{count} seasons",
"CustomFormatScore": "Custom Format Score", "CustomFormatScore": "Custom Format Score",
"CustomFormats": "Custom Formats",
"CutoffUnmet": "Cutoff Unmet",
"Delete": "Delete", "Delete": "Delete",
"DeleteCondition": "Delete Condition", "DeleteCondition": "Delete Condition",
"DeleteConditionMessageText": "Are you sure you want to delete the condition '{0}'?", "DeleteConditionMessageText": "Are you sure you want to delete the condition '{0}'?",
@ -38,6 +46,7 @@
"DeleteSelectedIndexers": "Delete Indexer(s)", "DeleteSelectedIndexers": "Delete Indexer(s)",
"DeleteSelectedIndexersMessageText": "Are you sure you want to delete {count} selected indexer(s)?", "DeleteSelectedIndexersMessageText": "Are you sure you want to delete {count} selected indexer(s)?",
"Disabled": "Disabled", "Disabled": "Disabled",
"DownloadClients": "Download Clients",
"DownloadClientCheckNoneAvailableHealthCheckMessage": "No download client is available", "DownloadClientCheckNoneAvailableHealthCheckMessage": "No download client is available",
"DownloadClientCheckUnableToCommunicateWithHealthCheckMessage": "Unable to communicate with {0}.", "DownloadClientCheckUnableToCommunicateWithHealthCheckMessage": "Unable to communicate with {0}.",
"DownloadClientRootFolderHealthCheckMessage": "Download client {0} places downloads in the root folder {1}. You should not download to a root folder.", "DownloadClientRootFolderHealthCheckMessage": "Download client {0} places downloads in the root folder {1}. You should not download to a root folder.",
@ -54,11 +63,15 @@
"EnableRSS": "Enable RSS", "EnableRSS": "Enable RSS",
"Enabled": "Enabled", "Enabled": "Enabled",
"Ended": "Ended", "Ended": "Ended",
"Events": "Events",
"ExistingTag": "Existing tag", "ExistingTag": "Existing tag",
"ExportCustomFormat": "Export Custom Format", "ExportCustomFormat": "Export Custom Format",
"General": "General",
"HiddenClickToShow": "Hidden, click to show", "HiddenClickToShow": "Hidden, click to show",
"HideAdvanced": "Hide Advanced", "HideAdvanced": "Hide Advanced",
"History": "History",
"Implementation": "Implementation", "Implementation": "Implementation",
"ImportLists": "Import Lists",
"ImportListRootFolderMissingRootHealthCheckMessage": "Missing root folder for import list(s): {0}", "ImportListRootFolderMissingRootHealthCheckMessage": "Missing root folder for import list(s): {0}",
"ImportListRootFolderMultipleMissingRootsHealthCheckMessage": "Multiple root folders are missing for import lists: {0}", "ImportListRootFolderMultipleMissingRootsHealthCheckMessage": "Multiple root folders are missing for import lists: {0}",
"ImportListStatusAllUnavailableHealthCheckMessage": "All lists are unavailable due to failures", "ImportListStatusAllUnavailableHealthCheckMessage": "All lists are unavailable due to failures",
@ -66,6 +79,7 @@
"ImportMechanismEnableCompletedDownloadHandlingIfPossibleHealthCheckMessage": "Enable Completed Download Handling if possible", "ImportMechanismEnableCompletedDownloadHandlingIfPossibleHealthCheckMessage": "Enable Completed Download Handling if possible",
"ImportMechanismEnableCompletedDownloadHandlingIfPossibleMultiComputerHealthCheckMessage": "Enable Completed Download Handling if possible (Multi-Computer unsupported)", "ImportMechanismEnableCompletedDownloadHandlingIfPossibleMultiComputerHealthCheckMessage": "Enable Completed Download Handling if possible (Multi-Computer unsupported)",
"ImportMechanismHandlingDisabledHealthCheckMessage": "Enable Completed Download Handling", "ImportMechanismHandlingDisabledHealthCheckMessage": "Enable Completed Download Handling",
"Indexers": "Indexers",
"IndexerJackettAllHealthCheckMessage": "Indexers using the unsupported Jackett 'all' endpoint: {0}", "IndexerJackettAllHealthCheckMessage": "Indexers using the unsupported Jackett 'all' endpoint: {0}",
"IndexerLongTermStatusAllUnavailableHealthCheckMessage": "All indexers are unavailable due to failures for more than 6 hours", "IndexerLongTermStatusAllUnavailableHealthCheckMessage": "All indexers are unavailable due to failures for more than 6 hours",
"IndexerLongTermStatusUnavailableHealthCheckMessage": "Indexers unavailable due to failures for more than 6 hours: {0}", "IndexerLongTermStatusUnavailableHealthCheckMessage": "Indexers unavailable due to failures for more than 6 hours: {0}",
@ -78,11 +92,17 @@
"IndexerStatusUnavailableHealthCheckMessage": "Indexers unavailable due to failures: {0}", "IndexerStatusUnavailableHealthCheckMessage": "Indexers unavailable due to failures: {0}",
"Language": "Language", "Language": "Language",
"Language that Sonarr will use for UI": "Language that Sonarr will use for UI", "Language that Sonarr will use for UI": "Language that Sonarr will use for UI",
"LibraryImport": "Library Import",
"LogFiles": "Log Files",
"ManageClients": "Manage Clients", "ManageClients": "Manage Clients",
"ManageDownloadClients": "Manage Download Clients", "ManageDownloadClients": "Manage Download Clients",
"ManageImportLists": "Manage Import Lists", "ManageImportLists": "Manage Import Lists",
"ManageIndexers": "Manage Indexers", "ManageIndexers": "Manage Indexers",
"ManageLists": "Manage Lists", "ManageLists": "Manage Lists",
"MediaManagement": "Media Management",
"Metadata": "Metadata",
"MetadataSource": "Metadata Source",
"Missing": "Missing",
"Monitored": "Monitored", "Monitored": "Monitored",
"MountHealthCheckMessage": "Mount containing a series path is mounted read-only: ", "MountHealthCheckMessage": "Mount containing a series path is mounted read-only: ",
"Name": "Name", "Name": "Name",
@ -100,10 +120,13 @@
"Path": "Path", "Path": "Path",
"PreviousAiring": "Previous Airing", "PreviousAiring": "Previous Airing",
"Priority": "Priority", "Priority": "Priority",
"Profiles": "Profiles",
"ProxyBadRequestHealthCheckMessage": "Failed to test proxy. Status Code: {0}", "ProxyBadRequestHealthCheckMessage": "Failed to test proxy. Status Code: {0}",
"ProxyFailedToTestHealthCheckMessage": "Failed to test proxy: {0}", "ProxyFailedToTestHealthCheckMessage": "Failed to test proxy: {0}",
"ProxyResolveIpHealthCheckMessage": "Failed to resolve the IP Address for the Configured Proxy Host {0}", "ProxyResolveIpHealthCheckMessage": "Failed to resolve the IP Address for the Configured Proxy Host {0}",
"Quality": "Quality",
"QualityProfile": "Quality Profile", "QualityProfile": "Quality Profile",
"Queue": "Queue",
"RecycleBinUnableToWriteHealthCheckMessage": "Unable to write to configured recycling bin folder: {0}. Ensure this path exists and is writable by the user running Sonarr", "RecycleBinUnableToWriteHealthCheckMessage": "Unable to write to configured recycling bin folder: {0}. Ensure this path exists and is writable by the user running Sonarr",
"RefreshSeries": "Refresh Series", "RefreshSeries": "Refresh Series",
"RemotePathMappingBadDockerPathHealthCheckMessage": "You are using docker; download client {0} places downloads in {1} but this is not a valid {2} path. Review your remote path mappings and download client settings.", "RemotePathMappingBadDockerPathHealthCheckMessage": "You are using docker; download client {0} places downloads in {1} but this is not a valid {2} path. Review your remote path mappings and download client settings.",
@ -142,17 +165,24 @@
"RootFolderMissingHealthCheckMessage": "Missing root folder: {0}", "RootFolderMissingHealthCheckMessage": "Missing root folder: {0}",
"RootFolderMultipleMissingHealthCheckMessage": "Multiple root folders are missing: {0}", "RootFolderMultipleMissingHealthCheckMessage": "Multiple root folders are missing: {0}",
"SearchForMonitoredEpisodes": "Search for monitored episodes", "SearchForMonitoredEpisodes": "Search for monitored episodes",
"Series": "Series",
"SetTags": "Set Tags", "SetTags": "Set Tags",
"Settings": "Settings",
"ShowAdvanced": "Show Advanced", "ShowAdvanced": "Show Advanced",
"ShownClickToHide": "Shown, click to hide", "ShownClickToHide": "Shown, click to hide",
"SizeOnDisk": "Size on disk", "SizeOnDisk": "Size on disk",
"System": "System",
"SystemTimeHealthCheckMessage": "System time is off by more than 1 day. Scheduled tasks may not run correctly until the time is corrected", "SystemTimeHealthCheckMessage": "System time is off by more than 1 day. Scheduled tasks may not run correctly until the time is corrected",
"Tags": "Tags", "Tags": "Tags",
"Tasks": "Tasks",
"UI": "UI",
"UI Language": "UI Language", "UI Language": "UI Language",
"Unmonitored": "Unmonitored", "Unmonitored": "Unmonitored",
"Updates": "Updates",
"UpdateAvailableHealthCheckMessage": "New update is available", "UpdateAvailableHealthCheckMessage": "New update is available",
"UpdateStartupNotWritableHealthCheckMessage": "Cannot install update because startup folder '{0}' is not writable by the user '{1}'.", "UpdateStartupNotWritableHealthCheckMessage": "Cannot install update because startup folder '{0}' is not writable by the user '{1}'.",
"UpdateStartupTranslocationHealthCheckMessage": "Cannot install update because startup folder '{0}' is in an App Translocation folder.", "UpdateStartupTranslocationHealthCheckMessage": "Cannot install update because startup folder '{0}' is in an App Translocation folder.",
"UpdateUINotWritableHealthCheckMessage": "Cannot install update because UI folder '{0}' is not writable by the user '{1}'.", "UpdateUINotWritableHealthCheckMessage": "Cannot install update because UI folder '{0}' is not writable by the user '{1}'.",
"Wanted": "Wanted",
"Yes": "Yes" "Yes": "Yes"
} }