Merge branch 'develop'

pull/2563/head
sct 4 years ago
commit cd9d9ae8d2

@ -19,7 +19,8 @@ jobs:
to get help with Overseerr.
- [Discord](https://discord.gg/PkCWJSeCk7)
- [GitHub Discussions](https://github.com/sct/overseerr/discussions)
close-issue: true
lock-issue: false
lock-issue: true
issue-lock-reason: 'off-topic'

@ -27,7 +27,7 @@
"bowser": "^2.11.0",
"connect-typeorm": "^1.1.4",
"cookie-parser": "^1.4.5",
"country-code-emoji": "^2.2.0",
"country-flag-icons": "^1.2.9",
"csurf": "^1.11.0",
"email-templates": "^8.0.3",
"express": "^4.17.1",
@ -83,6 +83,7 @@
"@types/bcrypt": "^3.0.0",
"@types/body-parser": "^1.19.0",
"@types/cookie-parser": "^1.4.2",
"@types/country-flag-icons": "^1.2.0",
"@types/csurf": "^1.11.0",
"@types/email-templates": "^8.0.2",
"@types/express": "^4.17.11",

@ -13,6 +13,7 @@ export interface PublicSettingsResponse {
movie4kEnabled: boolean;
series4kEnabled: boolean;
region: string;
originalLanguage: string;
}
export interface CacheItem {

@ -666,7 +666,9 @@ class JobPlexSync {
isAllStandardSeasons || shouldStayAvailable
? MediaStatus.AVAILABLE
: media.seasons.some(
(season) => season.status !== MediaStatus.UNKNOWN
(season) =>
season.status === MediaStatus.PARTIALLY_AVAILABLE ||
season.status === MediaStatus.AVAILABLE
)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN;
@ -675,7 +677,9 @@ class JobPlexSync {
? MediaStatus.AVAILABLE
: this.enable4kShow &&
media.seasons.some(
(season) => season.status4k !== MediaStatus.UNKNOWN
(season) =>
season.status4k === MediaStatus.PARTIALLY_AVAILABLE ||
season.status4k === MediaStatus.AVAILABLE
)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN;
@ -691,7 +695,9 @@ class JobPlexSync {
status: isAllStandardSeasons
? MediaStatus.AVAILABLE
: newSeasons.some(
(season) => season.status !== MediaStatus.UNKNOWN
(season) =>
season.status === MediaStatus.PARTIALLY_AVAILABLE ||
season.status === MediaStatus.AVAILABLE
)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN,
@ -700,7 +706,9 @@ class JobPlexSync {
? MediaStatus.AVAILABLE
: this.enable4kShow &&
newSeasons.some(
(season) => season.status4k !== MediaStatus.UNKNOWN
(season) =>
season.status4k === MediaStatus.PARTIALLY_AVAILABLE ||
season.status4k === MediaStatus.AVAILABLE
)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN,

@ -53,6 +53,7 @@ class TelegramAgent
const title = this.escapeText(payload.subject);
const plot = this.escapeText(payload.message);
const user = this.escapeText(payload.notifyUser.displayName);
const applicationTitle = this.escapeText(settings.main.applicationTitle);
/* eslint-disable no-useless-escape */
switch (type) {
@ -109,7 +110,7 @@ class TelegramAgent
if (settings.main.applicationUrl && payload.media) {
const actionUrl = `${settings.main.applicationUrl}/${payload.media.mediaType}/${payload.media.tmdbId}`;
message += `\n\n\[Open in ${settings.main.applicationTitle}\]\(${actionUrl}\)`;
message += `\n\n\[Open in ${applicationTitle}\]\(${actionUrl}\)`;
}
/* eslint-enable */

@ -85,6 +85,7 @@ interface FullPublicSettings extends PublicSettings {
movie4kEnabled: boolean;
series4kEnabled: boolean;
region: string;
originalLanguage: string;
}
export interface NotificationAgentConfig {
@ -337,6 +338,7 @@ class Settings {
(sonarr) => sonarr.is4k && sonarr.isDefault
),
region: this.data.main.region,
originalLanguage: this.data.main.originalLanguage,
};
}

@ -5,16 +5,35 @@ import Media from '../entity/Media';
import { isMovie, isPerson } from '../utils/typeHelpers';
import { MediaType } from '../constants/media';
import { getSettings } from '../lib/settings';
import { User } from '../entity/User';
const createTmdbWithRegionLanaguage = (user?: User): TheMovieDb => {
const settings = getSettings();
const region =
user?.settings?.region === 'all'
? ''
: user?.settings?.region
? user?.settings?.region
: settings.main.region;
const originalLanguage =
user?.settings?.originalLanguage === 'all'
? ''
: user?.settings?.originalLanguage
? user?.settings?.originalLanguage
: settings.main.originalLanguage;
return new TheMovieDb({
region,
originalLanguage,
});
};
const discoverRoutes = Router();
discoverRoutes.get('/movies', async (req, res) => {
const settings = getSettings();
const tmdb = new TheMovieDb({
region: req.user?.settings?.region ?? settings.main.region,
originalLanguage:
req.user?.settings?.originalLanguage ?? settings.main.originalLanguage,
});
const tmdb = createTmdbWithRegionLanaguage(req.user);
const data = await tmdb.getDiscoverMovies({
page: Number(req.query.page),
@ -41,12 +60,7 @@ discoverRoutes.get('/movies', async (req, res) => {
});
discoverRoutes.get('/movies/upcoming', async (req, res) => {
const settings = getSettings();
const tmdb = new TheMovieDb({
region: req.user?.settings?.region ?? settings.main.region,
originalLanguage:
req.user?.settings?.originalLanguage ?? settings.main.originalLanguage,
});
const tmdb = createTmdbWithRegionLanaguage(req.user);
const now = new Date();
const offset = now.getTimezoneOffset();
@ -80,12 +94,7 @@ discoverRoutes.get('/movies/upcoming', async (req, res) => {
});
discoverRoutes.get('/tv', async (req, res) => {
const settings = getSettings();
const tmdb = new TheMovieDb({
region: req.user?.settings?.region ?? settings.main.region,
originalLanguage:
req.user?.settings?.originalLanguage ?? settings.main.originalLanguage,
});
const tmdb = createTmdbWithRegionLanaguage(req.user);
const data = await tmdb.getDiscoverTv({
page: Number(req.query.page),
@ -112,12 +121,7 @@ discoverRoutes.get('/tv', async (req, res) => {
});
discoverRoutes.get('/tv/upcoming', async (req, res) => {
const settings = getSettings();
const tmdb = new TheMovieDb({
region: req.user?.settings?.region ?? settings.main.region,
originalLanguage:
req.user?.settings?.originalLanguage ?? settings.main.originalLanguage,
});
const tmdb = createTmdbWithRegionLanaguage(req.user);
const now = new Date();
const offset = now.getTimezoneOffset();
@ -151,12 +155,7 @@ discoverRoutes.get('/tv/upcoming', async (req, res) => {
});
discoverRoutes.get('/trending', async (req, res) => {
const settings = getSettings();
const tmdb = new TheMovieDb({
region: req.user?.settings?.region ?? settings.main.region,
originalLanguage:
req.user?.settings?.originalLanguage ?? settings.main.originalLanguage,
});
const tmdb = createTmdbWithRegionLanaguage(req.user);
const data = await tmdb.getAllTrending({
page: Number(req.query.page),

@ -283,9 +283,7 @@ requestRoutes.post(
const request = new MediaRequest({
type: MediaType.TV,
media: {
id: media.id,
} as Media,
media,
requestedBy: requestUser,
// If the user is an admin or has the "auto approve" permission, automatically approve the request
status:

@ -1,37 +1,59 @@
import React, { useEffect, useState } from 'react';
import React, { useEffect, useMemo, useState } from 'react';
import { Listbox, Transition } from '@headlessui/react';
import { countryCodeEmoji } from 'country-code-emoji';
import useSWR from 'swr';
import type { Region } from '../../../server/lib/settings';
import { defineMessages, useIntl } from 'react-intl';
import useSettings from '../../hooks/useSettings';
import { hasFlag } from 'country-flag-icons';
import 'country-flag-icons/3x2/flags.css';
const messages = defineMessages({
regionDefault: 'All Regions',
regionServerDefault: 'Default ({region})',
});
interface RegionSelectorProps {
value: string;
name: string;
isUserSetting?: boolean;
onChange?: (fieldName: string, region: string) => void;
}
const RegionSelector: React.FC<RegionSelectorProps> = ({
name,
value,
isUserSetting = false,
onChange,
}) => {
const { currentSettings } = useSettings();
const intl = useIntl();
const { data: regions } = useSWR<Region[]>('/api/v1/regions');
const [selectedRegion, setSelectedRegion] = useState<Region | null>(null);
const allRegion: Region = useMemo(
() => ({
iso_3166_1: 'all',
english_name: 'All',
}),
[]
);
const defaultRegionNameFallback =
regions?.find((region) => region.iso_3166_1 === currentSettings.region)
?.english_name ?? currentSettings.region;
useEffect(() => {
if (regions && value) {
const matchedRegion = regions.find(
(region) => region.iso_3166_1 === value
);
setSelectedRegion(matchedRegion ?? null);
if (value === 'all') {
setSelectedRegion(allRegion);
} else {
const matchedRegion = regions.find(
(region) => region.iso_3166_1 === value
);
setSelectedRegion(matchedRegion ?? null);
}
}
}, [value, regions]);
}, [value, regions, allRegion]);
useEffect(() => {
if (onChange && regions) {
@ -47,15 +69,35 @@ const RegionSelector: React.FC<RegionSelectorProps> = ({
<div className="relative">
<span className="inline-block w-full rounded-md shadow-sm">
<Listbox.Button className="relative flex items-center w-full py-2 pl-3 pr-10 text-left text-white transition duration-150 ease-in-out bg-gray-700 border border-gray-500 rounded-md cursor-default focus:outline-none focus:shadow-outline-blue focus:border-blue-300 sm:text-sm sm:leading-5">
{selectedRegion && (
<span className="h-4 mr-2 overflow-hidden text-lg leading-4">
{countryCodeEmoji(selectedRegion.iso_3166_1)}
{((selectedRegion && hasFlag(selectedRegion?.iso_3166_1)) ||
(isUserSetting &&
!selectedRegion &&
currentSettings.region &&
hasFlag(currentSettings.region))) && (
<span className="h-4 mr-2 overflow-hidden text-base leading-4">
<span
className={`flag:${
selectedRegion
? selectedRegion.iso_3166_1
: currentSettings.region
}`}
/>
</span>
)}
<span className="block truncate">
{selectedRegion
{selectedRegion && selectedRegion.iso_3166_1 !== 'all'
? intl.formatDisplayName(selectedRegion.iso_3166_1, {
type: 'region',
fallback: 'none',
}) ?? selectedRegion.english_name
: isUserSetting && selectedRegion?.iso_3166_1 !== 'all'
? intl.formatMessage(messages.regionServerDefault, {
region: currentSettings.region
? intl.formatDisplayName(currentSettings.region, {
type: 'region',
fallback: 'none',
}) ?? defaultRegionNameFallback
: intl.formatMessage(messages.regionDefault),
})
: intl.formatMessage(messages.regionDefault)}
</span>
@ -89,7 +131,67 @@ const RegionSelector: React.FC<RegionSelectorProps> = ({
static
className="py-1 overflow-auto text-base leading-6 rounded-md shadow-xs max-h-60 focus:outline-none sm:text-sm sm:leading-5"
>
<Listbox.Option value={null}>
{isUserSetting && (
<Listbox.Option value={null}>
{({ selected, active }) => (
<div
className={`${
active
? 'text-white bg-indigo-600'
: 'text-gray-300'
} cursor-default select-none relative py-2 pl-8 pr-4 flex items-center`}
>
<span className="mr-2 text-base">
<span
className={
hasFlag(currentSettings.region)
? `flag:${currentSettings.region}`
: 'pr-6'
}
/>
</span>
<span
className={`${
selected ? 'font-semibold' : 'font-normal'
} block truncate`}
>
{intl.formatMessage(messages.regionServerDefault, {
region: currentSettings.region
? intl.formatDisplayName(
currentSettings.region,
{
type: 'region',
fallback: 'none',
}
) ?? defaultRegionNameFallback
: intl.formatMessage(messages.regionDefault),
})}
</span>
{selected && (
<span
className={`${
active ? 'text-white' : 'text-indigo-600'
} absolute inset-y-0 left-0 flex items-center pl-1.5`}
>
<svg
className="w-5 h-5"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
>
<path
fillRule="evenodd"
d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z"
clipRule="evenodd"
/>
</svg>
</span>
)}
</div>
)}
</Listbox.Option>
)}
<Listbox.Option value={isUserSetting ? allRegion : null}>
{({ selected, active }) => (
<div
className={`${
@ -99,7 +201,7 @@ const RegionSelector: React.FC<RegionSelectorProps> = ({
<span
className={`${
selected ? 'font-semibold' : 'font-normal'
} block truncate`}
} block truncate pl-8`}
>
{intl.formatMessage(messages.regionDefault)}
</span>
@ -136,8 +238,14 @@ const RegionSelector: React.FC<RegionSelectorProps> = ({
: 'text-gray-300'
} cursor-default select-none relative py-2 pl-8 pr-4 flex items-center`}
>
<span className="mr-2 text-lg">
{countryCodeEmoji(region.iso_3166_1)}
<span className="mr-2 text-base">
<span
className={
hasFlag(region.iso_3166_1)
? `flag:${region.iso_3166_1}`
: 'pr-6'
}
/>
</span>
<span
className={`${

@ -24,9 +24,9 @@ const messages = defineMessages({
test: 'Test',
settinguppushover: 'Setting Up Pushover Notifications',
settinguppushoverDescription:
'To configure Pushover notifications, you will need to <RegisterApplicationLink>register an application</RegisterApplicationLink> and enter the API key below.\
'To configure Pushover notifications, you will need to <RegisterApplicationLink>register an application</RegisterApplicationLink> and enter the API token below.\
(You can use one of our <IconLink>official icons on GitHub</IconLink>.)\
You will need also need your user key.',
You will also need your user key.',
notificationtypes: 'Notification Types',
});

@ -17,7 +17,7 @@ const messages = defineMessages({
botAPI: 'Bot Authentication Token',
chatId: 'Chat ID',
validationBotAPIRequired: 'You must provide a bot authentication token',
validationChatIdRequired: 'You must provide a valid chat ID',
validationChatIdRequired: 'You must provide a chat ID',
telegramsettingssaved: 'Telegram notification settings saved successfully!',
telegramsettingsfailed: 'Telegram notification settings failed to save.',
testsent: 'Test notification sent!',
@ -43,9 +43,9 @@ const NotificationsTelegram: React.FC = () => {
botAPI: Yup.string().required(
intl.formatMessage(messages.validationBotAPIRequired)
),
chatId: Yup.string()
.required(intl.formatMessage(messages.validationChatIdRequired))
.matches(/^\d+$/, intl.formatMessage(messages.validationChatIdRequired)),
chatId: Yup.string().required(
intl.formatMessage(messages.validationChatIdRequired)
),
});
if (!data && !error) {

@ -185,7 +185,7 @@ const SonarrModal: React.FC<SonarrModalProps> = ({
setIsValidated(true);
setTestResponse(response.data);
if (initialLoad.current) {
addToast('Sonarr connection established!', {
addToast(intl.formatMessage(messages.toastSonarrTestSuccess), {
appearance: 'success',
autoDismiss: true,
});
@ -193,7 +193,7 @@ const SonarrModal: React.FC<SonarrModalProps> = ({
} catch (e) {
setIsValidated(false);
if (initialLoad.current) {
addToast('Failed to connect to Sonarr server', {
addToast(intl.formatMessage(messages.toastSonarrTestFailure), {
appearance: 'error',
autoDismiss: true,
});

@ -6,6 +6,7 @@ import { defineMessages, useIntl } from 'react-intl';
import { useToasts } from 'react-toast-notifications';
import useSWR from 'swr';
import { Language } from '../../../../../server/lib/settings';
import useSettings from '../../../../hooks/useSettings';
import { UserType, useUser } from '../../../../hooks/useUser';
import Error from '../../../../pages/_error';
import Badge from '../../../Common/Badge';
@ -29,6 +30,7 @@ const messages = defineMessages({
originallanguageTip:
'Filter content by original language (only applies to the "Popular" and "Upcoming" categories)',
originalLanguageDefault: 'All Languages',
languageServerDefault: 'Default ({language})',
});
const UserGeneralSettings: React.FC = () => {
@ -36,6 +38,7 @@ const UserGeneralSettings: React.FC = () => {
const { addToast } = useToasts();
const router = useRouter();
const { user, mutate } = useUser({ id: Number(router.query.userId) });
const { currentSettings } = useSettings();
const { data, error, revalidate } = useSWR<{
username?: string;
region?: string;
@ -58,6 +61,11 @@ const UserGeneralSettings: React.FC = () => {
return <Error statusCode={500} />;
}
const defaultLanguageNameFallback =
languages.find(
(language) => language.iso_639_1 === currentSettings.originalLanguage
)?.english_name ?? currentSettings.originalLanguage;
return (
<>
<div className="mb-6">
@ -143,6 +151,7 @@ const UserGeneralSettings: React.FC = () => {
<RegionSelector
name="region"
value={values.region ?? ''}
isUserSetting
onChange={setFieldValue}
/>
</div>
@ -162,6 +171,21 @@ const UserGeneralSettings: React.FC = () => {
name="originalLanguage"
>
<option value="">
{intl.formatMessage(messages.languageServerDefault, {
language: currentSettings.originalLanguage
? intl.formatDisplayName(
currentSettings.originalLanguage,
{
type: 'language',
fallback: 'none',
}
) ?? defaultLanguageNameFallback
: intl.formatMessage(
messages.originalLanguageDefault
),
})}
</option>
<option value="all">
{intl.formatMessage(messages.originalLanguageDefault)}
</option>
{languages?.map((language) => (

@ -14,6 +14,7 @@ const defaultSettings = {
movie4kEnabled: false,
series4kEnabled: false,
region: '',
originalLanguage: '',
};
export const SettingsContext = React.createContext<SettingsContextProps>({

@ -408,7 +408,7 @@
"components.UserEdit.autoapproveSeriesDescription": "Gewährt die automatische Genehmigung für Serienanfragen von diesem Benutzer.",
"components.UserEdit.autoapproveMoviesDescription": "Gewährt die automatische Genehmigung für Filmanfragen von diesem Benutzer.",
"components.Settings.Notifications.NotificationsSlack.validationWebhookUrlRequired": "Du musst eine Webhook-URL angeben",
"components.Settings.Notifications.validationChatIdRequired": "Du musst eine gültige Chat-ID angeben",
"components.Settings.Notifications.validationChatIdRequired": "Du musst eine Chat-ID angeben",
"components.Settings.Notifications.validationBotAPIRequired": "Du musst ein Bot-Authentifizierungstoken angeben",
"components.Settings.Notifications.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!",
"components.Settings.Notifications.telegramsettingsfailed": "Telegram-Benachrichtigungseinstellungen konnten nicht gespeichert werden.",
@ -445,7 +445,7 @@
"components.Settings.Notifications.NotificationsPushover.notificationtypes": "Benachrichtigungsarten",
"components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover-Benachrichtigungseinstellungen konnten nicht gespeichert werden.",
"components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent aktivieren",
"components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs-/API Token",
"components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs-/API-Token",
"components.RequestList.sortModified": "Zuletzt geändert",
"components.RequestList.sortAdded": "Anfragedatum",
"components.RequestList.showallrequests": "Zeige alle Anfragen",
@ -830,5 +830,7 @@
"components.Settings.Notifications.emailNotificationTypesAlert": "E-Mail-Benachrichtigungen-Empfänger",
"components.RegionSelector.regionDefault": "Alle Regionen",
"components.UserProfile.UserSettings.UserGeneralSettings.originalLanguageDefault": "Alle Sprachen",
"components.Settings.originalLanguageDefault": "Alle Sprachen"
"components.Settings.originalLanguageDefault": "Alle Sprachen",
"components.UserProfile.UserSettings.UserGeneralSettings.languageServerDefault": "Standard ({language})",
"components.RegionSelector.regionServerDefault": "Standard ({region})"
}

@ -139,6 +139,7 @@
"components.PlexLoginButton.signingin": "Signing in…",
"components.PlexLoginButton.signinwithplex": "Sign In",
"components.RegionSelector.regionDefault": "All Regions",
"components.RegionSelector.regionServerDefault": "Default ({region})",
"components.RequestBlock.profilechanged": "Quality Profile",
"components.RequestBlock.requestoverrides": "Request Overrides",
"components.RequestBlock.rootfolder": "Root Folder",
@ -262,7 +263,7 @@
"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.settinguppushoverDescription": "To configure Pushover notifications, you will need to <RegisterApplicationLink>register an application</RegisterApplicationLink> and enter the API key below. (You can use one of our <IconLink>official icons on GitHub</IconLink>.) You will need also need your user key.",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "To configure Pushover notifications, you will need to <RegisterApplicationLink>register an application</RegisterApplicationLink> and enter the API token below. (You can use one of our <IconLink>official icons on GitHub</IconLink>.) You will also need your user key.",
"components.Settings.Notifications.NotificationsPushover.test": "Test",
"components.Settings.Notifications.NotificationsPushover.testsent": "Test notification sent!",
"components.Settings.Notifications.NotificationsPushover.userToken": "User Key",
@ -326,7 +327,7 @@
"components.Settings.Notifications.test": "Test",
"components.Settings.Notifications.testsent": "Test notification sent!",
"components.Settings.Notifications.validationBotAPIRequired": "You must provide a bot authentication token",
"components.Settings.Notifications.validationChatIdRequired": "You must provide a valid chat ID",
"components.Settings.Notifications.validationChatIdRequired": "You must provide a chat ID",
"components.Settings.Notifications.validationEmail": "You must provide a valid email address",
"components.Settings.Notifications.validationSmtpHostRequired": "You must provide an SMTP host",
"components.Settings.Notifications.validationSmtpPortRequired": "You must provide an SMTP port",
@ -679,6 +680,7 @@
"components.UserProfile.ProfileHeader.settings": "Edit Settings",
"components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Display Name",
"components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "General Settings",
"components.UserProfile.UserSettings.UserGeneralSettings.languageServerDefault": "Default ({language})",
"components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Local User",
"components.UserProfile.UserSettings.UserGeneralSettings.originalLanguageDefault": "All Languages",
"components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Discover Language",

@ -29,15 +29,15 @@
"components.Settings.SettingsAbout.overseerrinformation": "Información de Overseerr",
"components.Settings.SettingsAbout.githubdiscussions": "Discursiones en GitHub",
"components.Settings.SettingsAbout.gettingsupport": "Soporte",
"components.Settings.SettingsAbout.clickheretojoindiscord": "Click aquín para unirte a nuestro servidor de Discord.",
"components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz.",
"components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad.",
"components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un puerto.",
"components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor.",
"components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un hostname/IP.",
"components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API.",
"components.Settings.SettingsAbout.clickheretojoindiscord": "Click aquín para unirte a nuestro servidor de Discord!",
"components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz",
"components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad",
"components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un puerto",
"components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor",
"components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un hostname/IP",
"components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API",
"components.Settings.RadarrModal.toastRadarrTestSuccess": "¡Conexión con Radarr establecida!",
"components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Servidor Radarr",
"components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Radarr.",
"components.Settings.RadarrModal.testing": "Comprobando…",
"components.Settings.RadarrModal.test": "Comprobar",
"components.Settings.RadarrModal.ssl": "SSL",
@ -65,8 +65,8 @@
"components.Settings.Notifications.webhookUrlPlaceholder": "Ajustes del servidor -> Integraciones -> Webhooks",
"components.Settings.Notifications.webhookUrl": "URL de Webhook",
"components.Settings.Notifications.validationWebhookUrlRequired": "Debes proporcionar una URL del webhook.",
"components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un puerto SMTP.",
"components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un host SMTP.",
"components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un puerto SMTP",
"components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un host SMTP",
"components.Settings.Notifications.validationFromRequired": "Debe proporcionar una dirección de remitente de correo electrónico.",
"components.Settings.Notifications.smtpPort": "Puerto SMTP",
"components.Settings.Notifications.smtpHost": "Host SMTP",
@ -93,7 +93,7 @@
"components.RequestModal.requestadmin": "Tu petición será aprovada inmediatamente.",
"components.RequestModal.requestSuccess": "<strong>{title}</strong> solicitado.",
"components.RequestList.showingresults": "Mostrando <strong>{from}</strong> a <strong>{to}</strong> de <strong>{total}</strong> resultados",
"components.RequestModal.requestCancel": "Solicitud para <strong>{title}</strong> cancelada",
"components.RequestModal.requestCancel": "Solicitud para <strong>{title}</strong> cancelada.",
"components.RequestModal.request": "Solicitar",
"components.RequestModal.pendingrequest": "Solicitud pendiente para {title}",
"components.RequestModal.numberofepisodes": "# de Episodios",
@ -174,12 +174,12 @@
"components.Settings.address": "Dirección",
"components.Settings.addradarr": "Agregar servidor Radarr",
"components.Settings.activeProfile": "Perfil activo",
"components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz.",
"components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil.",
"components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un puerto.",
"components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor.",
"components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un hostname/IP.",
"components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API.",
"components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz",
"components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil",
"components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un puerto",
"components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor",
"components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un hostname/IP",
"components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API",
"components.Settings.SonarrModal.toastRadarrTestSuccess": "¡Conexión con Sonarr establecida!",
"components.Settings.menuLogs": "Registro",
"pages.somethingWentWrong": "{statusCode} Algo salió mal",
@ -274,8 +274,8 @@
"components.Setup.continue": "Continuar",
"components.Setup.configureplex": "Configurar Plex",
"components.Setup.configureservices": "Configurar servicios",
"components.Settings.validationPortRequired": "Debes proporcionar un puerto.",
"components.Settings.validationHostnameRequired": "Debe proporcionar un nombre de host / IP.",
"components.Settings.validationPortRequired": "Debes proporcionar un puerto",
"components.Settings.validationHostnameRequired": "Debe proporcionar un nombre de host / IP",
"components.Settings.syncing": "Sincronizando…",
"components.Settings.sync": "Sincronizar bibliotecas de Plex",
"components.Settings.startscan": "Iniciar escaneo",
@ -316,15 +316,15 @@
"components.Settings.default4k": "4K predeterminado",
"components.Settings.default": "Predeterminado",
"components.Settings.currentlibrary": "Biblioteca actual: {name}",
"components.Settings.copied": "Clave API copiada en el portapapeles",
"components.Settings.copied": "Clave API copiada en el portapapeles.",
"components.Settings.cancelscan": "Cancelar escaneo",
"components.Settings.applicationurl": "URL de la aplicación",
"components.Settings.apikey": "Clave API",
"components.Setup.tip": "Consejo",
"components.Setup.syncingbackground": "La sincronización se ejecutará en segundo plano. Mientras tanto, puede continuar con el proceso de configuración.",
"i18n.deleting": "Eliminando…",
"components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario",
"components.UserList.userdeleted": "Usuario eliminado",
"components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.",
"components.UserList.userdeleted": "Usuario eliminado.",
"components.UserList.deleteuser": "Eliminar usuario",
"components.UserList.deleteconfirm": "¿Está seguro de que desea eliminar este usuario? Se eliminarán todas las solicitudes existentes de este usuario.",
"components.Settings.nodefaultdescription": "Al menos un servidor debe estar marcado como predeterminado antes de que cualquier solicitud llegue a sus servicios.",
@ -334,7 +334,7 @@
"components.Settings.SonarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad",
"components.Settings.SonarrModal.loadingrootfolders": "Cargando carpetas raíz…",
"components.Settings.SonarrModal.loadingprofiles": "Cargando perfiles de calidad…",
"components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima.",
"components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima",
"components.Settings.RadarrModal.testFirstRootFolders": "Prueba la conexión para cargar carpetas raíz",
"components.Settings.RadarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad",
"components.Settings.RadarrModal.loadingrootfolders": "Cargando carpetas raíz…",
@ -365,7 +365,7 @@
"components.Settings.Notifications.testsent": "¡Notificación de prueba enviada!",
"components.Settings.Notifications.test": "Comprobar",
"components.MovieDetails.studio": "Estudio",
"components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex",
"components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex.",
"components.UserList.importfromplex": "Importar usuarios de Plex",
"components.UserList.importedfromplex": "{userCount, plural, =0 {Ningún} one {# Nuevo usuario} other {# Nuevos usuarios}} importado/s de Plex",
"components.TvDetails.viewfullcrew": "Ver Equipo Completo",
@ -405,7 +405,7 @@
"components.Settings.Notifications.NotificationsSlack.saving": "Guardando…",
"components.Settings.Notifications.NotificationsSlack.save": "Guardar cambios",
"components.Settings.Notifications.NotificationsSlack.agentenabled": "Agente habilitado",
"components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud",
"components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud.",
"components.MovieDetails.watchtrailer": "Ver Trailer",
"components.MovieDetails.view": "Ver",
"components.NotificationTypeSelector.mediarequestedDescription": "Envía una notificación cuando se solicitan nuevos medios. Para ciertos agentes, esto solo enviará la notificación a los administradores o usuarios con el permiso \"Administrar solicitudes\".",
@ -464,7 +464,7 @@
"components.UserList.password": "Contraseña",
"components.UserList.localuser": "Usuario local",
"components.UserList.email": "Dirección de correo electrónico",
"components.UserList.creating": "Creando",
"components.UserList.creating": "Creando",
"components.UserList.createuser": "Crear usuario",
"components.UserList.createlocaluser": "Crear usuario local",
"components.UserList.create": "Crear",
@ -498,7 +498,7 @@
"components.RequestModal.requestedited": "Solicitud editada.",
"components.RequestModal.requestcancelled": "Solicitud cancelada.",
"components.RequestModal.request4ktitle": "Solicitar {title} en 4K",
"components.RequestModal.request4kfrom": "Actualmente hay una solicitud 4K pendiente de {username}",
"components.RequestModal.request4kfrom": "Actualmente hay una solicitud 4K pendiente de {username}.",
"components.RequestModal.request4k": "Solicitar 4K",
"components.RequestModal.pending4krequest": "Solicitud pendiente para {title} en 4K",
"components.RequestModal.errorediting": "Algo salió mal al editar la solicitud.",

@ -297,7 +297,7 @@
"i18n.processing": "Traitement en cours…",
"i18n.tvshows": "Séries",
"i18n.unavailable": "Indisponible",
"pages.internalServerError": "{statusCode} Erreur du serveur interne",
"pages.internalServerError": "{statusCode} Erreur interne au serveur",
"pages.oops": "Oups",
"pages.pageNotFound": "404 Page non trouvée",
"pages.returnHome": "Retourner à l'acceuil",
@ -305,8 +305,8 @@
"pages.somethingWentWrong": "{statusCode} Une erreur est survenue",
"components.TvDetails.TvCast.fullseriescast": "Casting complet de la série",
"components.MovieDetails.MovieCast.fullcast": "Casting complet",
"components.Settings.Notifications.emailsettingssaved": "Paramètres de notification par courriel enregistrés avec succès !",
"components.Settings.Notifications.emailsettingsfailed": "Les paramètres de notification par courriel n'ont pas pu être enregistrés.",
"components.Settings.Notifications.emailsettingssaved": "Paramètres de notification par e-mail enregistrés avec succès !",
"components.Settings.Notifications.emailsettingsfailed": "Les paramètres de notification par e-mail n'ont pas pu être enregistrés.",
"components.Settings.Notifications.discordsettingssaved": "Paramètres de notification Discord enregistrés avec succès !",
"components.Settings.Notifications.discordsettingsfailed": "Les paramètres de notification Discord n'ont pas pu être enregistrés.",
"components.Settings.validationPortRequired": "Vous devez fournir un port",
@ -408,7 +408,7 @@
"components.Settings.Notifications.NotificationsSlack.save": "Enregistrer les changements",
"components.Settings.Notifications.NotificationsSlack.agentenabled": "Activer l'agent",
"components.RequestList.RequestItem.failedretry": "Une erreur s'est produite lors du renvoi de la demande d'ajout.",
"components.Settings.Notifications.validationChatIdRequired": "Vous devez fournir un identifiant de discussion valide",
"components.Settings.Notifications.validationChatIdRequired": "Vous devez fournir un identifiant de discussion",
"components.Settings.Notifications.botAPI": "Jeton d'authentification du bot",
"components.Settings.Notifications.validationBotAPIRequired": "Vous devez fournir la clé d'authentification du bot",
"components.Settings.Notifications.telegramsettingssaved": "Paramètres de notification Telegram enregistrés avec succès !",
@ -418,7 +418,7 @@
"components.Settings.Notifications.settinguptelegramDescription": "Pour configurer les notifications Telegram, vous aurez besoin de <CreateBotLink>créer un bot</CreateBotLink> et obtenir la clé API du bot. De plus, vous aurez besoin de l'identifiant de conversion pour la conversation à laquelle vous souhaitez envoyer des notifications. Vous pouvez le récupérer en ajoutant <GetIdBotLink>@get_id_bot</GetIdBotLink> à la conversation -de groupe-.",
"components.Settings.Notifications.settinguptelegram": "Configuration des notifications Telegram",
"components.StatusChacker.reloadOverseerr": "Recharger Overseerr",
"components.StatusChacker.newversionavailable": "Nouvelle version disponible",
"components.StatusChacker.newversionavailable": "Une nouvelle version est disponible",
"components.StatusChacker.newversionDescription": "Une mise à jour est maintenant disponible. Cliquez sur le bouton ci-dessous pour recharger l'application.",
"components.Settings.SettingsAbout.documentation": "Documentation",
"components.Settings.Notifications.notificationtypes": "Types de notification",
@ -437,7 +437,7 @@
"components.Settings.Notifications.NotificationsPushover.userToken": "Clé d'utilisateur",
"components.Settings.Notifications.NotificationsPushover.testsent": "Notification de test envoyée !",
"components.Settings.Notifications.NotificationsPushover.test": "Test",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Pour configurer Pushover, vous aurez besoin <RegisterApplicationLink>d'enregistrer une application</RegisterApplicationLink> et d'ajouter la clé API ci-dessous. Vous pouvez utiliser l'une des icônes présentes dans le <IconLink>dossier public</IconLink> sur GitHub. Vous aurez également besoin du jeton d'utilisateur.",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Pour configurer Pushover, vous aurez besoin <RegisterApplicationLink>d'enregistrer une application</RegisterApplicationLink> et d'ajouter le jeton API ci-dessous. Vous pouvez utiliser l'une des icônes présentes dans le <IconLink>dossier public</IconLink> sur GitHub. Vous aurez également besoin du jeton d'utilisateur.",
"components.Settings.Notifications.NotificationsPushover.settinguppushover": "Configuration des notifications Pushover",
"components.Settings.Notifications.NotificationsPushover.saving": "Enregistrement…",
"components.Settings.Notifications.NotificationsPushover.save": "Enregistrer les changements",
@ -459,7 +459,7 @@
"components.UserEdit.request4kMovies": "Demander des films 4K",
"components.UserEdit.request4kDescription": "Accorde la permission de demander des films et séries en 4K.",
"components.UserEdit.request4k": "Demander la 4K",
"components.StatusBadge.status4k": "{status} 4K",
"components.StatusBadge.status4k": "{status} en 4K",
"components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Paramètres de notification Webhook enregistrés avec succès !",
"components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Échec de l'enregistrement des paramètres de notification du webhook.",
"components.Settings.Notifications.NotificationsWebhook.webhookUrlPlaceholder": "URL webhook distante",
@ -506,11 +506,11 @@
"components.UserList.createlocaluser": "Créer un utilisateur local",
"components.UserList.create": "Créer",
"components.UserList.autogeneratepassword": "Générer automatiquement le mot de passe",
"components.UserList.passwordinfodescription": "Les notifications par courrier électronique doivent être configurées et activées afin de pouvoir utiliser les mots de passe générés automatiquement.",
"components.UserList.email": "Adresse électronique",
"components.UserList.passwordinfodescription": "Les notifications par e-mail doivent être configurées et activées afin de pouvoir utiliser les mots de passe générés automatiquement.",
"components.UserList.email": "Adresse e-mail",
"components.UserList.validationemailrequired": "Vous devez entrer une adresse électronique valide",
"components.Login.validationpasswordrequired": "Vous devez fournir un mot de passe",
"components.Login.validationemailrequired": "Vous devez fournir une adresse électronique valide",
"components.Login.validationemailrequired": "Vous devez fournir un e-mail valide",
"components.Login.signinwithoverseerr": "Utilisez votre compte {applicationTitle}",
"components.Login.password": "Mot de passe",
"components.Login.loginerror": "Une erreur s'est produite lors de la tentative de connexion.",
@ -685,7 +685,7 @@
"components.PermissionEdit.viewrequestsDescription": "Accorde l'autorisation de consulter les demandes des autres utilisateurs.",
"components.PermissionEdit.viewrequests": "Voir les demandes",
"components.Discover.discover": "Découverte",
"components.UserList.validationEmail": "Vous devez fournir une adresse électronique valide",
"components.UserList.validationEmail": "Vous devez fournir un e-mail valide",
"components.UserEdit.validationEmail": "Vous devez fournir une adresse électronique valide",
"components.TvDetails.nextAirDate": "Prochaine diffusion",
"components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "L'URL de base ne doit pas se terminer par une barre oblique finale",
@ -693,21 +693,21 @@
"components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "L'URL de base ne doit pas se terminer par une barre oblique finale",
"components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "L'URL de base doit être précédée d'une barre oblique",
"components.Settings.Notifications.validationWebhookUrl": "Vous devez fournir une URL valide",
"components.Settings.Notifications.validationEmail": "Vous devez fournir une adresse électronique valide",
"components.Settings.Notifications.validationEmail": "Vous devez fournir un e-mail valide",
"components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Vous devez fournir une URL valide",
"components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Vous devez fournir une URL valide",
"components.ResetPassword.validationpasswordrequired": "Vous devez fournir un mot de passe",
"components.ResetPassword.validationpasswordminchars": "Le mot de passe est trop court ; il doit comporter au moins 8 caractères",
"components.ResetPassword.validationpasswordmatch": "Le mot de passe doit correspondre",
"components.ResetPassword.validationemailrequired": "Vous devez fournir une adresse électronique valide",
"components.ResetPassword.validationemailrequired": "Vous devez fournir un e-mail valide",
"components.ResetPassword.resetpasswordsuccessmessage": "Le mot de passe a été réinitialisé avec succès, sous réserve que le lien était bien valide et associé à un utilisateur existant.",
"components.ResetPassword.resetpassword": "Réinitialiser votre mot de passe",
"components.ResetPassword.requestresetlinksuccessmessage": "Un lien de réinitialisation du mot de passe sera envoyé à l'adresse électronique fournie si elle est associée à un utilisateur valide.",
"components.ResetPassword.requestresetlinksuccessmessage": "Un lien de réinitialisation du mot de passe sera envoyé à l'e-mail fourni si il est associé à un utilisateur valide.",
"components.ResetPassword.password": "Mot de passe",
"components.ResetPassword.gobacklogin": "Retourner à la page de connexion",
"components.ResetPassword.forgotpassword": "Réinitialiser votre mot de passe",
"components.ResetPassword.emailresetlink": "M'envoyer un lien de récupération",
"components.ResetPassword.email": "Adresse électronique",
"components.ResetPassword.emailresetlink": "Envoyez-moi un lien de récupération par e-mail",
"components.ResetPassword.email": "Adresse e-mail",
"components.ResetPassword.confirmpassword": "Confirmez le mot de passe",
"components.Login.forgotpassword": "Mot de passe oublié ?",
"components.Settings.SettingsJobsCache.process": "Procès",
@ -825,9 +825,11 @@
"components.Settings.originallanguage": "Langue à découvrir",
"components.RegionSelector.regionDefault": "Toutes les régions",
"components.Settings.Notifications.emailNotificationTypesAlertDescription": "Les notifications « Média demandé » et « Échec dajout du média » seront exclusivement envoyées aux utilisateurs bénéficiant de l'autorisation « Gérer les demandes ».",
"components.Settings.Notifications.emailNotificationTypesAlert": "Destinataires des notifications par courriel",
"components.Settings.Notifications.emailNotificationTypesAlert": "Destinataires des notifications par e-mail",
"components.Settings.webhook": "Webhook",
"components.Settings.email": "Courriel",
"components.Settings.email": "E-mail",
"components.UserProfile.UserSettings.UserGeneralSettings.originalLanguageDefault": "Toutes les langues",
"components.Settings.originalLanguageDefault": "Toutes les langues"
"components.Settings.originalLanguageDefault": "Toutes les langues",
"components.UserProfile.UserSettings.UserGeneralSettings.languageServerDefault": "Défaut ({language})",
"components.RegionSelector.regionServerDefault": "Défaut ({region})"
}

@ -43,7 +43,7 @@
"components.PersonDetails.crewmember": "Stáb tag",
"components.PersonDetails.ascharacter": "mint {character}",
"components.PersonDetails.appearsin": "Szerepel a következőkben",
"components.PermissionEdit.voteDescription": "Engedélyt ad a kérelmek szavazására. (A szavazás funkció még nincs implementálva)",
"components.PermissionEdit.voteDescription": "Engedélyt ad a kérelmek szavazására. (A szavazás funkció még nincs implementálva).",
"components.PermissionEdit.vote": "Szavazás",
"components.PermissionEdit.usersDescription": "Engedélyt ad az Overseerr felhasználók kezelésére. Az ezzel az engedéllyel rendelkező felhasználók nem módosíthatják a rendszergazdai jogosultsággal rendelkező felhasználókat, és nem adhatják meg a jogosultságot más felhasználónak.",
"components.PermissionEdit.users": "Felhasználók kezelése",

@ -8,7 +8,7 @@
"components.Discover.discovermovies": "Film popolari",
"components.UserEdit.email": "Indirizzo e-mail",
"components.Settings.Notifications.validationFromRequired": "È necessario fornire un indirizzo mittente di posta elettronica.",
"components.Settings.Notifications.emailsettingssaved": "Impostazioni di notifica tramite posta elettronica salvate!",
"components.Settings.Notifications.emailsettingssaved": "Impostazioni di notifica tramite posta elettronica salvate con successo!",
"components.Settings.Notifications.emailsettingsfailed": "Impossibile salvare le impostazioni di notifica tramite posta elettronica.",
"components.Settings.Notifications.emailsender": "Indirizzo del mittente",
"components.Settings.SonarrModal.testing": "Test in corso…",
@ -131,7 +131,7 @@
"i18n.available": "Disponibile",
"i18n.approved": "Approvato",
"i18n.approve": "Approva",
"components.UserList.usertype": "Tipo di utente",
"components.UserList.usertype": "Tipo Utente",
"components.UserList.username": "Nome utente",
"i18n.unavailable": "Non disponibile",
"i18n.tvshows": "Serie",
@ -208,7 +208,7 @@
"components.Settings.librariesRemaining": "Biblioteche rimanenti: {count}",
"components.Settings.hostname": "Nome host/IP",
"components.Settings.generalsettingsDescription": "Configura le impostazioni globali e predefinite per Overseerr.",
"components.Settings.generalsettings": "Impostazioni generali",
"components.Settings.generalsettings": "Impostazioni Generali",
"components.Settings.edit": "Modifica",
"components.Settings.deleteserverconfirm": "Sei sicuro/a di voler eliminare questo server?",
"components.Settings.delete": "Elimina",
@ -287,7 +287,7 @@
"components.Settings.Notifications.smtpPort": "Porta SMTP",
"components.Settings.Notifications.smtpHost": "Host SMTP",
"components.Settings.Notifications.enableSsl": "Abilita SSL",
"components.Settings.Notifications.discordsettingssaved": "Impostazioni di Discord salvate!",
"components.Settings.Notifications.discordsettingssaved": "Impostazioni di Discord salvate con successo!",
"components.Settings.Notifications.authUser": "Nome utente SMTP",
"components.Settings.Notifications.authPass": "Password SMTP",
"components.RequestModal.requestseasons": "Richiedi {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}",
@ -401,7 +401,7 @@
"components.Settings.Notifications.NotificationsSlack.validationWebhookUrlRequired": "È necessario fornire un URL per il webhook.",
"components.Settings.Notifications.NotificationsSlack.test": "Prova",
"components.Settings.Notifications.NotificationsSlack.testsent": "Notifica di prova inviata!",
"components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Impostazioni di Slack salvate!",
"components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Impostazioni di Slack salvate con successo!",
"components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Impossibile salvare le impostazioni di Slack.",
"components.Settings.Notifications.NotificationsSlack.settingupslackDescription": "Per configurare le notifiche con Slack, sarà necessario creare un'integrazione con un <WebhookLink>Webhook in ingresso</WebhookLink> e utilizzare l'URL del webhook fornito di seguito.",
"components.Settings.Notifications.NotificationsSlack.settingupslack": "Impostazione delle notifiche di Slack",
@ -410,13 +410,13 @@
"components.Settings.Notifications.NotificationsSlack.agentenabled": "Abilita Agente",
"components.Settings.Notifications.validationChatIdRequired": "Devi fornire un ID discussione",
"components.Settings.Notifications.validationBotAPIRequired": "Devi fornire una chiave API bot",
"components.Settings.Notifications.telegramsettingssaved": "Impostazioni di Telegram salvate!",
"components.Settings.Notifications.telegramsettingssaved": "Impostazioni di Telegram salvate con successo!",
"components.Settings.Notifications.telegramsettingsfailed": "Impossibile salvare le impostazioni di Telegram.",
"components.Settings.Notifications.senderName": "Nome del mittente",
"components.Settings.Notifications.settinguptelegramDescription": "Per configurare le notifiche di Telegram, è necessario <CreateBotLink>creare un bot</CreateBotLink> e ottenere la chiave API. Inoltre, è necessario l'ID chat per la chat in cui si desidera che il bot invii notifiche. Puoi ottenerlo aggiungendo <GetIdBotLink>@get_id_bot</GetIdBotLink> alla chat o alla chat di gruppo.",
"components.Settings.Notifications.settinguptelegram": "Configurazione delle notifiche di Telegram",
"components.Settings.Notifications.chatId": "ID chat",
"components.Settings.Notifications.botAPI": "API bot",
"components.Settings.Notifications.botAPI": "Token di autenticazione bot",
"components.StatusChacker.reloadOverseerr": "Ricarica Overseerr",
"components.StatusChacker.newversionavailable": "Nuova versione disponibile",
"components.StatusChacker.newversionDescription": "È ora disponibile un aggiornamento. Fai clic sul pulsante in basso per ricaricare l'applicazione.",
@ -424,7 +424,7 @@
"components.Settings.Notifications.notificationtypes": "Tipi di notifica",
"components.Settings.Notifications.NotificationsSlack.notificationtypes": "Tipi di notifica",
"components.NotificationTypeSelector.mediarequestedDescription": "Invia una notifica quando un nuovo media viene richiesto. Per alcuni agenti, la notifica verrà inviata solo agli amministratori o agli utenti con l'autorizzazione «Gestione richieste».",
"components.NotificationTypeSelector.mediarequested": "Media richiesto",
"components.NotificationTypeSelector.mediarequested": "Media Richiesto",
"components.NotificationTypeSelector.mediafailedDescription": "Invia una notifica quando il media non viene aggiunto a Radarr o Sonarr.",
"components.NotificationTypeSelector.mediafailed": "Aggiunta media non riuscita",
"components.NotificationTypeSelector.mediaavailableDescription": "Invia una notifica quando il media diventa disponibile.",
@ -433,19 +433,19 @@
"components.NotificationTypeSelector.mediaavailable": "Media disponibile",
"i18n.request": "Richiedi",
"components.Settings.Notifications.NotificationsPushover.test": "Test",
"components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "È necessario fornire un token utente",
"components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "È necessario fornire un token di accesso",
"components.Settings.Notifications.NotificationsPushover.userToken": "Token utente",
"components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "È necessario fornire una chiave utente valida",
"components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "È necessario fornire un token di applicazione valido",
"components.Settings.Notifications.NotificationsPushover.userToken": "Chiave utente",
"components.Settings.Notifications.NotificationsPushover.testsent": "Notifica di prova inviata!",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Per configurare Pushover è necessario <RegisterApplicationLink>registrare un'applicazione</RegisterApplicationLink> e ottenere il token di accesso. Quando si configura l'applicazione, è possibile utilizzare una delle icone nella <IconLink>cartella pubblica</IconLink> su GitHub. È inoltre necessario il token utente, che può essere trovato nella pagina iniziale di Pushover quando si accede.",
"components.Settings.Notifications.NotificationsPushover.settinguppushover": "Impostazione delle notifiche di Pushover",
"components.Settings.Notifications.NotificationsPushover.saving": "Salvataggio…",
"components.Settings.Notifications.NotificationsPushover.save": "Salva le modifiche",
"components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Impostazioni di Pushover salvate!",
"components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Impostazioni di Pushover salvate con successo!",
"components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Impossibile salvare le impostazioni di Pushover.",
"components.Settings.Notifications.NotificationsPushover.notificationtypes": "Tipi di notifica",
"components.Settings.Notifications.NotificationsPushover.agentenabled": "Abilita Agente",
"components.Settings.Notifications.NotificationsPushover.accessToken": "Token di accesso",
"components.Settings.Notifications.NotificationsPushover.accessToken": "Token di API/applicazione",
"components.RequestList.sortModified": "Ultima modifica",
"components.RequestList.sortAdded": "Data della richiesta",
"components.RequestList.showallrequests": "Mostra tutte le richieste",
@ -515,17 +515,17 @@
"components.UserEdit.advancedrequest": "Richieste avanzate",
"components.StatusBadge.status4k": "4K {status}",
"components.Settings.hideAvailable": "Nascondi i media disponibili",
"components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Impostazioni di Webhook salvate!",
"components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Impostazioni di Webhook salvate con successo!",
"components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Impossibile salvare le impostazioni di Webhook.",
"components.Settings.Notifications.NotificationsWebhook.webhookUrlPlaceholder": "URL del webhook remoto",
"components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL del webhook",
"components.Settings.Notifications.NotificationsWebhook.validationWebhookUrlRequired": "Devi fornire un URL webhook.",
"components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "È necessario fornire un payload JSON",
"components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "È necessario fornire un payload JSON valido",
"components.Settings.Notifications.NotificationsWebhook.test": "Test",
"components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "Payload JSON reimpostato correttamente.",
"components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "Payload JSON reimpostato correttamente!",
"components.Settings.Notifications.NotificationsWebhook.resetPayload": "Ripristino delle impostazioni predefinite",
"components.Settings.Notifications.NotificationsWebhook.notificationtypes": "Tipi di notifica",
"components.Settings.Notifications.NotificationsWebhook.customJson": "Payload JSON personalizzato",
"components.Settings.Notifications.NotificationsWebhook.customJson": "Payload JSON",
"components.RequestModal.requestedited": "Richiesta modificata.",
"components.RequestModal.requestcancelled": "Richiesta annullata.",
"components.RequestModal.request4kfrom": "Al momento è presente una richiesta 4K in sospeso da {username}.",
@ -552,7 +552,7 @@
"components.PermissionEdit.settings": "Gestisci le impostazioni",
"components.PermissionEdit.request4kTv": "Richiedi serie in 4K",
"components.PermissionEdit.request4kMovies": "Rechiedi film in 4K",
"components.PermissionEdit.managerequests": "Gestisci le richieste",
"components.PermissionEdit.managerequests": "Gestisci Richieste",
"components.PermissionEdit.autoapproveSeries": "Approva Automaticamente le Serie",
"components.PermissionEdit.autoapproveMovies": "Approva Automaticamente i Film",
"components.PermissionEdit.autoapprove": "Approvazione automatica",
@ -739,7 +739,7 @@
"components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Impostazioni Notifiche",
"components.UserProfile.UserSettings.UserNotificationSettings.localuser": "Utente Locale",
"components.UserProfile.UserSettings.UserNotificationSettings.enableNotifications": "Abilita Notifiche",
"components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Il <FindDiscordIdLink> numero ID </FindDiscordIdLink> per il tuo account Discord",
"components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "<FindDiscordIdLink>ID utente</FindDiscordIdLink> del tuo account Discord",
"components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID Discord",
"components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Impostazioni salvate correttamente!",
"components.Settings.Notifications.NotificationsPushbullet.saving": "Salvataggio…",
@ -764,10 +764,10 @@
"components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "È necessario fornire un token di accesso",
"components.Settings.Notifications.NotificationsPushbullet.testSent": "Notifica di prova inviata!",
"components.Settings.Notifications.NotificationsPushbullet.test": "Test",
"components.Settings.Notifications.NotificationsPushbullet.settingUpPushbulletDescription": "Per configurare le notifiche di Pushbullet, è necessario creare un <CreateAccessTokenLink>token di accesso</CreateAccessTokenLink> e immetterlo di seguito.",
"components.Settings.Notifications.NotificationsPushbullet.settingUpPushbulletDescription": "Per configurare le notifiche di Pushbullet, sarà necessario creare un <CreateAccessTokenLink>token di accesso</CreateAccessTokenLink> e immetterlo di seguito.",
"components.Settings.Notifications.NotificationsPushbullet.settingUpPushbullet": "Configurazione delle notifiche di Pushover",
"components.Settings.Notifications.NotificationsPushbullet.save": "Salva le modifiche",
"components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Impostazioni di Pushover salvate!",
"components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Impostazioni di Pushover salvate correttamente!",
"components.Layout.UserDropdown.settings": "Impostazioni",
"components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Impossibile salvare le impostazioni di Pushbullet.",
"components.Settings.Notifications.NotificationsPushbullet.notificationTypes": "Tipi di Notifica",
@ -817,10 +817,15 @@
"components.Settings.originallanguage": "Lingua da scoprire",
"components.Settings.email": "E-mail",
"components.Settings.Notifications.emailNotificationTypesAlert": "Destinatari delle notifiche via posta elettronica",
"components.RegionSelector.regionDefault": "Tutto",
"components.RegionSelector.regionDefault": "Tutte le regioni",
"components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtra contenuto per area (si applica solo alle categorie «Popolare» e «In uscita»)",
"components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtra il contenuto in base alla lingua originale (si applica solo alle categorie «Popolare» e «In uscita»)",
"components.Settings.regionTip": "Filtra contenuto per regione (si applica solo alle categorie «Popolare» e «In uscita»)",
"components.Settings.originallanguageTip": "Filtra il contenuto in base alla lingua originale (si applica solo alle categorie «Popolare» e «In uscita»)",
"components.Discover.upcomingtv": "Serie in uscita"
"components.Discover.upcomingtv": "Serie in uscita",
"components.UserProfile.UserSettings.UserGeneralSettings.originalLanguageDefault": "Tutte le lingue",
"components.Settings.originalLanguageDefault": "Tutte le lingue",
"components.Settings.Notifications.emailNotificationTypesAlertDescription": "Le notifiche «Media richiesto» e «Aggiunta media non riuscita» saranno inviate solo agli utenti con il permesso «Gestisci richieste».",
"components.UserProfile.UserSettings.UserGeneralSettings.languageServerDefault": "Predefinito ({language})",
"components.RegionSelector.regionServerDefault": "Predefinito ({region})"
}

@ -390,7 +390,7 @@
"components.Settings.SettingsAbout.Releases.viewchangelog": "Changelog bekijken",
"components.Settings.SettingsAbout.Releases.runningDevelopMessage": "De wijzigingen in je versie zijn hieronder niet beschikbaar. Bekijk de <GithubLink>GitHub repository</GithubLink> voor de laatste updates.",
"components.Settings.SettingsAbout.Releases.runningDevelop": "Je gebruikt een ontwikkelversie van Overseerr!",
"components.Settings.Notifications.validationChatIdRequired": "Je moet een geldige chat-ID opgeven",
"components.Settings.Notifications.validationChatIdRequired": "Je moet een chat-ID opgeven",
"components.Settings.Notifications.validationBotAPIRequired": "Je moet een bot-verificatietoken opgeven",
"components.Settings.Notifications.telegramsettingssaved": "Instellingen Telegrammeldingen met succes opgeslagen!",
"components.Settings.Notifications.telegramsettingsfailed": "De instellingen voor Telegrammeldingen konden niet opgeslagen worden.",
@ -450,7 +450,7 @@
"components.Settings.Notifications.NotificationsPushover.userToken": "Gebruikerssleutel",
"components.Settings.Notifications.NotificationsPushover.testsent": "Testmelding verzonden!",
"components.Settings.Notifications.NotificationsPushover.test": "Test",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Om Pushover in te stellen, moet je <RegisterApplicationLink>een applicatie registreren</RegisterApplicationLink> en de API-sleutel hieronder invoeren. (Je kunt een van onze <IconLink>officiële pictogrammen op GitHub</IconLink> gebruiken.) Je hebt ook je gebruikerssleutel nodig.",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Om Pushover in te stellen, moet je <RegisterApplicationLink>een applicatie registreren</RegisterApplicationLink> en de API-token hieronder invoeren. (Je kunt een van onze <IconLink>officiële pictogrammen op GitHub</IconLink> gebruiken.) Je hebt ook je gebruikerssleutel nodig.",
"components.Settings.Notifications.NotificationsPushover.settinguppushover": "Pushover-meldingen instellen",
"i18n.request": "Aanvragen",
"components.RequestButton.requestmore4k": "Meer 4K aanvragen",

@ -398,13 +398,13 @@
"components.UserEdit.autoapproveMovies": "Aprovar Filmes Automaticamente",
"components.TvDetails.watchtrailer": "Assisitir Trailer",
"components.TvDetails.firstAirDate": "Primeira Exibição",
"components.Settings.Notifications.validationChatIdRequired": "Você deve prover um ID válido de Chat",
"components.Settings.Notifications.validationChatIdRequired": "Você deve prover um ID de Chat",
"components.Settings.Notifications.validationBotAPIRequired": "Você deve prover uma chave de autenticação do Bot",
"components.Settings.Notifications.senderName": "Nome do Remetente",
"components.Settings.Notifications.telegramsettingssaved": "Configurações de notificação via Telegram salvas com sucesso!",
"components.Settings.Notifications.telegramsettingsfailed": "Falha ao salvar configurações de notificação via Telegram.",
"components.Settings.Notifications.ssldisabletip": "SSL deve ser desabilitado em conexões TLS padrão (porta 587)",
"components.Settings.Notifications.settinguptelegramDescription": "Para configurar notificações via Telegram, você precisa <CreateBotLink>criar um bot</CreateBotLink> e obter a chave de API do mesmo. Além disso, você irá precisar do ID de Chat de onde você deseja que o bot envie as notificações. Você pode obter o ID de Chat adicionando <GetIdBotLink>@get_id_bot</GetIdBotLink> ao chat ou grupo ao qual você deseja obter o ID.",
"components.Settings.Notifications.settinguptelegramDescription": "Para configurar notificações via Telegram, você precisa <CreateBotLink>criar um bot</CreateBotLink> e obter a chave de API do mesmo. Além disso, você irá precisar do ID de Chat de onde você deseja que o bot envie as notificações. Você pode obter o ID de Chat adicionando <GetIdBotLink>@get_id_bot</GetIdBotLink> ao chat ou grupo ao qual você deseja obter o ID.",
"components.Settings.Notifications.settinguptelegram": "Configurando Notificações Via Telegram",
"components.Settings.Notifications.chatId": "ID de Chat",
"components.Settings.Notifications.botAPI": "Token de Autenticação do Bot",
@ -437,7 +437,7 @@
"components.Settings.Notifications.NotificationsPushover.userToken": "Chave do Usuário",
"components.Settings.Notifications.NotificationsPushover.testsent": "Notificação de teste enviada!",
"components.Settings.Notifications.NotificationsPushover.test": "Testar",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Para configurar notificações via Pushover, você precisa <RegisterApplicationLink>registrar um aplicativo</RegisterApplicationLink> e obter a chave de acesso. Quando estiver configurando o aplicativo, você pode usar um dos ícones no <IconLink>diretório público</IconLink> do GitHub. Você também precisa da chave de acesso que pode ser encontrada na página inicial do usuário Pushover.",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Para configurar notificações via Pushover, você precisa <RegisterApplicationLink>registrar um aplicativo</RegisterApplicationLink> e inserir a chave de API abaixo. (Você pode user um de nossos <IconLink>ícones oficiais</IconLink>.) Você precisará também sua chave de usuário.",
"components.Settings.Notifications.NotificationsPushover.settinguppushover": "Configurando Notificações Via Pushover",
"components.Settings.Notifications.NotificationsPushover.saving": "Salvando…",
"components.Settings.Notifications.NotificationsPushover.save": "Salvar Mudanças",
@ -830,13 +830,22 @@
"components.CollectionDetails.requestswillbecreated4k": "Serão feitas solicitações em 4K dos seguintes títulos:",
"components.CollectionDetails.requestcollection4k": "Solicitar Coleção em 4K",
"components.CollectionDetails.request4k": "Solicitar 4K",
"components.UserProfile.UserSettings.UserGeneralSettings.region": "País de Exploração",
"components.UserProfile.UserSettings.UserGeneralSettings.region": "Região de Exploração",
"components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de Exploração",
"components.Settings.webhook": "Webhook",
"components.Settings.region": "País de Exploração",
"components.Settings.region": "Região de Exploração",
"components.Settings.originallanguage": "Idioma de Exploração",
"components.Settings.email": "E-mail",
"components.Settings.Notifications.emailNotificationTypesAlert": "E-mail de Destinatários",
"components.RegionSelector.regionDefault": "Todas",
"components.Discover.upcomingtv": "Séries Em Breve"
"components.RegionSelector.regionDefault": "Todas Regiões",
"components.Discover.upcomingtv": "Séries Em Breve",
"components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtra conteúdo por região (se aplica apenas às categorias \"Popular\" e \"Em Breve\")",
"components.Settings.regionTip": "Filtra conteúdo por região (se aplica apenas às categorias \"Popular\" e \"Em Breve\")",
"components.Settings.Notifications.emailNotificationTypesAlertDescription": "Para notificações do tipo \"Mídia Solicitada\" e \"Solicitação Falhou\", as notificações serão enviadas apenas para usuários com permissão de \"Gerenciar Solicitações\".",
"components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtra conteúdo pela língua original (se aplica apenas às categorias \"Popular\" e \"Em Breve\")",
"components.UserProfile.UserSettings.UserGeneralSettings.originalLanguageDefault": "Todos Idiomas",
"components.Settings.originallanguageTip": "Filtra conteúdo pela língua original (se aplica apenas às categorias \"Popular\" e \"Em Breve\")",
"components.Settings.originalLanguageDefault": "Todos Idiomas",
"components.RegionSelector.regionServerDefault": "Padrão ({region})",
"components.UserProfile.UserSettings.UserGeneralSettings.languageServerDefault": "Padrão ({language})"
}

@ -35,7 +35,7 @@
"components.Settings.Notifications.validationSmtpPortRequired": "Você deve fornecer a porta SMTP",
"components.Settings.Notifications.validationSmtpHostRequired": "Você deve fornecer um servidor SMTP",
"components.Settings.Notifications.validationFromRequired": "Você deve fornecer um endereço do remetente",
"components.Settings.Notifications.validationChatIdRequired": "Você deve fornecer um ID de chat válido",
"components.Settings.Notifications.validationChatIdRequired": "Você deve fornecer um ID de chat",
"components.Settings.Notifications.validationBotAPIRequired": "Você deve fornecer um token de autenticação de bot",
"components.Settings.Notifications.telegramsettingssaved": "Configurações de notificação Telegram salvas com sucesso!",
"components.Settings.Notifications.telegramsettingsfailed": "Falhou o salvar das configurações de notificação Telegram.",
@ -85,7 +85,7 @@
"components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Configurações de notificação Slack salvas com sucesso!",
"components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Falhou o salvar das configurações de notificação do Slack.",
"components.Settings.Notifications.NotificationsSlack.settingupslackDescription": "Para configurar notificações Slack, você precisará criar uma integração <WebhookLink>Webhook de entrada</WebhookLink> insire o URL do webhook fornecido abaixo.",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Para configurar notificações Pushover, você precisará <RegisterApplicationLink>registrar uma aplicação</RegisterApplicationLink> e inserir a chave API abaixo. (Você pode utilizar um dos nossos <IconLink>ícones oficiais no GitHub</IconLink>.) Você também precisará da sua chave de utilizador.",
"components.Settings.Notifications.NotificationsPushover.settinguppushoverDescription": "Para configurar notificações Pushover, você precisará <RegisterApplicationLink>registrar uma aplicação</RegisterApplicationLink> e inserir o token do API abaixo. (Você pode utilizar um dos nossos <IconLink>ícones oficiais no GitHub</IconLink>.) Você também precisará da sua chave de utilizador.",
"components.Settings.Notifications.NotificationsPushover.settinguppushover": "Configurando Notificações Pushover",
"components.Settings.Notifications.NotificationsSlack.settingupslack": "Configurando Notificações Slack",
"components.Settings.save": "Salvar Mudanças",
@ -824,5 +824,7 @@
"components.Settings.Notifications.emailNotificationTypesAlertDescription": "Para os tipos de notificação \"Mídia Solicitada\" e \"Mídia Falhou\", as notificações serão enviadas apenas para utilizadores com a permissão \"Gerir Solicitações\".",
"components.Settings.Notifications.emailNotificationTypesAlert": "Destinatários de E-Mail de Notificação",
"components.UserProfile.UserSettings.UserGeneralSettings.originalLanguageDefault": "Todas as Idiomas",
"components.Settings.originalLanguageDefault": "Todas as Idiomas"
"components.Settings.originalLanguageDefault": "Todas as Idiomas",
"components.UserProfile.UserSettings.UserGeneralSettings.languageServerDefault": "Padrão ({language})",
"components.RegionSelector.regionServerDefault": "Padrão ({region})"
}

@ -30,7 +30,7 @@
"components.UserList.username": "Korisničko Ime",
"components.UserList.userlist": "Lista Korisnika",
"components.UserList.userdeleteerror": "Neuspešno brisanje korisnika",
"components.UserList.userdeleted": "Korisnik izbrisan",
"components.UserList.userdeleted": "Korisnik izbrisan.",
"components.UserList.user": "Korisnik",
"components.UserList.totalrequests": "Ukupno Zahteva",
"components.UserList.role": "Uloga",
@ -76,7 +76,7 @@
"components.TvDetails.recommendationssubtext": "Ako vam se svidja {title}, možda vam se svidi…",
"components.TvDetails.recommendations": "Preporuke",
"components.TvDetails.pending": "Na čekanju",
"components.TvDetails.overviewunavailable": "Pregled nije dostupan",
"components.TvDetails.overviewunavailable": "Pregled nije dostupan.",
"components.TvDetails.overview": "Pregled",
"components.TvDetails.originallanguage": "Originalni Jezik",
"components.TvDetails.network": "Mreža",
@ -94,7 +94,7 @@
"components.TvDetails.TvCast.fullseriescast": "Ceo Repertoar Serije",
"components.TitleCard.tvshow": "Serija",
"components.TitleCard.movie": "Film",
"components.Slider.noresults": "Nema Rezultata",
"components.Slider.noresults": "Nema rezultata.",
"components.Setup.welcome": "Dobrodošli u Overseerr",
"components.Setup.tip": "Savet",
"components.Setup.syncingbackground": "Sinhronizacija će raditi u pozadini. Možete da nastavite podešavanja u toku rada.",
@ -155,7 +155,7 @@
"components.Settings.default4k": "Defaultno 4K",
"components.Settings.default": "Defaultno",
"components.Settings.currentlibrary": "Trenutna Biblioteka: {name}",
"components.Settings.copied": "Kopiran API ključ",
"components.Settings.copied": "Kopiran API ključ.",
"components.Settings.cancelscan": "Otkaži skeniranje",
"components.Settings.applicationurl": "URL Aplikacije",
"components.Settings.apikey": "API Ključ",
@ -206,7 +206,7 @@
"components.Settings.SettingsAbout.overseerrinformation": "Overseerr Informacije",
"components.Settings.SettingsAbout.githubdiscussions": "GitHub rasprave",
"components.Settings.SettingsAbout.gettingsupport": "Pomoć",
"components.Settings.SettingsAbout.clickheretojoindiscord": "Kliknite ovde da se učlanite u naš Discord server.",
"components.Settings.SettingsAbout.clickheretojoindiscord": "Kliknite ovde da se učlanite u naš Discord server!",
"components.Settings.RadarrModal.validationRootFolderRequired": "Morate odabrati root folder",
"components.Settings.RadarrModal.validationProfileRequired": "Morate odabrati profil",
"components.Settings.RadarrModal.validationPortRequired": "Morate dodati port",
@ -274,7 +274,7 @@
"components.RequestModal.requestfrom": "Trenutno postoji zahtev na čekanju od {username}",
"components.RequestModal.requestadmin": "Vaš zahtev će odmah biti prihvaćen.",
"components.RequestModal.requestSuccess": "poslat zahtev za <strong>{title}</strong> .",
"components.RequestModal.requestCancel": "Zahtev za <strong>{title}</strong> otkazan",
"components.RequestModal.requestCancel": "Zahtev za <strong>{title}</strong> otkazan.",
"components.RequestModal.request": "Zahtev",
"components.RequestModal.pendingrequest": "Zahtev za {title} na čekanju",
"components.RequestModal.numberofepisodes": "Broj Epizoda",
@ -317,7 +317,7 @@
"components.MovieDetails.recommendationssubtext": "Ako vam se svidja {title}, možda vam se dopadne…",
"components.MovieDetails.recommendations": "Predlozi",
"components.MovieDetails.pending": "Na čekanju",
"components.MovieDetails.overviewunavailable": "Pregled nije dostupan",
"components.MovieDetails.overviewunavailable": "Pregled nije dostupan.",
"components.MovieDetails.overview": "Pregled",
"components.MovieDetails.originallanguage": "Originalni Jezik",
"components.MovieDetails.manageModalTitle": "Upravljaj Filmom",

@ -449,7 +449,7 @@
"components.Settings.RadarrModal.validationNameRequired": "必須輸入伺服器名稱",
"components.Settings.RadarrModal.validationHostnameRequired": "必須輸入主機名稱或 IP 位址",
"components.Settings.RadarrModal.validationApiKeyRequired": "必須輸入應用程式密鑰",
"components.Settings.Notifications.validationChatIdRequired": "必須輸入有效 Chat ID",
"components.Settings.Notifications.validationChatIdRequired": "必須輸入 Chat ID",
"components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "必須輸入有效的 JSON 有效負載",
"components.Settings.Notifications.NotificationsWebhook.authheader": "Authorization 頭欄位",
"components.Settings.RadarrModal.minimumAvailability": "最低狀態",
@ -807,5 +807,8 @@
"components.Settings.SettingsJobsCache.jobsDescription": "Overseerr 將定時運行以下的維護任務。手動執行工作不會影響它正常的時間表。",
"components.Settings.plexsettingsDescription": "關於 Plex 伺服器的設置。Overseerr 將定時執行媒體庫掃描。",
"components.UserProfile.UserSettings.UserGeneralSettings.originalLanguageDefault": "所有語言",
"components.Settings.originalLanguageDefault": "所有語言"
"components.Settings.originalLanguageDefault": "所有語言",
"components.Settings.manualscanDescription": "在正常情況下Overseerr 會每24小時掃描您的 Plex 媒體庫。最近添加的媒體將更頻繁掃描。設置新的 Plex 伺服器時,我們建議您執行一次手動掃描!",
"components.UserProfile.UserSettings.UserGeneralSettings.languageServerDefault": "默認({language}",
"components.RegionSelector.regionServerDefault": "默認({region}"
}

@ -145,6 +145,7 @@ CoreApp.getInitialProps = async (initialProps) => {
series4kEnabled: false,
localLogin: true,
region: '',
originalLanguage: '',
};
let locale = 'en';

@ -2025,6 +2025,11 @@
dependencies:
"@types/express" "*"
"@types/country-flag-icons@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@types/country-flag-icons/-/country-flag-icons-1.2.0.tgz#5d13276405a5701ca29bbd7f1026f45c0d2962be"
integrity sha512-96aveJfAw9iSfBxAD8DCgFYjMFmLIGa+vBvg3cKiHjX+o4Szz5HHv2DSbEVm9a4kLixsYkioGB4SnJs17Zypzw==
"@types/csurf@^1.11.0":
version "1.11.0"
resolved "https://registry.yarnpkg.com/@types/csurf/-/csurf-1.11.0.tgz#2809e89f55f12a2df8cd2826c06dfd66600dd14d"
@ -4593,10 +4598,10 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
country-code-emoji@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/country-code-emoji/-/country-code-emoji-2.2.0.tgz#afc99b8bbaff9cb038e370dc46faabbd7af48f64"
integrity sha512-iK7tw8pRbFIad7a3UDbx13SJpZj4ZReozc6oW6K6Wu4sAphQkJVxK8qfaPjFIXp22RoP/238WEDrKpIWxxI9CQ==
country-flag-icons@^1.2.9:
version "1.2.9"
resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.2.9.tgz#cee7d150b23d3532adcc1e22c2ebb59962e04633"
integrity sha512-qn1cKt9PJrghEb1IbyIIqHcvNLPJ8mul0lbz6lFSBmzbGqYC38PJ4wPSIT0gV/iB/DbPylHE04zJNedrj1BXvA==
country-language@^0.1.7:
version "0.1.7"

Loading…
Cancel
Save