mirror of
https://github.com/fallenbagel/jellyseerr.git
synced 2026-01-01 12:18:35 -05:00
fix(ui): Capitalization, punctuation, and grammar inconsistences & errors (#731)
This commit is contained in:
@@ -20,7 +20,7 @@ import TitleCard from '../TitleCard';
|
||||
import Transition from '../Transition';
|
||||
|
||||
const messages = defineMessages({
|
||||
overviewunavailable: 'Overview unavailable',
|
||||
overviewunavailable: 'Overview unavailable.',
|
||||
overview: 'Overview',
|
||||
movies: 'Movies',
|
||||
numberofmovies: 'Number of Movies: {count}',
|
||||
|
||||
@@ -7,6 +7,11 @@ import {
|
||||
import TitleCard from '../../TitleCard';
|
||||
import useVerticalScroll from '../../../hooks/useVerticalScroll';
|
||||
import PersonCard from '../../PersonCard';
|
||||
import { defineMessages, useIntl } from 'react-intl';
|
||||
|
||||
const messages = defineMessages({
|
||||
noresults: 'No results.',
|
||||
});
|
||||
|
||||
interface ListViewProps {
|
||||
items?: (TvResult | MovieResult | PersonResult)[];
|
||||
@@ -23,12 +28,13 @@ const ListView: React.FC<ListViewProps> = ({
|
||||
onScrollBottom,
|
||||
isReachingEnd,
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
useVerticalScroll(onScrollBottom, !isLoading && !isEmpty && !isReachingEnd);
|
||||
return (
|
||||
<>
|
||||
{isEmpty && (
|
||||
<div className="w-full mt-64 text-2xl text-center text-gray-400">
|
||||
No Results
|
||||
{intl.formatMessage(messages.noresults)}
|
||||
</div>
|
||||
)}
|
||||
<ul className="grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-7 2xl:grid-cols-8">
|
||||
|
||||
@@ -9,7 +9,7 @@ import { Permission, useUser } from '../../hooks/useUser';
|
||||
|
||||
const messages = defineMessages({
|
||||
alphawarning:
|
||||
'This is ALPHA software. Almost everything is bound to be nearly broken and/or unstable. Please report issues to the Overseerr Github!',
|
||||
'This is ALPHA software. Features may be broken and/or unstable. Please report issues on GitHub!',
|
||||
});
|
||||
|
||||
const Layout: React.FC = ({ children }) => {
|
||||
|
||||
@@ -10,7 +10,7 @@ const messages = defineMessages({
|
||||
password: 'Password',
|
||||
validationemailrequired: 'Not a valid email address',
|
||||
validationpasswordrequired: 'Password required',
|
||||
loginerror: 'Something went wrong when trying to sign in',
|
||||
loginerror: 'Something went wrong while trying to sign in.',
|
||||
signingin: 'Signing in…',
|
||||
signin: 'Sign in',
|
||||
});
|
||||
|
||||
@@ -12,8 +12,8 @@ import Accordion from '../Common/Accordion';
|
||||
|
||||
const messages = defineMessages({
|
||||
signinheader: 'Sign in to continue',
|
||||
signinwithplex: 'Sign in with Plex',
|
||||
signinwithoverseerr: 'Sign in with Overseerr',
|
||||
signinwithplex: 'Use your Plex account',
|
||||
signinwithoverseerr: 'Use your Overseerr account',
|
||||
});
|
||||
|
||||
const Login: React.FC = () => {
|
||||
|
||||
@@ -12,7 +12,7 @@ import { MediaStatus } from '../../../server/constants/media';
|
||||
|
||||
const messages = defineMessages({
|
||||
recommendations: 'Recommendations',
|
||||
recommendationssubtext: 'If you liked {title}, you might also like...',
|
||||
recommendationssubtext: 'If you liked {title}, you might also like…',
|
||||
});
|
||||
|
||||
interface SearchResult {
|
||||
|
||||
@@ -51,13 +51,13 @@ const messages = defineMessages({
|
||||
available: 'Available',
|
||||
unavailable: 'Unavailable',
|
||||
pending: 'Pending',
|
||||
overviewunavailable: 'Overview unavailable',
|
||||
overviewunavailable: 'Overview unavailable.',
|
||||
manageModalTitle: 'Manage Movie',
|
||||
manageModalRequests: 'Requests',
|
||||
manageModalNoRequests: 'No Requests',
|
||||
manageModalClearMedia: 'Clear All Media Data',
|
||||
manageModalClearMediaWarning:
|
||||
'This will remove all media data including all requests for this item. This action is irreversible. If this item exists in your Plex library, the media information will be recreated next sync.',
|
||||
'This will irreversibly remove all data for this movie, including any requests. If this item exists in your Plex library, the media information will be recreated during the next sync.',
|
||||
approve: 'Approve',
|
||||
decline: 'Decline',
|
||||
studio: 'Studio',
|
||||
|
||||
@@ -3,7 +3,7 @@ import PlexOAuth from '../../utils/plex';
|
||||
import { defineMessages, useIntl } from 'react-intl';
|
||||
|
||||
const messages = defineMessages({
|
||||
signinwithplex: 'Sign in',
|
||||
signinwithplex: 'Sign In',
|
||||
loading: 'Loading…',
|
||||
signingin: 'Signing in…',
|
||||
});
|
||||
|
||||
@@ -30,7 +30,7 @@ const messages = defineMessages({
|
||||
requestedby: 'Requested by {username}',
|
||||
seasons: 'Seasons',
|
||||
notavailable: 'N/A',
|
||||
failedretry: 'Something went wrong retrying the request',
|
||||
failedretry: 'Something went wrong while retrying the request.',
|
||||
});
|
||||
|
||||
const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => {
|
||||
|
||||
@@ -21,7 +21,7 @@ const messages = defineMessages({
|
||||
filterAll: 'All',
|
||||
filterPending: 'Pending',
|
||||
filterApproved: 'Approved',
|
||||
noresults: 'No Results.',
|
||||
noresults: 'No results.',
|
||||
showallrequests: 'Show All Requests',
|
||||
sortAdded: 'Request Date',
|
||||
sortModified: 'Last Modified',
|
||||
|
||||
@@ -28,18 +28,18 @@ const messages = defineMessages({
|
||||
request4ktitle: 'Request {title} in 4K',
|
||||
close: 'Close',
|
||||
cancel: 'Cancel Request',
|
||||
cancelling: 'Cancelling...',
|
||||
cancelling: 'Cancelling…',
|
||||
pendingrequest: 'Pending request for {title}',
|
||||
pending4krequest: 'Pending request for {title} in 4K',
|
||||
requesting: 'Requesting...',
|
||||
requesting: 'Requesting…',
|
||||
request: 'Request',
|
||||
request4k: 'Request 4K',
|
||||
requestfrom: 'There is currently a pending request from {username}',
|
||||
request4kfrom: 'There is currently a pending 4K request from {username}',
|
||||
errorediting: 'Something went wrong editing the request.',
|
||||
requestfrom: 'There is a pending request from {username}.',
|
||||
request4kfrom: 'There is a pending 4K request from {username}.',
|
||||
errorediting: 'Something went wrong while editing the request.',
|
||||
requestedited: 'Request edited.',
|
||||
autoapproval: 'Auto Approval',
|
||||
requesterror: 'Something went wrong when trying to request media.',
|
||||
autoapproval: 'Automatic Approval',
|
||||
requesterror: 'Something went wrong while submitting the request.',
|
||||
});
|
||||
|
||||
interface RequestModalProps extends React.HTMLAttributes<HTMLDivElement> {
|
||||
|
||||
@@ -8,9 +8,9 @@ import { SonarrSeries } from '../../../../server/api/sonarr';
|
||||
|
||||
const messages = defineMessages({
|
||||
next: 'Next',
|
||||
notvdbid: 'Manual match required',
|
||||
notvdbid: 'Manual Match Required',
|
||||
notvdbiddescription:
|
||||
"We couldn't automatically match your request. Please select the correct match from the list below.",
|
||||
"We couldn't automatically match your request. Please select the correct match from the list below:",
|
||||
nosummary: 'No summary for this title was found.',
|
||||
});
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ const messages = defineMessages({
|
||||
requestSuccess: '<strong>{title}</strong> successfully requested!',
|
||||
requesttitle: 'Request {title}',
|
||||
request4ktitle: 'Request {title} in 4K',
|
||||
requesting: 'Requesting...',
|
||||
requesting: 'Requesting…',
|
||||
requestseasons:
|
||||
'Request {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}',
|
||||
selectseason: 'Select season(s)',
|
||||
@@ -37,15 +37,15 @@ const messages = defineMessages({
|
||||
seasonnumber: 'Season {number}',
|
||||
extras: 'Extras',
|
||||
notrequested: 'Not Requested',
|
||||
errorediting: 'Something went wrong editing the request.',
|
||||
errorediting: 'Something went wrong while editing the request.',
|
||||
requestedited: 'Request edited.',
|
||||
requestcancelled: 'Request cancelled.',
|
||||
autoapproval: 'Auto Approval',
|
||||
requesterror: 'Something went wrong when trying to request media.',
|
||||
autoapproval: 'Automatic Approval',
|
||||
requesterror: 'Something went wrong while submitting the request.',
|
||||
next: 'Next',
|
||||
notvdbid: 'No TVDB id was found connected on TMDB',
|
||||
notvdbid: 'No TVDB ID was found for the item on TMDb.',
|
||||
notvdbiddescription:
|
||||
'Either add the TVDB id to TMDB and come back later, or select the correct match below.',
|
||||
'Either add the TVDB ID to TMDb and try again later, or select the correct match below:',
|
||||
backbutton: 'Back',
|
||||
});
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { useToasts } from 'react-toast-notifications';
|
||||
import { defineMessages, useIntl } from 'react-intl';
|
||||
|
||||
const messages = defineMessages({
|
||||
copied: 'Copied API key to clipboard',
|
||||
copied: 'Copied API key to clipboard.',
|
||||
});
|
||||
|
||||
const CopyButton: React.FC<{ textToCopy: string }> = ({ textToCopy }) => {
|
||||
|
||||
@@ -11,11 +11,11 @@ import NotificationTypeSelector from '../../NotificationTypeSelector';
|
||||
|
||||
const messages = defineMessages({
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
agentenabled: 'Agent Enabled',
|
||||
saving: 'Saving…',
|
||||
agentenabled: 'Enable Agent',
|
||||
webhookUrl: 'Webhook URL',
|
||||
validationWebhookUrlRequired: 'You must provide a webhook URL',
|
||||
webhookUrlPlaceholder: 'Server Settings -> Integrations -> Webhooks',
|
||||
webhookUrlPlaceholder: 'Server Settings → Integrations → Webhooks',
|
||||
discordsettingssaved: 'Discord notification settings saved!',
|
||||
discordsettingsfailed: 'Discord notification settings failed to save.',
|
||||
testsent: 'Test notification sent!',
|
||||
|
||||
@@ -11,12 +11,12 @@ import NotificationTypeSelector from '../../NotificationTypeSelector';
|
||||
|
||||
const messages = defineMessages({
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
validationFromRequired: 'You must provide an email sender address',
|
||||
saving: 'Saving…',
|
||||
validationFromRequired: 'You must provide a sender address',
|
||||
validationSmtpHostRequired: 'You must provide an SMTP host',
|
||||
validationSmtpPortRequired: 'You must provide an SMTP port',
|
||||
agentenabled: 'Agent Enabled',
|
||||
emailsender: 'Email Sender Address',
|
||||
agentenabled: 'Enable Agent',
|
||||
emailsender: 'Sender Address',
|
||||
smtpHost: 'SMTP Host',
|
||||
smtpPort: 'SMTP Port',
|
||||
enableSsl: 'Enable SSL',
|
||||
@@ -28,7 +28,7 @@ const messages = defineMessages({
|
||||
testsent: 'Test notification sent!',
|
||||
allowselfsigned: 'Allow Self-Signed Certificates',
|
||||
ssldisabletip:
|
||||
'SSL should be disabled on standard TLS connections (Port 587)',
|
||||
'SSL should be disabled on standard TLS connections (port 587)',
|
||||
senderName: 'Sender Name',
|
||||
notificationtypes: 'Notification Types',
|
||||
});
|
||||
|
||||
@@ -12,8 +12,8 @@ import NotificationTypeSelector from '../../../NotificationTypeSelector';
|
||||
|
||||
const messages = defineMessages({
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
agentenabled: 'Agent Enabled',
|
||||
saving: 'Saving…',
|
||||
agentenabled: 'Enable Agent',
|
||||
accessToken: 'Access Token',
|
||||
userToken: 'User Token',
|
||||
validationAccessTokenRequired: 'You must provide an access token.',
|
||||
@@ -22,7 +22,7 @@ const messages = defineMessages({
|
||||
pushoversettingsfailed: 'Pushover notification settings failed to save.',
|
||||
testsent: 'Test notification sent!',
|
||||
test: 'Test',
|
||||
settinguppushover: 'Setting up Pushover Notifications',
|
||||
settinguppushover: 'Setting Up Pushover Notifications',
|
||||
settinguppushoverDescription:
|
||||
'To setup Pushover you need to <RegisterApplicationLink>register an application</RegisterApplicationLink> and get the access token.\
|
||||
When setting up the application you can use one of the icons in the <IconLink>public folder</IconLink> on github.\
|
||||
|
||||
@@ -12,8 +12,8 @@ import NotificationTypeSelector from '../../../NotificationTypeSelector';
|
||||
|
||||
const messages = defineMessages({
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
agentenabled: 'Agent Enabled',
|
||||
saving: 'Saving…',
|
||||
agentenabled: 'Enable Agent',
|
||||
webhookUrl: 'Webhook URL',
|
||||
validationWebhookUrlRequired: 'You must provide a webhook URL',
|
||||
webhookUrlPlaceholder: 'Webhook URL',
|
||||
@@ -21,7 +21,7 @@ const messages = defineMessages({
|
||||
slacksettingsfailed: 'Slack notification settings failed to save.',
|
||||
testsent: 'Test notification sent!',
|
||||
test: 'Test',
|
||||
settingupslack: 'Setting up Slack Notifications',
|
||||
settingupslack: 'Setting Up Slack Notifications',
|
||||
settingupslackDescription:
|
||||
'To use Slack notifications, you will need to create an <WebhookLink>Incoming Webhook</WebhookLink> integration and use the provided webhook URL below.',
|
||||
notificationtypes: 'Notification Types',
|
||||
|
||||
@@ -12,20 +12,20 @@ import NotificationTypeSelector from '../../NotificationTypeSelector';
|
||||
|
||||
const messages = defineMessages({
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
agentenabled: 'Agent Enabled',
|
||||
saving: 'Saving…',
|
||||
agentenabled: 'Enable Agent',
|
||||
botAPI: 'Bot API',
|
||||
chatId: 'Chat Id',
|
||||
chatId: 'Chat ID',
|
||||
validationBotAPIRequired: 'You must provide a Bot API key.',
|
||||
validationChatIdRequired: 'You must provide a Chat id.',
|
||||
validationChatIdRequired: 'You must provide a Chat ID.',
|
||||
telegramsettingssaved: 'Telegram notification settings saved!',
|
||||
telegramsettingsfailed: 'Telegram notification settings failed to save.',
|
||||
testsent: 'Test notification sent!',
|
||||
test: 'Test',
|
||||
settinguptelegram: 'Setting up Telegram Notifications',
|
||||
settinguptelegram: 'Setting Up Telegram Notifications',
|
||||
settinguptelegramDescription:
|
||||
'To setup Telegram you need to <CreateBotLink>create a bot</CreateBotLink> and get the bot API key.\
|
||||
Additionally, you need the chat id for the chat you want the bot to send notifications to.\
|
||||
Additionally, you need the chat ID for the chat you want the bot to send notifications to.\
|
||||
You can do this by adding <GetIdBotLink>@get_id_bot</GetIdBotLink> to the chat or group chat.',
|
||||
notificationtypes: 'Notification Types',
|
||||
});
|
||||
|
||||
@@ -33,8 +33,8 @@ const defaultPayload = {
|
||||
|
||||
const messages = defineMessages({
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
agentenabled: 'Agent Enabled',
|
||||
saving: 'Saving…',
|
||||
agentenabled: 'Enable Agent',
|
||||
webhookUrl: 'Webhook URL',
|
||||
authheader: 'Authorization Header',
|
||||
validationWebhookUrlRequired: 'You must provide a webhook URL',
|
||||
|
||||
@@ -19,12 +19,12 @@ const messages = defineMessages({
|
||||
validationProfileRequired: 'You must select a profile',
|
||||
validationMinimumAvailabilityRequired: 'You must select minimum availability',
|
||||
toastRadarrTestSuccess: 'Radarr connection established!',
|
||||
toastRadarrTestFailure: 'Failed to connect to Radarr Server',
|
||||
saving: 'Saving...',
|
||||
toastRadarrTestFailure: 'Failed to connect to Radarr.',
|
||||
saving: 'Saving…',
|
||||
save: 'Save Changes',
|
||||
add: 'Add Server',
|
||||
test: 'Test',
|
||||
testing: 'Testing...',
|
||||
testing: 'Testing…',
|
||||
defaultserver: 'Default Server',
|
||||
servername: 'Server Name',
|
||||
servernamePlaceholder: 'A Radarr Server',
|
||||
@@ -32,20 +32,20 @@ const messages = defineMessages({
|
||||
port: 'Port',
|
||||
ssl: 'SSL',
|
||||
apiKey: 'API Key',
|
||||
apiKeyPlaceholder: 'Your Radarr API Key',
|
||||
apiKeyPlaceholder: 'Your Radarr API key',
|
||||
baseUrl: 'Base URL',
|
||||
baseUrlPlaceholder: 'Example: /radarr',
|
||||
qualityprofile: 'Quality Profile',
|
||||
rootfolder: 'Root Folder',
|
||||
minimumAvailability: 'Minimum Availability',
|
||||
server4k: '4K Server',
|
||||
selectQualityProfile: 'Select a Quality Profile',
|
||||
selectRootFolder: 'Select a Root Folder',
|
||||
selectQualityProfile: 'Select quality profile',
|
||||
selectRootFolder: 'Select root folder',
|
||||
selectMinimumAvailability: 'Select minimum availability',
|
||||
loadingprofiles: 'Loading quality profiles…',
|
||||
testFirstQualityProfiles: 'Test your connection to load quality profiles',
|
||||
testFirstQualityProfiles: 'Test connection to load quality profiles',
|
||||
loadingrootfolders: 'Loading root folders…',
|
||||
testFirstRootFolders: 'Test your connection to load root folders',
|
||||
testFirstRootFolders: 'Test connection to load root folders',
|
||||
});
|
||||
|
||||
interface TestResponse {
|
||||
|
||||
@@ -12,7 +12,7 @@ import globalMessages from '../../../../i18n/globalMessages';
|
||||
|
||||
const messages = defineMessages({
|
||||
releases: 'Releases',
|
||||
releasedataMissing: 'Release data missing. Is GitHub down?',
|
||||
releasedataMissing: 'Release data unavailable. Is GitHub down?',
|
||||
versionChangelog: 'Version Changelog',
|
||||
viewongithub: 'View on GitHub',
|
||||
latestversion: 'Latest Version',
|
||||
@@ -20,7 +20,7 @@ const messages = defineMessages({
|
||||
viewchangelog: 'View Changelog',
|
||||
runningDevelop: 'You are running a develop version of Overseerr!',
|
||||
runningDevelopMessage:
|
||||
'The changes in your version will not be available below. Please look at the <GithubLink>GitHub repository</GithubLink> for latest updates.',
|
||||
'The changes in your version will not be available below. Please see the <GithubLink>GitHub repository</GithubLink> for latest updates.',
|
||||
});
|
||||
|
||||
const REPO_RELEASE_API =
|
||||
|
||||
@@ -17,7 +17,7 @@ const messages = defineMessages({
|
||||
clickheretojoindiscord: 'Click here to join our Discord server.',
|
||||
timezone: 'Timezone',
|
||||
supportoverseerr: 'Support Overseerr',
|
||||
helppaycoffee: 'Help pay for coffee',
|
||||
helppaycoffee: 'Help Pay for Coffee',
|
||||
documentation: 'Documentation',
|
||||
});
|
||||
|
||||
@@ -92,7 +92,7 @@ const SettingsAbout: React.FC = () => {
|
||||
<div className="mb-8">
|
||||
<List title={intl.formatMessage(messages.supportoverseerr)}>
|
||||
<List.Item
|
||||
title={`☕️ ${intl.formatMessage(messages.helppaycoffee)}`}
|
||||
title={`${intl.formatMessage(messages.helppaycoffee)} ☕️`}
|
||||
>
|
||||
<a
|
||||
href="https://patreon.com/overseerr"
|
||||
|
||||
@@ -6,9 +6,9 @@ const SettingsLogs: React.FC = () => {
|
||||
return (
|
||||
<>
|
||||
<div className="text-sm leading-loose text-gray-300">
|
||||
Logs page is still being built. For now, you can access your logs
|
||||
This page is still being built. For now, you can access your logs
|
||||
directly in <code>stdout</code> (container logs) or looking in{' '}
|
||||
<code>/app/config/logs/overseerr.log</code>
|
||||
<code>/app/config/logs/overseerr.log</code>.
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -16,17 +16,17 @@ import PermissionEdit from '../PermissionEdit';
|
||||
const messages = defineMessages({
|
||||
generalsettings: 'General Settings',
|
||||
generalsettingsDescription:
|
||||
'These are settings related to general Overseerr configuration.',
|
||||
'Configure global and default settings for Overseerr.',
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
saving: 'Saving…',
|
||||
apikey: 'API Key',
|
||||
applicationurl: 'Application URL',
|
||||
toastApiKeySuccess: 'New API Key generated!',
|
||||
toastApiKeyFailure: 'Something went wrong generating a new API Key.',
|
||||
toastSettingsSuccess: 'Settings saved.',
|
||||
toastSettingsFailure: 'Something went wrong saving settings.',
|
||||
toastApiKeySuccess: 'New API key generated!',
|
||||
toastApiKeyFailure: 'Something went wrong while generating a new API key.',
|
||||
toastSettingsSuccess: 'Settings successfully saved!',
|
||||
toastSettingsFailure: 'Something went wrong while saving settings.',
|
||||
defaultPermissions: 'Default User Permissions',
|
||||
hideAvailable: 'Hide available media',
|
||||
hideAvailable: 'Hide Available Media',
|
||||
csrfProtection: 'Enable CSRF Protection',
|
||||
csrfProtectionTip:
|
||||
'Sets external API access to read-only (Overseerr must be reloaded for changes to take effect)',
|
||||
|
||||
@@ -20,14 +20,14 @@ const messages = defineMessages({
|
||||
saving: 'Saving…',
|
||||
notificationsettings: 'Notification Settings',
|
||||
notificationsettingsDescription:
|
||||
'Global notification configuration. The settings below affect all notification agents.',
|
||||
'Configure global notification settings. The options below will apply to all notification agents.',
|
||||
notificationAgentsSettings: 'Notification Agents',
|
||||
notificationAgentSettingsDescription:
|
||||
'Here you can pick and choose what types of notifications to send and through what types of services.',
|
||||
'Choose the types of notifications to send, and which notification agents to use.',
|
||||
notificationsettingssaved: 'Notification settings saved!',
|
||||
notificationsettingsfailed: 'Notification settings failed to save.',
|
||||
enablenotifications: 'Enable Notifications',
|
||||
autoapprovedrequests: 'Send notifications for auto-approved requests',
|
||||
autoapprovedrequests: 'Send Notifications for Auto-Approved Requests',
|
||||
});
|
||||
|
||||
interface SettingsRoute {
|
||||
|
||||
@@ -16,43 +16,44 @@ import Alert from '../Common/Alert';
|
||||
const messages = defineMessages({
|
||||
plexsettings: 'Plex Settings',
|
||||
plexsettingsDescription:
|
||||
'Configure the settings for your Plex server. Overseerr uses your Plex server to scan your library at an interval and see what content is available.',
|
||||
servername: 'Server Name (Retrieved from Plex)',
|
||||
'Configure the settings for your Plex server. Overseerr scans your Plex libraries to see what content is available.',
|
||||
servername: 'Server Name',
|
||||
servernameTip: 'Automatically retrieved from Plex after saving',
|
||||
servernamePlaceholder: 'Plex Server Name',
|
||||
serverpreset: 'Available Server',
|
||||
serverpresetPlaceholder: 'Plex Server (Retrieved Automatically)',
|
||||
serverpreset: 'Server',
|
||||
serverpresetPlaceholder: 'Plex Server',
|
||||
serverLocal: 'local',
|
||||
serverRemote: 'remote',
|
||||
serverConnected: 'connected',
|
||||
serverpresetManualMessage: 'Manually configure',
|
||||
serverpresetRefreshing: 'Retrieving servers...',
|
||||
serverpresetLoad: 'Press button to load available servers',
|
||||
serverpresetRefreshing: 'Retrieving servers…',
|
||||
serverpresetLoad: 'Press the button to load available servers',
|
||||
toastPlexRefresh: 'Retrieving server list from Plex',
|
||||
toastPlexRefreshSuccess: 'Retrieved server list from Plex',
|
||||
toastPlexRefreshFailure: 'Unable to retrieve server list from Plex',
|
||||
toastPlexConnecting: 'Attempting to connect to Plex server',
|
||||
toastPlexConnectingSuccess: 'Connected to Plex server',
|
||||
toastPlexConnectingFailure: 'Unable to connect to Plex server',
|
||||
settingUpPlex: 'Setting up Plex',
|
||||
settingUpPlex: 'Setting Up Plex',
|
||||
settingUpPlexDescription:
|
||||
'To setup Plex you can enter your details manually, \
|
||||
or choose from one of the available servers retrieved from <RegisterPlexTVLink>plex.tv</RegisterPlexTVLink>.\
|
||||
Press the button next to the dropdown to retrieve available servers and check connectivity.',
|
||||
'To set up Plex, you can either enter your details manually \
|
||||
or select a server retrieved from <RegisterPlexTVLink>plex.tv</RegisterPlexTVLink>.\
|
||||
Press the button to the right of the dropdown to check connectivity and retrieve available servers.',
|
||||
hostname: 'Hostname/IP',
|
||||
port: 'Port',
|
||||
ssl: 'SSL',
|
||||
timeout: 'Timeout',
|
||||
ms: 'ms',
|
||||
save: 'Save Changes',
|
||||
saving: 'Saving...',
|
||||
saving: 'Saving…',
|
||||
plexlibraries: 'Plex Libraries',
|
||||
plexlibrariesDescription:
|
||||
'These are the libraries Overseerr will scan for titles. If you see no libraries listed, you will need to run at least one sync by clicking the button below. You must first configure and save your plex connection settings before you will be able to retrieve your libraries.',
|
||||
'The libraries Overseerr scans for titles. Set up and save your Plex connection settings, then click the button below if no libraries are listed.',
|
||||
syncing: 'Syncing',
|
||||
sync: 'Sync Plex Libraries',
|
||||
manualscan: 'Manual Library Scan',
|
||||
manualscanDescription:
|
||||
"Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one time full manual library scan is recommended!",
|
||||
"Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one-time full manual library scan is recommended!",
|
||||
notrunning: 'Not Running',
|
||||
currentlibrary: 'Current Library: {name}',
|
||||
librariesRemaining: 'Libraries Remaining: {count}',
|
||||
@@ -347,29 +348,6 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
||||
return (
|
||||
<form onSubmit={handleSubmit}>
|
||||
<div className="mt-6 sm:mt-5">
|
||||
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-800">
|
||||
<label
|
||||
htmlFor="name"
|
||||
className="block text-sm font-medium leading-5 text-gray-400 sm:mt-px"
|
||||
>
|
||||
<FormattedMessage {...messages.servername} />
|
||||
</label>
|
||||
<div className="mt-1 sm:mt-0 sm:col-span-2">
|
||||
<div className="flex max-w-lg rounded-md shadow-sm">
|
||||
<input
|
||||
type="text"
|
||||
id="name"
|
||||
name="name"
|
||||
placeholder={intl.formatMessage(
|
||||
messages.servernamePlaceholder
|
||||
)}
|
||||
value={data?.name}
|
||||
readOnly
|
||||
className="flex-1 block w-full min-w-0 transition duration-150 ease-in-out bg-gray-700 border border-gray-500 rounded-md form-input sm:text-sm sm:leading-5"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6 sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-800">
|
||||
<label
|
||||
htmlFor="preset"
|
||||
@@ -455,6 +433,36 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-800">
|
||||
<label
|
||||
htmlFor="name"
|
||||
className="block text-sm font-medium leading-5 text-gray-400 sm:mt-px"
|
||||
>
|
||||
<div className="flex flex-col">
|
||||
<span className="mr-2">
|
||||
<FormattedMessage {...messages.servername} />
|
||||
</span>
|
||||
<span className="text-gray-500">
|
||||
<FormattedMessage {...messages.servernameTip} />
|
||||
</span>
|
||||
</div>
|
||||
</label>
|
||||
<div className="mt-1 sm:mt-0 sm:col-span-2">
|
||||
<div className="flex max-w-lg rounded-md shadow-sm">
|
||||
<input
|
||||
type="text"
|
||||
id="name"
|
||||
name="name"
|
||||
placeholder={intl.formatMessage(
|
||||
messages.servernamePlaceholder
|
||||
)}
|
||||
value={data?.name}
|
||||
readOnly
|
||||
className="flex-1 block w-full min-w-0 transition duration-150 ease-in-out bg-gray-700 border border-gray-500 rounded-md form-input sm:text-sm sm:leading-5"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<div className="mt-6 sm:grid sm:grid-cols-3 sm:gap-4 sm:items-start sm:border-t sm:border-gray-800">
|
||||
|
||||
@@ -18,10 +18,10 @@ import Alert from '../Common/Alert';
|
||||
const messages = defineMessages({
|
||||
radarrsettings: 'Radarr Settings',
|
||||
radarrSettingsDescription:
|
||||
'Configure your Radarr connection below. You can have multiple Radarr configurations but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override which server will be used when a new request is made.',
|
||||
'Configure your Radarr connection below. You can have multiple Radarr configurations but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override the server will be used when a new request is made.',
|
||||
sonarrsettings: 'Sonarr Settings',
|
||||
sonarrSettingsDescription:
|
||||
'Configure your Sonarr connection below. You can have multiple Sonarr configurations but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override which server will be used when a new request is made.',
|
||||
'Configure your Sonarr connection below. You can have multiple Sonarr configurations but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override the server will be used when a new request is made.',
|
||||
deleteserverconfirm: 'Are you sure you want to delete this server?',
|
||||
edit: 'Edit',
|
||||
delete: 'Delete',
|
||||
|
||||
@@ -17,13 +17,13 @@ const messages = defineMessages({
|
||||
validationApiKeyRequired: 'You must provide an API key',
|
||||
validationRootFolderRequired: 'You must select a root folder',
|
||||
validationProfileRequired: 'You must select a profile',
|
||||
toastRadarrTestSuccess: 'Sonarr connection established!',
|
||||
toastRadarrTestFailure: 'Failed to connect to Sonarr Server',
|
||||
saving: 'Saving...',
|
||||
toastSonarrTestSuccess: 'Sonarr connection established!',
|
||||
toastSonarrTestFailure: 'Failed to connect to Sonarr.',
|
||||
saving: 'Saving…',
|
||||
save: 'Save Changes',
|
||||
add: 'Add Server',
|
||||
test: 'Test',
|
||||
testing: 'Testing...',
|
||||
testing: 'Testing…',
|
||||
defaultserver: 'Default Server',
|
||||
servername: 'Server Name',
|
||||
servernamePlaceholder: 'A Sonarr Server',
|
||||
@@ -31,7 +31,7 @@ const messages = defineMessages({
|
||||
port: 'Port',
|
||||
ssl: 'SSL',
|
||||
apiKey: 'API Key',
|
||||
apiKeyPlaceholder: 'Your Sonarr API Key',
|
||||
apiKeyPlaceholder: 'Your Sonarr API key',
|
||||
baseUrl: 'Base URL',
|
||||
baseUrlPlaceholder: 'Example: /sonarr',
|
||||
qualityprofile: 'Quality Profile',
|
||||
@@ -40,12 +40,12 @@ const messages = defineMessages({
|
||||
animerootfolder: 'Anime Root Folder',
|
||||
seasonfolders: 'Season Folders',
|
||||
server4k: '4K Server',
|
||||
selectQualityProfile: 'Select a Quality Profile',
|
||||
selectRootFolder: 'Select a Root Folder',
|
||||
selectQualityProfile: 'Select quality profile',
|
||||
selectRootFolder: 'Select root folder',
|
||||
loadingprofiles: 'Loading quality profiles…',
|
||||
testFirstQualityProfiles: 'Test your connection to load quality profiles',
|
||||
testFirstQualityProfiles: 'Test connection to load quality profiles',
|
||||
loadingrootfolders: 'Loading root folders…',
|
||||
testFirstRootFolders: 'Test your connection to load root folders',
|
||||
testFirstRootFolders: 'Test connection to load root folders',
|
||||
});
|
||||
|
||||
interface TestResponse {
|
||||
|
||||
@@ -13,7 +13,7 @@ import LanguagePicker from '../Layout/LanguagePicker';
|
||||
|
||||
const messages = defineMessages({
|
||||
finish: 'Finish Setup',
|
||||
finishing: 'Finishing...',
|
||||
finishing: 'Finishing…',
|
||||
continue: 'Continue',
|
||||
loginwithplex: 'Login with Plex',
|
||||
configureplex: 'Configure Plex',
|
||||
|
||||
@@ -11,7 +11,7 @@ import TitleCard from '../TitleCard';
|
||||
import { defineMessages, FormattedMessage } from 'react-intl';
|
||||
|
||||
const messages = defineMessages({
|
||||
noresults: 'No Results',
|
||||
noresults: 'No results.',
|
||||
});
|
||||
|
||||
interface SliderProps {
|
||||
|
||||
@@ -12,7 +12,7 @@ import useSettings from '../../hooks/useSettings';
|
||||
|
||||
const messages = defineMessages({
|
||||
recommendations: 'Recommendations',
|
||||
recommendationssubtext: 'If you liked {title}, you might also like...',
|
||||
recommendationssubtext: 'If you liked {title}, you might also like…',
|
||||
});
|
||||
|
||||
interface SearchResult {
|
||||
|
||||
@@ -50,13 +50,13 @@ const messages = defineMessages({
|
||||
available: 'Available',
|
||||
unavailable: 'Unavailable',
|
||||
pending: 'Pending',
|
||||
overviewunavailable: 'Overview unavailable',
|
||||
overviewunavailable: 'Overview unavailable.',
|
||||
manageModalTitle: 'Manage Series',
|
||||
manageModalRequests: 'Requests',
|
||||
manageModalNoRequests: 'No Requests',
|
||||
manageModalClearMedia: 'Clear All Media Data',
|
||||
manageModalClearMediaWarning:
|
||||
'This will remove all media data including all requests for this item. This action is irreversible. If this item exists in your Plex library, the media information will be recreated next sync.',
|
||||
'This will irreversibly remove all data for this TV series, including any requests. If this item exists in your Plex library, the media information will be recreated during the next sync.',
|
||||
approve: 'Approve',
|
||||
decline: 'Decline',
|
||||
showtype: 'Show Type',
|
||||
|
||||
@@ -20,9 +20,9 @@ export const messages = defineMessages({
|
||||
email: 'Email',
|
||||
permissions: 'Permissions',
|
||||
save: 'Save',
|
||||
saving: 'Saving...',
|
||||
saving: 'Saving…',
|
||||
usersaved: 'User saved',
|
||||
userfail: 'Something went wrong saving the user.',
|
||||
userfail: 'Something went wrong while saving the user.',
|
||||
});
|
||||
|
||||
const UserEdit: React.FC = () => {
|
||||
@@ -75,7 +75,9 @@ const UserEdit: React.FC = () => {
|
||||
appearance: 'error',
|
||||
autoDismiss: true,
|
||||
});
|
||||
throw new Error(`Something went wrong saving the user: ${e.message}`);
|
||||
throw new Error(
|
||||
`Something went wrong while saving the user: ${e.message}`
|
||||
);
|
||||
} finally {
|
||||
revalidate();
|
||||
}
|
||||
|
||||
@@ -23,10 +23,10 @@ import BulkEditModal from './BulkEditModal';
|
||||
|
||||
const messages = defineMessages({
|
||||
userlist: 'User List',
|
||||
importfromplex: 'Import Users From Plex',
|
||||
importfromplexerror: 'Something went wrong importing users from Plex',
|
||||
importfromplex: 'Import Users from Plex',
|
||||
importfromplexerror: 'Something went wrong while importing users from Plex.',
|
||||
importedfromplex:
|
||||
'{userCount, plural, =0 {No new users} one {# new user} other {# new users}} imported from Plex',
|
||||
'{userCount, plural, =0 {No new users} one {# new user} other {# new users}} imported from Plex.',
|
||||
username: 'Username',
|
||||
totalrequests: 'Total Requests',
|
||||
usertype: 'User Type',
|
||||
@@ -41,7 +41,7 @@ const messages = defineMessages({
|
||||
plexuser: 'Plex User',
|
||||
deleteuser: 'Delete User',
|
||||
userdeleted: 'User deleted',
|
||||
userdeleteerror: 'Something went wrong deleting the user',
|
||||
userdeleteerror: 'Something went wrong while deleting the user.',
|
||||
deleteconfirm:
|
||||
'Are you sure you want to delete this user? All existing request data from this user will be removed.',
|
||||
localuser: 'Local User',
|
||||
@@ -49,16 +49,16 @@ const messages = defineMessages({
|
||||
createuser: 'Create User',
|
||||
creating: 'Creating',
|
||||
create: 'Create',
|
||||
validationemailrequired: 'Must enter a valid email address.',
|
||||
validationemailrequired: 'Must enter a valid email address',
|
||||
validationpasswordminchars:
|
||||
'Password is too short - should be 8 chars minimum.',
|
||||
usercreatedfailed: 'Something went wrong when trying to create the user',
|
||||
usercreatedsuccess: 'Successfully created the user',
|
||||
'Password is too short; should be a minimum of 8 characters',
|
||||
usercreatedfailed: 'Something went wrong while creating the user.',
|
||||
usercreatedsuccess: 'User created successfully!',
|
||||
email: 'Email Address',
|
||||
password: 'Password',
|
||||
passwordinfo: 'Password Info',
|
||||
passwordinfo: 'Password Information',
|
||||
passwordinfodescription:
|
||||
'Email notification settings need to be enabled and setup in order to use the auto generated passwords',
|
||||
'Email notifications need to be configured and enabled in order to automatically generate passwords.',
|
||||
autogeneratepassword: 'Automatically generate password',
|
||||
});
|
||||
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
"components.CollectionDetails.movies": "Movies",
|
||||
"components.CollectionDetails.numberofmovies": "Number of Movies: {count}",
|
||||
"components.CollectionDetails.overview": "Overview",
|
||||
"components.CollectionDetails.overviewunavailable": "Overview unavailable",
|
||||
"components.CollectionDetails.overviewunavailable": "Overview unavailable.",
|
||||
"components.CollectionDetails.request": "Request",
|
||||
"components.CollectionDetails.requestSuccess": "<strong>{title}</strong> successfully requested!",
|
||||
"components.CollectionDetails.requestcollection": "Request Collection",
|
||||
"components.CollectionDetails.requesting": "Requesting…",
|
||||
"components.CollectionDetails.requestswillbecreated": "The following titles will have requests created for them:",
|
||||
"components.Common.ListView.noresults": "No results.",
|
||||
"components.Discover.discovermovies": "Popular Movies",
|
||||
"components.Discover.discovertv": "Popular Series",
|
||||
"components.Discover.nopending": "No Pending Requests",
|
||||
@@ -25,15 +26,15 @@
|
||||
"components.Layout.Sidebar.settings": "Settings",
|
||||
"components.Layout.Sidebar.users": "Users",
|
||||
"components.Layout.UserDropdown.signout": "Sign Out",
|
||||
"components.Layout.alphawarning": "This is ALPHA software. Almost everything is bound to be nearly broken and/or unstable. Please report issues to the Overseerr GitHub!",
|
||||
"components.Layout.alphawarning": "This is ALPHA software. Features may be broken and/or unstable. Please report issues on GitHub!",
|
||||
"components.Login.email": "Email Address",
|
||||
"components.Login.loginerror": "Something went wrong when trying to sign in",
|
||||
"components.Login.loginerror": "Something went wrong while trying to sign in.",
|
||||
"components.Login.password": "Password",
|
||||
"components.Login.signin": "Sign in",
|
||||
"components.Login.signin": "Sign In",
|
||||
"components.Login.signingin": "Signing in…",
|
||||
"components.Login.signinheader": "Sign in to continue",
|
||||
"components.Login.signinwithoverseerr": "Sign in with Overseerr",
|
||||
"components.Login.signinwithplex": "Sign in with Plex",
|
||||
"components.Login.signinwithoverseerr": "Use your Overseerr account",
|
||||
"components.Login.signinwithplex": "Use your Plex account",
|
||||
"components.Login.validationemailrequired": "Not a valid email address",
|
||||
"components.Login.validationpasswordrequired": "Password required",
|
||||
"components.MediaSlider.ShowMoreCard.seemore": "See More",
|
||||
@@ -46,13 +47,13 @@
|
||||
"components.MovieDetails.cast": "Cast",
|
||||
"components.MovieDetails.decline": "Decline",
|
||||
"components.MovieDetails.manageModalClearMedia": "Clear All Media Data",
|
||||
"components.MovieDetails.manageModalClearMediaWarning": "This will remove all media data including all requests for this item irreversibly. If this item exists in your Plex library, the media info will be recreated next sync.",
|
||||
"components.MovieDetails.manageModalClearMediaWarning": "This will irreversibly remove all data for this movie, including any requests. If this item exists in your Plex library, the media information will be recreated during the next sync.",
|
||||
"components.MovieDetails.manageModalNoRequests": "No Requests",
|
||||
"components.MovieDetails.manageModalRequests": "Requests",
|
||||
"components.MovieDetails.manageModalTitle": "Manage Movie",
|
||||
"components.MovieDetails.originallanguage": "Original Language",
|
||||
"components.MovieDetails.overview": "Overview",
|
||||
"components.MovieDetails.overviewunavailable": "Overview unavailable",
|
||||
"components.MovieDetails.overviewunavailable": "Overview unavailable.",
|
||||
"components.MovieDetails.pending": "Pending",
|
||||
"components.MovieDetails.recommendations": "Recommendations",
|
||||
"components.MovieDetails.recommendationssubtext": "If you liked {title}, you might also like…",
|
||||
@@ -81,13 +82,13 @@
|
||||
"components.PermissionEdit.admin": "Admin",
|
||||
"components.PermissionEdit.adminDescription": "Full administrator access. Bypasses all permission checks.",
|
||||
"components.PermissionEdit.advancedrequest": "Advanced Requests",
|
||||
"components.PermissionEdit.advancedrequestDescription": "Grants permission to use advanced request options. (Ex. Changing servers/profiles/paths)",
|
||||
"components.PermissionEdit.autoapprove": "Auto Approve",
|
||||
"components.PermissionEdit.autoapproveDescription": "Grants auto approval for any requests made by this user.",
|
||||
"components.PermissionEdit.autoapproveMovies": "Auto Approve Movies",
|
||||
"components.PermissionEdit.autoapproveMoviesDescription": "Grants auto approve for movie requests made by this user.",
|
||||
"components.PermissionEdit.autoapproveSeries": "Auto Approve Series",
|
||||
"components.PermissionEdit.autoapproveSeriesDescription": "Grants auto approve for series requests made by this user.",
|
||||
"components.PermissionEdit.advancedrequestDescription": "Grants permission to use advanced request options; e.g. changing servers, profiles, or paths.",
|
||||
"components.PermissionEdit.autoapprove": "Auto-Approve",
|
||||
"components.PermissionEdit.autoapproveDescription": "Grants automatic approval for all requests made by this user.",
|
||||
"components.PermissionEdit.autoapproveMovies": "Auto-Approve Movies",
|
||||
"components.PermissionEdit.autoapproveMoviesDescription": "Grants automatic approval for movie requests made by this user.",
|
||||
"components.PermissionEdit.autoapproveSeries": "Auto-Approve Series",
|
||||
"components.PermissionEdit.autoapproveSeriesDescription": "Grants automatic approval for series requests made by this user.",
|
||||
"components.PermissionEdit.managerequests": "Manage Requests",
|
||||
"components.PermissionEdit.managerequestsDescription": "Grants permission to manage Overseerr requests. This includes approving and denying requests.",
|
||||
"components.PermissionEdit.request": "Request",
|
||||
@@ -110,7 +111,7 @@
|
||||
"components.PersonDetails.nobiography": "No biography available.",
|
||||
"components.PlexLoginButton.loading": "Loading…",
|
||||
"components.PlexLoginButton.signingin": "Signing in…",
|
||||
"components.PlexLoginButton.signinwithplex": "Sign in",
|
||||
"components.PlexLoginButton.signinwithplex": "Sign In",
|
||||
"components.RequestBlock.profilechanged": "Profile Changed",
|
||||
"components.RequestBlock.requestoverrides": "Request Overrides",
|
||||
"components.RequestBlock.rootfolder": "Root Folder",
|
||||
@@ -133,7 +134,7 @@
|
||||
"components.RequestCard.all": "All",
|
||||
"components.RequestCard.requestedby": "Requested by {username}",
|
||||
"components.RequestCard.seasons": "Seasons",
|
||||
"components.RequestList.RequestItem.failedretry": "Something went wrong retrying the request",
|
||||
"components.RequestList.RequestItem.failedretry": "Something went wrong while retrying the request.",
|
||||
"components.RequestList.RequestItem.notavailable": "N/A",
|
||||
"components.RequestList.RequestItem.requestedby": "Requested by {username}",
|
||||
"components.RequestList.RequestItem.seasons": "Seasons",
|
||||
@@ -143,7 +144,7 @@
|
||||
"components.RequestList.mediaInfo": "Media Info",
|
||||
"components.RequestList.modifiedBy": "Last Modified By",
|
||||
"components.RequestList.next": "Next",
|
||||
"components.RequestList.noresults": "No Results.",
|
||||
"components.RequestList.noresults": "No results.",
|
||||
"components.RequestList.previous": "Previous",
|
||||
"components.RequestList.requestedAt": "Requested At",
|
||||
"components.RequestList.requests": "Requests",
|
||||
@@ -162,33 +163,33 @@
|
||||
"components.RequestModal.AdvancedRequester.rootfolder": "Root Folder",
|
||||
"components.RequestModal.SearchByNameModal.next": "Next",
|
||||
"components.RequestModal.SearchByNameModal.nosummary": "No summary for this title was found.",
|
||||
"components.RequestModal.SearchByNameModal.notvdbid": "Manual match required",
|
||||
"components.RequestModal.SearchByNameModal.notvdbiddescription": "We couldn't automatically match your request. Please select the correct match from the list below.",
|
||||
"components.RequestModal.autoapproval": "Auto Approval",
|
||||
"components.RequestModal.SearchByNameModal.notvdbid": "Manual Match Required",
|
||||
"components.RequestModal.SearchByNameModal.notvdbiddescription": "We couldn't automatically match your request. Please select the correct match from the list below:",
|
||||
"components.RequestModal.autoapproval": "Automatic Approval",
|
||||
"components.RequestModal.backbutton": "Back",
|
||||
"components.RequestModal.cancel": "Cancel Request",
|
||||
"components.RequestModal.cancelling": "Cancelling…",
|
||||
"components.RequestModal.cancelrequest": "This will remove your request. Are you sure you want to continue?",
|
||||
"components.RequestModal.close": "Close",
|
||||
"components.RequestModal.errorediting": "Something went wrong editing the request.",
|
||||
"components.RequestModal.errorediting": "Something went wrong while editing the request.",
|
||||
"components.RequestModal.extras": "Extras",
|
||||
"components.RequestModal.next": "Next",
|
||||
"components.RequestModal.notrequested": "Not Requested",
|
||||
"components.RequestModal.notvdbid": "No TVDB id was found connected on TMDB",
|
||||
"components.RequestModal.notvdbiddescription": "Either add the TVDB id to TMDB and come back later, or select the correct match below.",
|
||||
"components.RequestModal.notvdbid": "No TVDB ID was found for this item on TMDb.",
|
||||
"components.RequestModal.notvdbiddescription": "Either add the TVDB ID to TMDb and try again later, or select the correct match below:",
|
||||
"components.RequestModal.numberofepisodes": "# of Episodes",
|
||||
"components.RequestModal.pending4krequest": "Pending request for {title} in 4K",
|
||||
"components.RequestModal.pendingrequest": "Pending request for {title}",
|
||||
"components.RequestModal.pending4krequest": "Pending Request for {title} in 4K",
|
||||
"components.RequestModal.pendingrequest": "Pending Request for {title}",
|
||||
"components.RequestModal.request": "Request",
|
||||
"components.RequestModal.request4k": "Request 4K",
|
||||
"components.RequestModal.request4kfrom": "There is currently a pending 4K request from {username}",
|
||||
"components.RequestModal.request4kfrom": "There is currently a pending 4K request from {username}.",
|
||||
"components.RequestModal.request4ktitle": "Request {title} in 4K",
|
||||
"components.RequestModal.requestCancel": "Request for <strong>{title}</strong> cancelled",
|
||||
"components.RequestModal.requestCancel": "Request for <strong>{title}</strong> cancelled.",
|
||||
"components.RequestModal.requestSuccess": "<strong>{title}</strong> requested.",
|
||||
"components.RequestModal.requestadmin": "Your request will be immediately approved.",
|
||||
"components.RequestModal.requestcancelled": "Request cancelled.",
|
||||
"components.RequestModal.requestedited": "Request edited.",
|
||||
"components.RequestModal.requesterror": "Something went wrong when trying to request media.",
|
||||
"components.RequestModal.requesterror": "Something went wrong while submitting the request.",
|
||||
"components.RequestModal.requestfrom": "There is currently a pending request from {username}",
|
||||
"components.RequestModal.requesting": "Requesting…",
|
||||
"components.RequestModal.requestseasons": "Request {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}",
|
||||
@@ -199,58 +200,58 @@
|
||||
"components.RequestModal.status": "Status",
|
||||
"components.Search.searchresults": "Search Results",
|
||||
"components.Settings.Notifications.NotificationsPushover.accessToken": "Access Token",
|
||||
"components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent Enabled",
|
||||
"components.Settings.Notifications.NotificationsPushover.agentenabled": "Enable Agent",
|
||||
"components.Settings.Notifications.NotificationsPushover.notificationtypes": "Notification Types",
|
||||
"components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover notification settings failed to save.",
|
||||
"components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover notification settings saved!",
|
||||
"components.Settings.Notifications.NotificationsPushover.save": "Save Changes",
|
||||
"components.Settings.Notifications.NotificationsPushover.saving": "Saving…",
|
||||
"components.Settings.Notifications.NotificationsPushover.settinguppushover": "Setting up Pushover Notifications",
|
||||
"components.Settings.Notifications.NotificationsPushover.settinguppushover": "Setting Up Pushover Notifications",
|
||||
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "To setup Pushover, you need to <RegisterApplicationLink>register an application</RegisterApplicationLink> and get the access token. When setting up the application, you can use one of the icons in the <IconLink>public folder</IconLink> on GitHub. You also need the Pushover user token, which can be found on the start page when you log in.",
|
||||
"components.Settings.Notifications.NotificationsPushover.test": "Test",
|
||||
"components.Settings.Notifications.NotificationsPushover.testsent": "Test notification sent!",
|
||||
"components.Settings.Notifications.NotificationsPushover.userToken": "User Token",
|
||||
"components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "You must provide an access token.",
|
||||
"components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "You must provide a user token.",
|
||||
"components.Settings.Notifications.NotificationsSlack.agentenabled": "Agent Enabled",
|
||||
"components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "You must provide an access token",
|
||||
"components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "You must provide a user token",
|
||||
"components.Settings.Notifications.NotificationsSlack.agentenabled": "Enable Agent",
|
||||
"components.Settings.Notifications.NotificationsSlack.notificationtypes": "Notification Types",
|
||||
"components.Settings.Notifications.NotificationsSlack.save": "Save Changes",
|
||||
"components.Settings.Notifications.NotificationsSlack.saving": "Saving…",
|
||||
"components.Settings.Notifications.NotificationsSlack.settingupslack": "Setting up Slack Notifications",
|
||||
"components.Settings.Notifications.NotificationsSlack.settingupslack": "Setting Up Slack Notifications",
|
||||
"components.Settings.Notifications.NotificationsSlack.settingupslackDescription": "To use Slack notifications, you will need to create an <WebhookLink>Incoming Webhook</WebhookLink> integration and use the provided webhook URL below.",
|
||||
"components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Slack notification settings failed to save.",
|
||||
"components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack notification settings saved!",
|
||||
"components.Settings.Notifications.NotificationsSlack.test": "Test",
|
||||
"components.Settings.Notifications.NotificationsSlack.testsent": "Test notification sent!",
|
||||
"components.Settings.Notifications.NotificationsSlack.validationWebhookUrlRequired": "You must provide a webhook URL.",
|
||||
"components.Settings.Notifications.NotificationsSlack.validationWebhookUrlRequired": "You must provide a webhook URL",
|
||||
"components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL",
|
||||
"components.Settings.Notifications.NotificationsSlack.webhookUrlPlaceholder": "Webhook URL",
|
||||
"components.Settings.Notifications.NotificationsWebhook.agentenabled": "Agent Enabled",
|
||||
"components.Settings.Notifications.NotificationsWebhook.agentenabled": "Enable Agent",
|
||||
"components.Settings.Notifications.NotificationsWebhook.authheader": "Authorization Header",
|
||||
"components.Settings.Notifications.NotificationsWebhook.customJson": "Custom JSON Payload",
|
||||
"components.Settings.Notifications.NotificationsWebhook.notificationtypes": "Notification Types",
|
||||
"components.Settings.Notifications.NotificationsWebhook.resetPayload": "Reset to Default JSON Payload",
|
||||
"components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON reset to default payload.",
|
||||
"components.Settings.Notifications.NotificationsWebhook.resetPayload": "Reset to Default",
|
||||
"components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON payload successfully reset.",
|
||||
"components.Settings.Notifications.NotificationsWebhook.save": "Save Changes",
|
||||
"components.Settings.Notifications.NotificationsWebhook.saving": "Saving…",
|
||||
"components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Template Variable Help",
|
||||
"components.Settings.Notifications.NotificationsWebhook.test": "Test",
|
||||
"components.Settings.Notifications.NotificationsWebhook.testsent": "Test notification sent!",
|
||||
"components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "You must provide a JSON Payload.",
|
||||
"components.Settings.Notifications.NotificationsWebhook.validationWebhookUrlRequired": "You must provide a webhook URL.",
|
||||
"components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "You must provide a JSON payload",
|
||||
"components.Settings.Notifications.NotificationsWebhook.validationWebhookUrlRequired": "You must provide a webhook URL",
|
||||
"components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook URL",
|
||||
"components.Settings.Notifications.NotificationsWebhook.webhookUrlPlaceholder": "Remote webhook URL",
|
||||
"components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Webhook notification settings failed to save.",
|
||||
"components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook notification settings saved!",
|
||||
"components.Settings.Notifications.agentenabled": "Agent Enabled",
|
||||
"components.Settings.Notifications.agentenabled": "Enable Agent",
|
||||
"components.Settings.Notifications.allowselfsigned": "Allow Self-Signed Certificates",
|
||||
"components.Settings.Notifications.authPass": "SMTP Password",
|
||||
"components.Settings.Notifications.authUser": "SMTP Username",
|
||||
"components.Settings.Notifications.botAPI": "Bot API",
|
||||
"components.Settings.Notifications.chatId": "Chat Id",
|
||||
"components.Settings.Notifications.chatId": "Chat ID",
|
||||
"components.Settings.Notifications.discordsettingsfailed": "Discord notification settings failed to save.",
|
||||
"components.Settings.Notifications.discordsettingssaved": "Discord notification settings saved!",
|
||||
"components.Settings.Notifications.emailsender": "Email Sender Address",
|
||||
"components.Settings.Notifications.emailsender": "Sender Address",
|
||||
"components.Settings.Notifications.emailsettingsfailed": "Email notification settings failed to save.",
|
||||
"components.Settings.Notifications.emailsettingssaved": "Email notification settings saved!",
|
||||
"components.Settings.Notifications.enableSsl": "Enable SSL",
|
||||
@@ -258,26 +259,26 @@
|
||||
"components.Settings.Notifications.save": "Save Changes",
|
||||
"components.Settings.Notifications.saving": "Saving…",
|
||||
"components.Settings.Notifications.senderName": "Sender Name",
|
||||
"components.Settings.Notifications.settinguptelegram": "Setting up Telegram Notifications",
|
||||
"components.Settings.Notifications.settinguptelegram": "Setting Up Telegram Notifications",
|
||||
"components.Settings.Notifications.settinguptelegramDescription": "To setup Telegram, you need to <CreateBotLink>create a bot</CreateBotLink> and get the bot API key. Additionally, you need the chat ID for the chat you want the bot to send notifications to. You can do this by adding <GetIdBotLink>@get_id_bot</GetIdBotLink> to the chat or group chat.",
|
||||
"components.Settings.Notifications.smtpHost": "SMTP Host",
|
||||
"components.Settings.Notifications.smtpPort": "SMTP Port",
|
||||
"components.Settings.Notifications.ssldisabletip": "SSL should be disabled on standard TLS connections (Port 587)",
|
||||
"components.Settings.Notifications.ssldisabletip": "SSL should be disabled on standard TLS connections (port 587)",
|
||||
"components.Settings.Notifications.telegramsettingsfailed": "Telegram notification settings failed to save.",
|
||||
"components.Settings.Notifications.telegramsettingssaved": "Telegram notification settings saved!",
|
||||
"components.Settings.Notifications.test": "Test",
|
||||
"components.Settings.Notifications.testsent": "Test notification sent!",
|
||||
"components.Settings.Notifications.validationBotAPIRequired": "You must provide a Bot API key.",
|
||||
"components.Settings.Notifications.validationChatIdRequired": "You must provide a Chat ID.",
|
||||
"components.Settings.Notifications.validationFromRequired": "You must provide an email sender address.",
|
||||
"components.Settings.Notifications.validationSmtpHostRequired": "You must provide an SMTP host.",
|
||||
"components.Settings.Notifications.validationSmtpPortRequired": "You must provide an SMTP port.",
|
||||
"components.Settings.Notifications.validationWebhookUrlRequired": "You must provide a webhook URL.",
|
||||
"components.Settings.Notifications.validationBotAPIRequired": "You must provide a Bot API key",
|
||||
"components.Settings.Notifications.validationChatIdRequired": "You must provide a Chat ID",
|
||||
"components.Settings.Notifications.validationFromRequired": "You must provide a sender address",
|
||||
"components.Settings.Notifications.validationSmtpHostRequired": "You must provide an SMTP host",
|
||||
"components.Settings.Notifications.validationSmtpPortRequired": "You must provide an SMTP port",
|
||||
"components.Settings.Notifications.validationWebhookUrlRequired": "You must provide a webhook URL",
|
||||
"components.Settings.Notifications.webhookUrl": "Webhook URL",
|
||||
"components.Settings.Notifications.webhookUrlPlaceholder": "Server Settings -> Integrations -> Webhooks",
|
||||
"components.Settings.Notifications.webhookUrlPlaceholder": "Server Settings → Integrations → Webhooks",
|
||||
"components.Settings.RadarrModal.add": "Add Server",
|
||||
"components.Settings.RadarrModal.apiKey": "API Key",
|
||||
"components.Settings.RadarrModal.apiKeyPlaceholder": "Your Radarr API Key",
|
||||
"components.Settings.RadarrModal.apiKeyPlaceholder": "Your Radarr API key",
|
||||
"components.Settings.RadarrModal.baseUrl": "Base URL",
|
||||
"components.Settings.RadarrModal.baseUrlPlaceholder": "Example: /radarr",
|
||||
"components.Settings.RadarrModal.createradarr": "Create New Radarr Server",
|
||||
@@ -300,32 +301,32 @@
|
||||
"components.Settings.RadarrModal.servernamePlaceholder": "A Radarr Server",
|
||||
"components.Settings.RadarrModal.ssl": "SSL",
|
||||
"components.Settings.RadarrModal.test": "Test",
|
||||
"components.Settings.RadarrModal.testFirstQualityProfiles": "Test your connection to load quality profiles",
|
||||
"components.Settings.RadarrModal.testFirstRootFolders": "Test your connection to load root folders",
|
||||
"components.Settings.RadarrModal.testFirstQualityProfiles": "Test connection to load quality profiles",
|
||||
"components.Settings.RadarrModal.testFirstRootFolders": "Test connection to load root folders",
|
||||
"components.Settings.RadarrModal.testing": "Testing…",
|
||||
"components.Settings.RadarrModal.toastRadarrTestFailure": "Failed to connect to Radarr Server",
|
||||
"components.Settings.RadarrModal.toastRadarrTestFailure": "Failed to connect to Radarr.",
|
||||
"components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr connection established!",
|
||||
"components.Settings.RadarrModal.validationApiKeyRequired": "You must provide an API key.",
|
||||
"components.Settings.RadarrModal.validationHostnameRequired": "You must provide a hostname/IP.",
|
||||
"components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "You must select a minimum availability.",
|
||||
"components.Settings.RadarrModal.validationNameRequired": "You must provide a server name.",
|
||||
"components.Settings.RadarrModal.validationPortRequired": "You must provide a port.",
|
||||
"components.Settings.RadarrModal.validationProfileRequired": "You must select a quality profile.",
|
||||
"components.Settings.RadarrModal.validationRootFolderRequired": "You must select a root folder.",
|
||||
"components.Settings.RadarrModal.validationApiKeyRequired": "You must provide an API key",
|
||||
"components.Settings.RadarrModal.validationHostnameRequired": "You must provide a hostname/IP",
|
||||
"components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "You must select a minimum availability",
|
||||
"components.Settings.RadarrModal.validationNameRequired": "You must provide a server name",
|
||||
"components.Settings.RadarrModal.validationPortRequired": "You must provide a port",
|
||||
"components.Settings.RadarrModal.validationProfileRequired": "You must select a quality profile",
|
||||
"components.Settings.RadarrModal.validationRootFolderRequired": "You must select a root folder",
|
||||
"components.Settings.SettingsAbout.Releases.currentversion": "Current Version",
|
||||
"components.Settings.SettingsAbout.Releases.latestversion": "Latest Version",
|
||||
"components.Settings.SettingsAbout.Releases.releasedataMissing": "Release data missing. Is GitHub down?",
|
||||
"components.Settings.SettingsAbout.Releases.releasedataMissing": "Release data unavailable. Is GitHub down?",
|
||||
"components.Settings.SettingsAbout.Releases.releases": "Releases",
|
||||
"components.Settings.SettingsAbout.Releases.runningDevelop": "You are running a develop version of Overseerr!",
|
||||
"components.Settings.SettingsAbout.Releases.runningDevelopMessage": "The changes in your version will not be available below. Please look at the <GithubLink>GitHub repository</GithubLink> for latest updates.",
|
||||
"components.Settings.SettingsAbout.Releases.runningDevelopMessage": "The changes in your version will not be available below. Please see the <GithubLink>GitHub repository</GithubLink> for latest updates.",
|
||||
"components.Settings.SettingsAbout.Releases.versionChangelog": "Version Changelog",
|
||||
"components.Settings.SettingsAbout.Releases.viewchangelog": "View Changelog",
|
||||
"components.Settings.SettingsAbout.Releases.viewongithub": "View on GitHub",
|
||||
"components.Settings.SettingsAbout.clickheretojoindiscord": "Click here to join our Discord server.",
|
||||
"components.Settings.SettingsAbout.clickheretojoindiscord": "Click here to join our Discord server!",
|
||||
"components.Settings.SettingsAbout.documentation": "Documentation",
|
||||
"components.Settings.SettingsAbout.gettingsupport": "Getting Support",
|
||||
"components.Settings.SettingsAbout.githubdiscussions": "GitHub Discussions",
|
||||
"components.Settings.SettingsAbout.helppaycoffee": "Help pay for coffee",
|
||||
"components.Settings.SettingsAbout.helppaycoffee": "Help Pay for Coffee",
|
||||
"components.Settings.SettingsAbout.overseerrinformation": "Overseerr Information",
|
||||
"components.Settings.SettingsAbout.supportoverseerr": "Support Overseerr",
|
||||
"components.Settings.SettingsAbout.timezone": "Timezone",
|
||||
@@ -336,7 +337,7 @@
|
||||
"components.Settings.SonarrModal.animequalityprofile": "Anime Quality Profile",
|
||||
"components.Settings.SonarrModal.animerootfolder": "Anime Root Folder",
|
||||
"components.Settings.SonarrModal.apiKey": "API Key",
|
||||
"components.Settings.SonarrModal.apiKeyPlaceholder": "Your Sonarr API Key",
|
||||
"components.Settings.SonarrModal.apiKeyPlaceholder": "Your Sonarr API key",
|
||||
"components.Settings.SonarrModal.baseUrl": "Base URL",
|
||||
"components.Settings.SonarrModal.baseUrlPlaceholder": "Example: /sonarr",
|
||||
"components.Settings.SonarrModal.createsonarr": "Create New Sonarr Server",
|
||||
@@ -358,26 +359,26 @@
|
||||
"components.Settings.SonarrModal.servernamePlaceholder": "A Sonarr Server",
|
||||
"components.Settings.SonarrModal.ssl": "SSL",
|
||||
"components.Settings.SonarrModal.test": "Test",
|
||||
"components.Settings.SonarrModal.testFirstQualityProfiles": "Test your connection to load quality profiles",
|
||||
"components.Settings.SonarrModal.testFirstRootFolders": "Test your connection to load root folders",
|
||||
"components.Settings.SonarrModal.testFirstQualityProfiles": "Test connection to load quality profiles",
|
||||
"components.Settings.SonarrModal.testFirstRootFolders": "Test connection to load root folders",
|
||||
"components.Settings.SonarrModal.testing": "Testing…",
|
||||
"components.Settings.SonarrModal.toastRadarrTestFailure": "Could not connect to Sonarr Server",
|
||||
"components.Settings.SonarrModal.toastRadarrTestSuccess": "Sonarr connection established!",
|
||||
"components.Settings.SonarrModal.validationApiKeyRequired": "You must provide an API key.",
|
||||
"components.Settings.SonarrModal.validationHostnameRequired": "You must provide a hostname/IP.",
|
||||
"components.Settings.SonarrModal.validationNameRequired": "You must provide a server name.",
|
||||
"components.Settings.SonarrModal.validationPortRequired": "You must provide a port.",
|
||||
"components.Settings.SonarrModal.validationProfileRequired": "You must select a quality profile.",
|
||||
"components.Settings.SonarrModal.validationRootFolderRequired": "You must select a root folder.",
|
||||
"components.Settings.SonarrModal.toastSonarrTestFailure": "Failed to connect to Sonarr.",
|
||||
"components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr connection established!",
|
||||
"components.Settings.SonarrModal.validationApiKeyRequired": "You must provide an API key",
|
||||
"components.Settings.SonarrModal.validationHostnameRequired": "You must provide a hostname/IP",
|
||||
"components.Settings.SonarrModal.validationNameRequired": "You must provide a server name",
|
||||
"components.Settings.SonarrModal.validationPortRequired": "You must provide a port",
|
||||
"components.Settings.SonarrModal.validationProfileRequired": "You must select a quality profile",
|
||||
"components.Settings.SonarrModal.validationRootFolderRequired": "You must select a root folder",
|
||||
"components.Settings.activeProfile": "Active Profile",
|
||||
"components.Settings.addradarr": "Add Radarr Server",
|
||||
"components.Settings.address": "Address",
|
||||
"components.Settings.addsonarr": "Add Sonarr Server",
|
||||
"components.Settings.apikey": "API Key",
|
||||
"components.Settings.applicationurl": "Application URL",
|
||||
"components.Settings.autoapprovedrequests": "Send notifications for auto-approved requests",
|
||||
"components.Settings.autoapprovedrequests": "Send Notifications for Auto-Approved Requests",
|
||||
"components.Settings.cancelscan": "Cancel Scan",
|
||||
"components.Settings.copied": "Copied API key to clipboard",
|
||||
"components.Settings.copied": "Copied API key to clipboard.",
|
||||
"components.Settings.csrfProtection": "Enable CSRF Protection",
|
||||
"components.Settings.csrfProtectionTip": "Sets external API access to read-only (Overseerr must be reloaded for changes to take effect)",
|
||||
"components.Settings.currentlibrary": "Current Library: {name}",
|
||||
@@ -389,13 +390,13 @@
|
||||
"components.Settings.edit": "Edit",
|
||||
"components.Settings.enablenotifications": "Enable Notifications",
|
||||
"components.Settings.generalsettings": "General Settings",
|
||||
"components.Settings.generalsettingsDescription": "These are settings related to general Overseerr configuration.",
|
||||
"components.Settings.hideAvailable": "Hide available media",
|
||||
"components.Settings.generalsettingsDescription": "Configure global and default settings for Overseerr.",
|
||||
"components.Settings.hideAvailable": "Hide Available Media",
|
||||
"components.Settings.hostname": "Hostname/IP",
|
||||
"components.Settings.jobname": "Job Name",
|
||||
"components.Settings.librariesRemaining": "Libraries Remaining: {count}",
|
||||
"components.Settings.manualscan": "Manual Library Scan",
|
||||
"components.Settings.manualscanDescription": "Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one time full manual library scan is recommended!",
|
||||
"components.Settings.manualscanDescription": "Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one-time full manual library scan is recommended!",
|
||||
"components.Settings.menuAbout": "About",
|
||||
"components.Settings.menuGeneralSettings": "General Settings",
|
||||
"components.Settings.menuJobs": "Jobs",
|
||||
@@ -407,19 +408,19 @@
|
||||
"components.Settings.nextexecution": "Next Execution",
|
||||
"components.Settings.nodefault": "No default server selected!",
|
||||
"components.Settings.nodefaultdescription": "At least one server must be marked as default before any requests will make it to your services.",
|
||||
"components.Settings.notificationAgentSettingsDescription": "Here you can pick and choose what types of notifications to send and through what types of services.",
|
||||
"components.Settings.notificationAgentSettingsDescription": "Choose the types of notifications to send, and which notification agents to use.",
|
||||
"components.Settings.notificationAgentsSettings": "Notification Agents",
|
||||
"components.Settings.notificationsettings": "Notification Settings",
|
||||
"components.Settings.notificationsettingsDescription": "Global notification configuration. The settings below affect all notification agents.",
|
||||
"components.Settings.notificationsettingsDescription": "Configure global notification settings. The options below will apply to all notification agents.",
|
||||
"components.Settings.notificationsettingsfailed": "Notification settings failed to save.",
|
||||
"components.Settings.notificationsettingssaved": "Notification settings saved!",
|
||||
"components.Settings.notrunning": "Not Running",
|
||||
"components.Settings.plexlibraries": "Plex Libraries",
|
||||
"components.Settings.plexlibrariesDescription": "The libraries Overseerr scans for titles. Set up and save your Plex connection settings and click the button below if none are listed.",
|
||||
"components.Settings.plexlibrariesDescription": "The libraries Overseerr scans for titles. Set up and save your Plex connection settings, then click the button below if no libraries are listed.",
|
||||
"components.Settings.plexsettings": "Plex Settings",
|
||||
"components.Settings.plexsettingsDescription": "Configure the settings for your Plex server. Overseerr uses your Plex server to scan your library at an interval and see what content is available.",
|
||||
"components.Settings.plexsettingsDescription": "Configure the settings for your Plex server. Overseerr scans your Plex libraries to see what content is available.",
|
||||
"components.Settings.port": "Port",
|
||||
"components.Settings.radarrSettingsDescription": "Set up your Radarr connection below. You can have multiple, but only two active as defaults at any time (one for standard HD, and one for 4K). Administrators can override which server is used for new requests.",
|
||||
"components.Settings.radarrSettingsDescription": "Set up your Radarr connection below. You can have multiple, but only two active as defaults at any time (one for standard HD, and one for 4K). Administrators can override the server is used for new requests.",
|
||||
"components.Settings.radarrsettings": "Radarr Settings",
|
||||
"components.Settings.runnow": "Run Now",
|
||||
"components.Settings.save": "Save Changes",
|
||||
@@ -427,34 +428,35 @@
|
||||
"components.Settings.serverConnected": "connected",
|
||||
"components.Settings.serverLocal": "local",
|
||||
"components.Settings.serverRemote": "remote",
|
||||
"components.Settings.servername": "Server Name (Retrieved from Plex)",
|
||||
"components.Settings.servername": "Server Name",
|
||||
"components.Settings.servernamePlaceholder": "Plex Server Name",
|
||||
"components.Settings.serverpreset": "Available Server",
|
||||
"components.Settings.serverpresetLoad": "Press button to load available servers",
|
||||
"components.Settings.servernameTip": "Automatically retrieved from Plex after saving",
|
||||
"components.Settings.serverpreset": "Server",
|
||||
"components.Settings.serverpresetLoad": "Press the button to load available servers",
|
||||
"components.Settings.serverpresetManualMessage": "Manually configure",
|
||||
"components.Settings.serverpresetPlaceholder": "Plex server (retrieved automatically)",
|
||||
"components.Settings.serverpresetRefreshing": "Retrieving servers...",
|
||||
"components.Settings.settingUpPlex": "Setting up Plex",
|
||||
"components.Settings.settingUpPlexDescription": "To setup Plex you can enter your details manually, or choose from one of your available servers retrieved from <RegisterPlexTVLink>plex.tv</RegisterPlexTVLink>. Press the button next to the dropdown to refresh the list and recheck server connectivity.",
|
||||
"components.Settings.sonarrSettingsDescription": "Set up your Sonarr connection below. You can have multiple, but only two active as defaults at any time (one for standard HD and one for 4K). Administrators can override which server is used for new requests.",
|
||||
"components.Settings.serverpresetPlaceholder": "Plex Server",
|
||||
"components.Settings.serverpresetRefreshing": "Retrieving servers…",
|
||||
"components.Settings.settingUpPlex": "Setting Up Plex",
|
||||
"components.Settings.settingUpPlexDescription": "To set up Plex, you can either enter your details manually or select a server retrieved from <RegisterPlexTVLink>plex.tv</RegisterPlexTVLink>. Press the button to the right of the dropdown to check connectivity and retrieve available servers.",
|
||||
"components.Settings.sonarrSettingsDescription": "Set up your Sonarr connection below. You can have multiple, but only two active as defaults at any time (one for standard HD and one for 4K). Administrators can override the server is used for new requests.",
|
||||
"components.Settings.sonarrsettings": "Sonarr Settings",
|
||||
"components.Settings.ssl": "SSL",
|
||||
"components.Settings.startscan": "Start Scan",
|
||||
"components.Settings.sync": "Sync Plex Libraries",
|
||||
"components.Settings.syncing": "Syncing…",
|
||||
"components.Settings.timeout": "Timeout",
|
||||
"components.Settings.toastApiKeyFailure": "Something went wrong generating a new API Key.",
|
||||
"components.Settings.toastApiKeySuccess": "New API Key generated!",
|
||||
"components.Settings.toastPlexConnecting": "Attempting to connect to Plex server",
|
||||
"components.Settings.toastPlexConnectingFailure": "Unable to connect to Plex server",
|
||||
"components.Settings.toastPlexConnectingSuccess": "Connected to Plex server",
|
||||
"components.Settings.toastPlexRefresh": "Retrieving server list from Plex",
|
||||
"components.Settings.toastPlexRefreshFailure": "Unable to retrieve server list from Plex",
|
||||
"components.Settings.toastPlexRefreshSuccess": "Retrieved server list from Plex",
|
||||
"components.Settings.toastSettingsFailure": "Something went wrong saving settings.",
|
||||
"components.Settings.toastApiKeyFailure": "Something went wrong while generating a new API key.",
|
||||
"components.Settings.toastApiKeySuccess": "New API key generated!",
|
||||
"components.Settings.toastPlexConnecting": "Attempting to connect to Plex…",
|
||||
"components.Settings.toastPlexConnectingFailure": "Unable to connect to Plex!",
|
||||
"components.Settings.toastPlexConnectingSuccess": "Connected to Plex server.",
|
||||
"components.Settings.toastPlexRefresh": "Retrieving server list from Plex…",
|
||||
"components.Settings.toastPlexRefreshFailure": "Unable to retrieve Plex server list!",
|
||||
"components.Settings.toastPlexRefreshSuccess": "Retrieved Plex server list.",
|
||||
"components.Settings.toastSettingsFailure": "Something went wrong while saving settings.",
|
||||
"components.Settings.toastSettingsSuccess": "Settings saved.",
|
||||
"components.Settings.validationHostnameRequired": "You must provide a hostname/IP.",
|
||||
"components.Settings.validationPortRequired": "You must provide a port.",
|
||||
"components.Settings.validationHostnameRequired": "You must provide a hostname/IP",
|
||||
"components.Settings.validationPortRequired": "You must provide a port",
|
||||
"components.Setup.configureplex": "Configure Plex",
|
||||
"components.Setup.configureservices": "Configure Services",
|
||||
"components.Setup.continue": "Continue",
|
||||
@@ -465,7 +467,7 @@
|
||||
"components.Setup.syncingbackground": "Syncing will run in the background. You can continue the setup process in the meantime.",
|
||||
"components.Setup.tip": "Tip",
|
||||
"components.Setup.welcome": "Welcome to Overseerr",
|
||||
"components.Slider.noresults": "No Results",
|
||||
"components.Slider.noresults": "No results.",
|
||||
"components.StatusBadge.status4k": "4K {status}",
|
||||
"components.StatusChacker.newversionDescription": "An update is now available. Click the button below to reload the application.",
|
||||
"components.StatusChacker.newversionavailable": "New Version Available",
|
||||
@@ -482,14 +484,14 @@
|
||||
"components.TvDetails.decline": "Decline",
|
||||
"components.TvDetails.firstAirDate": "First Air Date",
|
||||
"components.TvDetails.manageModalClearMedia": "Clear All Media Data",
|
||||
"components.TvDetails.manageModalClearMediaWarning": "This will remove all media data including all requests for this item, irreversibly. If this item exists in your Plex library, the media info will be recreated next sync.",
|
||||
"components.TvDetails.manageModalClearMediaWarning": "This will irreversibly remove all data for this TV series, including any requests. If this item exists in your Plex library, the media information will be recreated during the next sync.",
|
||||
"components.TvDetails.manageModalNoRequests": "No Requests",
|
||||
"components.TvDetails.manageModalRequests": "Requests",
|
||||
"components.TvDetails.manageModalTitle": "Manage Series",
|
||||
"components.TvDetails.network": "Network",
|
||||
"components.TvDetails.originallanguage": "Original Language",
|
||||
"components.TvDetails.overview": "Overview",
|
||||
"components.TvDetails.overviewunavailable": "Overview unavailable",
|
||||
"components.TvDetails.overviewunavailable": "Overview unavailable.",
|
||||
"components.TvDetails.pending": "Pending",
|
||||
"components.TvDetails.recommendations": "Recommendations",
|
||||
"components.TvDetails.recommendationssubtext": "If you liked {title}, you might also like…",
|
||||
@@ -507,7 +509,7 @@
|
||||
"components.UserEdit.permissions": "Permissions",
|
||||
"components.UserEdit.save": "Save",
|
||||
"components.UserEdit.saving": "Saving…",
|
||||
"components.UserEdit.userfail": "Something went wrong saving the user.",
|
||||
"components.UserEdit.userfail": "Something went wrong while saving the user.",
|
||||
"components.UserEdit.username": "Display Name",
|
||||
"components.UserEdit.usersaved": "User saved",
|
||||
"components.UserList.admin": "Admin",
|
||||
@@ -524,27 +526,27 @@
|
||||
"components.UserList.edit": "Edit",
|
||||
"components.UserList.email": "Email Address",
|
||||
"components.UserList.importedfromplex": "{userCount, plural, =0 {No new users} one {# new user} other {# new users}} imported from Plex",
|
||||
"components.UserList.importfromplex": "Import Users From Plex",
|
||||
"components.UserList.importfromplexerror": "Something went wrong importing users from Plex",
|
||||
"components.UserList.importfromplex": "Import Users from Plex",
|
||||
"components.UserList.importfromplexerror": "Something went wrong while importing users from Plex.",
|
||||
"components.UserList.lastupdated": "Last Updated",
|
||||
"components.UserList.localuser": "Local User",
|
||||
"components.UserList.password": "Password",
|
||||
"components.UserList.passwordinfo": "Password Info",
|
||||
"components.UserList.passwordinfodescription": "Email notification settings need to be enabled and setup in order to use the auto generated passwords",
|
||||
"components.UserList.passwordinfo": "Password Information",
|
||||
"components.UserList.passwordinfodescription": "Email notifications need to be configured and enabled in order to automatically generate passwords.",
|
||||
"components.UserList.plexuser": "Plex User",
|
||||
"components.UserList.role": "Role",
|
||||
"components.UserList.totalrequests": "Total Requests",
|
||||
"components.UserList.user": "User",
|
||||
"components.UserList.usercreatedfailed": "Something went wrong when trying to create the user",
|
||||
"components.UserList.usercreatedsuccess": "Successfully created the user",
|
||||
"components.UserList.userdeleted": "User deleted",
|
||||
"components.UserList.userdeleteerror": "Something went wrong deleting the user",
|
||||
"components.UserList.usercreatedfailed": "Something went wrong while creating the user.",
|
||||
"components.UserList.usercreatedsuccess": "User created successfully!",
|
||||
"components.UserList.userdeleted": "User deleted.",
|
||||
"components.UserList.userdeleteerror": "Something went wrong while deleting the user.",
|
||||
"components.UserList.userlist": "User List",
|
||||
"components.UserList.username": "Username",
|
||||
"components.UserList.userssaved": "Users saved",
|
||||
"components.UserList.usertype": "User Type",
|
||||
"components.UserList.validationemailrequired": "Must enter a valid email address.",
|
||||
"components.UserList.validationpasswordminchars": "Password is too short - should be 8 chars minimum.",
|
||||
"components.UserList.validationemailrequired": "Must enter a valid email address",
|
||||
"components.UserList.validationpasswordminchars": "Password is too short; should be a minimum of 8 characters",
|
||||
"i18n.approve": "Approve",
|
||||
"i18n.approved": "Approved",
|
||||
"i18n.available": "Available",
|
||||
@@ -566,10 +568,10 @@
|
||||
"i18n.retry": "Retry",
|
||||
"i18n.tvshows": "Series",
|
||||
"i18n.unavailable": "Unavailable",
|
||||
"pages.internalServerError": "{statusCode} - Internal Server Error",
|
||||
"pages.internalServerError": "{statusCode} - Internal server error",
|
||||
"pages.oops": "Oops",
|
||||
"pages.pageNotFound": "404 - Page Not Found",
|
||||
"pages.returnHome": "Return Home",
|
||||
"pages.serviceUnavailable": "{statusCode} - Service Unavailable",
|
||||
"pages.serviceUnavailable": "{statusCode} - Service unavailable",
|
||||
"pages.somethingWentWrong": "{statusCode} - Something went wrong"
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ interface ErrorProps {
|
||||
}
|
||||
|
||||
const messages = defineMessages({
|
||||
internalServerError: '{statusCode} - Internal Server Error',
|
||||
serviceUnavailable: '{statusCode} - Service Unavailable',
|
||||
internalServerError: '{statusCode} - Internal server error',
|
||||
serviceUnavailable: '{statusCode} - Service unavailable',
|
||||
somethingWentWrong: '{statusCode} - Something went wrong',
|
||||
oops: 'Oops',
|
||||
returnHome: 'Return Home',
|
||||
|
||||
Reference in New Issue
Block a user