Translate Sidebar Strings

This commit is contained in:
Stevie Robinson 2023-07-07 19:31:06 +02:00
parent 5b3b346b77
commit 4f48267fb7
2 changed files with 43 additions and 11 deletions

View File

@ -13,6 +13,7 @@ import HealthStatusConnector from 'System/Status/Health/HealthStatusConnector';
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';
import translate from 'Utilities/String/translate';
const HEADER_HEIGHT = parseInt(dimensions.headerHeight); const HEADER_HEIGHT = parseInt(dimensions.headerHeight);
const SIDEBAR_WIDTH = parseInt(dimensions.sidebarWidth); const SIDEBAR_WIDTH = parseInt(dimensions.sidebarWidth);
@ -25,11 +26,11 @@ const links = [
alias: '/series', alias: '/series',
children: [ children: [
{ {
title: 'Add New', title: 'AddNew',
to: '/add/new' to: '/add/new'
}, },
{ {
title: 'Library Import', title: 'LibraryImport',
to: '/add/import' to: '/add/import'
} }
] ]
@ -72,7 +73,7 @@ const links = [
to: '/wanted/missing' to: '/wanted/missing'
}, },
{ {
title: 'Cutoff Unmet', title: 'CutoffUnmet',
to: '/wanted/cutoffunmet' to: '/wanted/cutoffunmet'
} }
] ]
@ -84,7 +85,7 @@ const links = [
to: '/settings', to: '/settings',
children: [ children: [
{ {
title: 'Media Management', title: 'MediaManagement',
to: '/settings/mediamanagement' to: '/settings/mediamanagement'
}, },
{ {
@ -96,7 +97,7 @@ const links = [
to: '/settings/quality' to: '/settings/quality'
}, },
{ {
title: 'Custom Formats', title: 'CustomFormats',
to: '/settings/customformats' to: '/settings/customformats'
}, },
{ {
@ -104,11 +105,11 @@ const links = [
to: '/settings/indexers' to: '/settings/indexers'
}, },
{ {
title: 'Download Clients', title: 'DownloadClients',
to: '/settings/downloadclients' to: '/settings/downloadclients'
}, },
{ {
title: 'Import Lists', title: 'ImportLists',
to: '/settings/importlists' to: '/settings/importlists'
}, },
{ {
@ -120,7 +121,7 @@ const links = [
to: '/settings/metadata' to: '/settings/metadata'
}, },
{ {
title: 'Metadata Source', title: 'MetadataSource',
to: '/settings/metadatasource' to: '/settings/metadatasource'
}, },
{ {
@ -165,7 +166,7 @@ const links = [
to: '/system/events' to: '/system/events'
}, },
{ {
title: 'Log Files', title: 'LogFiles',
to: '/system/logs/files' to: '/system/logs/files'
} }
] ]
@ -481,7 +482,7 @@ class PageSidebar extends Component {
<PageSidebarItem <PageSidebarItem
key={link.to} key={link.to}
iconName={link.iconName} iconName={link.iconName}
title={link.title} title={translate(link.title)}
to={link.to} to={link.to}
statusComponent={isActiveParent || !childStatusComponent ? link.statusComponent : childStatusComponent} statusComponent={isActiveParent || !childStatusComponent ? link.statusComponent : childStatusComponent}
isActive={pathname === link.to && !hasActiveChild} isActive={pathname === link.to && !hasActiveChild}
@ -495,7 +496,7 @@ class PageSidebar extends Component {
return ( return (
<PageSidebarItem <PageSidebarItem
key={child.to} key={child.to}
title={child.title} title={translate(child.title)}
to={child.to} to={child.to}
isActive={pathname === child.to} isActive={pathname === child.to}
isParentItem={false} isParentItem={false}

View File

@ -1,7 +1,9 @@
{ {
"Add": "Add", "Add": "Add",
"Activity": "Activity",
"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",
"Cancel": "Cancel", "Cancel": "Cancel",
"Calendar": "Calendar",
"CloneCondition": "Clone Condition", "CloneCondition": "Clone Condition",
"CloneCustomFormat": "Clone Custom Format", "CloneCustomFormat": "Clone Custom Format",
"Close": "Close", "Close": "Close",
"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",
"Connect": "Connect",
"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.",
@ -55,10 +64,14 @@
"Enabled": "Enabled", "Enabled": "Enabled",
"Ended": "Ended", "Ended": "Ended",
"ExistingTag": "Existing tag", "ExistingTag": "Existing tag",
"Events": "Events",
"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",
"Implementation": "Implementation", "Implementation": "Implementation",
"History": "History",
"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}",
@ -83,6 +97,12 @@
"ManageImportLists": "Manage Import Lists", "ManageImportLists": "Manage Import Lists",
"ManageIndexers": "Manage Indexers", "ManageIndexers": "Manage Indexers",
"ManageLists": "Manage Lists", "ManageLists": "Manage Lists",
"LibraryImport": "Library Import",
"LogFiles": "Log Files",
"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.",
@ -143,16 +166,24 @@
"RootFolderMultipleMissingHealthCheckMessage": "Multiple root folders are missing: {0}", "RootFolderMultipleMissingHealthCheckMessage": "Multiple root folders are missing: {0}",
"SearchForMonitoredEpisodes": "Search for monitored episodes", "SearchForMonitoredEpisodes": "Search for monitored episodes",
"SetTags": "Set Tags", "SetTags": "Set Tags",
"Series": "Series",
"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}'.",
"Yes": "Yes" "Yes": "Yes"
"UpdateUINotWritableHealthCheckMessage": "Cannot install update because UI folder '{0}' is not writable by the user '{1}'.",
"Wanted": "Wanted"
} }