From 77b8b59734b532dd61ade9d3d561ca5c071be920 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Thu, 5 Feb 2026 12:17:38 +0530 Subject: [PATCH 001/285] fix: stream addon selection logic with fallback for non-standard types --- src/hooks/useMetadata.ts | 163 +++++++++++++------------ src/navigation/AppNavigator.tsx | 1 - src/services/stremioService.ts | 206 +++++++++++++++++++++++--------- 3 files changed, 237 insertions(+), 133 deletions(-) diff --git a/src/hooks/useMetadata.ts b/src/hooks/useMetadata.ts index b0d1b5c6..48cbdd72 100644 --- a/src/hooks/useMetadata.ts +++ b/src/hooks/useMetadata.ts @@ -1486,10 +1486,10 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat setActiveFetchingScrapers([]); setAddonResponseOrder([]); // Reset response order - // Get TMDB ID for external sources and determine the correct ID for Stremio addons if (__DEV__) console.log('🔍 [loadStreams] Getting TMDB ID for:', id); let tmdbId; - let stremioId = id; // Default to original ID + let stremioId = id; + let effectiveStreamType: string = type; if (id.startsWith('tmdb:')) { tmdbId = id.split(':')[1]; @@ -1544,56 +1544,66 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat const allStremioAddons = await stremioService.getInstalledAddons(); const localScrapers = await localScraperService.getInstalledScrapers(); - // Map app-level "tv" type to Stremio "series" for addon capability checks - const stremioType = type === 'tv' ? 'series' : type; + const requestedStreamType = type; - // Filter Stremio addons to only include those that provide streams for this content type - const streamAddons = allStremioAddons.filter(addon => { - if (!addon.resources || !Array.isArray(addon.resources)) { - return false; - } + const pickEligibleStreamAddons = (requestType: string) => + allStremioAddons.filter(addon => { + if (!addon.resources || !Array.isArray(addon.resources)) { + return false; + } - let hasStreamResource = false; - let supportsIdPrefix = false; + let hasStreamResource = false; + let supportsIdPrefix = false; - for (const resource of addon.resources) { - // Check if the current element is a ResourceObject - if (typeof resource === 'object' && resource !== null && 'name' in resource) { - const typedResource = resource as any; - if (typedResource.name === 'stream' && - Array.isArray(typedResource.types) && - typedResource.types.includes(stremioType)) { - hasStreamResource = true; + for (const resource of addon.resources) { + if (typeof resource === 'object' && resource !== null && 'name' in resource) { + const typedResource = resource as any; + if (typedResource.name === 'stream' && + Array.isArray(typedResource.types) && + typedResource.types.includes(requestType)) { + hasStreamResource = true; - // Check if this addon supports the ID prefix generically: any prefix must match start of id - if (Array.isArray(typedResource.idPrefixes) && typedResource.idPrefixes.length > 0) { - supportsIdPrefix = typedResource.idPrefixes.some((p: string) => id.startsWith(p)); - } else { - // If no idPrefixes specified, assume it supports all prefixes - supportsIdPrefix = true; + if (Array.isArray(typedResource.idPrefixes) && typedResource.idPrefixes.length > 0) { + supportsIdPrefix = typedResource.idPrefixes.some((p: string) => stremioId.startsWith(p)); + } else { + supportsIdPrefix = true; + } + break; + } + } else if (typeof resource === 'string' && resource === 'stream' && addon.types) { + if (Array.isArray(addon.types) && addon.types.includes(requestType)) { + hasStreamResource = true; + if (addon.idPrefixes && Array.isArray(addon.idPrefixes) && addon.idPrefixes.length > 0) { + supportsIdPrefix = addon.idPrefixes.some((p: string) => stremioId.startsWith(p)); + } else { + supportsIdPrefix = true; + } + break; } - break; } } - // Check if the element is the simple string "stream" AND the addon has a top-level types array - else if (typeof resource === 'string' && resource === 'stream' && addon.types) { - if (Array.isArray(addon.types) && addon.types.includes(stremioType)) { - hasStreamResource = true; - // For simple string resources, check addon-level idPrefixes generically - if (addon.idPrefixes && Array.isArray(addon.idPrefixes) && addon.idPrefixes.length > 0) { - supportsIdPrefix = addon.idPrefixes.some((p: string) => id.startsWith(p)); - } else { - // If no idPrefixes specified, assume it supports all prefixes - supportsIdPrefix = true; - } - break; - } + + return hasStreamResource && supportsIdPrefix; + }); + + effectiveStreamType = requestedStreamType; + let eligibleStreamAddons = pickEligibleStreamAddons(requestedStreamType); + + if (eligibleStreamAddons.length === 0) { + const fallbackTypes = ['series', 'movie'].filter(t => t !== requestedStreamType); + for (const fallbackType of fallbackTypes) { + const fallback = pickEligibleStreamAddons(fallbackType); + if (fallback.length > 0) { + effectiveStreamType = fallbackType; + eligibleStreamAddons = fallback; + if (__DEV__) console.log(`[useMetadata.loadStreams] No addons for '${requestedStreamType}', falling back to '${fallbackType}'`); + break; } } + } - return hasStreamResource && supportsIdPrefix; - }); - if (__DEV__) console.log('[useMetadata.loadStreams] Eligible stream addons:', streamAddons.map(a => a.id)); + const streamAddons = eligibleStreamAddons; + if (__DEV__) console.log('[useMetadata.loadStreams] Eligible stream addons:', streamAddons.map(a => a.id), { requestedStreamType, effectiveStreamType }); // Initialize scraper statuses for tracking const initialStatuses: ScraperStatus[] = []; @@ -1645,9 +1655,9 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // Start Stremio request using the converted ID format if (__DEV__) console.log('🎬 [loadStreams] Using ID for Stremio addons:', stremioId); - // Map app-level "tv" type to Stremio "series" when requesting streams - const stremioContentType = type === 'tv' ? 'series' : type; - processStremioSource(stremioContentType, stremioId, false); + // Use the effective type we selected when building the eligible addon list. + // This stays aligned with Stremio manifest filtering rules and avoids hard-mapping non-standard types. + processStremioSource(effectiveStreamType, stremioId, false); // Also extract any embedded streams from metadata (PPV-style addons) extractEmbeddedStreams(); @@ -1707,36 +1717,41 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat const allStremioAddons = await stremioService.getInstalledAddons(); const localScrapers = await localScraperService.getInstalledScrapers(); - // Filter Stremio addons to only include those that provide streams for series content - const streamAddons = allStremioAddons.filter(addon => { - if (!addon.resources || !Array.isArray(addon.resources)) { + // We don't yet know the final episode ID format here (it can be normalized later), + // but we can still pre-filter by stream capability for the most likely types. + const pickStreamCapableAddons = (requestType: string) => + allStremioAddons.filter(addon => { + if (!addon.resources || !Array.isArray(addon.resources)) return false; + + for (const resource of addon.resources) { + if (typeof resource === 'object' && resource !== null && 'name' in resource) { + const typedResource = resource as any; + if (typedResource.name === 'stream' && Array.isArray(typedResource.types) && typedResource.types.includes(requestType)) { + return true; + } + } else if (typeof resource === 'string' && resource === 'stream' && addon.types) { + if (Array.isArray(addon.types) && addon.types.includes(requestType)) { + return true; + } + } + } return false; - } + }); - let hasStreamResource = false; - - for (const resource of addon.resources) { - // Check if the current element is a ResourceObject - if (typeof resource === 'object' && resource !== null && 'name' in resource) { - const typedResource = resource as any; - if (typedResource.name === 'stream' && - Array.isArray(typedResource.types) && - typedResource.types.includes('series')) { - hasStreamResource = true; - break; - } - } - // Check if the element is the simple string "stream" AND the addon has a top-level types array - else if (typeof resource === 'string' && resource === 'stream' && addon.types) { - if (Array.isArray(addon.types) && addon.types.includes('series')) { - hasStreamResource = true; - break; - } + const requestedEpisodeType = type; + let streamAddons = pickStreamCapableAddons(requestedEpisodeType); + + if (streamAddons.length === 0) { + const fallbackTypes = ['series', 'movie'].filter(t => t !== requestedEpisodeType); + for (const fallbackType of fallbackTypes) { + const fallback = pickStreamCapableAddons(fallbackType); + if (fallback.length > 0) { + streamAddons = fallback; + if (__DEV__) console.log(`[useMetadata.loadEpisodeStreams] No addons for '${requestedEpisodeType}', falling back to '${fallbackType}'`); + break; } } - - return hasStreamResource; - }); + } // Initialize scraper statuses for tracking const initialStatuses: ScraperStatus[] = []; @@ -1923,10 +1938,8 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // Start Stremio request using the converted episode ID format if (__DEV__) console.log('🎬 [loadEpisodeStreams] Using episode ID for Stremio addons:', stremioEpisodeId); - // For collections, treat episodes as individual movies, not series - // For other types (e.g. StreamsPPV), preserve the original type unless it's explicitly 'series' logic we want - // Map app-level "tv" type to Stremio "series" for addon stream endpoint - const contentType = isCollection ? 'movie' : (type === 'tv' ? 'series' : type); + const requestedContentType = isCollection ? 'movie' : type; + const contentType = requestedContentType; if (__DEV__) console.log(`🎬 [loadEpisodeStreams] Using content type: ${contentType} for ${isCollection ? 'collection' : type}`); processStremioSource(contentType, stremioEpisodeId, true); diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index ec219b70..2d6017aa 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -1924,7 +1924,6 @@ const ConditionalPostHogProvider: React.FC<{ children: React.ReactNode }> = ({ c apiKey="phc_sk6THCtV3thEAn6cTaA9kL2cHuKDBnlYiSL40ywdS6C" options={{ host: "https://us.i.posthog.com", - autocapture: analyticsEnabled, // Start opted out if analytics is disabled defaultOptIn: analyticsEnabled, }} diff --git a/src/services/stremioService.ts b/src/services/stremioService.ts index e155ad26..ecebc623 100644 --- a/src/services/stremioService.ts +++ b/src/services/stremioService.ts @@ -1250,6 +1250,49 @@ class StremioService { const addons = this.getInstalledAddons(); + // Some addons use non-standard meta types (e.g. "anime") but expect streams under the "series" endpoint. + // We'll try the requested type first, then (if no addons match) fall back to "series". + const pickStreamAddons = (requestType: string) => + addons.filter(addon => { + if (!addon.resources || !Array.isArray(addon.resources)) { + logger.log(`⚠️ [getStreams] Addon ${addon.id} has no valid resources array`); + return false; + } + + let hasStreamResource = false; + let supportsIdPrefix = false; + + for (const resource of addon.resources) { + if (typeof resource === 'object' && resource !== null && 'name' in resource) { + const typedResource = resource as ResourceObject; + if (typedResource.name === 'stream' && + Array.isArray(typedResource.types) && + typedResource.types.includes(requestType)) { + hasStreamResource = true; + + if (Array.isArray(typedResource.idPrefixes) && typedResource.idPrefixes.length > 0) { + supportsIdPrefix = typedResource.idPrefixes.some(p => id.startsWith(p)); + } else { + supportsIdPrefix = true; + } + break; + } + } else if (typeof resource === 'string' && resource === 'stream' && addon.types) { + if (Array.isArray(addon.types) && addon.types.includes(requestType)) { + hasStreamResource = true; + if (addon.idPrefixes && Array.isArray(addon.idPrefixes) && addon.idPrefixes.length > 0) { + supportsIdPrefix = addon.idPrefixes.some(p => id.startsWith(p)); + } else { + supportsIdPrefix = true; + } + break; + } + } + } + + return hasStreamResource && supportsIdPrefix; + }); + // Check if local scrapers are enabled and execute them first try { // Load settings from AsyncStorage directly (scoped with fallback) @@ -1396,64 +1439,109 @@ class StremioService { // TMDB Embed addon not found } - // Find addons that provide streams and sort them by installation order - const streamAddons = addons - .filter(addon => { - if (!addon.resources || !Array.isArray(addon.resources)) { - logger.log(`⚠️ [getStreams] Addon ${addon.id} has no valid resources array`); - return false; + let effectiveType = type; + let streamAddons = pickStreamAddons(type); + + logger.log(`🧭 [getStreams] Resolving stream addons for type='${type}' id='${id}' (matched=${streamAddons.length})`); + + if (streamAddons.length === 0) { + const fallbackTypes = ['series', 'movie', 'tv', 'channel'].filter(t => t !== type); + for (const fallbackType of fallbackTypes) { + const fallbackAddons = pickStreamAddons(fallbackType); + if (fallbackAddons.length > 0) { + effectiveType = fallbackType; + streamAddons = fallbackAddons; + logger.log(`🔁 [getStreams] No stream addons for type '${type}', falling back to '${effectiveType}' for id '${id}'`); + break; } + } + } - let hasStreamResource = false; - let supportsIdPrefix = false; - - // Iterate through the resources array, checking each element - for (const resource of addon.resources) { - // Check if the current element is a ResourceObject - if (typeof resource === 'object' && resource !== null && 'name' in resource) { - const typedResource = resource as ResourceObject; - if (typedResource.name === 'stream' && - Array.isArray(typedResource.types) && - typedResource.types.includes(type)) { - hasStreamResource = true; - - // Check if this addon supports the ID prefix (generic: any prefix that matches start of id) - if (Array.isArray(typedResource.idPrefixes) && typedResource.idPrefixes.length > 0) { - supportsIdPrefix = typedResource.idPrefixes.some(p => id.startsWith(p)); - } else { - // If no idPrefixes specified, assume it supports all prefixes - supportsIdPrefix = true; - } - break; // Found the stream resource object, no need to check further - } - } - // Check if the element is the simple string "stream" AND the addon has a top-level types array - else if (typeof resource === 'string' && resource === 'stream' && addon.types) { - if (Array.isArray(addon.types) && addon.types.includes(type)) { - hasStreamResource = true; - // For simple string resources, check addon-level idPrefixes (generic) - if (addon.idPrefixes && Array.isArray(addon.idPrefixes) && addon.idPrefixes.length > 0) { - supportsIdPrefix = addon.idPrefixes.some(p => id.startsWith(p)); - } else { - // If no idPrefixes specified, assume it supports all prefixes - supportsIdPrefix = true; - } - break; // Found the simple stream resource string and type support - } - } - } - - const canHandleRequest = hasStreamResource && supportsIdPrefix; - - return canHandleRequest; - }); - - + if (effectiveType !== type) { + logger.log(`🧭 [getStreams] Using effectiveType='${effectiveType}' (requested='${type}') for id='${id}'`); + } if (streamAddons.length === 0) { logger.warn('⚠️ [getStreams] No addons found that can provide streams'); - // Optionally call callback with an empty result or specific status? - // For now, just return if no addons. + + // Log what the URL would have been for debugging + const encodedId = encodeURIComponent(id); + const exampleUrl = `/stream/${effectiveType}/${encodedId}.json`; + logger.log(`🚫 [getStreams] No stream addons matched. Would have requested: ${exampleUrl}`); + logger.log(`🚫 [getStreams] Details: requestedType='${type}' effectiveType='${effectiveType}' id='${id}'`); + + // Show which addons have stream capability but didn't match + const streamCapableAddons = addons.filter(addon => { + if (!addon.resources || !Array.isArray(addon.resources)) return false; + return addon.resources.some(resource => { + if (typeof resource === 'object' && resource !== null && 'name' in resource) { + return (resource as ResourceObject).name === 'stream'; + } + return typeof resource === 'string' && resource === 'stream'; + }); + }); + + if (streamCapableAddons.length > 0) { + logger.log(`🚫 [getStreams] Found ${streamCapableAddons.length} stream-capable addon(s) that didn't match:`); + + for (const addon of streamCapableAddons) { + const streamResources = addon.resources!.filter(resource => { + if (typeof resource === 'object' && resource !== null && 'name' in resource) { + return (resource as ResourceObject).name === 'stream'; + } + return typeof resource === 'string' && resource === 'stream'; + }); + + for (const resource of streamResources) { + if (typeof resource === 'object' && resource !== null) { + const typedResource = resource as ResourceObject; + const types = typedResource.types || []; + const prefixes = typedResource.idPrefixes || []; + const typeMatch = types.includes(effectiveType); + const prefixMatch = prefixes.length === 0 || prefixes.some(p => id.startsWith(p)); + + if (addon.url) { + const { baseUrl, queryParams } = this.getAddonBaseURL(addon.url); + const wouldBeUrl = queryParams + ? `${baseUrl}/stream/${effectiveType}/${encodedId}.json?${queryParams}` + : `${baseUrl}/stream/${effectiveType}/${encodedId}.json`; + + console.log( + ` ❌ ${addon.name} (${addon.id}):\n` + + ` types=[${types.join(',')}] typeMatch=${typeMatch}\n` + + ` prefixes=[${prefixes.join(',')}] prefixMatch=${prefixMatch}\n` + + ` url=${wouldBeUrl}` + ); + } else { + console.log(` ❌ ${addon.name} (${addon.id}): no URL configured`); + } + } else if (typeof resource === 'string' && resource === 'stream') { + // String resource - check addon-level types and prefixes + const addonTypes = addon.types || []; + const addonPrefixes = addon.idPrefixes || []; + const typeMatch = addonTypes.includes(effectiveType); + const prefixMatch = addonPrefixes.length === 0 || addonPrefixes.some(p => id.startsWith(p)); + + if (addon.url) { + const { baseUrl, queryParams } = this.getAddonBaseURL(addon.url); + const wouldBeUrl = queryParams + ? `${baseUrl}/stream/${effectiveType}/${encodedId}.json?${queryParams}` + : `${baseUrl}/stream/${effectiveType}/${encodedId}.json`; + + console.log( + ` ❌ ${addon.name} (${addon.id}) [addon-level]:\n` + + ` types=[${addonTypes.join(',')}] typeMatch=${typeMatch}\n` + + ` prefixes=[${addonPrefixes.join(',')}] prefixMatch=${prefixMatch}\n` + + ` url=${wouldBeUrl}` + ); + } + } + } + } + } else { + logger.log(`🚫 [getStreams] No stream-capable addons installed`); + } + return; } @@ -1470,9 +1558,11 @@ class StremioService { const { baseUrl, queryParams } = this.getAddonBaseURL(addon.url); const encodedId = encodeURIComponent(id); - const url = queryParams ? `${baseUrl}/stream/${type}/${encodedId}.json?${queryParams}` : `${baseUrl}/stream/${type}/${encodedId}.json`; + const url = queryParams ? `${baseUrl}/stream/${effectiveType}/${encodedId}.json?${queryParams}` : `${baseUrl}/stream/${effectiveType}/${encodedId}.json`; - logger.log(`🔗 [getStreams] Requesting streams from ${addon.name} (${addon.id}) [${addon.installationId}]: ${url}`); + logger.log( + `🔗 [getStreams] GET ${url} (addon='${addon.name}' id='${addon.id}' install='${addon.installationId}' requestedType='${type}' effectiveType='${effectiveType}' rawId='${id}')` + ); const response = await this.retryRequest(async () => { return await axios.get(url, safeAxiosConfig); @@ -1517,14 +1607,16 @@ class StremioService { const streamPath = `/stream/${type}/${encodedId}.json`; const url = queryParams ? `${baseUrl}${streamPath}?${queryParams}` : `${baseUrl}${streamPath}`; - logger.log(`Fetching streams from URL: ${url}`); + logger.log( + `🔗 [fetchStreamsFromAddon] GET ${url} (addon='${addon.name}' id='${addon.id}' install='${addon.installationId}' type='${type}' rawId='${id}')` + ); try { // Increase timeout for debrid services const timeout = addon.id.toLowerCase().includes('torrentio') ? 60000 : 10000; const response = await this.retryRequest(async () => { - logger.log(`Making request to ${url} with timeout ${timeout}ms`); + logger.log(`🌐 [fetchStreamsFromAddon] Requesting ${url} (timeout=${timeout}ms)`); return await axios.get(url, createSafeAxiosConfig(timeout, { headers: { 'Accept': 'application/json', From e25558733542ba12bced6d512692f6837f8304e0 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 14:16:14 +0100 Subject: [PATCH 002/285] Update sr.json Mistake fixed --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 4ca910dc..2bb219f0 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -634,6 +634,7 @@ "croatian": "Хрватски", "chinese": "Кинески (поједностављени)", "hindi": "Хинди", + "serbian": "Srpski", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1409,3 +1410,4 @@ } } } + From febab48943fbdf786f35d72ee2e7ef4b4eae1a7b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 14:28:36 +0100 Subject: [PATCH 003/285] Update sr.json Mistake fixed --- src/i18n/locales/sr.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 2bb219f0..c253c49b 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -97,12 +97,12 @@ "navigation": { "home": "Почетна", "library": "Библиотека", - "search": "Претражи", + "search": "Претрага", "downloads": "Преузимања", "settings": "Подешавања" }, "search": { - "title": "Претражи", + "title": "Претрага", "recent_searches": "Недавне претраге", "discover": "Откриј", "movies": "Филмови", @@ -634,7 +634,7 @@ "croatian": "Хрватски", "chinese": "Кинески (поједностављени)", "hindi": "Хинди", - "serbian": "Srpski", + "serbian": "Српски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1411,3 +1411,4 @@ } } + From e4fb45fab43a6d16e55e71d2cbbd79b6169e28bb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 15:14:21 +0100 Subject: [PATCH 004/285] Update sr.json --- src/i18n/locales/sr.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index c253c49b..e3994eab 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -47,7 +47,7 @@ "channels": "Канали" }, "movies": "Филмови", - "tv_shows": "ТВ серије", + "tv_shows": "Cерије", "load_more_catalogs": "Учитај више каталога", "no_content": "Садржај није доступан", "add_catalogs": "Додај каталоге", @@ -72,7 +72,7 @@ "episode": "Епизода {{episode}}", "movie": "Филм", "series": "Серија", - "tv_show": "ТВ серија", + "tv_show": "Cерија", "percent_watched": "{{percent}}% одгледано", "view_details": "Види детаље", "remove": "Уклони", @@ -106,7 +106,7 @@ "recent_searches": "Недавне претраге", "discover": "Откриј", "movies": "Филмови", - "tv_shows": "ТВ серије", + "tv_shows": "Cерије", "select_catalog": "Изабери каталог", "all_genres": "Сви жанрови", "discovering": "Откривање садржаја...", @@ -144,7 +144,7 @@ "empty_folder_desc": "Ова колекција је празна", "refresh": "Освежи", "no_movies": "Још нема филмова", - "no_series": "Још нема ТВ серија", + "no_series": "Још нема Cерија", "no_content": "Још нема садржаја", "add_content_desc": "Додајте садржај у своју библиотеку да бисте га видели овде", "find_something": "Пронађи нешто за гледање", @@ -344,7 +344,7 @@ "all": "Све", "failed_tmdb": "Неуспело учитавање садржаја са TMDB", "movies": "Филмови", - "tv_shows": "ТВ серије", + "tv_shows": "Cерије", "channels": "Канали" }, "streams": { From 31858088f5716633bfe962879048416ff64eb723 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 15:23:27 +0100 Subject: [PATCH 005/285] Update sr.json --- src/i18n/locales/sr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index e3994eab..fca5b35a 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -144,7 +144,7 @@ "empty_folder_desc": "Ова колекција је празна", "refresh": "Освежи", "no_movies": "Још нема филмова", - "no_series": "Још нема Cерија", + "no_series": "Још нема cерија", "no_content": "Још нема садржаја", "add_content_desc": "Додајте садржај у своју библиотеку да бисте га видели овде", "find_something": "Пронађи нешто за гледање", @@ -580,7 +580,7 @@ "production_info_desc": "Мреже и продукцијске куће са логотипима", "movie_details": "Детаљи о филму", "movie_details_desc": "Буџет, приход, трајање, слоган", - "tv_details": "Детаљи о ТВ серији", + "tv_details": "Детаљи о cерији", "tv_details_desc": "Статус, број сезона, мреже, креатори", "movie_collections": "Филмске колекције", "movie_collections_desc": "Филмске франшизе (Marvel, Star Wars, итд.)", From 4fb3f04ca11e7dc1c622ee25d55e9d03cf194888 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 15:26:38 +0100 Subject: [PATCH 006/285] Update sr.json --- src/i18n/locales/sr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index fca5b35a..202140ce 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -144,7 +144,7 @@ "empty_folder_desc": "Ова колекција је празна", "refresh": "Освежи", "no_movies": "Још нема филмова", - "no_series": "Још нема cерија", + "no_series": "Још нема Cерија", "no_content": "Још нема садржаја", "add_content_desc": "Додајте садржај у своју библиотеку да бисте га видели овде", "find_something": "Пронађи нешто за гледање", From 8680b4bab8530567c8936ccdef9a3fa5af91185a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 15:27:01 +0100 Subject: [PATCH 007/285] Update sr.json --- src/i18n/locales/sr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 202140ce..fca5b35a 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -144,7 +144,7 @@ "empty_folder_desc": "Ова колекција је празна", "refresh": "Освежи", "no_movies": "Још нема филмова", - "no_series": "Још нема Cерија", + "no_series": "Још нема cерија", "no_content": "Још нема садржаја", "add_content_desc": "Додајте садржај у своју библиотеку да бисте га видели овде", "find_something": "Пронађи нешто за гледање", From f96be99d75ce090b2cdc57aaf3a50c8a53d498c8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 15:41:34 +0100 Subject: [PATCH 008/285] Update sr.json --- src/i18n/locales/sr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index fca5b35a..5f243ea9 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -122,7 +122,7 @@ "try_keywords": "Покушајте са другим кључним речима", "select_type": "Изабери тип", "browse_movies": "Прегледај каталоге филмова", - "browse_tv": "Прегледај каталоге ТВ серија", + "browse_tv": "Прегледај каталоге cерија", "select_genre": "Изабери жанр", "show_all_content": "Прикажи сав садржај", "genres_count": "{{count}} жанрова" @@ -304,7 +304,7 @@ "no_upcoming": "Нема надолазећих објава за овог глумца", "no_content": "Нема доступног садржаја за овог глумца", "no_movies": "Нема доступних филмова за овог глумца", - "no_tv": "Нема доступних ТВ серија за овог глумца" + "no_tv": "Нема доступних серија за овог глумца" }, "comments": { "title": "Trakt коментари", From e9d71d99d1136fa785d9d7096483fafd992b41d0 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 16:42:45 +0100 Subject: [PATCH 009/285] Added Hebrew lang --- he,json.txt | 1419 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1419 insertions(+) create mode 100644 he,json.txt diff --git a/he,json.txt b/he,json.txt new file mode 100644 index 00000000..5a638b3a --- /dev/null +++ b/he,json.txt @@ -0,0 +1,1419 @@ +{ + "common": { + "loading": "טוען...", + "cancel": "ביטול", + "save": "שמירה", + "delete": "מחיקה", + "edit": "עריכה", + "search": "חיפוש", + "error": "שגיאה", + "success": "הצלחה", + "ok": "אישור", + "unknown": "לא ידוע", + "retry": "ניסיון חוזר", + "try_again": "נסה שנית", + "go_back": "חזור", + "settings": "הגדרות", + "close": "סגירה", + "enable": "הפעלה", + "disable": "השבתה", + "show_more": "הצג עוד", + "show_less": "הצג פחות", + "load_more": "טען עוד", + "unknown_date": "תאריך לא ידוע", + "anonymous_user": "משתמש אנונימי", + "time": { + "now": "ממש עכשיו", + "minutes_ago": "לפני {{count}} דק'", + "hours_ago": "לפני {{count}} שע'", + "days_ago": "לפני {{count}} ימים" + }, + "days_short": { + "sun": "א'", + "mon": "ב'", + "tue": "ג'", + "wed": "ד'", + "thu": "ה'", + "fri": "ו'", + "sat": "ש'" + }, + "email": "אימייל", + "status": "סטטוס" + }, + "home": { + "categories": { + "movies": "סרטים", + "series": "סדרות", + "channels": "ערוצים" + }, + "movies": "סרטים", + "tv_shows": "תוכניות טלוויזיה", + "load_more_catalogs": "טען קטלוגים נוספים", + "no_content": "אין תוכן זמין", + "add_catalogs": "הוספת קטלוגים", + "sign_in_available": "ניתן להתחבר", + "sign_in_desc": "ניתן להתחבר בכל עת דרך הגדרות ← חשבון", + "view_all": "צפייה בהכל", + "this_week": "השבוע", + "upcoming": "בקרוב", + "recently_released": "שוחררו לאחרונה", + "no_scheduled_episodes": "סדרות ללא פרקים מתוזמנים", + "check_back_later": "בדקו שוב מאוחר יותר", + "continue_watching": "המשך צפייה", + "up_next": "הבא בתור", + "up_next_caps": "הבא בתור", + "released": "שוחרר", + "new": "חדש", + "tba": "טרם פורסם", + "new_episodes": "{{count}} פרקים חדשים", + "season_short": "עונה {{season}}", + "episode_short": "פרק {{episode}}", + "season": "עונה {{season}}", + "episode": "פרק {{episode}}", + "movie": "סרט", + "series": "סדרה", + "tv_show": "תוכנית טלוויזיה", + "percent_watched": "{{percent}}% נצפו", + "view_details": "לפרטים נוספים", + "remove": "הסרה", + "play": "נגן", + "play_now": "נגן עכשיו", + "resume": "המשך", + "info": "מידע", + "more_info": "מידע נוסף", + "my_list": "הרשימה שלי", + "save": "שמירה", + "saved": "נשמר", + "retry": "ניסיון חוזר", + "install_addons": "התקנת תוספים", + "settings": "הגדרות", + "no_featured_content": "אין תוכן מומלץ", + "couldnt_load_featured": "לא ניתן לטעון תוכן מומלץ", + "no_featured_desc": "התקינו תוספים עם קטלוגים או שנו את מקור התוכן בהגדרות.", + "load_error_desc": "אירעה שגיאה בטעינת התוכן המומלץ. בדקו את החיבור ונסו שוב.", + "no_featured_available": "אין תוכן מומלץ זמין", + "no_description": "אין תיאור זמין" + }, + "navigation": { + "home": "בית", + "library": "ספרייה", + "search": "חיפוש", + "downloads": "הורדות", + "settings": "הגדרות" + }, + "search": { + "title": "חיפוש", + "recent_searches": "חיפושים אחרונים", + "discover": "גילוי", + "movies": "סרטים", + "tv_shows": "תוכניות טלוויזיה", + "select_catalog": "בחירת קטלוג", + "all_genres": "כל הז'אנרים", + "discovering": "מגלה תוכן...", + "show_more": "הצג עוד ({{count}})", + "no_content_found": "לא נמצא תוכן", + "try_different": "נסו ז'אנר או קטלוג אחר", + "select_catalog_desc": "בחרו קטלוג כדי להתחיל לגלות", + "tap_catalog_desc": "לחצו על שבב הקטלוג שלמעלה כדי להתחיל", + "placeholder": "חיפוש סרטים, סדרות...", + "keep_typing": "המשיכו להקליד...", + "type_characters": "הקלידו לפחות 2 תווים לחיפוש", + "no_results": "לא נמצאו תוצאות", + "try_keywords": "נסו מילות מפתח אחרות או בדקו את האיות", + "select_type": "בחירת סוג", + "browse_movies": "דפדוף בקטלוג סרטים", + "browse_tv": "דפדוף בקטלוג סדרות טלוויזיה", + "select_genre": "בחירת ז'אנר", + "show_all_content": "הצגת כל התוכן", + "genres_count": "{{count}} ז'אנרים" + }, + "library": { + "title": "ספרייה", + "watched": "נצפה", + "continue": "המשך", + "watchlist": "רשימת צפייה", + "collection": "אוסף", + "rated": "דורג", + "items": "פריטים", + "trakt_collections": "אוספי Trakt", + "trakt_collection": "אוסף Trakt", + "no_trakt": "אין אוספי Trakt", + "no_trakt_desc": "אוספי ה-Trakt שלך יופיעו כאן ברגע שתתחיל להשתמש ב-Trakt", + "load_collections": "טעינת אוספים", + "empty_folder": "אין תוכן ב{{folder}}", + "empty_folder_desc": "אוסף זה ריק", + "refresh": "רענון", + "no_movies": "אין עדיין סרטים", + "no_series": "אין עדיין סדרות", + "no_content": "אין עדיין תוכן", + "add_content_desc": "הוסיפו תוכן לספרייה כדי לראות אותו כאן", + "find_something": "מצאו משהו לצפות בו", + "removed_from_library": "הוסר מהספרייה", + "item_removed": "הפריט הוסר מהספרייה שלך", + "failed_update_library": "עדכון הספרייה נכשל", + "unable_remove": "לא ניתן להסיר את הפריט מהספרייה", + "marked_watched": "סומן כנצפה", + "marked_unwatched": "סומן כלא נצפה", + "item_marked_watched": "הפריט סומן כנצפה", + "item_marked_unwatched": "הפריט סומן כלא נצפה", + "failed_update_watched": "עדכון סטטוס צפייה נכשל", + "unable_update_watched": "לא ניתן לעדכן את סטטוס הצפייה", + "added_to_library": "נוסף לספרייה", + "item_added": "נוסף לספרייה המקומית שלך", + "add_to_library": "הוספה לספרייה", + "remove_from_library": "הסרה מהספרייה", + "mark_watched": "סימון כנצפה", + "mark_unwatched": "סימון כלא נצפה", + "share": "שיתוף", + "add_to_watchlist": "הוספה לרשימת הצפייה ב-Trakt", + "remove_from_watchlist": "הסרה מרשימת הצפייה ב-Trakt", + "added_to_watchlist": "נוסף לרשימת הצפייה", + "added_to_watchlist_desc": "נוסף לרשימת הצפייה שלך ב-Trakt", + "removed_from_watchlist": "הוסר מרשימת הצפייה", + "removed_from_watchlist_desc": "הוסר מרשימת הצפייה שלך ב-Trakt", + "add_to_collection": "הוספה לאוסף Trakt", + "remove_from_collection": "הסרה מאוסף Trakt", + "added_to_collection": "נוסף לאוסף", + "added_to_collection_desc": "נוסף לאוסף שלך ב-Trakt", + "removed_from_collection": "הוסר מהאוסף", + "removed_from_collection_desc": "הוסר מהאוסף שלך ב-Trakt" + }, + "metadata": { + "unable_to_load": "לא ניתן לטעון תוכן", + "error_code": "קוד שגיאה: {{code}}", + "content_not_found": "תוכן לא נמצא", + "content_not_found_desc": "תוכן זה אינו קיים או שהוסר.", + "server_error": "שגיאת שרת", + "server_error_desc": "השרת אינו זמין באופן זמני. נסו שוב מאוחר יותר.", + "bad_gateway": "שגיאת שער (Bad gateway)", + "bad_gateway_desc": "השרת חווה בעיות. נסו שוב מאוחר יותר.", + "service_unavailable": "שירות לא זמין", + "service_unavailable_desc": "השירות מושבת כעת לצורכי תחזוקה. נסו שוב מאוחר יותר.", + "too_many_requests": "יותר מדי בקשות", + "too_many_requests_desc": "שלחתם יותר מדי בקשות. המתינו רגע ונסו שוב.", + "request_timeout": "פסק זמן לבקשה", + "request_timeout_desc": "הבקשה ארכה זמן רב מדי. נסו שוב.", + "network_error": "שגיאת רשת", + "network_error_desc": "בדקו את חיבור האינטרנט ונסו שוב.", + "auth_error": "שגיאת אימות", + "auth_error_desc": "בדקו את הגדרות החשבון ונסו שוב.", + "access_denied": "גישה נדחתה", + "access_denied_desc": "אין לכם הרשאה לגשת לתוכן זה.", + "connection_error": "שגיאת חיבור", + "streams_unavailable": "מקורות סטרימינג לא זמינים", + "streams_unavailable_desc": "מקורות סטרימינג אינם זמינים כעת. נסו שוב מאוחר יותר.", + "unknown_error": "שגיאה לא ידועה", + "something_went_wrong": "משהו השתבש. נסו שוב.", + "cast": "צוות שחקנים", + "more_like_this": "עוד תכנים דומים", + "collection": "אוסף", + "episodes": "פרקים", + "seasons": "עונות", + "posters": "פוסטרים", + "banners": "באנרים", + "specials": "פרקים מיוחדים", + "season_number": "עונה {{number}}", + "episode_count": "פרק {{count}}", + "episode_count_plural": "{{count}} פרקים", + "no_episodes": "אין פרקים זמינים", + "no_episodes_for_season": "אין פרקים זמינים לעונה {{season}}", + "episodes_not_released": "ייתכן שהפרקים טרם שוחררו", + "no_description": "אין תיאור זמין", + "episode_label": "פרק {{number}}", + "watch_again": "צפייה חוזרת", + "completed": "הושלם", + "play_episode": "נגן ע'{{season}} פ'{{episode}}", + "play": "נגן", + "watched": "נצפה", + "watched_on_trakt": "נצפה ב-Trakt", + "synced_with_trakt": "סונכרן עם Trakt", + "saved": "נשמר", + "director": "במאי", + "directors": "במאים", + "creator": "יוצר", + "creators": "יוצרים", + "production": "הפקה", + "network": "רשת שידור", + "mark_watched": "סימון כנצפה", + "mark_unwatched": "סימון כלא נצפה", + "marking": "מסמן...", + "removing": "מסיר...", + "unmark_season": "ביטול סימון עונה {{season}}", + "mark_season": "סימון עונה {{season}} כנצפתה", + "resume": "המשך", + "spoiler_warning": "אזהרת ספוילר", + "spoiler_warning_desc": "תגובה זו מכילה ספוילרים. האם אתם בטוחים שברצונכם לחשוף אותה?", + "cancel": "ביטול", + "reveal_spoilers": "חשיפת ספוילרים", + "movie_details": "פרטי הסרט", + "show_details": "פרטי הסדרה", + "tagline": "שורת מחץ", + "status": "סטטוס", + "release_date": "תאריך יציאה", + "runtime": "זמן הרצה", + "budget": "תקציב", + "revenue": "הכנסות", + "origin_country": "ארץ מקור", + "original_language": "שפת מקור", + "first_air_date": "תאריך שידור ראשון", + "last_air_date": "תאריך שידור אחרון", + "total_episodes": "סה\"כ פרקים", + "episode_runtime": "אורך פרק", + "created_by": "נוצר על ידי", + "backdrop_gallery": "גלריית תמונות רקע", + "loading_episodes": "טוען פרקים...", + "no_episodes_available": "אין פרקים זמינים", + "play_next": "נגן ע'{{season}} פ'{{episode}}", + "play_next_episode": "נגן את הפרק הבא", + "save": "שמירה", + "percent_watched": "{{percent}}% נצפו", + "percent_watched_trakt": "{{percent}}% נצפו ({{traktPercent}}% ב-Trakt)", + "synced_with_trakt_progress": "סונכרן עם Trakt", + "using_trakt_progress": "משתמש בהתקדמות מ-Trakt", + "added_to_collection_hero": "נוסף לאוסף", + "added_to_collection_desc_hero": "נוסף לאוסף שלך ב-Trakt", + "removed_from_collection_hero": "הוסר מהאוסף", + "removed_from_collection_desc_hero": "הוסר מהאוסף שלך ב-Trakt", + "mark_as_watched": "סימון כנצפה", + "mark_as_unwatched": "סימון כלא נצפה" + }, + "cast": { + "biography": "ביוגרפיה", + "known_for": "מוכר בזכות", + "personal_info": "מידע אישי", + "born_in": "נולד ב{{place}}", + "filmography": "פילמוגרפיה", + "also_known_as": "ידוע גם כ-", + "no_info_available": "אין מידע נוסף זמין", + "as_character": "בתור {{character}}", + "loading_details": "טוען פרטים...", + "years_old": "בן {{age}}", + "view_filmography": "צפייה בפילמוגרפיה", + "filter": "סינון", + "sort_by": "מיון לפי", + "sort_popular": "פופולרי", + "sort_latest": "הכי חדש", + "sort_upcoming": "בקרוב", + "upcoming_badge": "בקרוב", + "coming_soon": "בקרוב", + "filmography_count": "פילמוגרפיה • {{count}} כותרים", + "loading_filmography": "טוען פילמוגרפיה...", + "load_more_remaining": "טען עוד ({{count}} נותרו)", + "alert_error_title": "שגיאה", + "alert_error_message": "לא ניתן לטעון את \"{{title}}\". נסו שוב מאוחר יותר.", + "alert_ok": "אישור", + "no_upcoming": "אין כותרים עתידיים זמינים עבור שחקן זה", + "no_content": "אין תוכן זמין עבור שחקן זה", + "no_movies": "אין סרטים זמינים עבור שחקן זה", + "no_tv": "אין תוכניות טלוויזיה זמינות עבור שחקן זה" + }, + "comments": { + "title": "תגובות Trakt", + "spoiler_warning": "⚠️ תגובה זו מכילה ספוילרים. לחצו כדי לחשוף.", + "spoiler": "ספוילר", + "contains_spoilers": "מכיל ספוילרים", + "reveal": "חשיפה", + "vip": "VIP", + "unavailable": "תגובות לא זמינות", + "no_comments": "אין עדיין תגובות ב-Trakt", + "not_in_database": "ייתכן שתוכן זה עדיין אינו מופיע במאגר של Trakt", + "check_trakt": "בדקו ב-Trakt" + }, + "trailers": { + "title": "טריילרים", + "official_trailers": "טריילרים רשמיים", + "official_trailer": "טריילר רשמי", + "teasers": "טיזרים", + "teaser": "טיזר", + "clips_scenes": "קליפים וסצנות", + "clip": "קליפ", + "featurettes": "מאחורי הקלעים", + "featurette": "סרטון קצר", + "behind_the_scenes": "מאחורי הקלעים", + "no_trailers": "אין טריילרים זמינים", + "unavailable": "טריילר לא זמין", + "unavailable_desc": "לא ניתן לטעון טריילר זה כרגע. נסו שוב מאוחר יותר.", + "unable_to_play": "לא ניתן לנגן את הטריילר. נסו שוב.", + "watch_on_youtube": "צפייה ב-YouTube" + }, + "catalog": { + "no_content_found": "לא נמצא תוכן", + "no_content_filters": "לא נמצא תוכן עבור המסננים שנבחרו", + "loading_content": "טוען תוכן...", + "back": "חזור", + "in_theaters": "בקולנוע", + "all": "הכל", + "failed_tmdb": "טעינת תוכן מ-TMDB נכשלה", + "movies": "סרטים", + "tv_shows": "תוכניות טלוויזיה", + "channels": "ערוצים" + }, + "streams": { + "back_to_episodes": "חזרה לפרקים", + "back_to_info": "חזרה למידע", + "fetching_from": "מביא נתונים מ-:", + "no_sources_available": "אין מקורות סטרימינג זמינים", + "add_sources_desc": "אנא הוסיפו מקורות סטרימינג בהגדרות", + "add_sources": "הוספת מקורות", + "finding_streams": "מחפש סטרימים זמינים...", + "finding_best_stream": "מחפש את הסטרים הטוב ביותר לניגון אוטומטי...", + "still_fetching": "עדיין מחפש סטרימים...", + "no_streams_available": "אין סטרימים זמינים", + "starting_best_stream": "מתחיל את הסטרים הטוב ביותר...", + "loading_more_sources": "טוען מקורות נוספים..." + }, + "player_ui": { + "via": "דרך {{name}}", + "audio_tracks": "רצועות שמע", + "no_audio_tracks": "אין רצועות שמע זמינות", + "playback_speed": "מהירות ניגון", + "on_hold": "בהמתנה", + "playback_error": "שגיאת ניגון", + "unknown_error": "אירעה שגיאה לא ידועה במהלך הניגון.", + "copy_error": "העתקת פרטי שגיאה", + "copied_to_clipboard": "הועתק ללוח", + "dismiss": "סגירה", + "continue_watching": "המשך צפייה", + "start_over": "התחל מהתחלה", + "resume": "המשך", + "change_source": "החלפת מקור", + "switching_source": "מחליף מקור...", + "no_sources_found": "לא נמצאו מקורות", + "sources": "מקורות", + "finding_sources": "מחפש מקורות...", + "unknown_source": "מקור לא ידוע", + "sources_limited": "המקורות עשויים להיות מוגבלים עקב שגיאות ספק.", + "episodes": "פרקים", + "specials": "פרקים מיוחדים", + "season": "עונה {{season}}", + "stream": "סטרים {{number}}", + "subtitles": "כתוביות", + "built_in": "מובנה", + "addons": "תוספים", + "style": "סגנון", + "none": "ללא", + "search_online_subtitles": "חיפוש כתוביות באינטרנט", + "preview": "תצוגה מקדימה", + "quick_presets": "הגדרות מהירות", + "default": "ברירת מחדל", + "yellow": "צהוב", + "high_contrast": "ניגודיות גבוהה", + "large": "גדול", + "core": "ליבה", + "font_size": "גודל גופן", + "show_background": "הצגת רקע", + "advanced": "מתקדם", + "position": "מיקום", + "text_color": "צבע טקסט", + "align": "יישור", + "bottom_offset": "מרחק מהתחתית", + "background_opacity": "אטימות רקע", + "text_shadow": "צל טקסט", + "on": "פעיל", + "off": "כבוי", + "outline_color": "צבע קווי מתאר", + "outline": "קווי מתאר", + "outline_width": "עובי קווי מתאר", + "letter_spacing": "מרווח בין אותיות", + "line_height": "גובה שורה", + "timing_offset": "היסט תזמון (שניות)", + "visual_sync": "סנכרון ויזואלי", + "timing_hint": "הזיזו את הכתוביות מוקדם יותר (-) או מאוחר יותר (+) כדי לסנכרן במידת הצורך.", + "reset_defaults": "איפוס לברירת מחדל", + "mark_intro_start": "סימון תחילת פתיח", + "mark_intro_end": "סימון סוף פתיח", + "intro_start_marked": "תחילת הפתיח סומנה", + "intro_submitted": "הפתיח נשלח בהצלחה", + "intro_submit_failed": "שליחת הפתיח נכשלה" + }, + "downloads": { + "title": "הורדות", + "no_downloads": "אין עדיין הורדות", + "no_downloads_desc": "תוכן שהורד יופיע כאן לצפייה במצב לא מקוון", + "explore": "גילוי תוכן", + "path_copied": "הנתיב הועתק", + "path_copied_desc": "נתיב הקובץ המקומי הועתק ללוח", + "copied": "הועתק", + "incomplete": "הורדה לא הושלמה", + "incomplete_desc": "ההורדה עדיין לא הסתיימה", + "not_available": "לא זמין", + "not_available_desc": "נתיב הקובץ המקומי זמין רק לאחר סיום ההורדה.", + "status_downloading": "מוריד", + "status_completed": "הושלם", + "status_paused": "מושהה", + "status_error": "שגיאה", + "status_queued": "בתור", + "status_unknown": "לא ידוע", + "provider": "ספק", + "streaming_playlist_warning": "ייתכן שלא יתנגן - פלייליסט סטרימינג", + "remaining": "נותרו", + "not_ready": "הורדה לא מוכנה", + "not_ready_desc": "אנא המתינו לסיום ההורדה.", + "filter_all": "הכל", + "filter_active": "פעיל", + "filter_done": "הושלם", + "filter_paused": "מושהה", + "no_filter_results": "אין הורדות מסוג {{filter}}", + "try_different_filter": "נסו לבחור מסנן אחר", + "limitations_title": "מגבלות הורדה", + "limitations_msg": "• קבצים קטנים מ-1MB הם בדרך כלל פלייליסטים של סטרימינג (M3U8) ולא ניתן להוריד אותם לצפייה לא מקוונת. אלו עובדים רק בסטרימינג חי ומכילים קישורים למקטעי וידאו, ולא את תוכן הווידאו עצמו.", + "remove_title": "הסרת הורדה", + "remove_confirm": "להסיר את \"{{title}}\" {{season_episode}}?", + "cancel": "ביטול", + "remove": "הסרה" + }, + "addons": { + "title": "תוספים", + "reorder_mode": "מצב סידור מחדש", + "reorder_info": "לתוספים בראש הרשימה יש עדיפות גבוהה יותר בטעינת תוכן", + "add_addon_placeholder": "כתובת URL של התוסף", + "add_button": "הוספת תוסף", + "my_addons": "התוספים שלי", + "community_addons": "תוספי קהילה", + "no_addons": "אין תוספים מותקנים", + "uninstall_title": "הסרת תוסף", + "uninstall_message": "האם אתם בטוחים שברצונכם להסיר את {{name}}?", + "uninstall_button": "הסרה", + "install_success": "התוסף הותקן בהצלחה", + "install_error": "התקנת התוסף נכשלה", + "load_error": "טעינת התוספים נכשלה", + "fetch_error": "קבלת פרטי התוסף נכשלה", + "invalid_url": "אנא הכניסו כתובת URL חוקית", + "configure": "הגדרה", + "version": "גרסה: {{version}}", + "installed_addons": "תוספים מותקנים", + "reorder_drag_title": "גררו תוספים לשינוי הסדר", + "install": "התקנה", + "config_unavailable_title": "הגדרה לא זמינה", + "config_unavailable_msg": "לא ניתן היה לקבוע את כתובת ה-URL להגדרה עבור תוסף זה.", + "cannot_open_config_title": "לא ניתן לפתוח הגדרות", + "cannot_open_config_msg": "לא ניתן לפתוח את כתובת ההגדרות ({{url}}). ייתכן שלתוסף אין דף הגדרות.", + "description": "תיאור", + "supported_types": "סוגים נתמכים", + "catalogs": "קטלוגים", + "no_description": "אין תיאור זמין", + "overview": "סקירה כללית", + "no_categories": "אין קטגוריות", + "pre_installed": "מותקן מראש" + }, + "trakt": { + "title": "הגדרות Trakt", + "settings_title": "הגדרות Trakt", + "connect_title": "התחברות ל-Trakt", + "connect_desc": "סנכרנו את היסטוריית הצפייה, רשימת המעקב והאוסף שלכם עם Trakt.tv", + "sign_in": "התחברות ל-Trakt", + "sign_out": "התנתקות", + "sign_out_confirm": "האם אתם בטוחים שברצונכם להתנתק מחשבון ה-Trakt שלכם?", + "joined": "הצטרף ב-{{date}}", + "sync_settings_title": "הגדרות סנכרון", + "sync_info": "כאשר מחוברים ל-Trakt, כל ההיסטוריה מסונכרנת ישירות מה-API ואינה נכתבת לאחסון המקומי. רשימת ה-'המשך צפייה' משקפת את ההתקדמות הגלובלית שלכם ב-Trakt.", + "auto_sync_label": "סנכרון אוטומטי של התקדמות הניגון", + "auto_sync_desc": "סנכרון אוטומטי של התקדמות הצפייה ל-Trakt", + "import_history_label": "ייבוא היסטוריית צפייה", + "import_history_desc": "השתמשו ב-'סנכרן עכשיו' כדי לייבא את היסטוריית הצפייה וההתקדמות מ-Trakt", + "sync_now_button": "סנכרן עכשיו", + "display_settings_title": "הגדרות תצוגה", + "show_comments_label": "הצגת תגובות Trakt", + "show_comments_desc": "הצגת תגובות מ-Trakt במסכי המידע במידה וקיימות", + "maintenance_title": "בתחזוקה", + "maintenance_unavailable": "Trakt לא זמין", + "maintenance_desc": "האינטגרציה עם Trakt מושהית זמנית לצורכי תחזוקה. כל אפשרויות הסנכרון והאימות מושבתות עד לסיום התחזוקה.", + "maintenance_button": "השירות בתחזוקה", + "auth_success_title": "התחברת בהצלחה", + "auth_success_msg": "חשבון ה-Trakt שלך חובדר בהצלחה.", + "auth_error_title": "שגיאת אימות", + "auth_error_msg": "ההתחברות ל-Trakt נכשלה.", + "auth_error_generic": "אירעה שגיאה במהלך האימות.", + "sign_out_error": "ההתנתקות מ-Trakt נכשלה.", + "sync_complete_title": "הסנכרון הושלם", + "sync_success_msg": "התקדמות הצפייה סונכרנה בהצלחה עם Trakt.", + "sync_error_msg": "הסנכרון נכשל. אנא נסו שוב." + }, + "simkl": { + "title": "הגדרות Simkl", + "settings_title": "הגדרות Simkl", + "connect_title": "התחברות ל-Simkl", + "connect_desc": "סנכרנו את היסטוריית הצפייה ועקבו אחרי מה שאתם רואים", + "sign_in": "התחברות ל-Simkl", + "sign_out": "ניתוק", + "sign_out_confirm": "האם אתם בטוחים שברצונכם להתנתק מ-Simkl?", + "syncing_desc": "הפריטים שצפיתם בהם מסתנכרנים עם Simkl.", + "auth_success_title": "התחברת בהצלחה", + "auth_success_msg": "חשבון ה-Simkl שלך חובדר בהצלחה.", + "auth_error_title": "שגיאת אימות", + "auth_error_msg": "ההתחברות ל-Simkl נכשלה.", + "auth_error_generic": "אירעה שגיאה במהלך האימות.", + "sign_out_error": "הניתוק מ-Simkl נכשל.", + "config_error_title": "שגיאת הגדרה", + "config_error_msg": "חסר Simkl Client ID במשתני הסביבה.", + "conflict_title": "קונפליקט", + "conflict_msg": "לא ניתן להתחבר ל-Simkl בזמן ש-Trakt מחובר. אנא נתקו את Trakt תחילה.", + "disclaimer": "Nuvio אינה קשורה ל-Simkl." + }, + "tmdb_settings": { + "title": "הגדרות TMDb", + "metadata_enrichment": "העשרת מידע (Metadata)", + "metadata_enrichment_desc": "שפרו את המידע על התכנים בעזרת נתוני TMDb לקבלת פרטים עשירים יותר.", + "enable_enrichment": "הפעלת העשרה", + "enable_enrichment_desc": "משלים מידע מ-TMDb עבור צוות שחקנים, סיווג גיל, לוגואים/פוסטרים ופרטי הפקה.", + "localized_text": "טקסט מקומי", + "localized_text_desc": "קבלת שמות ותיאורים בשפה המועדפת עליכם מ-TMDb.", + "language": "שפה", + "change": "שינוי", + "logo_preview": "תצוגה מקדימה של לוגו", + "logo_preview_desc": "התצוגה מראה כיצד יופיעו לוגואים מקומיים בשפה שנבחרה.", + "example": "דוגמה:", + "no_logo": "אין לוגו זמין", + "enrichment_options": "אפשרויות העשרה", + "enrichment_options_desc": "שלטו באילו נתונים יימשכו מ-TMDb. אפשרויות כבויות ישתמשו בנתוני התוסף המקוריים.", + "cast_crew": "צוות שחקנים והפקה", + "cast_crew_desc": "שחקנים, במאים, כותבים כולל תמונות פרופיל", + "title_description": "שם ותיאור", + "title_description_desc": "שימוש בשם ובתיאור המקומיים של TMDb", + "title_logos": "לוגואים של כותרים", + "title_logos_desc": "עיצובי לוגו באיכות גבוהה", + "banners_backdrops": "באנרים ותמונות רקע", + "banners_backdrops_desc": "תמונות רקע ברזולוציה גבוהה", + "certification": "סיווג תוכן", + "certification_desc": "דירוגי גיל (PG-13, R, TV-MA וכדומה)", + "recommendations": "המלצות", + "recommendations_desc": "הצעות לתוכן דומה", + "episode_data": "נתוני פרקים", + "episode_data_desc": "תמונות ממוזערות של פרקים, מידע וגיבוי לסדרות טלוויזיה", + "season_posters": "פוסטרים של עונות", + "season_posters_desc": "תמונות פוסטר ספציפיות לכל עונה", + "production_info": "פרטי הפקה", + "production_info_desc": "רשתות שידור וחברות הפקה כולל לוגואים", + "movie_details": "פרטי סרט", + "movie_details_desc": "תקציב, הכנסות, זמן הרצה, שורת מחץ", + "tv_details": "פרטי סדרת טלוויזיה", + "tv_details_desc": "סטטוס, מספר עונות, רשתות, יוצרים", + "movie_collections": "אוספי סרטים", + "movie_collections_desc": "פרנצ'ייזים (מארוול, מלחמת הכוכבים וכדומה)", + "api_configuration": "הגדרות API", + "api_configuration_desc": "הגדירו את הגישה שלכם ל-API של TMDb עבור יכולות משופרות.", + "custom_api_key": "מפתח API אישי", + "custom_api_key_desc": "השתמשו במפתח API משלכם לביצועים טובים יותר ומגבלות קצב ייעודיות.", + "custom_key_active": "מפתח API אישי פעיל", + "api_key_required": "נדרש מפתח API", + "api_key_placeholder": "הדביקו את מפתח ה-API שלכם (v3)", + "how_to_get_key": "איך משיגים מפתח API של TMDb?", + "built_in_key_msg": "כרגע בשימוש במפתח המובנה. מומלץ להשתמש במפתח אישי לביצועים טובים יותר.", + "cache_size": "גודל מטמון (Cache)", + "clear_cache": "ניקוי מטמון", + "cache_days": "תשובות TMDb נשמרות במטמון ל-7 ימים לשיפור ביצועים", + "choose_language": "בחירת שפה", + "choose_language_desc": "בחרו את השפה המועדפת לתוכן מ-TMDb", + "popular": "פופולרי", + "all_languages": "כל השפות", + "search_results": "תוצאות חיפוש", + "no_languages_found": "לא נמצאו שפות עבור \"{{query}}\"", + "clear_search": "ניקוי חיפוש", + "clear_cache_title": "ניקוי מטמון TMDB", + "clear_cache_msg": "פעולה זו תמחק את כל המידע השמור של TMDB ({{size}}). זה עלול להאט זמנית את הטעינה עד לבנייה מחדש של המטמון.", + "clear_cache_success": "מטמון TMDB נוקה בהצלחה.", + "clear_cache_error": "ניקוי המטמון נכשל.", + "clear_api_key_title": "הסרת מפתח API", + "clear_api_key_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API האישי ולחזור לברירת המחדל?", + "clear_api_key_success": "מפתח ה-API הוסר בהצלחה", + "clear_api_key_error": "הסרת מפתח ה-API נכשלה", + "empty_api_key": "מפתח API לא יכול להיות ריק.", + "invalid_api_key": "מפתח API לא תקין. אנא בדקו ונסו שוב.", + "save_error": "אירעה שגיאה בזמן השמירה. אנא נסו שוב.", + "using_builtin_key": "כעת בשימוש במפתח המובנה של TMDb.", + "using_custom_key": "כעת בשימוש במפתח האישי שלכם.", + "enter_custom_key": "אנא הזינו ושמרו את מפתח ה-API האישי שלכם.", + "key_verified": "מפתח ה-API אומת ונשמר בהצלחה." + }, + "settings": { + "language": "שפה", + "select_language": "בחר שפה", + "english": "אנגלית", + "portuguese": "פורטוגזית", + "portuguese_br": "פורטוגזית (ברזיל)", + "portuguese_pt": "פורטוגזית (פורטוגל)", + "german": "גרמנית", + "arabic": "ערבית", + "spanish": "ספרדית", + "french": "צרפתית", + "italian": "איטלקית", + "croatian": "קרואטית", + "chinese": "סינית (מפושטת)", + "hindi": "הינדי", + "serbian": "סרבית", + "hebrew": "עברית", + "account": "חשבון", + "content_discovery": "תוכן וגילוי", + "appearance": "מראה", + "integrations": "אינטגרציות", + "playback": "ניגון", + "backup_restore": "גיבוי ושחזור", + "updates": "עדכונים", + "about": "אודות", + "developer": "מפתח", + "cache": "מטמון", + "title": "הגדרות", + "settings_title": "הגדרות", + "sign_in_sync": "התחברו כדי לסנכרן", + "add_catalogs_sources": "תוספים, קטלוגים ומקורות", + "player_trailers_downloads": "נגן, טריילרים, הורדות", + "mdblist_tmdb_ai": "MDBList, TMDB, בינה מלאכותית", + "check_updates": "בדוק עדכונים", + "clear_mdblist_cache": "ניקוי מטמון MDBList", + "cache_management": "ניהול מטמון", + "downloads_counter": "הורדות וסופר...", + "made_with_love": "נוצר עם ❤️ על ידי Tapframe וחברים", + "sections": { + "information": "מידע", + "account": "חשבון", + "theme": "עיצוב", + "layout": "פריסה", + "sources": "מקורות", + "catalogs": "קטלוגים", + "discovery": "גילוי", + "metadata": "מידע (Metadata)", + "ai_assistant": "עוזר AI", + "video_player": "נגן וידאו", + "audio_subtitles": "שמע וכתוביות", + "media": "מדיה", + "notifications": "התראות", + "testing": "בדיקות", + "danger_zone": "אזור מסוכן" + }, + "items": { + "legal": "משפטי והצהרת ויתור", + "privacy_policy": "מדיניות פרטיות", + "report_issue": "דיווח על תקלה", + "version": "גרסה", + "contributors": "תורמים", + "view_contributors": "צפייה בכל התורמים", + "theme": "ערכת נושא", + "episode_layout": "פריסת פרקים", + "streams_backdrop": "רקע סטרימינג", + "streams_backdrop_desc": "הצגת רקע מטושטש בסטרימינג בנייד", + "addons": "תוספים", + "installed": "מותקנים", + "debrid_integration": "אינטגרציית Debrid", + "debrid_desc": "חיבור Torbox", + "plugins": "פלאגינים", + "plugins_desc": "ניהול פלאגינים ומאגרים", + "catalogs": "קטלוגים", + "active": "פעילים", + "home_screen": "מסך הבית", + "home_screen_desc": "פריסה ותוכן", + "continue_watching": "המשך צפייה", + "continue_watching_desc": "התנהגות מטמון וניגון", + "show_discover": "הצגת אזור הגילוי", + "show_discover_desc": "הצגת תוכן גילוי בחיפוש", + "mdblist": "MDBList", + "mdblist_connected": "מחובר", + "mdblist_desc": "הפעל כדי להוסיף דירוגים וביקורות", + "simkl": "Simkl", + "simkl_connected": "מחובר", + "simkl_desc": "מעקב אחר צפיות", + "tmdb": "TMDB", + "tmdb_desc": "מקור מידע ולוגואים", + "openrouter": "OpenRouter API", + "openrouter_connected": "מחובר", + "openrouter_desc": "הוסיפו מפתח API כדי להפעיל צ'אט AI", + "video_player": "נגן וידאו", + "built_in": "מובנה", + "external": "חיצוני", + "preferred_audio": "שפת שמע מועדפת", + "preferred_subtitle": "שפת כתוביות מועדפת", + "subtitle_source": "עדיפות מקור כתוביות", + "auto_select_subs": "בחירה אוטומטית של כתוביות", + "auto_select_subs_desc": "בחירה אוטומטית של כתוביות התואמות להעדפותיכם", + "show_trailers": "הצגת טריילרים", + "show_trailers_desc": "הצגת טריילרים באזור הראשי", + "enable_downloads": "אפשר הורדות", + "enable_downloads_desc": "הצגת לשונית הורדות ואפשרות שמירת סטרימים", + "notifications": "התראות", + "notifications_desc": "תזכורות לפרקים", + "developer_tools": "כלי מפתח", + "developer_tools_desc": "אפשרויות בדיקה ודיבאג", + "test_onboarding": "בדיקת תהליך פתיחה", + "reset_onboarding": "איפוס תהליך פתיחה", + "test_announcement": "בדיקת הכרזות", + "test_announcement_desc": "הצגת חלון 'מה חדש'", + "reset_campaigns": "איפוס קמפיינים", + "reset_campaigns_desc": "ניקוי נתוני חשיפה לקמפיינים", + "clear_all_data": "מחיקת כל הנתונים", + "clear_all_data_desc": "איפוס כל ההגדרות והמידע השמור" + }, + "options": { + "horizontal": "אופקי", + "vertical": "אנכי", + "internal_first": "פנימי תחילה", + "internal_first_desc": "עדיפות לכתוביות מובנות, ואז חיצוניות", + "external_first": "חיצוני תחילה", + "external_first_desc": "עדיפות לכתוביות מהתוסף, ואז מובנות", + "any_available": "כל מה שזמין", + "any_available_desc": "שימוש ברצועת הכתוביות הראשונה שנמצאה" + }, + "clear_data_desc": "פעולה זו תאפס את כל ההגדרות ותנקה את כל המידע השמור. האם אתם בטוחים?", + "app_updates": "עדכוני אפליקציה", + "about_nuvio": "אודות Nuvio" + }, + "privacy": { + "title": "פרטיות ומידע", + "settings_desc": "ניהול טלמטריה ואיסוף נתונים", + "info_title": "הפרטיות שלכם חשובה לנו", + "info_description": "שלטו במידע שנאסף ומשותף. ניתוח נתונים (Analytics) כבוי כברירת מחדל ודיווחי קריסה הם אנונימיים.", + "analytics_enabled_title": "ניתוח נתונים פעיל", + "analytics_enabled_message": "נתוני שימוש ייאספו כדי לעזור לנו לשפר את האפליקציה. ניתן לבטל זאת בכל עת.", + "disable_error_reporting_title": "לבטל דיווחי שגיאות?", + "disable_error_reporting_message": "ביטול דיווחי שגיאות אומר שלא נקבל התראות על קריסות או בעיות שאתם חווים. זה עלול להשפיע על היכולת שלנו לתקן באגים.", + "enable_session_replay_title": "להפעיל הקלטת סשן?", + "enable_session_replay_message": "הקלטת סשן מתעדת את המסך שלכם בזמן שגיאות כדי לעזור לנו להבין מה קרה. זה עלול ללכוד תוכן שמוצג על המסך.", + "enable_pii_title": "להפעיל איסוף מידע אישי (PII)?", + "enable_pii_message": "זה מאפשר איסוף מידע המזהה את המשתמש כמו כתובת IP ופרטי מכשיר. מידע זה עוזר לאבחן בעיות אך מגדיל את החשיפה של פרטיותכם.", + "disable_all_title": "לבטל את כל הטלמטריה?", + "disable_all_message": "זה יבטל את כל ניתוחי הנתונים, דיווחי השגיאות והקלטות הסשן. לא נקבל שום מידע על השימוש באפליקציה או על קריסות.", + "disable_all_button": "ביטול הכל", + "all_disabled_title": "כל הטלמטריה בוטלה", + "all_disabled_message": "כל איסוף הנתונים הופסק. השינויים ייכנסו לתוקף בהפעלה מחדש של האפליקציה.", + "reset_title": "חזרה להגדרות המומלצות", + "reset_message": "הגדרות הפרטיות שוחזרו לברירת המחדל המומלצת (דיווחי שגיאות פעילים, ניתוח נתונים כבוי).", + "section_analytics": "ניתוח נתונים (Analytics)", + "analytics_title": "ניתוח נתוני שימוש", + "analytics_description": "איסוף דפוסי שימוש אנונימיים וצפיות במסכים", + "section_error_reporting": "דיווחי שגיאות", + "error_reporting_title": "דיווחי קריסה", + "error_reporting_description": "שליחת דיווחי קריסה אנונימיים לשיפור היציבות", + "session_replay_title": "הקלטת סשן (Session Replay)", + "session_replay_description": "הקלטת המסך בזמן התרחשות שגיאות", + "pii_title": "כלול פרטי מכשיר", + "pii_description": "שליחת כתובת IP ופרטי מכשיר יחד עם הדיווחים", + "section_quick_actions": "פעולות מהירות", + "disable_all": "ביטול כל הטלמטריה", + "disable_all_desc": "כיבוי כל איסוף הנתונים", + "reset_recommended": "איפוס להגדרות מומלצות", + "reset_recommended_desc": "ברירות מחדל מוטות פרטיות עם דיווחי שגיאות", + "section_learn_more": "למידע נוסף", + "privacy_policy": "מדיניות פרטיות", + "current_settings": "סיכום הגדרות נוכחיות", + "summary_analytics": "ניתוח נתונים", + "summary_errors": "דיווחי שגיאות", + "summary_replay": "הקלטת סשן", + "summary_pii": "פרטי מכשיר", + "restart_note_detailed": "* שינויים בניתוח נתונים ודיווחי שגיאות נכנסים לתוקף מיידית. הגדרות הקלטת סשן ופרטי מכשיר דורשות הפעלה מחדש." + }, + "ai_settings": { + "title": "עוזר AI", + "info_title": "צ'אט מבוסס בינה מלאכותית", + "info_desc": "שאלו שאלות על כל סרט או פרק בסדרה בעזרת AI מתקדם. קבלו תובנות על העלילה, דמויות, נושאים, טריוויה ועוד - הכל מבוסס על נתוני TMDB מקיפים.", + "feature_1": "ניתוח והקשר ספציפי לפרקים", + "feature_2": "הסברי עלילה ותובנות על דמויות", + "feature_3": "עובדות וטריוויה מאחורי הקלעים", + "feature_4": "שימוש במפתח OpenRouter API משלכם", + "api_key_section": "מפתח OPENROUTER API", + "api_key_label": "מפתח API", + "api_key_desc": "הזינו את מפתח ה-API של OpenRouter כדי להפעיל את יכולות הצ'אט", + "save_api_key": "שמירת מפתח API", + "saving": "שומר...", + "update": "עדכון", + "remove": "הסרה", + "get_free_key": "קבלת מפתח API בחינם מ-OpenRouter", + "enable_chat": "הפעלת צ'אט AI", + "enable_chat_desc": "כאשר פעיל, כפתור \"שאל את ה-AI\" יופיע בדפי התוכן.", + "chat_enabled": "צ'אט AI פעיל", + "chat_enabled_desc": "כעת ניתן לשאול שאלות על סרטים וסדרות. חפשו את כפתור \"שאל את ה-AI\" בדפי התוכן!", + "how_it_works": "איך זה עובד", + "how_it_works_desc": "• OpenRouter מספק גישה למגוון מודלי AI\n• מפתח ה-API שלכם נשאר פרטי ומאובטח\n• המסלול החינמי כולל מגבלות שימוש נדיבות\n• צ'אט עם הקשר על פרקים/סרטים ספציפיים\n• קבלת ניתוחים והסברים מפורטים", + "error_invalid_key": "אנא הזינו מפתח API תקין", + "error_key_format": "מפתחות API של OpenRouter צריכים להתחיל ב-\"sk-or-\"", + "success_saved": "מפתח ה-API של OpenRouter נשמר בהצלחה!", + "error_save": "שמירת מפתח ה-API נכשלה", + "confirm_remove_title": "הסרת מפתח API", + "confirm_remove_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API? פעולה זו תבטל את יכולות הצ'אט.", + "success_removed": "מפתח ה-API הוסר בהצלחה", + "error_remove": "הסרת מפתח ה-API נכשלה" + }, + "catalog_settings": { + "title": "קטלוגים", + "layout_phone": "פריסת מסך קטלוג (טלפון)", + "posters_per_row": "פוסטרים בשורה", + "auto": "אוטומטי", + "show_titles": "הצגת שמות על פוסטרים", + "show_titles_desc": "הצגת שם התוכן מתחת לכל פוסטר", + "phone_only_hint": "תקף לטלפונים בלבד. טאבלטים שומרים על פריסה אדפטיבית.", + "catalogs_group": "קטלוגים", + "enabled_count": "{{enabled}} מתוך {{total}} פעילים", + "rename_hint": "לחיצה ארוכה על קטלוג כדי לשנות את שמו", + "rename_modal_title": "שינוי שם קטלוג", + "rename_placeholder": "הזינו שם קטלוג חדש", + "error_save_name": "לא ניתן היה לשמור את השם המותאם." + }, + "continue_watching_settings": { + "title": "המשך צפייה", + "playback_behavior": "התנהגות ניגון", + "use_cached": "שימוש בקישורים שמורים (Cache)", + "use_cached_desc": "כאשר פעיל, לחיצה על פריטי 'המשך צפייה' תפתח את הנגן ישירות עם הקישורים הקודמים. כאשר כבוי, ייפתח מסך התוכן במקום זאת.", + "open_metadata": "פתיחת מסך מידע", + "open_metadata_desc": "כאשר קישורים שמורים כבויים, פתח את מסך המידע במקום מסך הסטרימים. זה מציג פרטי תוכן ומאפשר בחירה ידנית של מקור.", + "card_appearance": "מראה כרטיסייה", + "card_style": "סגנון כרטיסייה", + "card_style_desc": "בחרו כיצד יופיעו פריטי 'המשך צפייה' במסך הבית", + "wide": "רחב", + "poster": "פוסטר", + "cache_settings": "הגדרות מטמון (Cache)", + "cache_duration": "משך שמירת קישור", + "cache_duration_desc": "כמה זמן לשמור קישורי סטרימינג לפני שתוקפם יפוג", + "important_note": "הערה חשובה", + "important_note_text": "לא כל קישורי הסטרימינג נשארים פעילים לכל משך זמן המטמון. זמני שמירה ארוכים עלולים להוביל לקישורים שפג תוקפם. אם קישור שמור נכשל, האפליקציה תחזור לחיפוש מקורות טריים.", + "how_it_works": "איך זה עובד", + "how_it_works_cached": "• קישורים נשמרים למשך הזמן שבחרתם לאחר הניגון\n• הקישורים השמורים מאומתים לפני השימוש\n• אם המטמון לא תקין או פג תוקפו, המערכת חוזרת למסך התוכן\n• 'שימוש בקישורים שמורים' שולט במעבר ישיר לנגן לעומת ניווט למסך\n• 'פתיחת מסך מידע' מופיע רק כשקישורים שמורים כבויים", + "how_it_works_uncached": "• כשקישורים שמורים כבויים, לחיצה על המשך צפייה פותחת מסכי תוכן\n• האופציה 'פתיחת מסך מידע' שולטת איזה מסך ייפתח\n• מסך מידע מציג פרטי תוכן ומאפשר בחירה ידנית\n• מסך סטרימים מציג מקורות זמינים לניגון מיידי", + "changes_saved": "השינויים נשמרו", + "min": "דקות", + "hour": "שעה", + "hours": "שעות" + }, + "contributors": { + "title": "תורמים", + "special_mentions": "אזכורים מיוחדים", + "tab_contributors": "תורמים", + "tab_special": "אזכורים מיוחדים", + "tab_donors": "תורמים (Donors)", + "manager_role": "מנהל קהילה", + "manager_desc": "מנהל את קהילות הדיסקורד והרדיט של Nuvio", + "sponsor_role": "ספונסר שרת", + "sponsor_desc": "מימן את תשתית השרתים של Nuvio", + "mod_role": "מודרטור דיסקורד", + "mod_desc": "עוזר בניהול קהילת הדיסקורד של Nuvio", + "loading": "טוען...", + "discord_user": "משתמש דיסקורד", + "contributions": "תרומות", + "gratitude_title": "אנחנו מודים על כל תרומה", + "gratitude_desc": "כל שורת קוד, דיווח באג או הצעה עוזרים להפוך את Nuvio לטובה יותר עבור כולם", + "special_thanks_title": "תודה מיוחדת", + "special_thanks_desc": "האנשים המדהימים האלה עוזרים לשמור על קהילת Nuvio פעילה ועל השרתים מחוברים", + "donors_desc": "תודה שאתם מאמינים במה שאנחנו בונים. התמיכה שלכם שומרת על Nuvio חינמית ומשתפרת כל הזמן.", + "latest_donations": "אחרונים", + "leaderboard": "לוח מובילים", + "loading_donors": "טוען תורמים...", + "no_donors": "אין עדיין תורמים", + "error_rate_limit": "חרגתם ממגבלת ה-API של GitHub. אנא נסו שוב מאוחר יותר.", + "error_failed": "טעינת התורמים נכשלה. אנא בדקו את חיבור האינטרנט.", + "retry": "נסה שוב", + "no_contributors": "לא נמצאו תורמים", + "loading_contributors": "טוען תורמים..." + }, + "debrid": { + "title": "אינטגרציית Debrid", + "description_torbox": "פתחו סטרימינג באיכות 4K ומהירויות גבוהות על ידי חיבור Torbox. הזינו את מפתח ה-API שלכם למטה לשדרוג חווית הצפייה.", + "description_torrentio": "הגדר את Torrentio כדי לקבל מקורות טורנט לסרטים וסדרות. שירות debrid נדרש כדי להזרים את התוכן.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "מחובר", + "status_disconnected": "מנותק", + "enable_addon": "הפעלת תוסף", + "disconnect_button": "ניתוק והסרה", + "disconnect_loading": "מתנתק...", + "account_info": "פרטי חשבון", + "plan": "תוכנית", + "plan_free": "חינם", + "plan_essential": "Essential ($3/mo)", + "plan_pro": "Pro ($10/mo)", + "plan_standard": "Standard ($5/mo)", + "plan_unknown": "לא ידוע", + "expires": "פג תוקף", + "downloaded": "הורדו", + "status_active": "פעיל", + "connected_title": "✓ מחובר ל-TorBox", + "connected_desc": "תוסף ה-TorBox שלך פעיל ומספק מקורות פרימיום.", + "configure_title": "הגדרת תוסף", + "configure_desc": "התאימו את חווית הצפייה. מיון לפי איכות, סינון גודל קבצים וניהול הגדרות נוספות.", + "open_settings": "פתח הגדרות", + "what_is_debrid": "מה זה שירות Debrid?", + "enter_api_key": "הזינו מפתח API", + "connect_button": "התחברות והתקנה", + "connecting": "מתחבר...", + "unlock_speeds_title": "פתיחת מהירויות פרימיום", + "unlock_speeds_desc": "רכשו מנוי Torbox לגישה למקורות באיכות גבוהה ללא טעינה (Buffering).", + "get_subscription": "רכישת מנוי", + "powered_by": "מופעל על ידי", + "disclaimer_torbox": "Nuvio אינה קשורה ל-Torbox בשום צורה.", + "disclaimer_torrentio": "Nuvio אינה קשורה ל-Torrentio בשום צורה.", + "installed_badge": "✓ מותקן", + "promo_title": "⚡ צריכים שירות Debrid?", + "promo_desc": "קבלו את TorBox לסטרימינג 4K מהיר במיוחד ללא Buffering. טורנטים שמורים והורדות מיידיות.", + "promo_button": "קבלת מנוי TorBox", + "service_label": "שירות Debrid *", + "api_key_label": "מפתח API *", + "sorting_label": "מיון", + "exclude_qualities": "החרגת איכויות", + "priority_languages": "שפות בעדיפות", + "max_results": "מקסימום תוצאות", + "additional_options": "אפשרויות נוספות", + "no_download_links": "אל תציג קישורי הורדה", + "no_debrid_catalog": "אל תציג קטלוג Debrid", + "install_button": "התקנת Torrentio", + "installing": "מתקין...", + "update_button": "עדכון הגדרות", + "updating": "מעדכן...", + "remove_button": "הסרת Torrentio", + "error_api_required": "נדרש מפתח API", + "error_api_required_desc": "אנא הזינו את מפתח ה-API של שירות ה-debrid שלכם כדי להתקין את Torrentio.", + "success_installed": "תוסף Torrentio הותקן בהצלחה!", + "success_removed": "תוסף Torrentio הוסר בהצלחה", + "alert_disconnect_title": "ניתוק Torbox", + "alert_disconnect_msg": "האם אתם בטוחים שברצונכם לנתק את Torbox? זה יסיר את התוסף וימחוק את מפתח ה-API השמור." + }, + "home_screen": { + "title": "הגדרות מסך הבית", + "changes_applied": "השינויים הוחלו", + "display_options": "אפשרויות תצוגה", + "show_hero": "הצגת קרוסלת תוכן (Hero)", + "show_hero_desc": "תוכן מומלץ בראש המסך", + "show_this_week": "הצגת 'השבוע'", + "show_this_week_desc": "פרקים חדשים מהשבוע הנוכחי", + "select_catalogs": "בחירת קטלוגים", + "all_catalogs": "כל הקטלוגים", + "selected": "נבחרו", + "hero_layout": "פריסת קרוסלה (Hero)", + "layout_legacy": "קלאסי", + "layout_carousel": "קרוסלה", + "layout_appletv": "Apple TV", + "layout_desc": "באנר ברוחב מלא, כרטיסיות להחלקה, או סגנון Apple TV", + "featured_source": "מקור תוכן מומלץ", + "using_catalogs": "משתמש בקטלוגים", + "manage_selected_catalogs": "ניהול קטלוגים שנבחרו", + "dynamic_bg": "רקע דינמי לקרוסלה", + "dynamic_bg_desc": "באנר מטושטש מאחורי הקרוסלה", + "performance_note": "עשוי להשפיע על הביצועים במכשירים חלשים.", + "posters": "פוסטרים", + "show_titles": "הצגת שמות", + "poster_size": "גודל פוסטר", + "poster_corners": "פינות הפוסטר", + "size_small": "קטן", + "size_medium": "בינוני", + "size_large": "גדול", + "corners_square": "ישרות", + "corners_rounded": "מעוגלות", + "corners_pill": "מעוגלות מאוד (Pill)", + "about_these_settings": "אודות ההגדרות הללו", + "about_desc": "הגדרות אלו קובעות כיצד יוצג התוכן במסך הבית שלכם. השינויים מוחלים מיידית ללא צורך בהפעלה מחדש.", + "hero_catalogs": { + "title": "קטלוגים לקרוסלה הראשי", + "select_all": "בחירת הכל", + "clear_all": "ניקוי הכל", + "info": "בחרו אילו קטלוגים יוצגו בקרוסלה הראשית. אם לא ייבחר דבר, ייעשה שימוש בכל הקטלוגים. אל תשכחו ללחוץ על שמירה בסיום.", + "settings_saved": "ההגדרות נשמרו", + "error_load": "טעינת הקטלוגים נכשלה", + "movies": "סרטים", + "tv_shows": "סדרות טלוויזיה" + } + }, + "calendar": { + "title": "לוח שידורים", + "loading": "טוען לוח שידורים...", + "no_scheduled_episodes": "אין פרקים מתוכננים", + "check_back_later": "בדקו שוב מאוחר יותר", + "showing_episodes_for": "מציג פרקים עבור {{date}}", + "show_all_episodes": "הצגת כל הפרקים", + "no_episodes_for": "אין פרקים עבור {{date}}", + "no_upcoming_found": "לא נמצאו פרקים קרובים", + "add_series_desc": "הוסיפו סדרות לספרייה שלכם כדי לראות את הפרקים הבאים שלהן כאן" + }, + "mdblist": { + "title": "מקורות דירוג", + "status_disabled": "MDBList כבוי", + "status_active": "מפתח API פעיל", + "status_required": "נדרש מפתח API", + "status_disabled_desc": "פונקציונליות MDBList מושבתת כרגע.", + "status_active_desc": "דירוגים מ-MDBList פעילים.", + "status_required_desc": "הוסיפו את המפתח שלכם למטה כדי להפעיל דירוגים.", + "enable_toggle": "הפעלת MDBList", + "enable_toggle_desc": "הפעלה/כיבוי של כל יכולות MDBList", + "api_section": "מפתח API", + "placeholder": "הדביקו את מפתח ה-API של MDBList", + "save": "שמירה", + "clear": "מחיקת מפתח", + "rating_providers": "ספקי דירוג", + "rating_providers_desc": "בחרו אילו דירוגים להציג באפליקציה", + "how_to": "איך משיגים מפתח API?", + "step_1": "התחברו לאתר", + "step_1_link": "MDBList", + "step_2": "עברו ללשונית", + "step_2_settings": "הגדרות (Settings)", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "צרו מפתח חדש והעתיקו אותו.", + "go_to_website": "מעבר לאתר MDBList", + "alert_clear_title": "מחיקת מפתח API", + "alert_clear_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API השמור?", + "success_saved": "מפתח ה-API נשמר בהצלחה.", + "error_empty": "מפתח ה-API אינו יכול להיות ריק.", + "error_save": "אירעה שגיאה במהלך השמירה. אנא נסו שוב.", + "api_key_empty_error": "מפתח ה-API אינו יכול להיות ריק.", + "success_cleared": "מפתח ה-API נמחק בהצלחה", + "error_clear": "מחיקת מפתח ה-API נכשלה" + }, + "notification": { + "title": "הגדרות התראות", + "section_general": "כללי", + "enable_notifications": "הפעלת התראות", + "section_types": "סוגי התראות", + "new_episodes": "פרקים חדשים", + "upcoming_shows": "סדרות קרובות", + "reminders": "תזכורות", + "section_timing": "תזמון התראות", + "timing_desc": "מתי תרצו לקבל התראה לפני שידור פרק?", + "hours_1": "שעה אחת", + "hours_suffix": "שעות", + "section_status": "סטטוס התראות", + "stats_upcoming": "קרובים", + "stats_this_week": "השבוע", + "stats_total": "סה\"כ", + "sync_button": "סנכרון ספרייה ו-Trakt", + "syncing": "מסנכרן...", + "sync_desc": "מסנכרן אוטומטית התראות עבור כל הסדרות בספרייה שלכם וברשימות ה-Trakt.", + "section_advanced": "מתקדם", + "reset_button": "איפוס כל ההתראות", + "test_button": "התראת בדיקה (5 שניות)", + "test_notification_in": "התראה בעוד {{seconds}} שניות...", + "test_notification_text": "התראה תופיע בעוד {{seconds}} שניות", + "alert_reset_title": "איפוס התראות", + "alert_reset_msg": "פעולה זו תבטל את כל ההתראות המתוזמנות, אך לא תסיר דבר מהספרייה השמורה. האם אתם בטוחים?", + "alert_reset_success": "כל ההתראות אופסו", + "alert_sync_complete": "הסנכרון הושלם", + "alert_sync_msg": "התראות עבור הספרייה ונתוני Trakt סונכרנו בהצלחה.\n\nתוזמנו: {{upcoming}} פרקים קרובים\nהשבוע: {{thisWeek}} פרקים", + "alert_test_scheduled": "התראת בדיקה תוזמנה להופעה מיידית" + }, + "backup": { + "title": "גיבוי ושחזור", + "options_title": "אפשרויות גיבוי", + "options_desc": "בחרו מה לכלול בגיבוי שלכם", + "section_core": "נתוני ליבה", + "section_addons": "תוספים ואינטגרציות", + "section_settings": "הגדרות והעדפות", + "library_label": "ספרייה", + "library_desc": "הסרטים וסדרות הטלוויזיה השמורים שלכם", + "watch_progress_label": "התקדמות צפייה", + "watch_progress_desc": "נקודות הזמן שבהן הפסקתם לצפות", + "addons_label": "תוספים", + "addons_desc": "תוספי Stremio מותקנים", + "plugins_label": "פלאגינים", + "plugins_desc": "הגדרות סורקים (Scrapers) מותאמות", + "trakt_label": "אינטגרציית Trakt", + "trakt_desc": "סנכרון נתונים ואסימוני אימות", + "app_settings_label": "הגדרות אפליקציה", + "app_settings_desc": "עיצוב, העדפות והגדרות מערכת", + "user_prefs_label": "העדפות משתמש", + "user_prefs_desc": "סדר תוספים והגדרות ממשק משתמש", + "catalog_settings_label": "הגדרות קטלוג", + "catalog_settings_desc": "מסנני קטלוג והעדפות", + "api_keys_label": "מפתחות API", + "api_keys_desc": "מפתחות MDBList ו-OpenRouter", + "action_create": "יצירת גיבוי", + "action_restore": "שחזור מגיבוי", + "section_info": "אודות גיבויים", + "info_text": "• ניתן להתאים מה יגובה באמצעות המתגים למעלה\n• קבצי הגיבוי נשמרים מקומית על המכשיר שלכם\n• שתפו את קובץ הגיבוי כדי להעביר נתונים בין מכשירים\n• שחזור יחליף את הנתונים הנוכחיים שלכם", + "alert_create_title": "יצירת גיבוי", + "alert_no_content": "לא נבחר תוכן לגיבוי.\n\nאנא הפעילו לפחות אפשרות אחת בסעיף אפשרויות הגיבוי.", + "alert_backup_created_title": "הגיבוי נוצר", + "alert_backup_created_msg": "הגיבוי שלכם נוצר ומוכן לשיתוף.", + "alert_backup_failed_title": "הגיבוי נכשל", + "alert_restore_confirm_title": "אישור שחזור", + "alert_restore_confirm_msg": "פעולה זו תשחזר נתונים מגיבוי שנוצר בתאריך {{date}}.\n\nפעולה זו תדרוס את הנתונים הנוכחיים שלכם. האם אתם בטוחים שברצונכם להמשיך?", + "alert_restore_complete_title": "השחזור הושלם", + "alert_restore_complete_msg": "הנתונים שוחזרו בהצלחה. אנא הפעילו מחדש את האפליקציה כדי לראות את השינויים.", + "alert_restore_failed_title": "השחזור נכשל", + "restart_app": "הפעלה מחדש", + "alert_restart_failed_title": "הפעלה מחדש נכשלה", + "alert_restart_failed_msg": "הפעלת האפליקציה מחדש נכשלה. אנא סגרו ופתחו את האפליקציה ידנית." + }, + "updates": { + "title": "עדכוני אפליקציה", + "status_checking": "בודק עדכונים...", + "status_available": "יש עדכון זמין!", + "status_downloading": "מוריד עדכון...", + "status_installing": "מתקין עדכון...", + "status_success": "העדכון הותקן בהצלחה!", + "status_error": "העדכון נכשל", + "status_ready": "מוכן לבדיקת עדכונים", + "action_check": "בדוק עדכונים", + "action_install": "התקן עדכון", + "release_notes": "הערות גרסה:", + "version": "גרסה:", + "last_checked": "בדיקה אחרונה:", + "current_version": "גרסה נוכחית:", + "current_release_notes": "הערות לגרסה הנוכחית:", + "github_release": "גרסת GITHUB", + "current": "נוכחית:", + "latest": "חדשה ביותר:", + "notes": "הערות:", + "view_release": "צפייה בגרסה", + "notification_settings": "הגדרות התראות", + "ota_alerts_label": "התראות עדכוני OTA", + "ota_alerts_desc": "הצגת התראות עבור עדכונים מהירים (Over-the-air)", + "major_alerts_label": "התראות על גרסאות ראשיות", + "major_alerts_desc": "הצגת התראות עבור גרסאות אפליקציה חדשות ב-GitHub", + "alert_disable_ota_title": "לבטל התראות עדכוני OTA?", + "alert_disable_ota_msg": "לא תקבלו יותר התראות אוטומטיות על עדכוני OTA.\n\n⚠️ אזהרה: שמירה על הגרסה העדכנית חשובה עבור:\n• תיקוני באגים ושיפורי יציבות\n• תכונות חדשות ושיפורים\n• מתן משוב ודיווחי קריסה מדויקים\n\nעדיין תוכלו לבדוק עדכונים ידנית במסך זה.", + "alert_disable_major_title": "לבטל התראות על גרסאות ראשיות?", + "alert_disable_major_msg": "לא תקבלו יותר התראות על עדכוני אפליקציה גדולים הדורשים התקנה מחדש.\n\n⚠️ אזהרה: עדכונים ראשיים כוללים לרוב:\n• תיקוני אבטחה קריטיים\n• שינויים משמעותיים הדורשים התקנה מחדש\n• תיקוני תאימות חשובים\n\nעדיין תוכלו לבדוק עדכונים ידנית.", + "warning_note": "השארת ההתראות פעילות מבטיחה שתקבלו תיקוני באגים ותוכלו לספק דיווחי קריסה מדויקים.", + "disable": "ביטול", + "alert_no_update_to_install": "אין עדכון זמין להתקנה", + "alert_install_failed": "התקנת העדכון נכשלה", + "alert_no_update_title": "אין עדכון", + "alert_update_applied_msg": "העדכון יוחל בהפעלה מחדש הבאה של האפליקציה" + }, + "player": { + "title": "נגן וידאו", + "section_selection": "בחירת נגן", + "internal_title": "נגן מובנה", + "internal_desc": "שימוש בנגן ברירת המחדל של האפליקציה", + "vlc_title": "VLC", + "vlc_desc": "פתיחת סטרימים בנגן VLC", + "infuse_title": "Infuse", + "infuse_desc": "פתיחת סטרימים בנגן Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "פתיחת סטרימים בנגן OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "פתיחת סטרימים בנגן VidHub", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "פתיחת סטרימים ב-Infuse דרך LiveContainer", + "external_title": "נגן חיצוני", + "external_desc": "פתיחת סטרימים בנגן הוידאו המועדף עליכם", + "section_playback": "אפשרויות ניגון", + "skip_intro_settings_title": "דילוג על פתיח", + "powered_by_introdb": "מופעל על ידי IntroDB", + "autoplay_title": "ניגון אוטומטי של המקור הראשון", + "autoplay_desc": "התחלת הסטרים הראשון המופיע ברשימה באופן אוטומטי.", + "resume_title": "המשך צפייה תמידי", + "resume_desc": "דילוג על שאלת ה-'המשך צפייה' והמשך אוטומטי מהנקודה האחרונה (אם נצפה פחות מ-85%).", + "engine_title": "מנוע נגן וידאו", + "engine_desc": "במצב אוטומטי נעשה שימוש ב-ExoPlayer עם גיבוי של MPV. פורמטים מסוימים כמו Dolby Vision ו-HDR עשויים לא להיתמך ב-MPV, לכן מומלץ להישאר על אוטומטי.", + "decoder_title": "מצב מפענח (Decoder)", + "decoder_desc": "כיצד הוידאו מפוענח. מומלץ לבחור באוטומטי לאיזון מיטבי.", + "gpu_title": "רינדור GPU", + "gpu_desc": "GPU-Next מציע ניהול צבעים ו-HDR טובים יותר.", + "external_downloads_title": "נגן חיצוני עבור הורדות", + "external_downloads_desc": "ניגון תוכן שהורד בנגן חיצוני מועדף.", + "restart_required": "נדרשת הפעלה מחדש", + "restart_msg_decoder": "אנא הפעילו מחדש את האפליקציה כדי ששינוי המפענח ייכנס לתוקף.", + "restart_msg_gpu": "אנא הפעילו מחדש את האפליקציה כדי ששינוי מצב ה-GPU ייכנס לתוקף.", + "option_auto": "אוטומטי", + "option_auto_desc_engine": "ExoPlayer + גיבוי MPV", + "option_mpv": "MPV", + "option_mpv_desc": "MPV בלבד", + "option_auto_desc_decoder": "איזון מיטבי", + "option_sw": "SW", + "option_sw_desc": "תוכנה (Software)", + "option_hw": "HW", + "option_hw_desc": "חומרה (Hardware)", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "חומרה מלאה", + "option_gpu_desc": "סטנדרטי", + "option_gpu_next_desc": "מתקדם" + }, + "plugins": { + "title": "תוספים (Plugins)", + "enable_title": "הפעלת תוספים", + "enable_desc": "הפעלת מנוע התוספים כדי לאתר מקורות מדיה חיצוניים", + "repo_config_title": "הגדרות מאגר (Repository)", + "repo_config_desc": "ניהול מאגרי תוספים חיצוניים. ניתן להפעיל או לכבות כל מאגר להלן.", + "your_repos": "מאגרים", + "your_repos_desc": "הגדרת מקורות חיצוניים עבור תוספים.", + "add_repo_button": "הוספת מאגר", + "refresh": "רענון", + "remove": "הסרה", + "enabled": "פעיל", + "disabled": "כבוי", + "updating": "מעדכן...", + "success": "הצלחנו", + "error": "שגיאה", + "alert_repo_added": "המאגר נוסף והתוספים נטענו בהצלחח", + "alert_repo_saved": "כתובת המאגר נשמרה בהצלחה", + "alert_repo_refreshed": "המאגר רוענן בהצלחה", + "alert_invalid_url": "פורמט כתובת (URL) לא תקין", + "alert_plugins_cleared": "כל התוספים הוסרו", + "alert_cache_cleared": "מטמון המאגרים נוקה בהצלחה", + "unknown": "לא ידוע", + "active": "פעיל", + "available": "זמין", + "platform_disabled": "פלטפורמה כבויה", + "limited": "מוגבל", + "clear_all": "הסרת כל התוספים", + "clear_all_desc": "האם אתם בטוחים שברצונכם להסיר את כל התוספים המותקנים? לא ניתן לבטל פעולה זו.", + "clear_cache": "ניקוי מטמון מאגרים", + "clear_cache_desc": "פעולה זו תחמוק את כתובת המאגר ותנקה את כל נתוני התוספים השמורים. תצטרכו להזין מחדש את כתובת המאגר.", + "add_new_repo": "הוספת מאגר חדש", + "available_plugins": "תוספים זמינים ({{count}})", + "placeholder": "חיפוש תוספים...", + "all": "הכל", + "filter_all": "כל הסוגים", + "filter_movies": "סרטים", + "filter_tv": "סדרות טלוויזיה", + "enable_all": "הפעלת הכל", + "disable_all": "ביטול הכל", + "no_plugins_found": "לא נמצאו תוספים", + "no_plugins_available": "אין תוספים זמינים", + "no_match_desc": "לא נמצאו תוספים התואמים ל-\"{{query}}\". נסו מונח חיפוש אחר.", + "configure_repo_desc": "הגדירו מאגר למעלה כדי לצפות בתוספים זמינים.", + "clear_search": "ניקוי חיפוש", + "no_external_player": "אין נגן חיצוני", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "הדביקו את ה-token של ShowBox כאן", + "save": "שמירה", + "clear": "ניקוי", + "additional_settings": "הגדרות נוספות", + "enable_url_validation": "הפעלת אימות כתובת (URL)", + "url_validation_desc": "אימות כתובות מדיה לפני הצגתן (עשוי להאט את התוצאות אך משפר אמינות)", + "group_streams": "קיבוץ מקורות תוספים", + "group_streams_desc": "כאשר פעיל, המקורות מקובצים לפי מאגר. כשר כבוי, כל תוסף מופיע כספק נפרד.", + "sort_quality": "מיון לפי איכות תחילה", + "sort_quality_desc": "כאשר פעיל, המקורות ממוינים לפי איכות. זמין רק כאשר קיבוץ המקורות מופעל.", + "show_logos": "הצגת לוגו התוסף", + "show_logos_desc": "הצגת לוגו התוסף לצד קישורי המדיה במסך המקורות.", + "quality_filtering": "סינון איכות", + "quality_filtering_desc": "החרגת רזולוציות וידאו ספציפיות מתוצאות החיפוש. לחצו על איכות כדי להחריג אותה.", + "excluded_qualities": "איכויות שהוחרגו:", + "language_filtering": "סינון שפה", + "language_filtering_desc": "החרגת שפות ספציפיות מתוצאות החיפוש. לחצו על שפה כדי להחריג אותה.", + "note": "הערה:", + "language_filtering_note": "מסנן זה חל רק על ספקים הכוללים מידע על שפה. הוא אינו משפיע על ספקים אחרים.", + "excluded_languages": "שפות שהוחרגו:", + "about_title": "אודות תוספים", + "about_desc_1": "תוספים הם רכיבים מודולריים שמתאימים תוכן מפרוטוקולים חיצוניים שונים. הם רצים מקומית על המכשיר שלכם וניתנים להתקנה ממאגרים מהימנים.", + "about_desc_2": "תוספים המסומנים כ-\"מוגבלים\" עשויים לדרוש הגדרות חיצוניות ספציפיות.", + "help_title": "הגדרת תוספים", + "help_step_1": "1. **הפעלת תוספים** - הפעילו את המתג הראשי", + "help_step_2": "2. **הוספת מאגר** - הוסיפו כתובת מאגר (URL) תקינה", + "help_step_3": "3. **רענון מאגר** - טעינת התוספים הזמינים", + "help_step_4": "4. **הפעלה** - הפעילו את התוספים שבהם תרצו להשתמש", + "got_it": "הבנתי!", + "repo_format_hint": "פורמט: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "ביטול", + "add": "הוספה" + }, + "theme": { + "title": "ערכות נושא (Themes)", + "select_theme": "בחירת ערכת נושא", + "create_custom": "יצירת ערכה מותאמת אישית", + "options": "אפשרויות", + "use_dominant_color": "שימוש בצבע הדומיננטי מהפוסטר", + "categories": { + "all": "כל הערכות", + "dark": "ערכות כהות", + "colorful": "צבעוני", + "custom": "הערכות שלי" + }, + "editor": { + "theme_name_placeholder": "שם ערכת הנושא", + "save": "שמירה", + "primary": "ראשי", + "secondary": "משני", + "background": "רקע", + "invalid_name_title": "שם לא תקין", + "invalid_name_msg": "אנא הזינו שם תקין לערכת הנושא" + }, + "alerts": { + "delete_title": "מחיקת ערכת נושא", + "delete_msg": "האם אתם בטוחים שברצונכם למחוק את \"{{name}}\"?", + "ok": "אישור", + "delete": "מחיקה", + "cancel": "ביטול", + "back": "הגדרות" + } + }, + "legal": { + "title": "משפטי והצהרת אחריות", + "intro_title": "מהות האפליקציה", + "intro_text": "Nuvio היא נגן מדיה ואפליקציה לניהול מטא-דאטה. היא משמשת אך ורק כממשק צד-לקוח לדפדוף במידע זמין לציבור (סרטים, סדרות וכו') ולניגון קבצי מדיה המסופקים על ידי המשתמש או תוספי צד-שלישי. Nuvio עצמה אינה מארחת, מאחסנת, מפיצה או מקטלגת תוכן מדיה כלשהו.", + "extensions_title": "תוספי צד-שלישי", + "extensions_text": "Nuvio משתמשת בארכיטקטורה הניתנת להרחבה המאפשרת למשתמשים להתקין תוספי צד-שלישי. תוספים אלו מפותחים ומתוחזקים על ידי מפתחים עצמאיים שאינם קשורים ל-Nuvio. אין לנו שליטה על התוכן, החוקיות או הפונקציונליות של תוספי צד-שלישי כלשהם, ואנו לא נושאים באחריות לגביהם.", + "user_resp_title": "אחריות המשתמש", + "user_resp_text": "המשתמשים אחראים בלעדית לתוספים שהם מתקינים ולתוכן שאליו הם ניגשים. בשימוש באפליקציה זו, אתם מסכימים לוודא שיש לכם את הזכות החוקית לגשת לכל תוכן שבו אתם צופים באמצעות Nuvio. מפתחי Nuvio אינם תומכים או מעודדים הפרת זכויות יוצרים.", + "dmca_title": "זכויות יוצרים ו-DMCA", + "dmca_text": "אנו מכבדים את זכויות הקניין הרוחני של אחרים. כיוון ש-Nuvio אינה מארחת תוכן, אין ביכולתנו להסיר תוכן מהאינטרנט. עם זאת, אם אתם סבורים שממשק האפליקציה עצמו מפר את זכויותיכם, אנא צרו עמנו קשר.", + "warranty_title": "העדר אחריות", + "warranty_text": "תוכנה זו מסופקת \"כפי שהיא\" (As-Is), ללא אחריות מכל סוג שהוא. בשום מקרה המפתחים או בעלי זכויות היוצרים לא יהיו אחראים לכל תביעה, נזק או חבות אחרת הנובעת מהשימוש בתוכנה זו." + }, + "plugin_tester": { + "title": "בודק תוספים (Plugin Tester)", + "subtitle": "הרצת סורקים ובדיקת לוגים בזמן אמת", + "tabs": { + "individual": "אישי", + "repo": "בודק מאגר", + "code": "קוד", + "logs": "לוגים", + "results": "תוצאות" + }, + "common": { + "error": "שגיאה", + "success": "הצלחה", + "movie": "סרט", + "tv": "סדרה", + "tmdb_id": "TMDB ID", + "season": "עונה", + "episode": "פרק", + "running": "מריץ...", + "run_test": "הפעלת בדיקה", + "play": "נגן", + "done": "בוצע", + "test": "בדיקה", + "testing": "בודק..." + }, + "individual": { + "load_from_url": "טעינה מכתובת (URL)", + "load_from_url_desc": "הדביקו כתובת גולמית מ-GitHub או IP מקומי ולחצו על הורדה.", + "enter_url_error": "אנא הזינו כתובת URL", + "code_loaded": "הקוד נטען בהצלחה מהכתובת", + "fetch_error": "הטעינה נכשלה: {{message}}", + "no_code_error": "אין קוד להרצה", + "plugin_code": "קוד התוסף", + "focus_editor": "מיקוד בעורך הקוד", + "code_placeholder": "// הדביקו את קוד התוסף כאן...", + "test_parameters": "פרמטרים לבדיקה", + "no_logs": "אין עדיין לוגים. הריצו בדיקה כדי לראות פלט.", + "no_streams": "לא נמצאו מקורות (Streams) עדיין.", + "streams_found": "נמצא מקור {{count}}", + "streams_found_plural": "נמצאו {{count}} מקורות", + "tap_play_hint": "לחצו על 'נגן' כדי לבדוק את המקור בנגן המובנה.", + "unnamed_stream": "מקור ללא שם", + "quality": "איכות: {{quality}}", + "size": "גודל: {{size}}", + "url_label": "כתובת: {{url}}", + "headers_info": "Headers: {{count}} כותרות מותאמות", + "find_placeholder": "חיפוש בקוד...", + "edit_code_title": "עריכת קוד", + "no_url_stream_error": "לא נמצאה כתובת למקור זה" + }, + "repo": { + "title": "בודק מאגרים", + "description": "טעינת מאגר (כתובת מקומית או GitHub raw) ובדיקת כל ספק.", + "enter_repo_url_error": "אנא הזינו כתובת מאגר (URL)", + "invalid_url_title": "כתובת לא תקינה", + "invalid_url_msg": "השתמשו בכתובת raw של GitHub או כתובת http(s) מקומית.\n\nדוגמה:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "לא ניתן היה ליצור כתובת מניפסט מהקלט", + "manifest_fetch_error": "טעינת המניפסט נכשלה", + "repo_manifest_fetch_error": "טעינת מניפסט המאגר נכשלה", + "missing_filename": "שם קובץ חסר במניפסט", + "scraper_build_error": "לא ניתן היה ליצור כתובת לסורק (Scraper)", + "download_scraper_error": "הורדת הסורק נכשלה", + "test_failed": "הבדיקה נכשלה", + "test_parameters": "פרמטרים לבדיקת מאגר", + "test_parameters_desc": "פרמטרים אלו משמשים רק עבור בודק המאגרים.", + "using_info": "משתמש ב: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "משתמש ב: {{mediaType}} • TMDB {{tmdbId}} • עונה {{season}} פרק {{episode}}", + "providers_title": "ספקים (Providers)", + "repository_default": "מאגר", + "providers_count": "{{count}} ספקים", + "fetch_hint": "טענו מאגר כדי להציג את רשימת הספקים.", + "test_all": "בדיקת הכל", + "status_running": "רץ", + "status_ok": "תקין ({{count}})", + "status_ok_empty": "תקין (0)", + "status_failed": "נכשל", + "status_idle": "ממתין", + "tried_url": "נוסה: {{url}}", + "provider_logs": "לוגים של הספק", + "no_logs_captured": "לא נלכדו לוגים." + } + } +} \ No newline at end of file From 68621a8ca0031cfc0f9fec4f91e8182cbf84f552 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 16:53:01 +0100 Subject: [PATCH 010/285] Added Hebrew (wrong format and destination fixed) --- src/i18n/locales/he.json | 1419 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1419 insertions(+) create mode 100644 src/i18n/locales/he.json diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json new file mode 100644 index 00000000..5a638b3a --- /dev/null +++ b/src/i18n/locales/he.json @@ -0,0 +1,1419 @@ +{ + "common": { + "loading": "טוען...", + "cancel": "ביטול", + "save": "שמירה", + "delete": "מחיקה", + "edit": "עריכה", + "search": "חיפוש", + "error": "שגיאה", + "success": "הצלחה", + "ok": "אישור", + "unknown": "לא ידוע", + "retry": "ניסיון חוזר", + "try_again": "נסה שנית", + "go_back": "חזור", + "settings": "הגדרות", + "close": "סגירה", + "enable": "הפעלה", + "disable": "השבתה", + "show_more": "הצג עוד", + "show_less": "הצג פחות", + "load_more": "טען עוד", + "unknown_date": "תאריך לא ידוע", + "anonymous_user": "משתמש אנונימי", + "time": { + "now": "ממש עכשיו", + "minutes_ago": "לפני {{count}} דק'", + "hours_ago": "לפני {{count}} שע'", + "days_ago": "לפני {{count}} ימים" + }, + "days_short": { + "sun": "א'", + "mon": "ב'", + "tue": "ג'", + "wed": "ד'", + "thu": "ה'", + "fri": "ו'", + "sat": "ש'" + }, + "email": "אימייל", + "status": "סטטוס" + }, + "home": { + "categories": { + "movies": "סרטים", + "series": "סדרות", + "channels": "ערוצים" + }, + "movies": "סרטים", + "tv_shows": "תוכניות טלוויזיה", + "load_more_catalogs": "טען קטלוגים נוספים", + "no_content": "אין תוכן זמין", + "add_catalogs": "הוספת קטלוגים", + "sign_in_available": "ניתן להתחבר", + "sign_in_desc": "ניתן להתחבר בכל עת דרך הגדרות ← חשבון", + "view_all": "צפייה בהכל", + "this_week": "השבוע", + "upcoming": "בקרוב", + "recently_released": "שוחררו לאחרונה", + "no_scheduled_episodes": "סדרות ללא פרקים מתוזמנים", + "check_back_later": "בדקו שוב מאוחר יותר", + "continue_watching": "המשך צפייה", + "up_next": "הבא בתור", + "up_next_caps": "הבא בתור", + "released": "שוחרר", + "new": "חדש", + "tba": "טרם פורסם", + "new_episodes": "{{count}} פרקים חדשים", + "season_short": "עונה {{season}}", + "episode_short": "פרק {{episode}}", + "season": "עונה {{season}}", + "episode": "פרק {{episode}}", + "movie": "סרט", + "series": "סדרה", + "tv_show": "תוכנית טלוויזיה", + "percent_watched": "{{percent}}% נצפו", + "view_details": "לפרטים נוספים", + "remove": "הסרה", + "play": "נגן", + "play_now": "נגן עכשיו", + "resume": "המשך", + "info": "מידע", + "more_info": "מידע נוסף", + "my_list": "הרשימה שלי", + "save": "שמירה", + "saved": "נשמר", + "retry": "ניסיון חוזר", + "install_addons": "התקנת תוספים", + "settings": "הגדרות", + "no_featured_content": "אין תוכן מומלץ", + "couldnt_load_featured": "לא ניתן לטעון תוכן מומלץ", + "no_featured_desc": "התקינו תוספים עם קטלוגים או שנו את מקור התוכן בהגדרות.", + "load_error_desc": "אירעה שגיאה בטעינת התוכן המומלץ. בדקו את החיבור ונסו שוב.", + "no_featured_available": "אין תוכן מומלץ זמין", + "no_description": "אין תיאור זמין" + }, + "navigation": { + "home": "בית", + "library": "ספרייה", + "search": "חיפוש", + "downloads": "הורדות", + "settings": "הגדרות" + }, + "search": { + "title": "חיפוש", + "recent_searches": "חיפושים אחרונים", + "discover": "גילוי", + "movies": "סרטים", + "tv_shows": "תוכניות טלוויזיה", + "select_catalog": "בחירת קטלוג", + "all_genres": "כל הז'אנרים", + "discovering": "מגלה תוכן...", + "show_more": "הצג עוד ({{count}})", + "no_content_found": "לא נמצא תוכן", + "try_different": "נסו ז'אנר או קטלוג אחר", + "select_catalog_desc": "בחרו קטלוג כדי להתחיל לגלות", + "tap_catalog_desc": "לחצו על שבב הקטלוג שלמעלה כדי להתחיל", + "placeholder": "חיפוש סרטים, סדרות...", + "keep_typing": "המשיכו להקליד...", + "type_characters": "הקלידו לפחות 2 תווים לחיפוש", + "no_results": "לא נמצאו תוצאות", + "try_keywords": "נסו מילות מפתח אחרות או בדקו את האיות", + "select_type": "בחירת סוג", + "browse_movies": "דפדוף בקטלוג סרטים", + "browse_tv": "דפדוף בקטלוג סדרות טלוויזיה", + "select_genre": "בחירת ז'אנר", + "show_all_content": "הצגת כל התוכן", + "genres_count": "{{count}} ז'אנרים" + }, + "library": { + "title": "ספרייה", + "watched": "נצפה", + "continue": "המשך", + "watchlist": "רשימת צפייה", + "collection": "אוסף", + "rated": "דורג", + "items": "פריטים", + "trakt_collections": "אוספי Trakt", + "trakt_collection": "אוסף Trakt", + "no_trakt": "אין אוספי Trakt", + "no_trakt_desc": "אוספי ה-Trakt שלך יופיעו כאן ברגע שתתחיל להשתמש ב-Trakt", + "load_collections": "טעינת אוספים", + "empty_folder": "אין תוכן ב{{folder}}", + "empty_folder_desc": "אוסף זה ריק", + "refresh": "רענון", + "no_movies": "אין עדיין סרטים", + "no_series": "אין עדיין סדרות", + "no_content": "אין עדיין תוכן", + "add_content_desc": "הוסיפו תוכן לספרייה כדי לראות אותו כאן", + "find_something": "מצאו משהו לצפות בו", + "removed_from_library": "הוסר מהספרייה", + "item_removed": "הפריט הוסר מהספרייה שלך", + "failed_update_library": "עדכון הספרייה נכשל", + "unable_remove": "לא ניתן להסיר את הפריט מהספרייה", + "marked_watched": "סומן כנצפה", + "marked_unwatched": "סומן כלא נצפה", + "item_marked_watched": "הפריט סומן כנצפה", + "item_marked_unwatched": "הפריט סומן כלא נצפה", + "failed_update_watched": "עדכון סטטוס צפייה נכשל", + "unable_update_watched": "לא ניתן לעדכן את סטטוס הצפייה", + "added_to_library": "נוסף לספרייה", + "item_added": "נוסף לספרייה המקומית שלך", + "add_to_library": "הוספה לספרייה", + "remove_from_library": "הסרה מהספרייה", + "mark_watched": "סימון כנצפה", + "mark_unwatched": "סימון כלא נצפה", + "share": "שיתוף", + "add_to_watchlist": "הוספה לרשימת הצפייה ב-Trakt", + "remove_from_watchlist": "הסרה מרשימת הצפייה ב-Trakt", + "added_to_watchlist": "נוסף לרשימת הצפייה", + "added_to_watchlist_desc": "נוסף לרשימת הצפייה שלך ב-Trakt", + "removed_from_watchlist": "הוסר מרשימת הצפייה", + "removed_from_watchlist_desc": "הוסר מרשימת הצפייה שלך ב-Trakt", + "add_to_collection": "הוספה לאוסף Trakt", + "remove_from_collection": "הסרה מאוסף Trakt", + "added_to_collection": "נוסף לאוסף", + "added_to_collection_desc": "נוסף לאוסף שלך ב-Trakt", + "removed_from_collection": "הוסר מהאוסף", + "removed_from_collection_desc": "הוסר מהאוסף שלך ב-Trakt" + }, + "metadata": { + "unable_to_load": "לא ניתן לטעון תוכן", + "error_code": "קוד שגיאה: {{code}}", + "content_not_found": "תוכן לא נמצא", + "content_not_found_desc": "תוכן זה אינו קיים או שהוסר.", + "server_error": "שגיאת שרת", + "server_error_desc": "השרת אינו זמין באופן זמני. נסו שוב מאוחר יותר.", + "bad_gateway": "שגיאת שער (Bad gateway)", + "bad_gateway_desc": "השרת חווה בעיות. נסו שוב מאוחר יותר.", + "service_unavailable": "שירות לא זמין", + "service_unavailable_desc": "השירות מושבת כעת לצורכי תחזוקה. נסו שוב מאוחר יותר.", + "too_many_requests": "יותר מדי בקשות", + "too_many_requests_desc": "שלחתם יותר מדי בקשות. המתינו רגע ונסו שוב.", + "request_timeout": "פסק זמן לבקשה", + "request_timeout_desc": "הבקשה ארכה זמן רב מדי. נסו שוב.", + "network_error": "שגיאת רשת", + "network_error_desc": "בדקו את חיבור האינטרנט ונסו שוב.", + "auth_error": "שגיאת אימות", + "auth_error_desc": "בדקו את הגדרות החשבון ונסו שוב.", + "access_denied": "גישה נדחתה", + "access_denied_desc": "אין לכם הרשאה לגשת לתוכן זה.", + "connection_error": "שגיאת חיבור", + "streams_unavailable": "מקורות סטרימינג לא זמינים", + "streams_unavailable_desc": "מקורות סטרימינג אינם זמינים כעת. נסו שוב מאוחר יותר.", + "unknown_error": "שגיאה לא ידועה", + "something_went_wrong": "משהו השתבש. נסו שוב.", + "cast": "צוות שחקנים", + "more_like_this": "עוד תכנים דומים", + "collection": "אוסף", + "episodes": "פרקים", + "seasons": "עונות", + "posters": "פוסטרים", + "banners": "באנרים", + "specials": "פרקים מיוחדים", + "season_number": "עונה {{number}}", + "episode_count": "פרק {{count}}", + "episode_count_plural": "{{count}} פרקים", + "no_episodes": "אין פרקים זמינים", + "no_episodes_for_season": "אין פרקים זמינים לעונה {{season}}", + "episodes_not_released": "ייתכן שהפרקים טרם שוחררו", + "no_description": "אין תיאור זמין", + "episode_label": "פרק {{number}}", + "watch_again": "צפייה חוזרת", + "completed": "הושלם", + "play_episode": "נגן ע'{{season}} פ'{{episode}}", + "play": "נגן", + "watched": "נצפה", + "watched_on_trakt": "נצפה ב-Trakt", + "synced_with_trakt": "סונכרן עם Trakt", + "saved": "נשמר", + "director": "במאי", + "directors": "במאים", + "creator": "יוצר", + "creators": "יוצרים", + "production": "הפקה", + "network": "רשת שידור", + "mark_watched": "סימון כנצפה", + "mark_unwatched": "סימון כלא נצפה", + "marking": "מסמן...", + "removing": "מסיר...", + "unmark_season": "ביטול סימון עונה {{season}}", + "mark_season": "סימון עונה {{season}} כנצפתה", + "resume": "המשך", + "spoiler_warning": "אזהרת ספוילר", + "spoiler_warning_desc": "תגובה זו מכילה ספוילרים. האם אתם בטוחים שברצונכם לחשוף אותה?", + "cancel": "ביטול", + "reveal_spoilers": "חשיפת ספוילרים", + "movie_details": "פרטי הסרט", + "show_details": "פרטי הסדרה", + "tagline": "שורת מחץ", + "status": "סטטוס", + "release_date": "תאריך יציאה", + "runtime": "זמן הרצה", + "budget": "תקציב", + "revenue": "הכנסות", + "origin_country": "ארץ מקור", + "original_language": "שפת מקור", + "first_air_date": "תאריך שידור ראשון", + "last_air_date": "תאריך שידור אחרון", + "total_episodes": "סה\"כ פרקים", + "episode_runtime": "אורך פרק", + "created_by": "נוצר על ידי", + "backdrop_gallery": "גלריית תמונות רקע", + "loading_episodes": "טוען פרקים...", + "no_episodes_available": "אין פרקים זמינים", + "play_next": "נגן ע'{{season}} פ'{{episode}}", + "play_next_episode": "נגן את הפרק הבא", + "save": "שמירה", + "percent_watched": "{{percent}}% נצפו", + "percent_watched_trakt": "{{percent}}% נצפו ({{traktPercent}}% ב-Trakt)", + "synced_with_trakt_progress": "סונכרן עם Trakt", + "using_trakt_progress": "משתמש בהתקדמות מ-Trakt", + "added_to_collection_hero": "נוסף לאוסף", + "added_to_collection_desc_hero": "נוסף לאוסף שלך ב-Trakt", + "removed_from_collection_hero": "הוסר מהאוסף", + "removed_from_collection_desc_hero": "הוסר מהאוסף שלך ב-Trakt", + "mark_as_watched": "סימון כנצפה", + "mark_as_unwatched": "סימון כלא נצפה" + }, + "cast": { + "biography": "ביוגרפיה", + "known_for": "מוכר בזכות", + "personal_info": "מידע אישי", + "born_in": "נולד ב{{place}}", + "filmography": "פילמוגרפיה", + "also_known_as": "ידוע גם כ-", + "no_info_available": "אין מידע נוסף זמין", + "as_character": "בתור {{character}}", + "loading_details": "טוען פרטים...", + "years_old": "בן {{age}}", + "view_filmography": "צפייה בפילמוגרפיה", + "filter": "סינון", + "sort_by": "מיון לפי", + "sort_popular": "פופולרי", + "sort_latest": "הכי חדש", + "sort_upcoming": "בקרוב", + "upcoming_badge": "בקרוב", + "coming_soon": "בקרוב", + "filmography_count": "פילמוגרפיה • {{count}} כותרים", + "loading_filmography": "טוען פילמוגרפיה...", + "load_more_remaining": "טען עוד ({{count}} נותרו)", + "alert_error_title": "שגיאה", + "alert_error_message": "לא ניתן לטעון את \"{{title}}\". נסו שוב מאוחר יותר.", + "alert_ok": "אישור", + "no_upcoming": "אין כותרים עתידיים זמינים עבור שחקן זה", + "no_content": "אין תוכן זמין עבור שחקן זה", + "no_movies": "אין סרטים זמינים עבור שחקן זה", + "no_tv": "אין תוכניות טלוויזיה זמינות עבור שחקן זה" + }, + "comments": { + "title": "תגובות Trakt", + "spoiler_warning": "⚠️ תגובה זו מכילה ספוילרים. לחצו כדי לחשוף.", + "spoiler": "ספוילר", + "contains_spoilers": "מכיל ספוילרים", + "reveal": "חשיפה", + "vip": "VIP", + "unavailable": "תגובות לא זמינות", + "no_comments": "אין עדיין תגובות ב-Trakt", + "not_in_database": "ייתכן שתוכן זה עדיין אינו מופיע במאגר של Trakt", + "check_trakt": "בדקו ב-Trakt" + }, + "trailers": { + "title": "טריילרים", + "official_trailers": "טריילרים רשמיים", + "official_trailer": "טריילר רשמי", + "teasers": "טיזרים", + "teaser": "טיזר", + "clips_scenes": "קליפים וסצנות", + "clip": "קליפ", + "featurettes": "מאחורי הקלעים", + "featurette": "סרטון קצר", + "behind_the_scenes": "מאחורי הקלעים", + "no_trailers": "אין טריילרים זמינים", + "unavailable": "טריילר לא זמין", + "unavailable_desc": "לא ניתן לטעון טריילר זה כרגע. נסו שוב מאוחר יותר.", + "unable_to_play": "לא ניתן לנגן את הטריילר. נסו שוב.", + "watch_on_youtube": "צפייה ב-YouTube" + }, + "catalog": { + "no_content_found": "לא נמצא תוכן", + "no_content_filters": "לא נמצא תוכן עבור המסננים שנבחרו", + "loading_content": "טוען תוכן...", + "back": "חזור", + "in_theaters": "בקולנוע", + "all": "הכל", + "failed_tmdb": "טעינת תוכן מ-TMDB נכשלה", + "movies": "סרטים", + "tv_shows": "תוכניות טלוויזיה", + "channels": "ערוצים" + }, + "streams": { + "back_to_episodes": "חזרה לפרקים", + "back_to_info": "חזרה למידע", + "fetching_from": "מביא נתונים מ-:", + "no_sources_available": "אין מקורות סטרימינג זמינים", + "add_sources_desc": "אנא הוסיפו מקורות סטרימינג בהגדרות", + "add_sources": "הוספת מקורות", + "finding_streams": "מחפש סטרימים זמינים...", + "finding_best_stream": "מחפש את הסטרים הטוב ביותר לניגון אוטומטי...", + "still_fetching": "עדיין מחפש סטרימים...", + "no_streams_available": "אין סטרימים זמינים", + "starting_best_stream": "מתחיל את הסטרים הטוב ביותר...", + "loading_more_sources": "טוען מקורות נוספים..." + }, + "player_ui": { + "via": "דרך {{name}}", + "audio_tracks": "רצועות שמע", + "no_audio_tracks": "אין רצועות שמע זמינות", + "playback_speed": "מהירות ניגון", + "on_hold": "בהמתנה", + "playback_error": "שגיאת ניגון", + "unknown_error": "אירעה שגיאה לא ידועה במהלך הניגון.", + "copy_error": "העתקת פרטי שגיאה", + "copied_to_clipboard": "הועתק ללוח", + "dismiss": "סגירה", + "continue_watching": "המשך צפייה", + "start_over": "התחל מהתחלה", + "resume": "המשך", + "change_source": "החלפת מקור", + "switching_source": "מחליף מקור...", + "no_sources_found": "לא נמצאו מקורות", + "sources": "מקורות", + "finding_sources": "מחפש מקורות...", + "unknown_source": "מקור לא ידוע", + "sources_limited": "המקורות עשויים להיות מוגבלים עקב שגיאות ספק.", + "episodes": "פרקים", + "specials": "פרקים מיוחדים", + "season": "עונה {{season}}", + "stream": "סטרים {{number}}", + "subtitles": "כתוביות", + "built_in": "מובנה", + "addons": "תוספים", + "style": "סגנון", + "none": "ללא", + "search_online_subtitles": "חיפוש כתוביות באינטרנט", + "preview": "תצוגה מקדימה", + "quick_presets": "הגדרות מהירות", + "default": "ברירת מחדל", + "yellow": "צהוב", + "high_contrast": "ניגודיות גבוהה", + "large": "גדול", + "core": "ליבה", + "font_size": "גודל גופן", + "show_background": "הצגת רקע", + "advanced": "מתקדם", + "position": "מיקום", + "text_color": "צבע טקסט", + "align": "יישור", + "bottom_offset": "מרחק מהתחתית", + "background_opacity": "אטימות רקע", + "text_shadow": "צל טקסט", + "on": "פעיל", + "off": "כבוי", + "outline_color": "צבע קווי מתאר", + "outline": "קווי מתאר", + "outline_width": "עובי קווי מתאר", + "letter_spacing": "מרווח בין אותיות", + "line_height": "גובה שורה", + "timing_offset": "היסט תזמון (שניות)", + "visual_sync": "סנכרון ויזואלי", + "timing_hint": "הזיזו את הכתוביות מוקדם יותר (-) או מאוחר יותר (+) כדי לסנכרן במידת הצורך.", + "reset_defaults": "איפוס לברירת מחדל", + "mark_intro_start": "סימון תחילת פתיח", + "mark_intro_end": "סימון סוף פתיח", + "intro_start_marked": "תחילת הפתיח סומנה", + "intro_submitted": "הפתיח נשלח בהצלחה", + "intro_submit_failed": "שליחת הפתיח נכשלה" + }, + "downloads": { + "title": "הורדות", + "no_downloads": "אין עדיין הורדות", + "no_downloads_desc": "תוכן שהורד יופיע כאן לצפייה במצב לא מקוון", + "explore": "גילוי תוכן", + "path_copied": "הנתיב הועתק", + "path_copied_desc": "נתיב הקובץ המקומי הועתק ללוח", + "copied": "הועתק", + "incomplete": "הורדה לא הושלמה", + "incomplete_desc": "ההורדה עדיין לא הסתיימה", + "not_available": "לא זמין", + "not_available_desc": "נתיב הקובץ המקומי זמין רק לאחר סיום ההורדה.", + "status_downloading": "מוריד", + "status_completed": "הושלם", + "status_paused": "מושהה", + "status_error": "שגיאה", + "status_queued": "בתור", + "status_unknown": "לא ידוע", + "provider": "ספק", + "streaming_playlist_warning": "ייתכן שלא יתנגן - פלייליסט סטרימינג", + "remaining": "נותרו", + "not_ready": "הורדה לא מוכנה", + "not_ready_desc": "אנא המתינו לסיום ההורדה.", + "filter_all": "הכל", + "filter_active": "פעיל", + "filter_done": "הושלם", + "filter_paused": "מושהה", + "no_filter_results": "אין הורדות מסוג {{filter}}", + "try_different_filter": "נסו לבחור מסנן אחר", + "limitations_title": "מגבלות הורדה", + "limitations_msg": "• קבצים קטנים מ-1MB הם בדרך כלל פלייליסטים של סטרימינג (M3U8) ולא ניתן להוריד אותם לצפייה לא מקוונת. אלו עובדים רק בסטרימינג חי ומכילים קישורים למקטעי וידאו, ולא את תוכן הווידאו עצמו.", + "remove_title": "הסרת הורדה", + "remove_confirm": "להסיר את \"{{title}}\" {{season_episode}}?", + "cancel": "ביטול", + "remove": "הסרה" + }, + "addons": { + "title": "תוספים", + "reorder_mode": "מצב סידור מחדש", + "reorder_info": "לתוספים בראש הרשימה יש עדיפות גבוהה יותר בטעינת תוכן", + "add_addon_placeholder": "כתובת URL של התוסף", + "add_button": "הוספת תוסף", + "my_addons": "התוספים שלי", + "community_addons": "תוספי קהילה", + "no_addons": "אין תוספים מותקנים", + "uninstall_title": "הסרת תוסף", + "uninstall_message": "האם אתם בטוחים שברצונכם להסיר את {{name}}?", + "uninstall_button": "הסרה", + "install_success": "התוסף הותקן בהצלחה", + "install_error": "התקנת התוסף נכשלה", + "load_error": "טעינת התוספים נכשלה", + "fetch_error": "קבלת פרטי התוסף נכשלה", + "invalid_url": "אנא הכניסו כתובת URL חוקית", + "configure": "הגדרה", + "version": "גרסה: {{version}}", + "installed_addons": "תוספים מותקנים", + "reorder_drag_title": "גררו תוספים לשינוי הסדר", + "install": "התקנה", + "config_unavailable_title": "הגדרה לא זמינה", + "config_unavailable_msg": "לא ניתן היה לקבוע את כתובת ה-URL להגדרה עבור תוסף זה.", + "cannot_open_config_title": "לא ניתן לפתוח הגדרות", + "cannot_open_config_msg": "לא ניתן לפתוח את כתובת ההגדרות ({{url}}). ייתכן שלתוסף אין דף הגדרות.", + "description": "תיאור", + "supported_types": "סוגים נתמכים", + "catalogs": "קטלוגים", + "no_description": "אין תיאור זמין", + "overview": "סקירה כללית", + "no_categories": "אין קטגוריות", + "pre_installed": "מותקן מראש" + }, + "trakt": { + "title": "הגדרות Trakt", + "settings_title": "הגדרות Trakt", + "connect_title": "התחברות ל-Trakt", + "connect_desc": "סנכרנו את היסטוריית הצפייה, רשימת המעקב והאוסף שלכם עם Trakt.tv", + "sign_in": "התחברות ל-Trakt", + "sign_out": "התנתקות", + "sign_out_confirm": "האם אתם בטוחים שברצונכם להתנתק מחשבון ה-Trakt שלכם?", + "joined": "הצטרף ב-{{date}}", + "sync_settings_title": "הגדרות סנכרון", + "sync_info": "כאשר מחוברים ל-Trakt, כל ההיסטוריה מסונכרנת ישירות מה-API ואינה נכתבת לאחסון המקומי. רשימת ה-'המשך צפייה' משקפת את ההתקדמות הגלובלית שלכם ב-Trakt.", + "auto_sync_label": "סנכרון אוטומטי של התקדמות הניגון", + "auto_sync_desc": "סנכרון אוטומטי של התקדמות הצפייה ל-Trakt", + "import_history_label": "ייבוא היסטוריית צפייה", + "import_history_desc": "השתמשו ב-'סנכרן עכשיו' כדי לייבא את היסטוריית הצפייה וההתקדמות מ-Trakt", + "sync_now_button": "סנכרן עכשיו", + "display_settings_title": "הגדרות תצוגה", + "show_comments_label": "הצגת תגובות Trakt", + "show_comments_desc": "הצגת תגובות מ-Trakt במסכי המידע במידה וקיימות", + "maintenance_title": "בתחזוקה", + "maintenance_unavailable": "Trakt לא זמין", + "maintenance_desc": "האינטגרציה עם Trakt מושהית זמנית לצורכי תחזוקה. כל אפשרויות הסנכרון והאימות מושבתות עד לסיום התחזוקה.", + "maintenance_button": "השירות בתחזוקה", + "auth_success_title": "התחברת בהצלחה", + "auth_success_msg": "חשבון ה-Trakt שלך חובדר בהצלחה.", + "auth_error_title": "שגיאת אימות", + "auth_error_msg": "ההתחברות ל-Trakt נכשלה.", + "auth_error_generic": "אירעה שגיאה במהלך האימות.", + "sign_out_error": "ההתנתקות מ-Trakt נכשלה.", + "sync_complete_title": "הסנכרון הושלם", + "sync_success_msg": "התקדמות הצפייה סונכרנה בהצלחה עם Trakt.", + "sync_error_msg": "הסנכרון נכשל. אנא נסו שוב." + }, + "simkl": { + "title": "הגדרות Simkl", + "settings_title": "הגדרות Simkl", + "connect_title": "התחברות ל-Simkl", + "connect_desc": "סנכרנו את היסטוריית הצפייה ועקבו אחרי מה שאתם רואים", + "sign_in": "התחברות ל-Simkl", + "sign_out": "ניתוק", + "sign_out_confirm": "האם אתם בטוחים שברצונכם להתנתק מ-Simkl?", + "syncing_desc": "הפריטים שצפיתם בהם מסתנכרנים עם Simkl.", + "auth_success_title": "התחברת בהצלחה", + "auth_success_msg": "חשבון ה-Simkl שלך חובדר בהצלחה.", + "auth_error_title": "שגיאת אימות", + "auth_error_msg": "ההתחברות ל-Simkl נכשלה.", + "auth_error_generic": "אירעה שגיאה במהלך האימות.", + "sign_out_error": "הניתוק מ-Simkl נכשל.", + "config_error_title": "שגיאת הגדרה", + "config_error_msg": "חסר Simkl Client ID במשתני הסביבה.", + "conflict_title": "קונפליקט", + "conflict_msg": "לא ניתן להתחבר ל-Simkl בזמן ש-Trakt מחובר. אנא נתקו את Trakt תחילה.", + "disclaimer": "Nuvio אינה קשורה ל-Simkl." + }, + "tmdb_settings": { + "title": "הגדרות TMDb", + "metadata_enrichment": "העשרת מידע (Metadata)", + "metadata_enrichment_desc": "שפרו את המידע על התכנים בעזרת נתוני TMDb לקבלת פרטים עשירים יותר.", + "enable_enrichment": "הפעלת העשרה", + "enable_enrichment_desc": "משלים מידע מ-TMDb עבור צוות שחקנים, סיווג גיל, לוגואים/פוסטרים ופרטי הפקה.", + "localized_text": "טקסט מקומי", + "localized_text_desc": "קבלת שמות ותיאורים בשפה המועדפת עליכם מ-TMDb.", + "language": "שפה", + "change": "שינוי", + "logo_preview": "תצוגה מקדימה של לוגו", + "logo_preview_desc": "התצוגה מראה כיצד יופיעו לוגואים מקומיים בשפה שנבחרה.", + "example": "דוגמה:", + "no_logo": "אין לוגו זמין", + "enrichment_options": "אפשרויות העשרה", + "enrichment_options_desc": "שלטו באילו נתונים יימשכו מ-TMDb. אפשרויות כבויות ישתמשו בנתוני התוסף המקוריים.", + "cast_crew": "צוות שחקנים והפקה", + "cast_crew_desc": "שחקנים, במאים, כותבים כולל תמונות פרופיל", + "title_description": "שם ותיאור", + "title_description_desc": "שימוש בשם ובתיאור המקומיים של TMDb", + "title_logos": "לוגואים של כותרים", + "title_logos_desc": "עיצובי לוגו באיכות גבוהה", + "banners_backdrops": "באנרים ותמונות רקע", + "banners_backdrops_desc": "תמונות רקע ברזולוציה גבוהה", + "certification": "סיווג תוכן", + "certification_desc": "דירוגי גיל (PG-13, R, TV-MA וכדומה)", + "recommendations": "המלצות", + "recommendations_desc": "הצעות לתוכן דומה", + "episode_data": "נתוני פרקים", + "episode_data_desc": "תמונות ממוזערות של פרקים, מידע וגיבוי לסדרות טלוויזיה", + "season_posters": "פוסטרים של עונות", + "season_posters_desc": "תמונות פוסטר ספציפיות לכל עונה", + "production_info": "פרטי הפקה", + "production_info_desc": "רשתות שידור וחברות הפקה כולל לוגואים", + "movie_details": "פרטי סרט", + "movie_details_desc": "תקציב, הכנסות, זמן הרצה, שורת מחץ", + "tv_details": "פרטי סדרת טלוויזיה", + "tv_details_desc": "סטטוס, מספר עונות, רשתות, יוצרים", + "movie_collections": "אוספי סרטים", + "movie_collections_desc": "פרנצ'ייזים (מארוול, מלחמת הכוכבים וכדומה)", + "api_configuration": "הגדרות API", + "api_configuration_desc": "הגדירו את הגישה שלכם ל-API של TMDb עבור יכולות משופרות.", + "custom_api_key": "מפתח API אישי", + "custom_api_key_desc": "השתמשו במפתח API משלכם לביצועים טובים יותר ומגבלות קצב ייעודיות.", + "custom_key_active": "מפתח API אישי פעיל", + "api_key_required": "נדרש מפתח API", + "api_key_placeholder": "הדביקו את מפתח ה-API שלכם (v3)", + "how_to_get_key": "איך משיגים מפתח API של TMDb?", + "built_in_key_msg": "כרגע בשימוש במפתח המובנה. מומלץ להשתמש במפתח אישי לביצועים טובים יותר.", + "cache_size": "גודל מטמון (Cache)", + "clear_cache": "ניקוי מטמון", + "cache_days": "תשובות TMDb נשמרות במטמון ל-7 ימים לשיפור ביצועים", + "choose_language": "בחירת שפה", + "choose_language_desc": "בחרו את השפה המועדפת לתוכן מ-TMDb", + "popular": "פופולרי", + "all_languages": "כל השפות", + "search_results": "תוצאות חיפוש", + "no_languages_found": "לא נמצאו שפות עבור \"{{query}}\"", + "clear_search": "ניקוי חיפוש", + "clear_cache_title": "ניקוי מטמון TMDB", + "clear_cache_msg": "פעולה זו תמחק את כל המידע השמור של TMDB ({{size}}). זה עלול להאט זמנית את הטעינה עד לבנייה מחדש של המטמון.", + "clear_cache_success": "מטמון TMDB נוקה בהצלחה.", + "clear_cache_error": "ניקוי המטמון נכשל.", + "clear_api_key_title": "הסרת מפתח API", + "clear_api_key_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API האישי ולחזור לברירת המחדל?", + "clear_api_key_success": "מפתח ה-API הוסר בהצלחה", + "clear_api_key_error": "הסרת מפתח ה-API נכשלה", + "empty_api_key": "מפתח API לא יכול להיות ריק.", + "invalid_api_key": "מפתח API לא תקין. אנא בדקו ונסו שוב.", + "save_error": "אירעה שגיאה בזמן השמירה. אנא נסו שוב.", + "using_builtin_key": "כעת בשימוש במפתח המובנה של TMDb.", + "using_custom_key": "כעת בשימוש במפתח האישי שלכם.", + "enter_custom_key": "אנא הזינו ושמרו את מפתח ה-API האישי שלכם.", + "key_verified": "מפתח ה-API אומת ונשמר בהצלחה." + }, + "settings": { + "language": "שפה", + "select_language": "בחר שפה", + "english": "אנגלית", + "portuguese": "פורטוגזית", + "portuguese_br": "פורטוגזית (ברזיל)", + "portuguese_pt": "פורטוגזית (פורטוגל)", + "german": "גרמנית", + "arabic": "ערבית", + "spanish": "ספרדית", + "french": "צרפתית", + "italian": "איטלקית", + "croatian": "קרואטית", + "chinese": "סינית (מפושטת)", + "hindi": "הינדי", + "serbian": "סרבית", + "hebrew": "עברית", + "account": "חשבון", + "content_discovery": "תוכן וגילוי", + "appearance": "מראה", + "integrations": "אינטגרציות", + "playback": "ניגון", + "backup_restore": "גיבוי ושחזור", + "updates": "עדכונים", + "about": "אודות", + "developer": "מפתח", + "cache": "מטמון", + "title": "הגדרות", + "settings_title": "הגדרות", + "sign_in_sync": "התחברו כדי לסנכרן", + "add_catalogs_sources": "תוספים, קטלוגים ומקורות", + "player_trailers_downloads": "נגן, טריילרים, הורדות", + "mdblist_tmdb_ai": "MDBList, TMDB, בינה מלאכותית", + "check_updates": "בדוק עדכונים", + "clear_mdblist_cache": "ניקוי מטמון MDBList", + "cache_management": "ניהול מטמון", + "downloads_counter": "הורדות וסופר...", + "made_with_love": "נוצר עם ❤️ על ידי Tapframe וחברים", + "sections": { + "information": "מידע", + "account": "חשבון", + "theme": "עיצוב", + "layout": "פריסה", + "sources": "מקורות", + "catalogs": "קטלוגים", + "discovery": "גילוי", + "metadata": "מידע (Metadata)", + "ai_assistant": "עוזר AI", + "video_player": "נגן וידאו", + "audio_subtitles": "שמע וכתוביות", + "media": "מדיה", + "notifications": "התראות", + "testing": "בדיקות", + "danger_zone": "אזור מסוכן" + }, + "items": { + "legal": "משפטי והצהרת ויתור", + "privacy_policy": "מדיניות פרטיות", + "report_issue": "דיווח על תקלה", + "version": "גרסה", + "contributors": "תורמים", + "view_contributors": "צפייה בכל התורמים", + "theme": "ערכת נושא", + "episode_layout": "פריסת פרקים", + "streams_backdrop": "רקע סטרימינג", + "streams_backdrop_desc": "הצגת רקע מטושטש בסטרימינג בנייד", + "addons": "תוספים", + "installed": "מותקנים", + "debrid_integration": "אינטגרציית Debrid", + "debrid_desc": "חיבור Torbox", + "plugins": "פלאגינים", + "plugins_desc": "ניהול פלאגינים ומאגרים", + "catalogs": "קטלוגים", + "active": "פעילים", + "home_screen": "מסך הבית", + "home_screen_desc": "פריסה ותוכן", + "continue_watching": "המשך צפייה", + "continue_watching_desc": "התנהגות מטמון וניגון", + "show_discover": "הצגת אזור הגילוי", + "show_discover_desc": "הצגת תוכן גילוי בחיפוש", + "mdblist": "MDBList", + "mdblist_connected": "מחובר", + "mdblist_desc": "הפעל כדי להוסיף דירוגים וביקורות", + "simkl": "Simkl", + "simkl_connected": "מחובר", + "simkl_desc": "מעקב אחר צפיות", + "tmdb": "TMDB", + "tmdb_desc": "מקור מידע ולוגואים", + "openrouter": "OpenRouter API", + "openrouter_connected": "מחובר", + "openrouter_desc": "הוסיפו מפתח API כדי להפעיל צ'אט AI", + "video_player": "נגן וידאו", + "built_in": "מובנה", + "external": "חיצוני", + "preferred_audio": "שפת שמע מועדפת", + "preferred_subtitle": "שפת כתוביות מועדפת", + "subtitle_source": "עדיפות מקור כתוביות", + "auto_select_subs": "בחירה אוטומטית של כתוביות", + "auto_select_subs_desc": "בחירה אוטומטית של כתוביות התואמות להעדפותיכם", + "show_trailers": "הצגת טריילרים", + "show_trailers_desc": "הצגת טריילרים באזור הראשי", + "enable_downloads": "אפשר הורדות", + "enable_downloads_desc": "הצגת לשונית הורדות ואפשרות שמירת סטרימים", + "notifications": "התראות", + "notifications_desc": "תזכורות לפרקים", + "developer_tools": "כלי מפתח", + "developer_tools_desc": "אפשרויות בדיקה ודיבאג", + "test_onboarding": "בדיקת תהליך פתיחה", + "reset_onboarding": "איפוס תהליך פתיחה", + "test_announcement": "בדיקת הכרזות", + "test_announcement_desc": "הצגת חלון 'מה חדש'", + "reset_campaigns": "איפוס קמפיינים", + "reset_campaigns_desc": "ניקוי נתוני חשיפה לקמפיינים", + "clear_all_data": "מחיקת כל הנתונים", + "clear_all_data_desc": "איפוס כל ההגדרות והמידע השמור" + }, + "options": { + "horizontal": "אופקי", + "vertical": "אנכי", + "internal_first": "פנימי תחילה", + "internal_first_desc": "עדיפות לכתוביות מובנות, ואז חיצוניות", + "external_first": "חיצוני תחילה", + "external_first_desc": "עדיפות לכתוביות מהתוסף, ואז מובנות", + "any_available": "כל מה שזמין", + "any_available_desc": "שימוש ברצועת הכתוביות הראשונה שנמצאה" + }, + "clear_data_desc": "פעולה זו תאפס את כל ההגדרות ותנקה את כל המידע השמור. האם אתם בטוחים?", + "app_updates": "עדכוני אפליקציה", + "about_nuvio": "אודות Nuvio" + }, + "privacy": { + "title": "פרטיות ומידע", + "settings_desc": "ניהול טלמטריה ואיסוף נתונים", + "info_title": "הפרטיות שלכם חשובה לנו", + "info_description": "שלטו במידע שנאסף ומשותף. ניתוח נתונים (Analytics) כבוי כברירת מחדל ודיווחי קריסה הם אנונימיים.", + "analytics_enabled_title": "ניתוח נתונים פעיל", + "analytics_enabled_message": "נתוני שימוש ייאספו כדי לעזור לנו לשפר את האפליקציה. ניתן לבטל זאת בכל עת.", + "disable_error_reporting_title": "לבטל דיווחי שגיאות?", + "disable_error_reporting_message": "ביטול דיווחי שגיאות אומר שלא נקבל התראות על קריסות או בעיות שאתם חווים. זה עלול להשפיע על היכולת שלנו לתקן באגים.", + "enable_session_replay_title": "להפעיל הקלטת סשן?", + "enable_session_replay_message": "הקלטת סשן מתעדת את המסך שלכם בזמן שגיאות כדי לעזור לנו להבין מה קרה. זה עלול ללכוד תוכן שמוצג על המסך.", + "enable_pii_title": "להפעיל איסוף מידע אישי (PII)?", + "enable_pii_message": "זה מאפשר איסוף מידע המזהה את המשתמש כמו כתובת IP ופרטי מכשיר. מידע זה עוזר לאבחן בעיות אך מגדיל את החשיפה של פרטיותכם.", + "disable_all_title": "לבטל את כל הטלמטריה?", + "disable_all_message": "זה יבטל את כל ניתוחי הנתונים, דיווחי השגיאות והקלטות הסשן. לא נקבל שום מידע על השימוש באפליקציה או על קריסות.", + "disable_all_button": "ביטול הכל", + "all_disabled_title": "כל הטלמטריה בוטלה", + "all_disabled_message": "כל איסוף הנתונים הופסק. השינויים ייכנסו לתוקף בהפעלה מחדש של האפליקציה.", + "reset_title": "חזרה להגדרות המומלצות", + "reset_message": "הגדרות הפרטיות שוחזרו לברירת המחדל המומלצת (דיווחי שגיאות פעילים, ניתוח נתונים כבוי).", + "section_analytics": "ניתוח נתונים (Analytics)", + "analytics_title": "ניתוח נתוני שימוש", + "analytics_description": "איסוף דפוסי שימוש אנונימיים וצפיות במסכים", + "section_error_reporting": "דיווחי שגיאות", + "error_reporting_title": "דיווחי קריסה", + "error_reporting_description": "שליחת דיווחי קריסה אנונימיים לשיפור היציבות", + "session_replay_title": "הקלטת סשן (Session Replay)", + "session_replay_description": "הקלטת המסך בזמן התרחשות שגיאות", + "pii_title": "כלול פרטי מכשיר", + "pii_description": "שליחת כתובת IP ופרטי מכשיר יחד עם הדיווחים", + "section_quick_actions": "פעולות מהירות", + "disable_all": "ביטול כל הטלמטריה", + "disable_all_desc": "כיבוי כל איסוף הנתונים", + "reset_recommended": "איפוס להגדרות מומלצות", + "reset_recommended_desc": "ברירות מחדל מוטות פרטיות עם דיווחי שגיאות", + "section_learn_more": "למידע נוסף", + "privacy_policy": "מדיניות פרטיות", + "current_settings": "סיכום הגדרות נוכחיות", + "summary_analytics": "ניתוח נתונים", + "summary_errors": "דיווחי שגיאות", + "summary_replay": "הקלטת סשן", + "summary_pii": "פרטי מכשיר", + "restart_note_detailed": "* שינויים בניתוח נתונים ודיווחי שגיאות נכנסים לתוקף מיידית. הגדרות הקלטת סשן ופרטי מכשיר דורשות הפעלה מחדש." + }, + "ai_settings": { + "title": "עוזר AI", + "info_title": "צ'אט מבוסס בינה מלאכותית", + "info_desc": "שאלו שאלות על כל סרט או פרק בסדרה בעזרת AI מתקדם. קבלו תובנות על העלילה, דמויות, נושאים, טריוויה ועוד - הכל מבוסס על נתוני TMDB מקיפים.", + "feature_1": "ניתוח והקשר ספציפי לפרקים", + "feature_2": "הסברי עלילה ותובנות על דמויות", + "feature_3": "עובדות וטריוויה מאחורי הקלעים", + "feature_4": "שימוש במפתח OpenRouter API משלכם", + "api_key_section": "מפתח OPENROUTER API", + "api_key_label": "מפתח API", + "api_key_desc": "הזינו את מפתח ה-API של OpenRouter כדי להפעיל את יכולות הצ'אט", + "save_api_key": "שמירת מפתח API", + "saving": "שומר...", + "update": "עדכון", + "remove": "הסרה", + "get_free_key": "קבלת מפתח API בחינם מ-OpenRouter", + "enable_chat": "הפעלת צ'אט AI", + "enable_chat_desc": "כאשר פעיל, כפתור \"שאל את ה-AI\" יופיע בדפי התוכן.", + "chat_enabled": "צ'אט AI פעיל", + "chat_enabled_desc": "כעת ניתן לשאול שאלות על סרטים וסדרות. חפשו את כפתור \"שאל את ה-AI\" בדפי התוכן!", + "how_it_works": "איך זה עובד", + "how_it_works_desc": "• OpenRouter מספק גישה למגוון מודלי AI\n• מפתח ה-API שלכם נשאר פרטי ומאובטח\n• המסלול החינמי כולל מגבלות שימוש נדיבות\n• צ'אט עם הקשר על פרקים/סרטים ספציפיים\n• קבלת ניתוחים והסברים מפורטים", + "error_invalid_key": "אנא הזינו מפתח API תקין", + "error_key_format": "מפתחות API של OpenRouter צריכים להתחיל ב-\"sk-or-\"", + "success_saved": "מפתח ה-API של OpenRouter נשמר בהצלחה!", + "error_save": "שמירת מפתח ה-API נכשלה", + "confirm_remove_title": "הסרת מפתח API", + "confirm_remove_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API? פעולה זו תבטל את יכולות הצ'אט.", + "success_removed": "מפתח ה-API הוסר בהצלחה", + "error_remove": "הסרת מפתח ה-API נכשלה" + }, + "catalog_settings": { + "title": "קטלוגים", + "layout_phone": "פריסת מסך קטלוג (טלפון)", + "posters_per_row": "פוסטרים בשורה", + "auto": "אוטומטי", + "show_titles": "הצגת שמות על פוסטרים", + "show_titles_desc": "הצגת שם התוכן מתחת לכל פוסטר", + "phone_only_hint": "תקף לטלפונים בלבד. טאבלטים שומרים על פריסה אדפטיבית.", + "catalogs_group": "קטלוגים", + "enabled_count": "{{enabled}} מתוך {{total}} פעילים", + "rename_hint": "לחיצה ארוכה על קטלוג כדי לשנות את שמו", + "rename_modal_title": "שינוי שם קטלוג", + "rename_placeholder": "הזינו שם קטלוג חדש", + "error_save_name": "לא ניתן היה לשמור את השם המותאם." + }, + "continue_watching_settings": { + "title": "המשך צפייה", + "playback_behavior": "התנהגות ניגון", + "use_cached": "שימוש בקישורים שמורים (Cache)", + "use_cached_desc": "כאשר פעיל, לחיצה על פריטי 'המשך צפייה' תפתח את הנגן ישירות עם הקישורים הקודמים. כאשר כבוי, ייפתח מסך התוכן במקום זאת.", + "open_metadata": "פתיחת מסך מידע", + "open_metadata_desc": "כאשר קישורים שמורים כבויים, פתח את מסך המידע במקום מסך הסטרימים. זה מציג פרטי תוכן ומאפשר בחירה ידנית של מקור.", + "card_appearance": "מראה כרטיסייה", + "card_style": "סגנון כרטיסייה", + "card_style_desc": "בחרו כיצד יופיעו פריטי 'המשך צפייה' במסך הבית", + "wide": "רחב", + "poster": "פוסטר", + "cache_settings": "הגדרות מטמון (Cache)", + "cache_duration": "משך שמירת קישור", + "cache_duration_desc": "כמה זמן לשמור קישורי סטרימינג לפני שתוקפם יפוג", + "important_note": "הערה חשובה", + "important_note_text": "לא כל קישורי הסטרימינג נשארים פעילים לכל משך זמן המטמון. זמני שמירה ארוכים עלולים להוביל לקישורים שפג תוקפם. אם קישור שמור נכשל, האפליקציה תחזור לחיפוש מקורות טריים.", + "how_it_works": "איך זה עובד", + "how_it_works_cached": "• קישורים נשמרים למשך הזמן שבחרתם לאחר הניגון\n• הקישורים השמורים מאומתים לפני השימוש\n• אם המטמון לא תקין או פג תוקפו, המערכת חוזרת למסך התוכן\n• 'שימוש בקישורים שמורים' שולט במעבר ישיר לנגן לעומת ניווט למסך\n• 'פתיחת מסך מידע' מופיע רק כשקישורים שמורים כבויים", + "how_it_works_uncached": "• כשקישורים שמורים כבויים, לחיצה על המשך צפייה פותחת מסכי תוכן\n• האופציה 'פתיחת מסך מידע' שולטת איזה מסך ייפתח\n• מסך מידע מציג פרטי תוכן ומאפשר בחירה ידנית\n• מסך סטרימים מציג מקורות זמינים לניגון מיידי", + "changes_saved": "השינויים נשמרו", + "min": "דקות", + "hour": "שעה", + "hours": "שעות" + }, + "contributors": { + "title": "תורמים", + "special_mentions": "אזכורים מיוחדים", + "tab_contributors": "תורמים", + "tab_special": "אזכורים מיוחדים", + "tab_donors": "תורמים (Donors)", + "manager_role": "מנהל קהילה", + "manager_desc": "מנהל את קהילות הדיסקורד והרדיט של Nuvio", + "sponsor_role": "ספונסר שרת", + "sponsor_desc": "מימן את תשתית השרתים של Nuvio", + "mod_role": "מודרטור דיסקורד", + "mod_desc": "עוזר בניהול קהילת הדיסקורד של Nuvio", + "loading": "טוען...", + "discord_user": "משתמש דיסקורד", + "contributions": "תרומות", + "gratitude_title": "אנחנו מודים על כל תרומה", + "gratitude_desc": "כל שורת קוד, דיווח באג או הצעה עוזרים להפוך את Nuvio לטובה יותר עבור כולם", + "special_thanks_title": "תודה מיוחדת", + "special_thanks_desc": "האנשים המדהימים האלה עוזרים לשמור על קהילת Nuvio פעילה ועל השרתים מחוברים", + "donors_desc": "תודה שאתם מאמינים במה שאנחנו בונים. התמיכה שלכם שומרת על Nuvio חינמית ומשתפרת כל הזמן.", + "latest_donations": "אחרונים", + "leaderboard": "לוח מובילים", + "loading_donors": "טוען תורמים...", + "no_donors": "אין עדיין תורמים", + "error_rate_limit": "חרגתם ממגבלת ה-API של GitHub. אנא נסו שוב מאוחר יותר.", + "error_failed": "טעינת התורמים נכשלה. אנא בדקו את חיבור האינטרנט.", + "retry": "נסה שוב", + "no_contributors": "לא נמצאו תורמים", + "loading_contributors": "טוען תורמים..." + }, + "debrid": { + "title": "אינטגרציית Debrid", + "description_torbox": "פתחו סטרימינג באיכות 4K ומהירויות גבוהות על ידי חיבור Torbox. הזינו את מפתח ה-API שלכם למטה לשדרוג חווית הצפייה.", + "description_torrentio": "הגדר את Torrentio כדי לקבל מקורות טורנט לסרטים וסדרות. שירות debrid נדרש כדי להזרים את התוכן.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "מחובר", + "status_disconnected": "מנותק", + "enable_addon": "הפעלת תוסף", + "disconnect_button": "ניתוק והסרה", + "disconnect_loading": "מתנתק...", + "account_info": "פרטי חשבון", + "plan": "תוכנית", + "plan_free": "חינם", + "plan_essential": "Essential ($3/mo)", + "plan_pro": "Pro ($10/mo)", + "plan_standard": "Standard ($5/mo)", + "plan_unknown": "לא ידוע", + "expires": "פג תוקף", + "downloaded": "הורדו", + "status_active": "פעיל", + "connected_title": "✓ מחובר ל-TorBox", + "connected_desc": "תוסף ה-TorBox שלך פעיל ומספק מקורות פרימיום.", + "configure_title": "הגדרת תוסף", + "configure_desc": "התאימו את חווית הצפייה. מיון לפי איכות, סינון גודל קבצים וניהול הגדרות נוספות.", + "open_settings": "פתח הגדרות", + "what_is_debrid": "מה זה שירות Debrid?", + "enter_api_key": "הזינו מפתח API", + "connect_button": "התחברות והתקנה", + "connecting": "מתחבר...", + "unlock_speeds_title": "פתיחת מהירויות פרימיום", + "unlock_speeds_desc": "רכשו מנוי Torbox לגישה למקורות באיכות גבוהה ללא טעינה (Buffering).", + "get_subscription": "רכישת מנוי", + "powered_by": "מופעל על ידי", + "disclaimer_torbox": "Nuvio אינה קשורה ל-Torbox בשום צורה.", + "disclaimer_torrentio": "Nuvio אינה קשורה ל-Torrentio בשום צורה.", + "installed_badge": "✓ מותקן", + "promo_title": "⚡ צריכים שירות Debrid?", + "promo_desc": "קבלו את TorBox לסטרימינג 4K מהיר במיוחד ללא Buffering. טורנטים שמורים והורדות מיידיות.", + "promo_button": "קבלת מנוי TorBox", + "service_label": "שירות Debrid *", + "api_key_label": "מפתח API *", + "sorting_label": "מיון", + "exclude_qualities": "החרגת איכויות", + "priority_languages": "שפות בעדיפות", + "max_results": "מקסימום תוצאות", + "additional_options": "אפשרויות נוספות", + "no_download_links": "אל תציג קישורי הורדה", + "no_debrid_catalog": "אל תציג קטלוג Debrid", + "install_button": "התקנת Torrentio", + "installing": "מתקין...", + "update_button": "עדכון הגדרות", + "updating": "מעדכן...", + "remove_button": "הסרת Torrentio", + "error_api_required": "נדרש מפתח API", + "error_api_required_desc": "אנא הזינו את מפתח ה-API של שירות ה-debrid שלכם כדי להתקין את Torrentio.", + "success_installed": "תוסף Torrentio הותקן בהצלחה!", + "success_removed": "תוסף Torrentio הוסר בהצלחה", + "alert_disconnect_title": "ניתוק Torbox", + "alert_disconnect_msg": "האם אתם בטוחים שברצונכם לנתק את Torbox? זה יסיר את התוסף וימחוק את מפתח ה-API השמור." + }, + "home_screen": { + "title": "הגדרות מסך הבית", + "changes_applied": "השינויים הוחלו", + "display_options": "אפשרויות תצוגה", + "show_hero": "הצגת קרוסלת תוכן (Hero)", + "show_hero_desc": "תוכן מומלץ בראש המסך", + "show_this_week": "הצגת 'השבוע'", + "show_this_week_desc": "פרקים חדשים מהשבוע הנוכחי", + "select_catalogs": "בחירת קטלוגים", + "all_catalogs": "כל הקטלוגים", + "selected": "נבחרו", + "hero_layout": "פריסת קרוסלה (Hero)", + "layout_legacy": "קלאסי", + "layout_carousel": "קרוסלה", + "layout_appletv": "Apple TV", + "layout_desc": "באנר ברוחב מלא, כרטיסיות להחלקה, או סגנון Apple TV", + "featured_source": "מקור תוכן מומלץ", + "using_catalogs": "משתמש בקטלוגים", + "manage_selected_catalogs": "ניהול קטלוגים שנבחרו", + "dynamic_bg": "רקע דינמי לקרוסלה", + "dynamic_bg_desc": "באנר מטושטש מאחורי הקרוסלה", + "performance_note": "עשוי להשפיע על הביצועים במכשירים חלשים.", + "posters": "פוסטרים", + "show_titles": "הצגת שמות", + "poster_size": "גודל פוסטר", + "poster_corners": "פינות הפוסטר", + "size_small": "קטן", + "size_medium": "בינוני", + "size_large": "גדול", + "corners_square": "ישרות", + "corners_rounded": "מעוגלות", + "corners_pill": "מעוגלות מאוד (Pill)", + "about_these_settings": "אודות ההגדרות הללו", + "about_desc": "הגדרות אלו קובעות כיצד יוצג התוכן במסך הבית שלכם. השינויים מוחלים מיידית ללא צורך בהפעלה מחדש.", + "hero_catalogs": { + "title": "קטלוגים לקרוסלה הראשי", + "select_all": "בחירת הכל", + "clear_all": "ניקוי הכל", + "info": "בחרו אילו קטלוגים יוצגו בקרוסלה הראשית. אם לא ייבחר דבר, ייעשה שימוש בכל הקטלוגים. אל תשכחו ללחוץ על שמירה בסיום.", + "settings_saved": "ההגדרות נשמרו", + "error_load": "טעינת הקטלוגים נכשלה", + "movies": "סרטים", + "tv_shows": "סדרות טלוויזיה" + } + }, + "calendar": { + "title": "לוח שידורים", + "loading": "טוען לוח שידורים...", + "no_scheduled_episodes": "אין פרקים מתוכננים", + "check_back_later": "בדקו שוב מאוחר יותר", + "showing_episodes_for": "מציג פרקים עבור {{date}}", + "show_all_episodes": "הצגת כל הפרקים", + "no_episodes_for": "אין פרקים עבור {{date}}", + "no_upcoming_found": "לא נמצאו פרקים קרובים", + "add_series_desc": "הוסיפו סדרות לספרייה שלכם כדי לראות את הפרקים הבאים שלהן כאן" + }, + "mdblist": { + "title": "מקורות דירוג", + "status_disabled": "MDBList כבוי", + "status_active": "מפתח API פעיל", + "status_required": "נדרש מפתח API", + "status_disabled_desc": "פונקציונליות MDBList מושבתת כרגע.", + "status_active_desc": "דירוגים מ-MDBList פעילים.", + "status_required_desc": "הוסיפו את המפתח שלכם למטה כדי להפעיל דירוגים.", + "enable_toggle": "הפעלת MDBList", + "enable_toggle_desc": "הפעלה/כיבוי של כל יכולות MDBList", + "api_section": "מפתח API", + "placeholder": "הדביקו את מפתח ה-API של MDBList", + "save": "שמירה", + "clear": "מחיקת מפתח", + "rating_providers": "ספקי דירוג", + "rating_providers_desc": "בחרו אילו דירוגים להציג באפליקציה", + "how_to": "איך משיגים מפתח API?", + "step_1": "התחברו לאתר", + "step_1_link": "MDBList", + "step_2": "עברו ללשונית", + "step_2_settings": "הגדרות (Settings)", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "צרו מפתח חדש והעתיקו אותו.", + "go_to_website": "מעבר לאתר MDBList", + "alert_clear_title": "מחיקת מפתח API", + "alert_clear_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API השמור?", + "success_saved": "מפתח ה-API נשמר בהצלחה.", + "error_empty": "מפתח ה-API אינו יכול להיות ריק.", + "error_save": "אירעה שגיאה במהלך השמירה. אנא נסו שוב.", + "api_key_empty_error": "מפתח ה-API אינו יכול להיות ריק.", + "success_cleared": "מפתח ה-API נמחק בהצלחה", + "error_clear": "מחיקת מפתח ה-API נכשלה" + }, + "notification": { + "title": "הגדרות התראות", + "section_general": "כללי", + "enable_notifications": "הפעלת התראות", + "section_types": "סוגי התראות", + "new_episodes": "פרקים חדשים", + "upcoming_shows": "סדרות קרובות", + "reminders": "תזכורות", + "section_timing": "תזמון התראות", + "timing_desc": "מתי תרצו לקבל התראה לפני שידור פרק?", + "hours_1": "שעה אחת", + "hours_suffix": "שעות", + "section_status": "סטטוס התראות", + "stats_upcoming": "קרובים", + "stats_this_week": "השבוע", + "stats_total": "סה\"כ", + "sync_button": "סנכרון ספרייה ו-Trakt", + "syncing": "מסנכרן...", + "sync_desc": "מסנכרן אוטומטית התראות עבור כל הסדרות בספרייה שלכם וברשימות ה-Trakt.", + "section_advanced": "מתקדם", + "reset_button": "איפוס כל ההתראות", + "test_button": "התראת בדיקה (5 שניות)", + "test_notification_in": "התראה בעוד {{seconds}} שניות...", + "test_notification_text": "התראה תופיע בעוד {{seconds}} שניות", + "alert_reset_title": "איפוס התראות", + "alert_reset_msg": "פעולה זו תבטל את כל ההתראות המתוזמנות, אך לא תסיר דבר מהספרייה השמורה. האם אתם בטוחים?", + "alert_reset_success": "כל ההתראות אופסו", + "alert_sync_complete": "הסנכרון הושלם", + "alert_sync_msg": "התראות עבור הספרייה ונתוני Trakt סונכרנו בהצלחה.\n\nתוזמנו: {{upcoming}} פרקים קרובים\nהשבוע: {{thisWeek}} פרקים", + "alert_test_scheduled": "התראת בדיקה תוזמנה להופעה מיידית" + }, + "backup": { + "title": "גיבוי ושחזור", + "options_title": "אפשרויות גיבוי", + "options_desc": "בחרו מה לכלול בגיבוי שלכם", + "section_core": "נתוני ליבה", + "section_addons": "תוספים ואינטגרציות", + "section_settings": "הגדרות והעדפות", + "library_label": "ספרייה", + "library_desc": "הסרטים וסדרות הטלוויזיה השמורים שלכם", + "watch_progress_label": "התקדמות צפייה", + "watch_progress_desc": "נקודות הזמן שבהן הפסקתם לצפות", + "addons_label": "תוספים", + "addons_desc": "תוספי Stremio מותקנים", + "plugins_label": "פלאגינים", + "plugins_desc": "הגדרות סורקים (Scrapers) מותאמות", + "trakt_label": "אינטגרציית Trakt", + "trakt_desc": "סנכרון נתונים ואסימוני אימות", + "app_settings_label": "הגדרות אפליקציה", + "app_settings_desc": "עיצוב, העדפות והגדרות מערכת", + "user_prefs_label": "העדפות משתמש", + "user_prefs_desc": "סדר תוספים והגדרות ממשק משתמש", + "catalog_settings_label": "הגדרות קטלוג", + "catalog_settings_desc": "מסנני קטלוג והעדפות", + "api_keys_label": "מפתחות API", + "api_keys_desc": "מפתחות MDBList ו-OpenRouter", + "action_create": "יצירת גיבוי", + "action_restore": "שחזור מגיבוי", + "section_info": "אודות גיבויים", + "info_text": "• ניתן להתאים מה יגובה באמצעות המתגים למעלה\n• קבצי הגיבוי נשמרים מקומית על המכשיר שלכם\n• שתפו את קובץ הגיבוי כדי להעביר נתונים בין מכשירים\n• שחזור יחליף את הנתונים הנוכחיים שלכם", + "alert_create_title": "יצירת גיבוי", + "alert_no_content": "לא נבחר תוכן לגיבוי.\n\nאנא הפעילו לפחות אפשרות אחת בסעיף אפשרויות הגיבוי.", + "alert_backup_created_title": "הגיבוי נוצר", + "alert_backup_created_msg": "הגיבוי שלכם נוצר ומוכן לשיתוף.", + "alert_backup_failed_title": "הגיבוי נכשל", + "alert_restore_confirm_title": "אישור שחזור", + "alert_restore_confirm_msg": "פעולה זו תשחזר נתונים מגיבוי שנוצר בתאריך {{date}}.\n\nפעולה זו תדרוס את הנתונים הנוכחיים שלכם. האם אתם בטוחים שברצונכם להמשיך?", + "alert_restore_complete_title": "השחזור הושלם", + "alert_restore_complete_msg": "הנתונים שוחזרו בהצלחה. אנא הפעילו מחדש את האפליקציה כדי לראות את השינויים.", + "alert_restore_failed_title": "השחזור נכשל", + "restart_app": "הפעלה מחדש", + "alert_restart_failed_title": "הפעלה מחדש נכשלה", + "alert_restart_failed_msg": "הפעלת האפליקציה מחדש נכשלה. אנא סגרו ופתחו את האפליקציה ידנית." + }, + "updates": { + "title": "עדכוני אפליקציה", + "status_checking": "בודק עדכונים...", + "status_available": "יש עדכון זמין!", + "status_downloading": "מוריד עדכון...", + "status_installing": "מתקין עדכון...", + "status_success": "העדכון הותקן בהצלחה!", + "status_error": "העדכון נכשל", + "status_ready": "מוכן לבדיקת עדכונים", + "action_check": "בדוק עדכונים", + "action_install": "התקן עדכון", + "release_notes": "הערות גרסה:", + "version": "גרסה:", + "last_checked": "בדיקה אחרונה:", + "current_version": "גרסה נוכחית:", + "current_release_notes": "הערות לגרסה הנוכחית:", + "github_release": "גרסת GITHUB", + "current": "נוכחית:", + "latest": "חדשה ביותר:", + "notes": "הערות:", + "view_release": "צפייה בגרסה", + "notification_settings": "הגדרות התראות", + "ota_alerts_label": "התראות עדכוני OTA", + "ota_alerts_desc": "הצגת התראות עבור עדכונים מהירים (Over-the-air)", + "major_alerts_label": "התראות על גרסאות ראשיות", + "major_alerts_desc": "הצגת התראות עבור גרסאות אפליקציה חדשות ב-GitHub", + "alert_disable_ota_title": "לבטל התראות עדכוני OTA?", + "alert_disable_ota_msg": "לא תקבלו יותר התראות אוטומטיות על עדכוני OTA.\n\n⚠️ אזהרה: שמירה על הגרסה העדכנית חשובה עבור:\n• תיקוני באגים ושיפורי יציבות\n• תכונות חדשות ושיפורים\n• מתן משוב ודיווחי קריסה מדויקים\n\nעדיין תוכלו לבדוק עדכונים ידנית במסך זה.", + "alert_disable_major_title": "לבטל התראות על גרסאות ראשיות?", + "alert_disable_major_msg": "לא תקבלו יותר התראות על עדכוני אפליקציה גדולים הדורשים התקנה מחדש.\n\n⚠️ אזהרה: עדכונים ראשיים כוללים לרוב:\n• תיקוני אבטחה קריטיים\n• שינויים משמעותיים הדורשים התקנה מחדש\n• תיקוני תאימות חשובים\n\nעדיין תוכלו לבדוק עדכונים ידנית.", + "warning_note": "השארת ההתראות פעילות מבטיחה שתקבלו תיקוני באגים ותוכלו לספק דיווחי קריסה מדויקים.", + "disable": "ביטול", + "alert_no_update_to_install": "אין עדכון זמין להתקנה", + "alert_install_failed": "התקנת העדכון נכשלה", + "alert_no_update_title": "אין עדכון", + "alert_update_applied_msg": "העדכון יוחל בהפעלה מחדש הבאה של האפליקציה" + }, + "player": { + "title": "נגן וידאו", + "section_selection": "בחירת נגן", + "internal_title": "נגן מובנה", + "internal_desc": "שימוש בנגן ברירת המחדל של האפליקציה", + "vlc_title": "VLC", + "vlc_desc": "פתיחת סטרימים בנגן VLC", + "infuse_title": "Infuse", + "infuse_desc": "פתיחת סטרימים בנגן Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "פתיחת סטרימים בנגן OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "פתיחת סטרימים בנגן VidHub", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "פתיחת סטרימים ב-Infuse דרך LiveContainer", + "external_title": "נגן חיצוני", + "external_desc": "פתיחת סטרימים בנגן הוידאו המועדף עליכם", + "section_playback": "אפשרויות ניגון", + "skip_intro_settings_title": "דילוג על פתיח", + "powered_by_introdb": "מופעל על ידי IntroDB", + "autoplay_title": "ניגון אוטומטי של המקור הראשון", + "autoplay_desc": "התחלת הסטרים הראשון המופיע ברשימה באופן אוטומטי.", + "resume_title": "המשך צפייה תמידי", + "resume_desc": "דילוג על שאלת ה-'המשך צפייה' והמשך אוטומטי מהנקודה האחרונה (אם נצפה פחות מ-85%).", + "engine_title": "מנוע נגן וידאו", + "engine_desc": "במצב אוטומטי נעשה שימוש ב-ExoPlayer עם גיבוי של MPV. פורמטים מסוימים כמו Dolby Vision ו-HDR עשויים לא להיתמך ב-MPV, לכן מומלץ להישאר על אוטומטי.", + "decoder_title": "מצב מפענח (Decoder)", + "decoder_desc": "כיצד הוידאו מפוענח. מומלץ לבחור באוטומטי לאיזון מיטבי.", + "gpu_title": "רינדור GPU", + "gpu_desc": "GPU-Next מציע ניהול צבעים ו-HDR טובים יותר.", + "external_downloads_title": "נגן חיצוני עבור הורדות", + "external_downloads_desc": "ניגון תוכן שהורד בנגן חיצוני מועדף.", + "restart_required": "נדרשת הפעלה מחדש", + "restart_msg_decoder": "אנא הפעילו מחדש את האפליקציה כדי ששינוי המפענח ייכנס לתוקף.", + "restart_msg_gpu": "אנא הפעילו מחדש את האפליקציה כדי ששינוי מצב ה-GPU ייכנס לתוקף.", + "option_auto": "אוטומטי", + "option_auto_desc_engine": "ExoPlayer + גיבוי MPV", + "option_mpv": "MPV", + "option_mpv_desc": "MPV בלבד", + "option_auto_desc_decoder": "איזון מיטבי", + "option_sw": "SW", + "option_sw_desc": "תוכנה (Software)", + "option_hw": "HW", + "option_hw_desc": "חומרה (Hardware)", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "חומרה מלאה", + "option_gpu_desc": "סטנדרטי", + "option_gpu_next_desc": "מתקדם" + }, + "plugins": { + "title": "תוספים (Plugins)", + "enable_title": "הפעלת תוספים", + "enable_desc": "הפעלת מנוע התוספים כדי לאתר מקורות מדיה חיצוניים", + "repo_config_title": "הגדרות מאגר (Repository)", + "repo_config_desc": "ניהול מאגרי תוספים חיצוניים. ניתן להפעיל או לכבות כל מאגר להלן.", + "your_repos": "מאגרים", + "your_repos_desc": "הגדרת מקורות חיצוניים עבור תוספים.", + "add_repo_button": "הוספת מאגר", + "refresh": "רענון", + "remove": "הסרה", + "enabled": "פעיל", + "disabled": "כבוי", + "updating": "מעדכן...", + "success": "הצלחנו", + "error": "שגיאה", + "alert_repo_added": "המאגר נוסף והתוספים נטענו בהצלחח", + "alert_repo_saved": "כתובת המאגר נשמרה בהצלחה", + "alert_repo_refreshed": "המאגר רוענן בהצלחה", + "alert_invalid_url": "פורמט כתובת (URL) לא תקין", + "alert_plugins_cleared": "כל התוספים הוסרו", + "alert_cache_cleared": "מטמון המאגרים נוקה בהצלחה", + "unknown": "לא ידוע", + "active": "פעיל", + "available": "זמין", + "platform_disabled": "פלטפורמה כבויה", + "limited": "מוגבל", + "clear_all": "הסרת כל התוספים", + "clear_all_desc": "האם אתם בטוחים שברצונכם להסיר את כל התוספים המותקנים? לא ניתן לבטל פעולה זו.", + "clear_cache": "ניקוי מטמון מאגרים", + "clear_cache_desc": "פעולה זו תחמוק את כתובת המאגר ותנקה את כל נתוני התוספים השמורים. תצטרכו להזין מחדש את כתובת המאגר.", + "add_new_repo": "הוספת מאגר חדש", + "available_plugins": "תוספים זמינים ({{count}})", + "placeholder": "חיפוש תוספים...", + "all": "הכל", + "filter_all": "כל הסוגים", + "filter_movies": "סרטים", + "filter_tv": "סדרות טלוויזיה", + "enable_all": "הפעלת הכל", + "disable_all": "ביטול הכל", + "no_plugins_found": "לא נמצאו תוספים", + "no_plugins_available": "אין תוספים זמינים", + "no_match_desc": "לא נמצאו תוספים התואמים ל-\"{{query}}\". נסו מונח חיפוש אחר.", + "configure_repo_desc": "הגדירו מאגר למעלה כדי לצפות בתוספים זמינים.", + "clear_search": "ניקוי חיפוש", + "no_external_player": "אין נגן חיצוני", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "הדביקו את ה-token של ShowBox כאן", + "save": "שמירה", + "clear": "ניקוי", + "additional_settings": "הגדרות נוספות", + "enable_url_validation": "הפעלת אימות כתובת (URL)", + "url_validation_desc": "אימות כתובות מדיה לפני הצגתן (עשוי להאט את התוצאות אך משפר אמינות)", + "group_streams": "קיבוץ מקורות תוספים", + "group_streams_desc": "כאשר פעיל, המקורות מקובצים לפי מאגר. כשר כבוי, כל תוסף מופיע כספק נפרד.", + "sort_quality": "מיון לפי איכות תחילה", + "sort_quality_desc": "כאשר פעיל, המקורות ממוינים לפי איכות. זמין רק כאשר קיבוץ המקורות מופעל.", + "show_logos": "הצגת לוגו התוסף", + "show_logos_desc": "הצגת לוגו התוסף לצד קישורי המדיה במסך המקורות.", + "quality_filtering": "סינון איכות", + "quality_filtering_desc": "החרגת רזולוציות וידאו ספציפיות מתוצאות החיפוש. לחצו על איכות כדי להחריג אותה.", + "excluded_qualities": "איכויות שהוחרגו:", + "language_filtering": "סינון שפה", + "language_filtering_desc": "החרגת שפות ספציפיות מתוצאות החיפוש. לחצו על שפה כדי להחריג אותה.", + "note": "הערה:", + "language_filtering_note": "מסנן זה חל רק על ספקים הכוללים מידע על שפה. הוא אינו משפיע על ספקים אחרים.", + "excluded_languages": "שפות שהוחרגו:", + "about_title": "אודות תוספים", + "about_desc_1": "תוספים הם רכיבים מודולריים שמתאימים תוכן מפרוטוקולים חיצוניים שונים. הם רצים מקומית על המכשיר שלכם וניתנים להתקנה ממאגרים מהימנים.", + "about_desc_2": "תוספים המסומנים כ-\"מוגבלים\" עשויים לדרוש הגדרות חיצוניות ספציפיות.", + "help_title": "הגדרת תוספים", + "help_step_1": "1. **הפעלת תוספים** - הפעילו את המתג הראשי", + "help_step_2": "2. **הוספת מאגר** - הוסיפו כתובת מאגר (URL) תקינה", + "help_step_3": "3. **רענון מאגר** - טעינת התוספים הזמינים", + "help_step_4": "4. **הפעלה** - הפעילו את התוספים שבהם תרצו להשתמש", + "got_it": "הבנתי!", + "repo_format_hint": "פורמט: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "ביטול", + "add": "הוספה" + }, + "theme": { + "title": "ערכות נושא (Themes)", + "select_theme": "בחירת ערכת נושא", + "create_custom": "יצירת ערכה מותאמת אישית", + "options": "אפשרויות", + "use_dominant_color": "שימוש בצבע הדומיננטי מהפוסטר", + "categories": { + "all": "כל הערכות", + "dark": "ערכות כהות", + "colorful": "צבעוני", + "custom": "הערכות שלי" + }, + "editor": { + "theme_name_placeholder": "שם ערכת הנושא", + "save": "שמירה", + "primary": "ראשי", + "secondary": "משני", + "background": "רקע", + "invalid_name_title": "שם לא תקין", + "invalid_name_msg": "אנא הזינו שם תקין לערכת הנושא" + }, + "alerts": { + "delete_title": "מחיקת ערכת נושא", + "delete_msg": "האם אתם בטוחים שברצונכם למחוק את \"{{name}}\"?", + "ok": "אישור", + "delete": "מחיקה", + "cancel": "ביטול", + "back": "הגדרות" + } + }, + "legal": { + "title": "משפטי והצהרת אחריות", + "intro_title": "מהות האפליקציה", + "intro_text": "Nuvio היא נגן מדיה ואפליקציה לניהול מטא-דאטה. היא משמשת אך ורק כממשק צד-לקוח לדפדוף במידע זמין לציבור (סרטים, סדרות וכו') ולניגון קבצי מדיה המסופקים על ידי המשתמש או תוספי צד-שלישי. Nuvio עצמה אינה מארחת, מאחסנת, מפיצה או מקטלגת תוכן מדיה כלשהו.", + "extensions_title": "תוספי צד-שלישי", + "extensions_text": "Nuvio משתמשת בארכיטקטורה הניתנת להרחבה המאפשרת למשתמשים להתקין תוספי צד-שלישי. תוספים אלו מפותחים ומתוחזקים על ידי מפתחים עצמאיים שאינם קשורים ל-Nuvio. אין לנו שליטה על התוכן, החוקיות או הפונקציונליות של תוספי צד-שלישי כלשהם, ואנו לא נושאים באחריות לגביהם.", + "user_resp_title": "אחריות המשתמש", + "user_resp_text": "המשתמשים אחראים בלעדית לתוספים שהם מתקינים ולתוכן שאליו הם ניגשים. בשימוש באפליקציה זו, אתם מסכימים לוודא שיש לכם את הזכות החוקית לגשת לכל תוכן שבו אתם צופים באמצעות Nuvio. מפתחי Nuvio אינם תומכים או מעודדים הפרת זכויות יוצרים.", + "dmca_title": "זכויות יוצרים ו-DMCA", + "dmca_text": "אנו מכבדים את זכויות הקניין הרוחני של אחרים. כיוון ש-Nuvio אינה מארחת תוכן, אין ביכולתנו להסיר תוכן מהאינטרנט. עם זאת, אם אתם סבורים שממשק האפליקציה עצמו מפר את זכויותיכם, אנא צרו עמנו קשר.", + "warranty_title": "העדר אחריות", + "warranty_text": "תוכנה זו מסופקת \"כפי שהיא\" (As-Is), ללא אחריות מכל סוג שהוא. בשום מקרה המפתחים או בעלי זכויות היוצרים לא יהיו אחראים לכל תביעה, נזק או חבות אחרת הנובעת מהשימוש בתוכנה זו." + }, + "plugin_tester": { + "title": "בודק תוספים (Plugin Tester)", + "subtitle": "הרצת סורקים ובדיקת לוגים בזמן אמת", + "tabs": { + "individual": "אישי", + "repo": "בודק מאגר", + "code": "קוד", + "logs": "לוגים", + "results": "תוצאות" + }, + "common": { + "error": "שגיאה", + "success": "הצלחה", + "movie": "סרט", + "tv": "סדרה", + "tmdb_id": "TMDB ID", + "season": "עונה", + "episode": "פרק", + "running": "מריץ...", + "run_test": "הפעלת בדיקה", + "play": "נגן", + "done": "בוצע", + "test": "בדיקה", + "testing": "בודק..." + }, + "individual": { + "load_from_url": "טעינה מכתובת (URL)", + "load_from_url_desc": "הדביקו כתובת גולמית מ-GitHub או IP מקומי ולחצו על הורדה.", + "enter_url_error": "אנא הזינו כתובת URL", + "code_loaded": "הקוד נטען בהצלחה מהכתובת", + "fetch_error": "הטעינה נכשלה: {{message}}", + "no_code_error": "אין קוד להרצה", + "plugin_code": "קוד התוסף", + "focus_editor": "מיקוד בעורך הקוד", + "code_placeholder": "// הדביקו את קוד התוסף כאן...", + "test_parameters": "פרמטרים לבדיקה", + "no_logs": "אין עדיין לוגים. הריצו בדיקה כדי לראות פלט.", + "no_streams": "לא נמצאו מקורות (Streams) עדיין.", + "streams_found": "נמצא מקור {{count}}", + "streams_found_plural": "נמצאו {{count}} מקורות", + "tap_play_hint": "לחצו על 'נגן' כדי לבדוק את המקור בנגן המובנה.", + "unnamed_stream": "מקור ללא שם", + "quality": "איכות: {{quality}}", + "size": "גודל: {{size}}", + "url_label": "כתובת: {{url}}", + "headers_info": "Headers: {{count}} כותרות מותאמות", + "find_placeholder": "חיפוש בקוד...", + "edit_code_title": "עריכת קוד", + "no_url_stream_error": "לא נמצאה כתובת למקור זה" + }, + "repo": { + "title": "בודק מאגרים", + "description": "טעינת מאגר (כתובת מקומית או GitHub raw) ובדיקת כל ספק.", + "enter_repo_url_error": "אנא הזינו כתובת מאגר (URL)", + "invalid_url_title": "כתובת לא תקינה", + "invalid_url_msg": "השתמשו בכתובת raw של GitHub או כתובת http(s) מקומית.\n\nדוגמה:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "לא ניתן היה ליצור כתובת מניפסט מהקלט", + "manifest_fetch_error": "טעינת המניפסט נכשלה", + "repo_manifest_fetch_error": "טעינת מניפסט המאגר נכשלה", + "missing_filename": "שם קובץ חסר במניפסט", + "scraper_build_error": "לא ניתן היה ליצור כתובת לסורק (Scraper)", + "download_scraper_error": "הורדת הסורק נכשלה", + "test_failed": "הבדיקה נכשלה", + "test_parameters": "פרמטרים לבדיקת מאגר", + "test_parameters_desc": "פרמטרים אלו משמשים רק עבור בודק המאגרים.", + "using_info": "משתמש ב: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "משתמש ב: {{mediaType}} • TMDB {{tmdbId}} • עונה {{season}} פרק {{episode}}", + "providers_title": "ספקים (Providers)", + "repository_default": "מאגר", + "providers_count": "{{count}} ספקים", + "fetch_hint": "טענו מאגר כדי להציג את רשימת הספקים.", + "test_all": "בדיקת הכל", + "status_running": "רץ", + "status_ok": "תקין ({{count}})", + "status_ok_empty": "תקין (0)", + "status_failed": "נכשל", + "status_idle": "ממתין", + "tried_url": "נוסה: {{url}}", + "provider_logs": "לוגים של הספק", + "no_logs_captured": "לא נלכדו לוגים." + } + } +} \ No newline at end of file From c6a53d5852e17a6b64489fa9cb3374a7f55eaa2d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 16:54:15 +0100 Subject: [PATCH 011/285] Add Hebrew localization support --- src/i18n/resources.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 106b445a..1d81a5cb 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -11,6 +11,7 @@ import hr from './locales/hr.json'; import hi from './locales/hi.json'; import zhCN from './locales/zh-CN.json'; import sr from './locales/sr.json'; +import he from './locales/he.json'; export const resources = { en: { translation: en }, From 8aa004d474b9661de96d1e3be1b2384354a578e0 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 16:58:19 +0100 Subject: [PATCH 012/285] Add Hebrew language support in Arabic locale --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 47a0ad2f..3f933712 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -636,6 +636,7 @@ "chinese": "الصينية (المبسطة)", "hindi": "الهندية", "serbian": "الصربية", + "hebrew": "العبرية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 0bd9c397cc5e876400c2182922fd97334a998fd5 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 16:59:39 +0100 Subject: [PATCH 013/285] Add Hebrew language translation to de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index fdf27e82..e7b0bb4e 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -636,6 +636,7 @@ "chinese": "Chinesisch (Vereinfacht)", "hindi": "Hindi", "serbian": "Serbisch", + "hebrew": "Hebräisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From cd308475b6264cdf5b969fca635af1a0d9fd0910 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:00:47 +0100 Subject: [PATCH 014/285] Add Hebrew language support to locales --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 33978f4f..6dc74258 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -641,6 +641,7 @@ "chinese": "Chinese (Simplified)", "hindi": "Hindi", "serbian": "Serbian", + "hebrew": "Hebrew", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 5da830a0e5c64c59e4d72f1762b455db6af5c59f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:02:30 +0100 Subject: [PATCH 015/285] Add Hebrew language support to Spanish locales --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index b0ae867f..9c09f290 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -636,6 +636,7 @@ "chinese": "Chino (Simplificado)", "hindi": "Hindi", "serbian": "Serbio", + "hebrew": "Hebreo", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 6ad54ce8da1abf797ba894c0a3a9b4bbebbd2a10 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:03:39 +0100 Subject: [PATCH 016/285] Add Hebrew language support to French locale --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 19ba0e6d..17865605 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -636,6 +636,7 @@ "chinese": "Chinois (Simplifié)", "hindi": "Hindi", "serbian": "Serbe", + "hebrew": "Hébreu", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From ca8eabd14b0bcea9121f6c317072b3044c823013 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:05:04 +0100 Subject: [PATCH 017/285] Add Hebrew language translation to hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index df34dc67..1e82507f 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -636,6 +636,7 @@ "chinese": "चीनी (सरलीकृत)", "hindi": "हिन्दी", "serbian": "सर्बियाई", + "hebrew": "इब्रानी", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 4f0ce62a2d347caeb6804ddd6a921ecc97d3d7e1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:06:02 +0100 Subject: [PATCH 018/285] Add Hebrew language support in Italian locale --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 5e34bf56..e52eb699 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -636,6 +636,7 @@ "chinese": "Cinese (Semplificato)", "hindi": "Hindi", "serbian": "Serbo", + "hebrew": "Ebraico", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 51c65bca4c3b4504414f96d197b993f745c6967b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:07:15 +0100 Subject: [PATCH 019/285] Add Hebrew language support to pt-BR locale --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index b482e3ea..0a38c4d7 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -650,6 +650,7 @@ "chinese": "Chinês (Simplificado)", "hindi": "Hindi", "serbian": "Sérvio", + "hebrew": "Hebraico", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 420d496965941e96bc707700cd0ebcd051e2fcee Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:08:02 +0100 Subject: [PATCH 020/285] Add Hebrew language translation to pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 18a32583..8130dcef 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -648,6 +648,7 @@ "chinese": "Chinês (Simplificado)", "hindi": "Hindi", "serbian": "Sérvio", + "hebrew": "Hebraico", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 1add810f8f0eba3d89db1c70fc5eac93bd872351 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:10:07 +0100 Subject: [PATCH 021/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 5f243ea9..b4310644 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -635,6 +635,7 @@ "chinese": "Кинески (поједностављени)", "hindi": "Хинди", "serbian": "Српски", + "hebrew": "Хебрејски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1412,3 +1413,4 @@ } + From 9d4caf43e5e7cd8608950fa048ac5cc01207a4e8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:11:17 +0100 Subject: [PATCH 022/285] Add Hebrew language support to zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 9bb550f5..75124eb1 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -636,6 +636,7 @@ "chinese": "简体中文", "hindi": "印地语", "serbian": "塞尔维亚语", + "hebrew": "希伯来语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From 9109c6050cb0a008d48e2b91960148ad59c8518e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:12:24 +0100 Subject: [PATCH 023/285] Add Hebrew translation to resources --- src/i18n/resources.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 1d81a5cb..4dbfcd3e 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -26,4 +26,5 @@ export const resources = { 'zh-CN': { translation: zhCN }, hi: { translation: hi }, sr: { translation: sr }, + he: { translation: he }, }; From 11b05aa534e38fe5f2db9a5c5a685cd8929ea7fe Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:22:33 +0100 Subject: [PATCH 024/285] Delete he,json.txt (accidently added) --- he,json.txt | 1419 --------------------------------------------------- 1 file changed, 1419 deletions(-) delete mode 100644 he,json.txt diff --git a/he,json.txt b/he,json.txt deleted file mode 100644 index 5a638b3a..00000000 --- a/he,json.txt +++ /dev/null @@ -1,1419 +0,0 @@ -{ - "common": { - "loading": "טוען...", - "cancel": "ביטול", - "save": "שמירה", - "delete": "מחיקה", - "edit": "עריכה", - "search": "חיפוש", - "error": "שגיאה", - "success": "הצלחה", - "ok": "אישור", - "unknown": "לא ידוע", - "retry": "ניסיון חוזר", - "try_again": "נסה שנית", - "go_back": "חזור", - "settings": "הגדרות", - "close": "סגירה", - "enable": "הפעלה", - "disable": "השבתה", - "show_more": "הצג עוד", - "show_less": "הצג פחות", - "load_more": "טען עוד", - "unknown_date": "תאריך לא ידוע", - "anonymous_user": "משתמש אנונימי", - "time": { - "now": "ממש עכשיו", - "minutes_ago": "לפני {{count}} דק'", - "hours_ago": "לפני {{count}} שע'", - "days_ago": "לפני {{count}} ימים" - }, - "days_short": { - "sun": "א'", - "mon": "ב'", - "tue": "ג'", - "wed": "ד'", - "thu": "ה'", - "fri": "ו'", - "sat": "ש'" - }, - "email": "אימייל", - "status": "סטטוס" - }, - "home": { - "categories": { - "movies": "סרטים", - "series": "סדרות", - "channels": "ערוצים" - }, - "movies": "סרטים", - "tv_shows": "תוכניות טלוויזיה", - "load_more_catalogs": "טען קטלוגים נוספים", - "no_content": "אין תוכן זמין", - "add_catalogs": "הוספת קטלוגים", - "sign_in_available": "ניתן להתחבר", - "sign_in_desc": "ניתן להתחבר בכל עת דרך הגדרות ← חשבון", - "view_all": "צפייה בהכל", - "this_week": "השבוע", - "upcoming": "בקרוב", - "recently_released": "שוחררו לאחרונה", - "no_scheduled_episodes": "סדרות ללא פרקים מתוזמנים", - "check_back_later": "בדקו שוב מאוחר יותר", - "continue_watching": "המשך צפייה", - "up_next": "הבא בתור", - "up_next_caps": "הבא בתור", - "released": "שוחרר", - "new": "חדש", - "tba": "טרם פורסם", - "new_episodes": "{{count}} פרקים חדשים", - "season_short": "עונה {{season}}", - "episode_short": "פרק {{episode}}", - "season": "עונה {{season}}", - "episode": "פרק {{episode}}", - "movie": "סרט", - "series": "סדרה", - "tv_show": "תוכנית טלוויזיה", - "percent_watched": "{{percent}}% נצפו", - "view_details": "לפרטים נוספים", - "remove": "הסרה", - "play": "נגן", - "play_now": "נגן עכשיו", - "resume": "המשך", - "info": "מידע", - "more_info": "מידע נוסף", - "my_list": "הרשימה שלי", - "save": "שמירה", - "saved": "נשמר", - "retry": "ניסיון חוזר", - "install_addons": "התקנת תוספים", - "settings": "הגדרות", - "no_featured_content": "אין תוכן מומלץ", - "couldnt_load_featured": "לא ניתן לטעון תוכן מומלץ", - "no_featured_desc": "התקינו תוספים עם קטלוגים או שנו את מקור התוכן בהגדרות.", - "load_error_desc": "אירעה שגיאה בטעינת התוכן המומלץ. בדקו את החיבור ונסו שוב.", - "no_featured_available": "אין תוכן מומלץ זמין", - "no_description": "אין תיאור זמין" - }, - "navigation": { - "home": "בית", - "library": "ספרייה", - "search": "חיפוש", - "downloads": "הורדות", - "settings": "הגדרות" - }, - "search": { - "title": "חיפוש", - "recent_searches": "חיפושים אחרונים", - "discover": "גילוי", - "movies": "סרטים", - "tv_shows": "תוכניות טלוויזיה", - "select_catalog": "בחירת קטלוג", - "all_genres": "כל הז'אנרים", - "discovering": "מגלה תוכן...", - "show_more": "הצג עוד ({{count}})", - "no_content_found": "לא נמצא תוכן", - "try_different": "נסו ז'אנר או קטלוג אחר", - "select_catalog_desc": "בחרו קטלוג כדי להתחיל לגלות", - "tap_catalog_desc": "לחצו על שבב הקטלוג שלמעלה כדי להתחיל", - "placeholder": "חיפוש סרטים, סדרות...", - "keep_typing": "המשיכו להקליד...", - "type_characters": "הקלידו לפחות 2 תווים לחיפוש", - "no_results": "לא נמצאו תוצאות", - "try_keywords": "נסו מילות מפתח אחרות או בדקו את האיות", - "select_type": "בחירת סוג", - "browse_movies": "דפדוף בקטלוג סרטים", - "browse_tv": "דפדוף בקטלוג סדרות טלוויזיה", - "select_genre": "בחירת ז'אנר", - "show_all_content": "הצגת כל התוכן", - "genres_count": "{{count}} ז'אנרים" - }, - "library": { - "title": "ספרייה", - "watched": "נצפה", - "continue": "המשך", - "watchlist": "רשימת צפייה", - "collection": "אוסף", - "rated": "דורג", - "items": "פריטים", - "trakt_collections": "אוספי Trakt", - "trakt_collection": "אוסף Trakt", - "no_trakt": "אין אוספי Trakt", - "no_trakt_desc": "אוספי ה-Trakt שלך יופיעו כאן ברגע שתתחיל להשתמש ב-Trakt", - "load_collections": "טעינת אוספים", - "empty_folder": "אין תוכן ב{{folder}}", - "empty_folder_desc": "אוסף זה ריק", - "refresh": "רענון", - "no_movies": "אין עדיין סרטים", - "no_series": "אין עדיין סדרות", - "no_content": "אין עדיין תוכן", - "add_content_desc": "הוסיפו תוכן לספרייה כדי לראות אותו כאן", - "find_something": "מצאו משהו לצפות בו", - "removed_from_library": "הוסר מהספרייה", - "item_removed": "הפריט הוסר מהספרייה שלך", - "failed_update_library": "עדכון הספרייה נכשל", - "unable_remove": "לא ניתן להסיר את הפריט מהספרייה", - "marked_watched": "סומן כנצפה", - "marked_unwatched": "סומן כלא נצפה", - "item_marked_watched": "הפריט סומן כנצפה", - "item_marked_unwatched": "הפריט סומן כלא נצפה", - "failed_update_watched": "עדכון סטטוס צפייה נכשל", - "unable_update_watched": "לא ניתן לעדכן את סטטוס הצפייה", - "added_to_library": "נוסף לספרייה", - "item_added": "נוסף לספרייה המקומית שלך", - "add_to_library": "הוספה לספרייה", - "remove_from_library": "הסרה מהספרייה", - "mark_watched": "סימון כנצפה", - "mark_unwatched": "סימון כלא נצפה", - "share": "שיתוף", - "add_to_watchlist": "הוספה לרשימת הצפייה ב-Trakt", - "remove_from_watchlist": "הסרה מרשימת הצפייה ב-Trakt", - "added_to_watchlist": "נוסף לרשימת הצפייה", - "added_to_watchlist_desc": "נוסף לרשימת הצפייה שלך ב-Trakt", - "removed_from_watchlist": "הוסר מרשימת הצפייה", - "removed_from_watchlist_desc": "הוסר מרשימת הצפייה שלך ב-Trakt", - "add_to_collection": "הוספה לאוסף Trakt", - "remove_from_collection": "הסרה מאוסף Trakt", - "added_to_collection": "נוסף לאוסף", - "added_to_collection_desc": "נוסף לאוסף שלך ב-Trakt", - "removed_from_collection": "הוסר מהאוסף", - "removed_from_collection_desc": "הוסר מהאוסף שלך ב-Trakt" - }, - "metadata": { - "unable_to_load": "לא ניתן לטעון תוכן", - "error_code": "קוד שגיאה: {{code}}", - "content_not_found": "תוכן לא נמצא", - "content_not_found_desc": "תוכן זה אינו קיים או שהוסר.", - "server_error": "שגיאת שרת", - "server_error_desc": "השרת אינו זמין באופן זמני. נסו שוב מאוחר יותר.", - "bad_gateway": "שגיאת שער (Bad gateway)", - "bad_gateway_desc": "השרת חווה בעיות. נסו שוב מאוחר יותר.", - "service_unavailable": "שירות לא זמין", - "service_unavailable_desc": "השירות מושבת כעת לצורכי תחזוקה. נסו שוב מאוחר יותר.", - "too_many_requests": "יותר מדי בקשות", - "too_many_requests_desc": "שלחתם יותר מדי בקשות. המתינו רגע ונסו שוב.", - "request_timeout": "פסק זמן לבקשה", - "request_timeout_desc": "הבקשה ארכה זמן רב מדי. נסו שוב.", - "network_error": "שגיאת רשת", - "network_error_desc": "בדקו את חיבור האינטרנט ונסו שוב.", - "auth_error": "שגיאת אימות", - "auth_error_desc": "בדקו את הגדרות החשבון ונסו שוב.", - "access_denied": "גישה נדחתה", - "access_denied_desc": "אין לכם הרשאה לגשת לתוכן זה.", - "connection_error": "שגיאת חיבור", - "streams_unavailable": "מקורות סטרימינג לא זמינים", - "streams_unavailable_desc": "מקורות סטרימינג אינם זמינים כעת. נסו שוב מאוחר יותר.", - "unknown_error": "שגיאה לא ידועה", - "something_went_wrong": "משהו השתבש. נסו שוב.", - "cast": "צוות שחקנים", - "more_like_this": "עוד תכנים דומים", - "collection": "אוסף", - "episodes": "פרקים", - "seasons": "עונות", - "posters": "פוסטרים", - "banners": "באנרים", - "specials": "פרקים מיוחדים", - "season_number": "עונה {{number}}", - "episode_count": "פרק {{count}}", - "episode_count_plural": "{{count}} פרקים", - "no_episodes": "אין פרקים זמינים", - "no_episodes_for_season": "אין פרקים זמינים לעונה {{season}}", - "episodes_not_released": "ייתכן שהפרקים טרם שוחררו", - "no_description": "אין תיאור זמין", - "episode_label": "פרק {{number}}", - "watch_again": "צפייה חוזרת", - "completed": "הושלם", - "play_episode": "נגן ע'{{season}} פ'{{episode}}", - "play": "נגן", - "watched": "נצפה", - "watched_on_trakt": "נצפה ב-Trakt", - "synced_with_trakt": "סונכרן עם Trakt", - "saved": "נשמר", - "director": "במאי", - "directors": "במאים", - "creator": "יוצר", - "creators": "יוצרים", - "production": "הפקה", - "network": "רשת שידור", - "mark_watched": "סימון כנצפה", - "mark_unwatched": "סימון כלא נצפה", - "marking": "מסמן...", - "removing": "מסיר...", - "unmark_season": "ביטול סימון עונה {{season}}", - "mark_season": "סימון עונה {{season}} כנצפתה", - "resume": "המשך", - "spoiler_warning": "אזהרת ספוילר", - "spoiler_warning_desc": "תגובה זו מכילה ספוילרים. האם אתם בטוחים שברצונכם לחשוף אותה?", - "cancel": "ביטול", - "reveal_spoilers": "חשיפת ספוילרים", - "movie_details": "פרטי הסרט", - "show_details": "פרטי הסדרה", - "tagline": "שורת מחץ", - "status": "סטטוס", - "release_date": "תאריך יציאה", - "runtime": "זמן הרצה", - "budget": "תקציב", - "revenue": "הכנסות", - "origin_country": "ארץ מקור", - "original_language": "שפת מקור", - "first_air_date": "תאריך שידור ראשון", - "last_air_date": "תאריך שידור אחרון", - "total_episodes": "סה\"כ פרקים", - "episode_runtime": "אורך פרק", - "created_by": "נוצר על ידי", - "backdrop_gallery": "גלריית תמונות רקע", - "loading_episodes": "טוען פרקים...", - "no_episodes_available": "אין פרקים זמינים", - "play_next": "נגן ע'{{season}} פ'{{episode}}", - "play_next_episode": "נגן את הפרק הבא", - "save": "שמירה", - "percent_watched": "{{percent}}% נצפו", - "percent_watched_trakt": "{{percent}}% נצפו ({{traktPercent}}% ב-Trakt)", - "synced_with_trakt_progress": "סונכרן עם Trakt", - "using_trakt_progress": "משתמש בהתקדמות מ-Trakt", - "added_to_collection_hero": "נוסף לאוסף", - "added_to_collection_desc_hero": "נוסף לאוסף שלך ב-Trakt", - "removed_from_collection_hero": "הוסר מהאוסף", - "removed_from_collection_desc_hero": "הוסר מהאוסף שלך ב-Trakt", - "mark_as_watched": "סימון כנצפה", - "mark_as_unwatched": "סימון כלא נצפה" - }, - "cast": { - "biography": "ביוגרפיה", - "known_for": "מוכר בזכות", - "personal_info": "מידע אישי", - "born_in": "נולד ב{{place}}", - "filmography": "פילמוגרפיה", - "also_known_as": "ידוע גם כ-", - "no_info_available": "אין מידע נוסף זמין", - "as_character": "בתור {{character}}", - "loading_details": "טוען פרטים...", - "years_old": "בן {{age}}", - "view_filmography": "צפייה בפילמוגרפיה", - "filter": "סינון", - "sort_by": "מיון לפי", - "sort_popular": "פופולרי", - "sort_latest": "הכי חדש", - "sort_upcoming": "בקרוב", - "upcoming_badge": "בקרוב", - "coming_soon": "בקרוב", - "filmography_count": "פילמוגרפיה • {{count}} כותרים", - "loading_filmography": "טוען פילמוגרפיה...", - "load_more_remaining": "טען עוד ({{count}} נותרו)", - "alert_error_title": "שגיאה", - "alert_error_message": "לא ניתן לטעון את \"{{title}}\". נסו שוב מאוחר יותר.", - "alert_ok": "אישור", - "no_upcoming": "אין כותרים עתידיים זמינים עבור שחקן זה", - "no_content": "אין תוכן זמין עבור שחקן זה", - "no_movies": "אין סרטים זמינים עבור שחקן זה", - "no_tv": "אין תוכניות טלוויזיה זמינות עבור שחקן זה" - }, - "comments": { - "title": "תגובות Trakt", - "spoiler_warning": "⚠️ תגובה זו מכילה ספוילרים. לחצו כדי לחשוף.", - "spoiler": "ספוילר", - "contains_spoilers": "מכיל ספוילרים", - "reveal": "חשיפה", - "vip": "VIP", - "unavailable": "תגובות לא זמינות", - "no_comments": "אין עדיין תגובות ב-Trakt", - "not_in_database": "ייתכן שתוכן זה עדיין אינו מופיע במאגר של Trakt", - "check_trakt": "בדקו ב-Trakt" - }, - "trailers": { - "title": "טריילרים", - "official_trailers": "טריילרים רשמיים", - "official_trailer": "טריילר רשמי", - "teasers": "טיזרים", - "teaser": "טיזר", - "clips_scenes": "קליפים וסצנות", - "clip": "קליפ", - "featurettes": "מאחורי הקלעים", - "featurette": "סרטון קצר", - "behind_the_scenes": "מאחורי הקלעים", - "no_trailers": "אין טריילרים זמינים", - "unavailable": "טריילר לא זמין", - "unavailable_desc": "לא ניתן לטעון טריילר זה כרגע. נסו שוב מאוחר יותר.", - "unable_to_play": "לא ניתן לנגן את הטריילר. נסו שוב.", - "watch_on_youtube": "צפייה ב-YouTube" - }, - "catalog": { - "no_content_found": "לא נמצא תוכן", - "no_content_filters": "לא נמצא תוכן עבור המסננים שנבחרו", - "loading_content": "טוען תוכן...", - "back": "חזור", - "in_theaters": "בקולנוע", - "all": "הכל", - "failed_tmdb": "טעינת תוכן מ-TMDB נכשלה", - "movies": "סרטים", - "tv_shows": "תוכניות טלוויזיה", - "channels": "ערוצים" - }, - "streams": { - "back_to_episodes": "חזרה לפרקים", - "back_to_info": "חזרה למידע", - "fetching_from": "מביא נתונים מ-:", - "no_sources_available": "אין מקורות סטרימינג זמינים", - "add_sources_desc": "אנא הוסיפו מקורות סטרימינג בהגדרות", - "add_sources": "הוספת מקורות", - "finding_streams": "מחפש סטרימים זמינים...", - "finding_best_stream": "מחפש את הסטרים הטוב ביותר לניגון אוטומטי...", - "still_fetching": "עדיין מחפש סטרימים...", - "no_streams_available": "אין סטרימים זמינים", - "starting_best_stream": "מתחיל את הסטרים הטוב ביותר...", - "loading_more_sources": "טוען מקורות נוספים..." - }, - "player_ui": { - "via": "דרך {{name}}", - "audio_tracks": "רצועות שמע", - "no_audio_tracks": "אין רצועות שמע זמינות", - "playback_speed": "מהירות ניגון", - "on_hold": "בהמתנה", - "playback_error": "שגיאת ניגון", - "unknown_error": "אירעה שגיאה לא ידועה במהלך הניגון.", - "copy_error": "העתקת פרטי שגיאה", - "copied_to_clipboard": "הועתק ללוח", - "dismiss": "סגירה", - "continue_watching": "המשך צפייה", - "start_over": "התחל מהתחלה", - "resume": "המשך", - "change_source": "החלפת מקור", - "switching_source": "מחליף מקור...", - "no_sources_found": "לא נמצאו מקורות", - "sources": "מקורות", - "finding_sources": "מחפש מקורות...", - "unknown_source": "מקור לא ידוע", - "sources_limited": "המקורות עשויים להיות מוגבלים עקב שגיאות ספק.", - "episodes": "פרקים", - "specials": "פרקים מיוחדים", - "season": "עונה {{season}}", - "stream": "סטרים {{number}}", - "subtitles": "כתוביות", - "built_in": "מובנה", - "addons": "תוספים", - "style": "סגנון", - "none": "ללא", - "search_online_subtitles": "חיפוש כתוביות באינטרנט", - "preview": "תצוגה מקדימה", - "quick_presets": "הגדרות מהירות", - "default": "ברירת מחדל", - "yellow": "צהוב", - "high_contrast": "ניגודיות גבוהה", - "large": "גדול", - "core": "ליבה", - "font_size": "גודל גופן", - "show_background": "הצגת רקע", - "advanced": "מתקדם", - "position": "מיקום", - "text_color": "צבע טקסט", - "align": "יישור", - "bottom_offset": "מרחק מהתחתית", - "background_opacity": "אטימות רקע", - "text_shadow": "צל טקסט", - "on": "פעיל", - "off": "כבוי", - "outline_color": "צבע קווי מתאר", - "outline": "קווי מתאר", - "outline_width": "עובי קווי מתאר", - "letter_spacing": "מרווח בין אותיות", - "line_height": "גובה שורה", - "timing_offset": "היסט תזמון (שניות)", - "visual_sync": "סנכרון ויזואלי", - "timing_hint": "הזיזו את הכתוביות מוקדם יותר (-) או מאוחר יותר (+) כדי לסנכרן במידת הצורך.", - "reset_defaults": "איפוס לברירת מחדל", - "mark_intro_start": "סימון תחילת פתיח", - "mark_intro_end": "סימון סוף פתיח", - "intro_start_marked": "תחילת הפתיח סומנה", - "intro_submitted": "הפתיח נשלח בהצלחה", - "intro_submit_failed": "שליחת הפתיח נכשלה" - }, - "downloads": { - "title": "הורדות", - "no_downloads": "אין עדיין הורדות", - "no_downloads_desc": "תוכן שהורד יופיע כאן לצפייה במצב לא מקוון", - "explore": "גילוי תוכן", - "path_copied": "הנתיב הועתק", - "path_copied_desc": "נתיב הקובץ המקומי הועתק ללוח", - "copied": "הועתק", - "incomplete": "הורדה לא הושלמה", - "incomplete_desc": "ההורדה עדיין לא הסתיימה", - "not_available": "לא זמין", - "not_available_desc": "נתיב הקובץ המקומי זמין רק לאחר סיום ההורדה.", - "status_downloading": "מוריד", - "status_completed": "הושלם", - "status_paused": "מושהה", - "status_error": "שגיאה", - "status_queued": "בתור", - "status_unknown": "לא ידוע", - "provider": "ספק", - "streaming_playlist_warning": "ייתכן שלא יתנגן - פלייליסט סטרימינג", - "remaining": "נותרו", - "not_ready": "הורדה לא מוכנה", - "not_ready_desc": "אנא המתינו לסיום ההורדה.", - "filter_all": "הכל", - "filter_active": "פעיל", - "filter_done": "הושלם", - "filter_paused": "מושהה", - "no_filter_results": "אין הורדות מסוג {{filter}}", - "try_different_filter": "נסו לבחור מסנן אחר", - "limitations_title": "מגבלות הורדה", - "limitations_msg": "• קבצים קטנים מ-1MB הם בדרך כלל פלייליסטים של סטרימינג (M3U8) ולא ניתן להוריד אותם לצפייה לא מקוונת. אלו עובדים רק בסטרימינג חי ומכילים קישורים למקטעי וידאו, ולא את תוכן הווידאו עצמו.", - "remove_title": "הסרת הורדה", - "remove_confirm": "להסיר את \"{{title}}\" {{season_episode}}?", - "cancel": "ביטול", - "remove": "הסרה" - }, - "addons": { - "title": "תוספים", - "reorder_mode": "מצב סידור מחדש", - "reorder_info": "לתוספים בראש הרשימה יש עדיפות גבוהה יותר בטעינת תוכן", - "add_addon_placeholder": "כתובת URL של התוסף", - "add_button": "הוספת תוסף", - "my_addons": "התוספים שלי", - "community_addons": "תוספי קהילה", - "no_addons": "אין תוספים מותקנים", - "uninstall_title": "הסרת תוסף", - "uninstall_message": "האם אתם בטוחים שברצונכם להסיר את {{name}}?", - "uninstall_button": "הסרה", - "install_success": "התוסף הותקן בהצלחה", - "install_error": "התקנת התוסף נכשלה", - "load_error": "טעינת התוספים נכשלה", - "fetch_error": "קבלת פרטי התוסף נכשלה", - "invalid_url": "אנא הכניסו כתובת URL חוקית", - "configure": "הגדרה", - "version": "גרסה: {{version}}", - "installed_addons": "תוספים מותקנים", - "reorder_drag_title": "גררו תוספים לשינוי הסדר", - "install": "התקנה", - "config_unavailable_title": "הגדרה לא זמינה", - "config_unavailable_msg": "לא ניתן היה לקבוע את כתובת ה-URL להגדרה עבור תוסף זה.", - "cannot_open_config_title": "לא ניתן לפתוח הגדרות", - "cannot_open_config_msg": "לא ניתן לפתוח את כתובת ההגדרות ({{url}}). ייתכן שלתוסף אין דף הגדרות.", - "description": "תיאור", - "supported_types": "סוגים נתמכים", - "catalogs": "קטלוגים", - "no_description": "אין תיאור זמין", - "overview": "סקירה כללית", - "no_categories": "אין קטגוריות", - "pre_installed": "מותקן מראש" - }, - "trakt": { - "title": "הגדרות Trakt", - "settings_title": "הגדרות Trakt", - "connect_title": "התחברות ל-Trakt", - "connect_desc": "סנכרנו את היסטוריית הצפייה, רשימת המעקב והאוסף שלכם עם Trakt.tv", - "sign_in": "התחברות ל-Trakt", - "sign_out": "התנתקות", - "sign_out_confirm": "האם אתם בטוחים שברצונכם להתנתק מחשבון ה-Trakt שלכם?", - "joined": "הצטרף ב-{{date}}", - "sync_settings_title": "הגדרות סנכרון", - "sync_info": "כאשר מחוברים ל-Trakt, כל ההיסטוריה מסונכרנת ישירות מה-API ואינה נכתבת לאחסון המקומי. רשימת ה-'המשך צפייה' משקפת את ההתקדמות הגלובלית שלכם ב-Trakt.", - "auto_sync_label": "סנכרון אוטומטי של התקדמות הניגון", - "auto_sync_desc": "סנכרון אוטומטי של התקדמות הצפייה ל-Trakt", - "import_history_label": "ייבוא היסטוריית צפייה", - "import_history_desc": "השתמשו ב-'סנכרן עכשיו' כדי לייבא את היסטוריית הצפייה וההתקדמות מ-Trakt", - "sync_now_button": "סנכרן עכשיו", - "display_settings_title": "הגדרות תצוגה", - "show_comments_label": "הצגת תגובות Trakt", - "show_comments_desc": "הצגת תגובות מ-Trakt במסכי המידע במידה וקיימות", - "maintenance_title": "בתחזוקה", - "maintenance_unavailable": "Trakt לא זמין", - "maintenance_desc": "האינטגרציה עם Trakt מושהית זמנית לצורכי תחזוקה. כל אפשרויות הסנכרון והאימות מושבתות עד לסיום התחזוקה.", - "maintenance_button": "השירות בתחזוקה", - "auth_success_title": "התחברת בהצלחה", - "auth_success_msg": "חשבון ה-Trakt שלך חובדר בהצלחה.", - "auth_error_title": "שגיאת אימות", - "auth_error_msg": "ההתחברות ל-Trakt נכשלה.", - "auth_error_generic": "אירעה שגיאה במהלך האימות.", - "sign_out_error": "ההתנתקות מ-Trakt נכשלה.", - "sync_complete_title": "הסנכרון הושלם", - "sync_success_msg": "התקדמות הצפייה סונכרנה בהצלחה עם Trakt.", - "sync_error_msg": "הסנכרון נכשל. אנא נסו שוב." - }, - "simkl": { - "title": "הגדרות Simkl", - "settings_title": "הגדרות Simkl", - "connect_title": "התחברות ל-Simkl", - "connect_desc": "סנכרנו את היסטוריית הצפייה ועקבו אחרי מה שאתם רואים", - "sign_in": "התחברות ל-Simkl", - "sign_out": "ניתוק", - "sign_out_confirm": "האם אתם בטוחים שברצונכם להתנתק מ-Simkl?", - "syncing_desc": "הפריטים שצפיתם בהם מסתנכרנים עם Simkl.", - "auth_success_title": "התחברת בהצלחה", - "auth_success_msg": "חשבון ה-Simkl שלך חובדר בהצלחה.", - "auth_error_title": "שגיאת אימות", - "auth_error_msg": "ההתחברות ל-Simkl נכשלה.", - "auth_error_generic": "אירעה שגיאה במהלך האימות.", - "sign_out_error": "הניתוק מ-Simkl נכשל.", - "config_error_title": "שגיאת הגדרה", - "config_error_msg": "חסר Simkl Client ID במשתני הסביבה.", - "conflict_title": "קונפליקט", - "conflict_msg": "לא ניתן להתחבר ל-Simkl בזמן ש-Trakt מחובר. אנא נתקו את Trakt תחילה.", - "disclaimer": "Nuvio אינה קשורה ל-Simkl." - }, - "tmdb_settings": { - "title": "הגדרות TMDb", - "metadata_enrichment": "העשרת מידע (Metadata)", - "metadata_enrichment_desc": "שפרו את המידע על התכנים בעזרת נתוני TMDb לקבלת פרטים עשירים יותר.", - "enable_enrichment": "הפעלת העשרה", - "enable_enrichment_desc": "משלים מידע מ-TMDb עבור צוות שחקנים, סיווג גיל, לוגואים/פוסטרים ופרטי הפקה.", - "localized_text": "טקסט מקומי", - "localized_text_desc": "קבלת שמות ותיאורים בשפה המועדפת עליכם מ-TMDb.", - "language": "שפה", - "change": "שינוי", - "logo_preview": "תצוגה מקדימה של לוגו", - "logo_preview_desc": "התצוגה מראה כיצד יופיעו לוגואים מקומיים בשפה שנבחרה.", - "example": "דוגמה:", - "no_logo": "אין לוגו זמין", - "enrichment_options": "אפשרויות העשרה", - "enrichment_options_desc": "שלטו באילו נתונים יימשכו מ-TMDb. אפשרויות כבויות ישתמשו בנתוני התוסף המקוריים.", - "cast_crew": "צוות שחקנים והפקה", - "cast_crew_desc": "שחקנים, במאים, כותבים כולל תמונות פרופיל", - "title_description": "שם ותיאור", - "title_description_desc": "שימוש בשם ובתיאור המקומיים של TMDb", - "title_logos": "לוגואים של כותרים", - "title_logos_desc": "עיצובי לוגו באיכות גבוהה", - "banners_backdrops": "באנרים ותמונות רקע", - "banners_backdrops_desc": "תמונות רקע ברזולוציה גבוהה", - "certification": "סיווג תוכן", - "certification_desc": "דירוגי גיל (PG-13, R, TV-MA וכדומה)", - "recommendations": "המלצות", - "recommendations_desc": "הצעות לתוכן דומה", - "episode_data": "נתוני פרקים", - "episode_data_desc": "תמונות ממוזערות של פרקים, מידע וגיבוי לסדרות טלוויזיה", - "season_posters": "פוסטרים של עונות", - "season_posters_desc": "תמונות פוסטר ספציפיות לכל עונה", - "production_info": "פרטי הפקה", - "production_info_desc": "רשתות שידור וחברות הפקה כולל לוגואים", - "movie_details": "פרטי סרט", - "movie_details_desc": "תקציב, הכנסות, זמן הרצה, שורת מחץ", - "tv_details": "פרטי סדרת טלוויזיה", - "tv_details_desc": "סטטוס, מספר עונות, רשתות, יוצרים", - "movie_collections": "אוספי סרטים", - "movie_collections_desc": "פרנצ'ייזים (מארוול, מלחמת הכוכבים וכדומה)", - "api_configuration": "הגדרות API", - "api_configuration_desc": "הגדירו את הגישה שלכם ל-API של TMDb עבור יכולות משופרות.", - "custom_api_key": "מפתח API אישי", - "custom_api_key_desc": "השתמשו במפתח API משלכם לביצועים טובים יותר ומגבלות קצב ייעודיות.", - "custom_key_active": "מפתח API אישי פעיל", - "api_key_required": "נדרש מפתח API", - "api_key_placeholder": "הדביקו את מפתח ה-API שלכם (v3)", - "how_to_get_key": "איך משיגים מפתח API של TMDb?", - "built_in_key_msg": "כרגע בשימוש במפתח המובנה. מומלץ להשתמש במפתח אישי לביצועים טובים יותר.", - "cache_size": "גודל מטמון (Cache)", - "clear_cache": "ניקוי מטמון", - "cache_days": "תשובות TMDb נשמרות במטמון ל-7 ימים לשיפור ביצועים", - "choose_language": "בחירת שפה", - "choose_language_desc": "בחרו את השפה המועדפת לתוכן מ-TMDb", - "popular": "פופולרי", - "all_languages": "כל השפות", - "search_results": "תוצאות חיפוש", - "no_languages_found": "לא נמצאו שפות עבור \"{{query}}\"", - "clear_search": "ניקוי חיפוש", - "clear_cache_title": "ניקוי מטמון TMDB", - "clear_cache_msg": "פעולה זו תמחק את כל המידע השמור של TMDB ({{size}}). זה עלול להאט זמנית את הטעינה עד לבנייה מחדש של המטמון.", - "clear_cache_success": "מטמון TMDB נוקה בהצלחה.", - "clear_cache_error": "ניקוי המטמון נכשל.", - "clear_api_key_title": "הסרת מפתח API", - "clear_api_key_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API האישי ולחזור לברירת המחדל?", - "clear_api_key_success": "מפתח ה-API הוסר בהצלחה", - "clear_api_key_error": "הסרת מפתח ה-API נכשלה", - "empty_api_key": "מפתח API לא יכול להיות ריק.", - "invalid_api_key": "מפתח API לא תקין. אנא בדקו ונסו שוב.", - "save_error": "אירעה שגיאה בזמן השמירה. אנא נסו שוב.", - "using_builtin_key": "כעת בשימוש במפתח המובנה של TMDb.", - "using_custom_key": "כעת בשימוש במפתח האישי שלכם.", - "enter_custom_key": "אנא הזינו ושמרו את מפתח ה-API האישי שלכם.", - "key_verified": "מפתח ה-API אומת ונשמר בהצלחה." - }, - "settings": { - "language": "שפה", - "select_language": "בחר שפה", - "english": "אנגלית", - "portuguese": "פורטוגזית", - "portuguese_br": "פורטוגזית (ברזיל)", - "portuguese_pt": "פורטוגזית (פורטוגל)", - "german": "גרמנית", - "arabic": "ערבית", - "spanish": "ספרדית", - "french": "צרפתית", - "italian": "איטלקית", - "croatian": "קרואטית", - "chinese": "סינית (מפושטת)", - "hindi": "הינדי", - "serbian": "סרבית", - "hebrew": "עברית", - "account": "חשבון", - "content_discovery": "תוכן וגילוי", - "appearance": "מראה", - "integrations": "אינטגרציות", - "playback": "ניגון", - "backup_restore": "גיבוי ושחזור", - "updates": "עדכונים", - "about": "אודות", - "developer": "מפתח", - "cache": "מטמון", - "title": "הגדרות", - "settings_title": "הגדרות", - "sign_in_sync": "התחברו כדי לסנכרן", - "add_catalogs_sources": "תוספים, קטלוגים ומקורות", - "player_trailers_downloads": "נגן, טריילרים, הורדות", - "mdblist_tmdb_ai": "MDBList, TMDB, בינה מלאכותית", - "check_updates": "בדוק עדכונים", - "clear_mdblist_cache": "ניקוי מטמון MDBList", - "cache_management": "ניהול מטמון", - "downloads_counter": "הורדות וסופר...", - "made_with_love": "נוצר עם ❤️ על ידי Tapframe וחברים", - "sections": { - "information": "מידע", - "account": "חשבון", - "theme": "עיצוב", - "layout": "פריסה", - "sources": "מקורות", - "catalogs": "קטלוגים", - "discovery": "גילוי", - "metadata": "מידע (Metadata)", - "ai_assistant": "עוזר AI", - "video_player": "נגן וידאו", - "audio_subtitles": "שמע וכתוביות", - "media": "מדיה", - "notifications": "התראות", - "testing": "בדיקות", - "danger_zone": "אזור מסוכן" - }, - "items": { - "legal": "משפטי והצהרת ויתור", - "privacy_policy": "מדיניות פרטיות", - "report_issue": "דיווח על תקלה", - "version": "גרסה", - "contributors": "תורמים", - "view_contributors": "צפייה בכל התורמים", - "theme": "ערכת נושא", - "episode_layout": "פריסת פרקים", - "streams_backdrop": "רקע סטרימינג", - "streams_backdrop_desc": "הצגת רקע מטושטש בסטרימינג בנייד", - "addons": "תוספים", - "installed": "מותקנים", - "debrid_integration": "אינטגרציית Debrid", - "debrid_desc": "חיבור Torbox", - "plugins": "פלאגינים", - "plugins_desc": "ניהול פלאגינים ומאגרים", - "catalogs": "קטלוגים", - "active": "פעילים", - "home_screen": "מסך הבית", - "home_screen_desc": "פריסה ותוכן", - "continue_watching": "המשך צפייה", - "continue_watching_desc": "התנהגות מטמון וניגון", - "show_discover": "הצגת אזור הגילוי", - "show_discover_desc": "הצגת תוכן גילוי בחיפוש", - "mdblist": "MDBList", - "mdblist_connected": "מחובר", - "mdblist_desc": "הפעל כדי להוסיף דירוגים וביקורות", - "simkl": "Simkl", - "simkl_connected": "מחובר", - "simkl_desc": "מעקב אחר צפיות", - "tmdb": "TMDB", - "tmdb_desc": "מקור מידע ולוגואים", - "openrouter": "OpenRouter API", - "openrouter_connected": "מחובר", - "openrouter_desc": "הוסיפו מפתח API כדי להפעיל צ'אט AI", - "video_player": "נגן וידאו", - "built_in": "מובנה", - "external": "חיצוני", - "preferred_audio": "שפת שמע מועדפת", - "preferred_subtitle": "שפת כתוביות מועדפת", - "subtitle_source": "עדיפות מקור כתוביות", - "auto_select_subs": "בחירה אוטומטית של כתוביות", - "auto_select_subs_desc": "בחירה אוטומטית של כתוביות התואמות להעדפותיכם", - "show_trailers": "הצגת טריילרים", - "show_trailers_desc": "הצגת טריילרים באזור הראשי", - "enable_downloads": "אפשר הורדות", - "enable_downloads_desc": "הצגת לשונית הורדות ואפשרות שמירת סטרימים", - "notifications": "התראות", - "notifications_desc": "תזכורות לפרקים", - "developer_tools": "כלי מפתח", - "developer_tools_desc": "אפשרויות בדיקה ודיבאג", - "test_onboarding": "בדיקת תהליך פתיחה", - "reset_onboarding": "איפוס תהליך פתיחה", - "test_announcement": "בדיקת הכרזות", - "test_announcement_desc": "הצגת חלון 'מה חדש'", - "reset_campaigns": "איפוס קמפיינים", - "reset_campaigns_desc": "ניקוי נתוני חשיפה לקמפיינים", - "clear_all_data": "מחיקת כל הנתונים", - "clear_all_data_desc": "איפוס כל ההגדרות והמידע השמור" - }, - "options": { - "horizontal": "אופקי", - "vertical": "אנכי", - "internal_first": "פנימי תחילה", - "internal_first_desc": "עדיפות לכתוביות מובנות, ואז חיצוניות", - "external_first": "חיצוני תחילה", - "external_first_desc": "עדיפות לכתוביות מהתוסף, ואז מובנות", - "any_available": "כל מה שזמין", - "any_available_desc": "שימוש ברצועת הכתוביות הראשונה שנמצאה" - }, - "clear_data_desc": "פעולה זו תאפס את כל ההגדרות ותנקה את כל המידע השמור. האם אתם בטוחים?", - "app_updates": "עדכוני אפליקציה", - "about_nuvio": "אודות Nuvio" - }, - "privacy": { - "title": "פרטיות ומידע", - "settings_desc": "ניהול טלמטריה ואיסוף נתונים", - "info_title": "הפרטיות שלכם חשובה לנו", - "info_description": "שלטו במידע שנאסף ומשותף. ניתוח נתונים (Analytics) כבוי כברירת מחדל ודיווחי קריסה הם אנונימיים.", - "analytics_enabled_title": "ניתוח נתונים פעיל", - "analytics_enabled_message": "נתוני שימוש ייאספו כדי לעזור לנו לשפר את האפליקציה. ניתן לבטל זאת בכל עת.", - "disable_error_reporting_title": "לבטל דיווחי שגיאות?", - "disable_error_reporting_message": "ביטול דיווחי שגיאות אומר שלא נקבל התראות על קריסות או בעיות שאתם חווים. זה עלול להשפיע על היכולת שלנו לתקן באגים.", - "enable_session_replay_title": "להפעיל הקלטת סשן?", - "enable_session_replay_message": "הקלטת סשן מתעדת את המסך שלכם בזמן שגיאות כדי לעזור לנו להבין מה קרה. זה עלול ללכוד תוכן שמוצג על המסך.", - "enable_pii_title": "להפעיל איסוף מידע אישי (PII)?", - "enable_pii_message": "זה מאפשר איסוף מידע המזהה את המשתמש כמו כתובת IP ופרטי מכשיר. מידע זה עוזר לאבחן בעיות אך מגדיל את החשיפה של פרטיותכם.", - "disable_all_title": "לבטל את כל הטלמטריה?", - "disable_all_message": "זה יבטל את כל ניתוחי הנתונים, דיווחי השגיאות והקלטות הסשן. לא נקבל שום מידע על השימוש באפליקציה או על קריסות.", - "disable_all_button": "ביטול הכל", - "all_disabled_title": "כל הטלמטריה בוטלה", - "all_disabled_message": "כל איסוף הנתונים הופסק. השינויים ייכנסו לתוקף בהפעלה מחדש של האפליקציה.", - "reset_title": "חזרה להגדרות המומלצות", - "reset_message": "הגדרות הפרטיות שוחזרו לברירת המחדל המומלצת (דיווחי שגיאות פעילים, ניתוח נתונים כבוי).", - "section_analytics": "ניתוח נתונים (Analytics)", - "analytics_title": "ניתוח נתוני שימוש", - "analytics_description": "איסוף דפוסי שימוש אנונימיים וצפיות במסכים", - "section_error_reporting": "דיווחי שגיאות", - "error_reporting_title": "דיווחי קריסה", - "error_reporting_description": "שליחת דיווחי קריסה אנונימיים לשיפור היציבות", - "session_replay_title": "הקלטת סשן (Session Replay)", - "session_replay_description": "הקלטת המסך בזמן התרחשות שגיאות", - "pii_title": "כלול פרטי מכשיר", - "pii_description": "שליחת כתובת IP ופרטי מכשיר יחד עם הדיווחים", - "section_quick_actions": "פעולות מהירות", - "disable_all": "ביטול כל הטלמטריה", - "disable_all_desc": "כיבוי כל איסוף הנתונים", - "reset_recommended": "איפוס להגדרות מומלצות", - "reset_recommended_desc": "ברירות מחדל מוטות פרטיות עם דיווחי שגיאות", - "section_learn_more": "למידע נוסף", - "privacy_policy": "מדיניות פרטיות", - "current_settings": "סיכום הגדרות נוכחיות", - "summary_analytics": "ניתוח נתונים", - "summary_errors": "דיווחי שגיאות", - "summary_replay": "הקלטת סשן", - "summary_pii": "פרטי מכשיר", - "restart_note_detailed": "* שינויים בניתוח נתונים ודיווחי שגיאות נכנסים לתוקף מיידית. הגדרות הקלטת סשן ופרטי מכשיר דורשות הפעלה מחדש." - }, - "ai_settings": { - "title": "עוזר AI", - "info_title": "צ'אט מבוסס בינה מלאכותית", - "info_desc": "שאלו שאלות על כל סרט או פרק בסדרה בעזרת AI מתקדם. קבלו תובנות על העלילה, דמויות, נושאים, טריוויה ועוד - הכל מבוסס על נתוני TMDB מקיפים.", - "feature_1": "ניתוח והקשר ספציפי לפרקים", - "feature_2": "הסברי עלילה ותובנות על דמויות", - "feature_3": "עובדות וטריוויה מאחורי הקלעים", - "feature_4": "שימוש במפתח OpenRouter API משלכם", - "api_key_section": "מפתח OPENROUTER API", - "api_key_label": "מפתח API", - "api_key_desc": "הזינו את מפתח ה-API של OpenRouter כדי להפעיל את יכולות הצ'אט", - "save_api_key": "שמירת מפתח API", - "saving": "שומר...", - "update": "עדכון", - "remove": "הסרה", - "get_free_key": "קבלת מפתח API בחינם מ-OpenRouter", - "enable_chat": "הפעלת צ'אט AI", - "enable_chat_desc": "כאשר פעיל, כפתור \"שאל את ה-AI\" יופיע בדפי התוכן.", - "chat_enabled": "צ'אט AI פעיל", - "chat_enabled_desc": "כעת ניתן לשאול שאלות על סרטים וסדרות. חפשו את כפתור \"שאל את ה-AI\" בדפי התוכן!", - "how_it_works": "איך זה עובד", - "how_it_works_desc": "• OpenRouter מספק גישה למגוון מודלי AI\n• מפתח ה-API שלכם נשאר פרטי ומאובטח\n• המסלול החינמי כולל מגבלות שימוש נדיבות\n• צ'אט עם הקשר על פרקים/סרטים ספציפיים\n• קבלת ניתוחים והסברים מפורטים", - "error_invalid_key": "אנא הזינו מפתח API תקין", - "error_key_format": "מפתחות API של OpenRouter צריכים להתחיל ב-\"sk-or-\"", - "success_saved": "מפתח ה-API של OpenRouter נשמר בהצלחה!", - "error_save": "שמירת מפתח ה-API נכשלה", - "confirm_remove_title": "הסרת מפתח API", - "confirm_remove_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API? פעולה זו תבטל את יכולות הצ'אט.", - "success_removed": "מפתח ה-API הוסר בהצלחה", - "error_remove": "הסרת מפתח ה-API נכשלה" - }, - "catalog_settings": { - "title": "קטלוגים", - "layout_phone": "פריסת מסך קטלוג (טלפון)", - "posters_per_row": "פוסטרים בשורה", - "auto": "אוטומטי", - "show_titles": "הצגת שמות על פוסטרים", - "show_titles_desc": "הצגת שם התוכן מתחת לכל פוסטר", - "phone_only_hint": "תקף לטלפונים בלבד. טאבלטים שומרים על פריסה אדפטיבית.", - "catalogs_group": "קטלוגים", - "enabled_count": "{{enabled}} מתוך {{total}} פעילים", - "rename_hint": "לחיצה ארוכה על קטלוג כדי לשנות את שמו", - "rename_modal_title": "שינוי שם קטלוג", - "rename_placeholder": "הזינו שם קטלוג חדש", - "error_save_name": "לא ניתן היה לשמור את השם המותאם." - }, - "continue_watching_settings": { - "title": "המשך צפייה", - "playback_behavior": "התנהגות ניגון", - "use_cached": "שימוש בקישורים שמורים (Cache)", - "use_cached_desc": "כאשר פעיל, לחיצה על פריטי 'המשך צפייה' תפתח את הנגן ישירות עם הקישורים הקודמים. כאשר כבוי, ייפתח מסך התוכן במקום זאת.", - "open_metadata": "פתיחת מסך מידע", - "open_metadata_desc": "כאשר קישורים שמורים כבויים, פתח את מסך המידע במקום מסך הסטרימים. זה מציג פרטי תוכן ומאפשר בחירה ידנית של מקור.", - "card_appearance": "מראה כרטיסייה", - "card_style": "סגנון כרטיסייה", - "card_style_desc": "בחרו כיצד יופיעו פריטי 'המשך צפייה' במסך הבית", - "wide": "רחב", - "poster": "פוסטר", - "cache_settings": "הגדרות מטמון (Cache)", - "cache_duration": "משך שמירת קישור", - "cache_duration_desc": "כמה זמן לשמור קישורי סטרימינג לפני שתוקפם יפוג", - "important_note": "הערה חשובה", - "important_note_text": "לא כל קישורי הסטרימינג נשארים פעילים לכל משך זמן המטמון. זמני שמירה ארוכים עלולים להוביל לקישורים שפג תוקפם. אם קישור שמור נכשל, האפליקציה תחזור לחיפוש מקורות טריים.", - "how_it_works": "איך זה עובד", - "how_it_works_cached": "• קישורים נשמרים למשך הזמן שבחרתם לאחר הניגון\n• הקישורים השמורים מאומתים לפני השימוש\n• אם המטמון לא תקין או פג תוקפו, המערכת חוזרת למסך התוכן\n• 'שימוש בקישורים שמורים' שולט במעבר ישיר לנגן לעומת ניווט למסך\n• 'פתיחת מסך מידע' מופיע רק כשקישורים שמורים כבויים", - "how_it_works_uncached": "• כשקישורים שמורים כבויים, לחיצה על המשך צפייה פותחת מסכי תוכן\n• האופציה 'פתיחת מסך מידע' שולטת איזה מסך ייפתח\n• מסך מידע מציג פרטי תוכן ומאפשר בחירה ידנית\n• מסך סטרימים מציג מקורות זמינים לניגון מיידי", - "changes_saved": "השינויים נשמרו", - "min": "דקות", - "hour": "שעה", - "hours": "שעות" - }, - "contributors": { - "title": "תורמים", - "special_mentions": "אזכורים מיוחדים", - "tab_contributors": "תורמים", - "tab_special": "אזכורים מיוחדים", - "tab_donors": "תורמים (Donors)", - "manager_role": "מנהל קהילה", - "manager_desc": "מנהל את קהילות הדיסקורד והרדיט של Nuvio", - "sponsor_role": "ספונסר שרת", - "sponsor_desc": "מימן את תשתית השרתים של Nuvio", - "mod_role": "מודרטור דיסקורד", - "mod_desc": "עוזר בניהול קהילת הדיסקורד של Nuvio", - "loading": "טוען...", - "discord_user": "משתמש דיסקורד", - "contributions": "תרומות", - "gratitude_title": "אנחנו מודים על כל תרומה", - "gratitude_desc": "כל שורת קוד, דיווח באג או הצעה עוזרים להפוך את Nuvio לטובה יותר עבור כולם", - "special_thanks_title": "תודה מיוחדת", - "special_thanks_desc": "האנשים המדהימים האלה עוזרים לשמור על קהילת Nuvio פעילה ועל השרתים מחוברים", - "donors_desc": "תודה שאתם מאמינים במה שאנחנו בונים. התמיכה שלכם שומרת על Nuvio חינמית ומשתפרת כל הזמן.", - "latest_donations": "אחרונים", - "leaderboard": "לוח מובילים", - "loading_donors": "טוען תורמים...", - "no_donors": "אין עדיין תורמים", - "error_rate_limit": "חרגתם ממגבלת ה-API של GitHub. אנא נסו שוב מאוחר יותר.", - "error_failed": "טעינת התורמים נכשלה. אנא בדקו את חיבור האינטרנט.", - "retry": "נסה שוב", - "no_contributors": "לא נמצאו תורמים", - "loading_contributors": "טוען תורמים..." - }, - "debrid": { - "title": "אינטגרציית Debrid", - "description_torbox": "פתחו סטרימינג באיכות 4K ומהירויות גבוהות על ידי חיבור Torbox. הזינו את מפתח ה-API שלכם למטה לשדרוג חווית הצפייה.", - "description_torrentio": "הגדר את Torrentio כדי לקבל מקורות טורנט לסרטים וסדרות. שירות debrid נדרש כדי להזרים את התוכן.", - "tab_torbox": "TorBox", - "tab_torrentio": "Torrentio", - "status_connected": "מחובר", - "status_disconnected": "מנותק", - "enable_addon": "הפעלת תוסף", - "disconnect_button": "ניתוק והסרה", - "disconnect_loading": "מתנתק...", - "account_info": "פרטי חשבון", - "plan": "תוכנית", - "plan_free": "חינם", - "plan_essential": "Essential ($3/mo)", - "plan_pro": "Pro ($10/mo)", - "plan_standard": "Standard ($5/mo)", - "plan_unknown": "לא ידוע", - "expires": "פג תוקף", - "downloaded": "הורדו", - "status_active": "פעיל", - "connected_title": "✓ מחובר ל-TorBox", - "connected_desc": "תוסף ה-TorBox שלך פעיל ומספק מקורות פרימיום.", - "configure_title": "הגדרת תוסף", - "configure_desc": "התאימו את חווית הצפייה. מיון לפי איכות, סינון גודל קבצים וניהול הגדרות נוספות.", - "open_settings": "פתח הגדרות", - "what_is_debrid": "מה זה שירות Debrid?", - "enter_api_key": "הזינו מפתח API", - "connect_button": "התחברות והתקנה", - "connecting": "מתחבר...", - "unlock_speeds_title": "פתיחת מהירויות פרימיום", - "unlock_speeds_desc": "רכשו מנוי Torbox לגישה למקורות באיכות גבוהה ללא טעינה (Buffering).", - "get_subscription": "רכישת מנוי", - "powered_by": "מופעל על ידי", - "disclaimer_torbox": "Nuvio אינה קשורה ל-Torbox בשום צורה.", - "disclaimer_torrentio": "Nuvio אינה קשורה ל-Torrentio בשום צורה.", - "installed_badge": "✓ מותקן", - "promo_title": "⚡ צריכים שירות Debrid?", - "promo_desc": "קבלו את TorBox לסטרימינג 4K מהיר במיוחד ללא Buffering. טורנטים שמורים והורדות מיידיות.", - "promo_button": "קבלת מנוי TorBox", - "service_label": "שירות Debrid *", - "api_key_label": "מפתח API *", - "sorting_label": "מיון", - "exclude_qualities": "החרגת איכויות", - "priority_languages": "שפות בעדיפות", - "max_results": "מקסימום תוצאות", - "additional_options": "אפשרויות נוספות", - "no_download_links": "אל תציג קישורי הורדה", - "no_debrid_catalog": "אל תציג קטלוג Debrid", - "install_button": "התקנת Torrentio", - "installing": "מתקין...", - "update_button": "עדכון הגדרות", - "updating": "מעדכן...", - "remove_button": "הסרת Torrentio", - "error_api_required": "נדרש מפתח API", - "error_api_required_desc": "אנא הזינו את מפתח ה-API של שירות ה-debrid שלכם כדי להתקין את Torrentio.", - "success_installed": "תוסף Torrentio הותקן בהצלחה!", - "success_removed": "תוסף Torrentio הוסר בהצלחה", - "alert_disconnect_title": "ניתוק Torbox", - "alert_disconnect_msg": "האם אתם בטוחים שברצונכם לנתק את Torbox? זה יסיר את התוסף וימחוק את מפתח ה-API השמור." - }, - "home_screen": { - "title": "הגדרות מסך הבית", - "changes_applied": "השינויים הוחלו", - "display_options": "אפשרויות תצוגה", - "show_hero": "הצגת קרוסלת תוכן (Hero)", - "show_hero_desc": "תוכן מומלץ בראש המסך", - "show_this_week": "הצגת 'השבוע'", - "show_this_week_desc": "פרקים חדשים מהשבוע הנוכחי", - "select_catalogs": "בחירת קטלוגים", - "all_catalogs": "כל הקטלוגים", - "selected": "נבחרו", - "hero_layout": "פריסת קרוסלה (Hero)", - "layout_legacy": "קלאסי", - "layout_carousel": "קרוסלה", - "layout_appletv": "Apple TV", - "layout_desc": "באנר ברוחב מלא, כרטיסיות להחלקה, או סגנון Apple TV", - "featured_source": "מקור תוכן מומלץ", - "using_catalogs": "משתמש בקטלוגים", - "manage_selected_catalogs": "ניהול קטלוגים שנבחרו", - "dynamic_bg": "רקע דינמי לקרוסלה", - "dynamic_bg_desc": "באנר מטושטש מאחורי הקרוסלה", - "performance_note": "עשוי להשפיע על הביצועים במכשירים חלשים.", - "posters": "פוסטרים", - "show_titles": "הצגת שמות", - "poster_size": "גודל פוסטר", - "poster_corners": "פינות הפוסטר", - "size_small": "קטן", - "size_medium": "בינוני", - "size_large": "גדול", - "corners_square": "ישרות", - "corners_rounded": "מעוגלות", - "corners_pill": "מעוגלות מאוד (Pill)", - "about_these_settings": "אודות ההגדרות הללו", - "about_desc": "הגדרות אלו קובעות כיצד יוצג התוכן במסך הבית שלכם. השינויים מוחלים מיידית ללא צורך בהפעלה מחדש.", - "hero_catalogs": { - "title": "קטלוגים לקרוסלה הראשי", - "select_all": "בחירת הכל", - "clear_all": "ניקוי הכל", - "info": "בחרו אילו קטלוגים יוצגו בקרוסלה הראשית. אם לא ייבחר דבר, ייעשה שימוש בכל הקטלוגים. אל תשכחו ללחוץ על שמירה בסיום.", - "settings_saved": "ההגדרות נשמרו", - "error_load": "טעינת הקטלוגים נכשלה", - "movies": "סרטים", - "tv_shows": "סדרות טלוויזיה" - } - }, - "calendar": { - "title": "לוח שידורים", - "loading": "טוען לוח שידורים...", - "no_scheduled_episodes": "אין פרקים מתוכננים", - "check_back_later": "בדקו שוב מאוחר יותר", - "showing_episodes_for": "מציג פרקים עבור {{date}}", - "show_all_episodes": "הצגת כל הפרקים", - "no_episodes_for": "אין פרקים עבור {{date}}", - "no_upcoming_found": "לא נמצאו פרקים קרובים", - "add_series_desc": "הוסיפו סדרות לספרייה שלכם כדי לראות את הפרקים הבאים שלהן כאן" - }, - "mdblist": { - "title": "מקורות דירוג", - "status_disabled": "MDBList כבוי", - "status_active": "מפתח API פעיל", - "status_required": "נדרש מפתח API", - "status_disabled_desc": "פונקציונליות MDBList מושבתת כרגע.", - "status_active_desc": "דירוגים מ-MDBList פעילים.", - "status_required_desc": "הוסיפו את המפתח שלכם למטה כדי להפעיל דירוגים.", - "enable_toggle": "הפעלת MDBList", - "enable_toggle_desc": "הפעלה/כיבוי של כל יכולות MDBList", - "api_section": "מפתח API", - "placeholder": "הדביקו את מפתח ה-API של MDBList", - "save": "שמירה", - "clear": "מחיקת מפתח", - "rating_providers": "ספקי דירוג", - "rating_providers_desc": "בחרו אילו דירוגים להציג באפליקציה", - "how_to": "איך משיגים מפתח API?", - "step_1": "התחברו לאתר", - "step_1_link": "MDBList", - "step_2": "עברו ללשונית", - "step_2_settings": "הגדרות (Settings)", - "step_2_api": "API", - "step_2_end": ".", - "step_3": "צרו מפתח חדש והעתיקו אותו.", - "go_to_website": "מעבר לאתר MDBList", - "alert_clear_title": "מחיקת מפתח API", - "alert_clear_msg": "האם אתם בטוחים שברצונכם להסיר את מפתח ה-API השמור?", - "success_saved": "מפתח ה-API נשמר בהצלחה.", - "error_empty": "מפתח ה-API אינו יכול להיות ריק.", - "error_save": "אירעה שגיאה במהלך השמירה. אנא נסו שוב.", - "api_key_empty_error": "מפתח ה-API אינו יכול להיות ריק.", - "success_cleared": "מפתח ה-API נמחק בהצלחה", - "error_clear": "מחיקת מפתח ה-API נכשלה" - }, - "notification": { - "title": "הגדרות התראות", - "section_general": "כללי", - "enable_notifications": "הפעלת התראות", - "section_types": "סוגי התראות", - "new_episodes": "פרקים חדשים", - "upcoming_shows": "סדרות קרובות", - "reminders": "תזכורות", - "section_timing": "תזמון התראות", - "timing_desc": "מתי תרצו לקבל התראה לפני שידור פרק?", - "hours_1": "שעה אחת", - "hours_suffix": "שעות", - "section_status": "סטטוס התראות", - "stats_upcoming": "קרובים", - "stats_this_week": "השבוע", - "stats_total": "סה\"כ", - "sync_button": "סנכרון ספרייה ו-Trakt", - "syncing": "מסנכרן...", - "sync_desc": "מסנכרן אוטומטית התראות עבור כל הסדרות בספרייה שלכם וברשימות ה-Trakt.", - "section_advanced": "מתקדם", - "reset_button": "איפוס כל ההתראות", - "test_button": "התראת בדיקה (5 שניות)", - "test_notification_in": "התראה בעוד {{seconds}} שניות...", - "test_notification_text": "התראה תופיע בעוד {{seconds}} שניות", - "alert_reset_title": "איפוס התראות", - "alert_reset_msg": "פעולה זו תבטל את כל ההתראות המתוזמנות, אך לא תסיר דבר מהספרייה השמורה. האם אתם בטוחים?", - "alert_reset_success": "כל ההתראות אופסו", - "alert_sync_complete": "הסנכרון הושלם", - "alert_sync_msg": "התראות עבור הספרייה ונתוני Trakt סונכרנו בהצלחה.\n\nתוזמנו: {{upcoming}} פרקים קרובים\nהשבוע: {{thisWeek}} פרקים", - "alert_test_scheduled": "התראת בדיקה תוזמנה להופעה מיידית" - }, - "backup": { - "title": "גיבוי ושחזור", - "options_title": "אפשרויות גיבוי", - "options_desc": "בחרו מה לכלול בגיבוי שלכם", - "section_core": "נתוני ליבה", - "section_addons": "תוספים ואינטגרציות", - "section_settings": "הגדרות והעדפות", - "library_label": "ספרייה", - "library_desc": "הסרטים וסדרות הטלוויזיה השמורים שלכם", - "watch_progress_label": "התקדמות צפייה", - "watch_progress_desc": "נקודות הזמן שבהן הפסקתם לצפות", - "addons_label": "תוספים", - "addons_desc": "תוספי Stremio מותקנים", - "plugins_label": "פלאגינים", - "plugins_desc": "הגדרות סורקים (Scrapers) מותאמות", - "trakt_label": "אינטגרציית Trakt", - "trakt_desc": "סנכרון נתונים ואסימוני אימות", - "app_settings_label": "הגדרות אפליקציה", - "app_settings_desc": "עיצוב, העדפות והגדרות מערכת", - "user_prefs_label": "העדפות משתמש", - "user_prefs_desc": "סדר תוספים והגדרות ממשק משתמש", - "catalog_settings_label": "הגדרות קטלוג", - "catalog_settings_desc": "מסנני קטלוג והעדפות", - "api_keys_label": "מפתחות API", - "api_keys_desc": "מפתחות MDBList ו-OpenRouter", - "action_create": "יצירת גיבוי", - "action_restore": "שחזור מגיבוי", - "section_info": "אודות גיבויים", - "info_text": "• ניתן להתאים מה יגובה באמצעות המתגים למעלה\n• קבצי הגיבוי נשמרים מקומית על המכשיר שלכם\n• שתפו את קובץ הגיבוי כדי להעביר נתונים בין מכשירים\n• שחזור יחליף את הנתונים הנוכחיים שלכם", - "alert_create_title": "יצירת גיבוי", - "alert_no_content": "לא נבחר תוכן לגיבוי.\n\nאנא הפעילו לפחות אפשרות אחת בסעיף אפשרויות הגיבוי.", - "alert_backup_created_title": "הגיבוי נוצר", - "alert_backup_created_msg": "הגיבוי שלכם נוצר ומוכן לשיתוף.", - "alert_backup_failed_title": "הגיבוי נכשל", - "alert_restore_confirm_title": "אישור שחזור", - "alert_restore_confirm_msg": "פעולה זו תשחזר נתונים מגיבוי שנוצר בתאריך {{date}}.\n\nפעולה זו תדרוס את הנתונים הנוכחיים שלכם. האם אתם בטוחים שברצונכם להמשיך?", - "alert_restore_complete_title": "השחזור הושלם", - "alert_restore_complete_msg": "הנתונים שוחזרו בהצלחה. אנא הפעילו מחדש את האפליקציה כדי לראות את השינויים.", - "alert_restore_failed_title": "השחזור נכשל", - "restart_app": "הפעלה מחדש", - "alert_restart_failed_title": "הפעלה מחדש נכשלה", - "alert_restart_failed_msg": "הפעלת האפליקציה מחדש נכשלה. אנא סגרו ופתחו את האפליקציה ידנית." - }, - "updates": { - "title": "עדכוני אפליקציה", - "status_checking": "בודק עדכונים...", - "status_available": "יש עדכון זמין!", - "status_downloading": "מוריד עדכון...", - "status_installing": "מתקין עדכון...", - "status_success": "העדכון הותקן בהצלחה!", - "status_error": "העדכון נכשל", - "status_ready": "מוכן לבדיקת עדכונים", - "action_check": "בדוק עדכונים", - "action_install": "התקן עדכון", - "release_notes": "הערות גרסה:", - "version": "גרסה:", - "last_checked": "בדיקה אחרונה:", - "current_version": "גרסה נוכחית:", - "current_release_notes": "הערות לגרסה הנוכחית:", - "github_release": "גרסת GITHUB", - "current": "נוכחית:", - "latest": "חדשה ביותר:", - "notes": "הערות:", - "view_release": "צפייה בגרסה", - "notification_settings": "הגדרות התראות", - "ota_alerts_label": "התראות עדכוני OTA", - "ota_alerts_desc": "הצגת התראות עבור עדכונים מהירים (Over-the-air)", - "major_alerts_label": "התראות על גרסאות ראשיות", - "major_alerts_desc": "הצגת התראות עבור גרסאות אפליקציה חדשות ב-GitHub", - "alert_disable_ota_title": "לבטל התראות עדכוני OTA?", - "alert_disable_ota_msg": "לא תקבלו יותר התראות אוטומטיות על עדכוני OTA.\n\n⚠️ אזהרה: שמירה על הגרסה העדכנית חשובה עבור:\n• תיקוני באגים ושיפורי יציבות\n• תכונות חדשות ושיפורים\n• מתן משוב ודיווחי קריסה מדויקים\n\nעדיין תוכלו לבדוק עדכונים ידנית במסך זה.", - "alert_disable_major_title": "לבטל התראות על גרסאות ראשיות?", - "alert_disable_major_msg": "לא תקבלו יותר התראות על עדכוני אפליקציה גדולים הדורשים התקנה מחדש.\n\n⚠️ אזהרה: עדכונים ראשיים כוללים לרוב:\n• תיקוני אבטחה קריטיים\n• שינויים משמעותיים הדורשים התקנה מחדש\n• תיקוני תאימות חשובים\n\nעדיין תוכלו לבדוק עדכונים ידנית.", - "warning_note": "השארת ההתראות פעילות מבטיחה שתקבלו תיקוני באגים ותוכלו לספק דיווחי קריסה מדויקים.", - "disable": "ביטול", - "alert_no_update_to_install": "אין עדכון זמין להתקנה", - "alert_install_failed": "התקנת העדכון נכשלה", - "alert_no_update_title": "אין עדכון", - "alert_update_applied_msg": "העדכון יוחל בהפעלה מחדש הבאה של האפליקציה" - }, - "player": { - "title": "נגן וידאו", - "section_selection": "בחירת נגן", - "internal_title": "נגן מובנה", - "internal_desc": "שימוש בנגן ברירת המחדל של האפליקציה", - "vlc_title": "VLC", - "vlc_desc": "פתיחת סטרימים בנגן VLC", - "infuse_title": "Infuse", - "infuse_desc": "פתיחת סטרימים בנגן Infuse", - "outplayer_title": "OutPlayer", - "outplayer_desc": "פתיחת סטרימים בנגן OutPlayer", - "vidhub_title": "VidHub", - "vidhub_desc": "פתיחת סטרימים בנגן VidHub", - "infuse_live_title": "Infuse Livecontainer", - "infuse_live_desc": "פתיחת סטרימים ב-Infuse דרך LiveContainer", - "external_title": "נגן חיצוני", - "external_desc": "פתיחת סטרימים בנגן הוידאו המועדף עליכם", - "section_playback": "אפשרויות ניגון", - "skip_intro_settings_title": "דילוג על פתיח", - "powered_by_introdb": "מופעל על ידי IntroDB", - "autoplay_title": "ניגון אוטומטי של המקור הראשון", - "autoplay_desc": "התחלת הסטרים הראשון המופיע ברשימה באופן אוטומטי.", - "resume_title": "המשך צפייה תמידי", - "resume_desc": "דילוג על שאלת ה-'המשך צפייה' והמשך אוטומטי מהנקודה האחרונה (אם נצפה פחות מ-85%).", - "engine_title": "מנוע נגן וידאו", - "engine_desc": "במצב אוטומטי נעשה שימוש ב-ExoPlayer עם גיבוי של MPV. פורמטים מסוימים כמו Dolby Vision ו-HDR עשויים לא להיתמך ב-MPV, לכן מומלץ להישאר על אוטומטי.", - "decoder_title": "מצב מפענח (Decoder)", - "decoder_desc": "כיצד הוידאו מפוענח. מומלץ לבחור באוטומטי לאיזון מיטבי.", - "gpu_title": "רינדור GPU", - "gpu_desc": "GPU-Next מציע ניהול צבעים ו-HDR טובים יותר.", - "external_downloads_title": "נגן חיצוני עבור הורדות", - "external_downloads_desc": "ניגון תוכן שהורד בנגן חיצוני מועדף.", - "restart_required": "נדרשת הפעלה מחדש", - "restart_msg_decoder": "אנא הפעילו מחדש את האפליקציה כדי ששינוי המפענח ייכנס לתוקף.", - "restart_msg_gpu": "אנא הפעילו מחדש את האפליקציה כדי ששינוי מצב ה-GPU ייכנס לתוקף.", - "option_auto": "אוטומטי", - "option_auto_desc_engine": "ExoPlayer + גיבוי MPV", - "option_mpv": "MPV", - "option_mpv_desc": "MPV בלבד", - "option_auto_desc_decoder": "איזון מיטבי", - "option_sw": "SW", - "option_sw_desc": "תוכנה (Software)", - "option_hw": "HW", - "option_hw_desc": "חומרה (Hardware)", - "option_hw_plus": "HW+", - "option_hw_plus_desc": "חומרה מלאה", - "option_gpu_desc": "סטנדרטי", - "option_gpu_next_desc": "מתקדם" - }, - "plugins": { - "title": "תוספים (Plugins)", - "enable_title": "הפעלת תוספים", - "enable_desc": "הפעלת מנוע התוספים כדי לאתר מקורות מדיה חיצוניים", - "repo_config_title": "הגדרות מאגר (Repository)", - "repo_config_desc": "ניהול מאגרי תוספים חיצוניים. ניתן להפעיל או לכבות כל מאגר להלן.", - "your_repos": "מאגרים", - "your_repos_desc": "הגדרת מקורות חיצוניים עבור תוספים.", - "add_repo_button": "הוספת מאגר", - "refresh": "רענון", - "remove": "הסרה", - "enabled": "פעיל", - "disabled": "כבוי", - "updating": "מעדכן...", - "success": "הצלחנו", - "error": "שגיאה", - "alert_repo_added": "המאגר נוסף והתוספים נטענו בהצלחח", - "alert_repo_saved": "כתובת המאגר נשמרה בהצלחה", - "alert_repo_refreshed": "המאגר רוענן בהצלחה", - "alert_invalid_url": "פורמט כתובת (URL) לא תקין", - "alert_plugins_cleared": "כל התוספים הוסרו", - "alert_cache_cleared": "מטמון המאגרים נוקה בהצלחה", - "unknown": "לא ידוע", - "active": "פעיל", - "available": "זמין", - "platform_disabled": "פלטפורמה כבויה", - "limited": "מוגבל", - "clear_all": "הסרת כל התוספים", - "clear_all_desc": "האם אתם בטוחים שברצונכם להסיר את כל התוספים המותקנים? לא ניתן לבטל פעולה זו.", - "clear_cache": "ניקוי מטמון מאגרים", - "clear_cache_desc": "פעולה זו תחמוק את כתובת המאגר ותנקה את כל נתוני התוספים השמורים. תצטרכו להזין מחדש את כתובת המאגר.", - "add_new_repo": "הוספת מאגר חדש", - "available_plugins": "תוספים זמינים ({{count}})", - "placeholder": "חיפוש תוספים...", - "all": "הכל", - "filter_all": "כל הסוגים", - "filter_movies": "סרטים", - "filter_tv": "סדרות טלוויזיה", - "enable_all": "הפעלת הכל", - "disable_all": "ביטול הכל", - "no_plugins_found": "לא נמצאו תוספים", - "no_plugins_available": "אין תוספים זמינים", - "no_match_desc": "לא נמצאו תוספים התואמים ל-\"{{query}}\". נסו מונח חיפוש אחר.", - "configure_repo_desc": "הגדירו מאגר למעלה כדי לצפות בתוספים זמינים.", - "clear_search": "ניקוי חיפוש", - "no_external_player": "אין נגן חיצוני", - "showbox_token": "ShowBox UI Token", - "showbox_placeholder": "הדביקו את ה-token של ShowBox כאן", - "save": "שמירה", - "clear": "ניקוי", - "additional_settings": "הגדרות נוספות", - "enable_url_validation": "הפעלת אימות כתובת (URL)", - "url_validation_desc": "אימות כתובות מדיה לפני הצגתן (עשוי להאט את התוצאות אך משפר אמינות)", - "group_streams": "קיבוץ מקורות תוספים", - "group_streams_desc": "כאשר פעיל, המקורות מקובצים לפי מאגר. כשר כבוי, כל תוסף מופיע כספק נפרד.", - "sort_quality": "מיון לפי איכות תחילה", - "sort_quality_desc": "כאשר פעיל, המקורות ממוינים לפי איכות. זמין רק כאשר קיבוץ המקורות מופעל.", - "show_logos": "הצגת לוגו התוסף", - "show_logos_desc": "הצגת לוגו התוסף לצד קישורי המדיה במסך המקורות.", - "quality_filtering": "סינון איכות", - "quality_filtering_desc": "החרגת רזולוציות וידאו ספציפיות מתוצאות החיפוש. לחצו על איכות כדי להחריג אותה.", - "excluded_qualities": "איכויות שהוחרגו:", - "language_filtering": "סינון שפה", - "language_filtering_desc": "החרגת שפות ספציפיות מתוצאות החיפוש. לחצו על שפה כדי להחריג אותה.", - "note": "הערה:", - "language_filtering_note": "מסנן זה חל רק על ספקים הכוללים מידע על שפה. הוא אינו משפיע על ספקים אחרים.", - "excluded_languages": "שפות שהוחרגו:", - "about_title": "אודות תוספים", - "about_desc_1": "תוספים הם רכיבים מודולריים שמתאימים תוכן מפרוטוקולים חיצוניים שונים. הם רצים מקומית על המכשיר שלכם וניתנים להתקנה ממאגרים מהימנים.", - "about_desc_2": "תוספים המסומנים כ-\"מוגבלים\" עשויים לדרוש הגדרות חיצוניות ספציפיות.", - "help_title": "הגדרת תוספים", - "help_step_1": "1. **הפעלת תוספים** - הפעילו את המתג הראשי", - "help_step_2": "2. **הוספת מאגר** - הוסיפו כתובת מאגר (URL) תקינה", - "help_step_3": "3. **רענון מאגר** - טעינת התוספים הזמינים", - "help_step_4": "4. **הפעלה** - הפעילו את התוספים שבהם תרצו להשתמש", - "got_it": "הבנתי!", - "repo_format_hint": "פורמט: https://raw.githubusercontent.com/username/repo/refs/heads/branch", - "cancel": "ביטול", - "add": "הוספה" - }, - "theme": { - "title": "ערכות נושא (Themes)", - "select_theme": "בחירת ערכת נושא", - "create_custom": "יצירת ערכה מותאמת אישית", - "options": "אפשרויות", - "use_dominant_color": "שימוש בצבע הדומיננטי מהפוסטר", - "categories": { - "all": "כל הערכות", - "dark": "ערכות כהות", - "colorful": "צבעוני", - "custom": "הערכות שלי" - }, - "editor": { - "theme_name_placeholder": "שם ערכת הנושא", - "save": "שמירה", - "primary": "ראשי", - "secondary": "משני", - "background": "רקע", - "invalid_name_title": "שם לא תקין", - "invalid_name_msg": "אנא הזינו שם תקין לערכת הנושא" - }, - "alerts": { - "delete_title": "מחיקת ערכת נושא", - "delete_msg": "האם אתם בטוחים שברצונכם למחוק את \"{{name}}\"?", - "ok": "אישור", - "delete": "מחיקה", - "cancel": "ביטול", - "back": "הגדרות" - } - }, - "legal": { - "title": "משפטי והצהרת אחריות", - "intro_title": "מהות האפליקציה", - "intro_text": "Nuvio היא נגן מדיה ואפליקציה לניהול מטא-דאטה. היא משמשת אך ורק כממשק צד-לקוח לדפדוף במידע זמין לציבור (סרטים, סדרות וכו') ולניגון קבצי מדיה המסופקים על ידי המשתמש או תוספי צד-שלישי. Nuvio עצמה אינה מארחת, מאחסנת, מפיצה או מקטלגת תוכן מדיה כלשהו.", - "extensions_title": "תוספי צד-שלישי", - "extensions_text": "Nuvio משתמשת בארכיטקטורה הניתנת להרחבה המאפשרת למשתמשים להתקין תוספי צד-שלישי. תוספים אלו מפותחים ומתוחזקים על ידי מפתחים עצמאיים שאינם קשורים ל-Nuvio. אין לנו שליטה על התוכן, החוקיות או הפונקציונליות של תוספי צד-שלישי כלשהם, ואנו לא נושאים באחריות לגביהם.", - "user_resp_title": "אחריות המשתמש", - "user_resp_text": "המשתמשים אחראים בלעדית לתוספים שהם מתקינים ולתוכן שאליו הם ניגשים. בשימוש באפליקציה זו, אתם מסכימים לוודא שיש לכם את הזכות החוקית לגשת לכל תוכן שבו אתם צופים באמצעות Nuvio. מפתחי Nuvio אינם תומכים או מעודדים הפרת זכויות יוצרים.", - "dmca_title": "זכויות יוצרים ו-DMCA", - "dmca_text": "אנו מכבדים את זכויות הקניין הרוחני של אחרים. כיוון ש-Nuvio אינה מארחת תוכן, אין ביכולתנו להסיר תוכן מהאינטרנט. עם זאת, אם אתם סבורים שממשק האפליקציה עצמו מפר את זכויותיכם, אנא צרו עמנו קשר.", - "warranty_title": "העדר אחריות", - "warranty_text": "תוכנה זו מסופקת \"כפי שהיא\" (As-Is), ללא אחריות מכל סוג שהוא. בשום מקרה המפתחים או בעלי זכויות היוצרים לא יהיו אחראים לכל תביעה, נזק או חבות אחרת הנובעת מהשימוש בתוכנה זו." - }, - "plugin_tester": { - "title": "בודק תוספים (Plugin Tester)", - "subtitle": "הרצת סורקים ובדיקת לוגים בזמן אמת", - "tabs": { - "individual": "אישי", - "repo": "בודק מאגר", - "code": "קוד", - "logs": "לוגים", - "results": "תוצאות" - }, - "common": { - "error": "שגיאה", - "success": "הצלחה", - "movie": "סרט", - "tv": "סדרה", - "tmdb_id": "TMDB ID", - "season": "עונה", - "episode": "פרק", - "running": "מריץ...", - "run_test": "הפעלת בדיקה", - "play": "נגן", - "done": "בוצע", - "test": "בדיקה", - "testing": "בודק..." - }, - "individual": { - "load_from_url": "טעינה מכתובת (URL)", - "load_from_url_desc": "הדביקו כתובת גולמית מ-GitHub או IP מקומי ולחצו על הורדה.", - "enter_url_error": "אנא הזינו כתובת URL", - "code_loaded": "הקוד נטען בהצלחה מהכתובת", - "fetch_error": "הטעינה נכשלה: {{message}}", - "no_code_error": "אין קוד להרצה", - "plugin_code": "קוד התוסף", - "focus_editor": "מיקוד בעורך הקוד", - "code_placeholder": "// הדביקו את קוד התוסף כאן...", - "test_parameters": "פרמטרים לבדיקה", - "no_logs": "אין עדיין לוגים. הריצו בדיקה כדי לראות פלט.", - "no_streams": "לא נמצאו מקורות (Streams) עדיין.", - "streams_found": "נמצא מקור {{count}}", - "streams_found_plural": "נמצאו {{count}} מקורות", - "tap_play_hint": "לחצו על 'נגן' כדי לבדוק את המקור בנגן המובנה.", - "unnamed_stream": "מקור ללא שם", - "quality": "איכות: {{quality}}", - "size": "גודל: {{size}}", - "url_label": "כתובת: {{url}}", - "headers_info": "Headers: {{count}} כותרות מותאמות", - "find_placeholder": "חיפוש בקוד...", - "edit_code_title": "עריכת קוד", - "no_url_stream_error": "לא נמצאה כתובת למקור זה" - }, - "repo": { - "title": "בודק מאגרים", - "description": "טעינת מאגר (כתובת מקומית או GitHub raw) ובדיקת כל ספק.", - "enter_repo_url_error": "אנא הזינו כתובת מאגר (URL)", - "invalid_url_title": "כתובת לא תקינה", - "invalid_url_msg": "השתמשו בכתובת raw של GitHub או כתובת http(s) מקומית.\n\nדוגמה:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", - "manifest_build_error": "לא ניתן היה ליצור כתובת מניפסט מהקלט", - "manifest_fetch_error": "טעינת המניפסט נכשלה", - "repo_manifest_fetch_error": "טעינת מניפסט המאגר נכשלה", - "missing_filename": "שם קובץ חסר במניפסט", - "scraper_build_error": "לא ניתן היה ליצור כתובת לסורק (Scraper)", - "download_scraper_error": "הורדת הסורק נכשלה", - "test_failed": "הבדיקה נכשלה", - "test_parameters": "פרמטרים לבדיקת מאגר", - "test_parameters_desc": "פרמטרים אלו משמשים רק עבור בודק המאגרים.", - "using_info": "משתמש ב: {{mediaType}} • TMDB {{tmdbId}}", - "using_info_tv": "משתמש ב: {{mediaType}} • TMDB {{tmdbId}} • עונה {{season}} פרק {{episode}}", - "providers_title": "ספקים (Providers)", - "repository_default": "מאגר", - "providers_count": "{{count}} ספקים", - "fetch_hint": "טענו מאגר כדי להציג את רשימת הספקים.", - "test_all": "בדיקת הכל", - "status_running": "רץ", - "status_ok": "תקין ({{count}})", - "status_ok_empty": "תקין (0)", - "status_failed": "נכשל", - "status_idle": "ממתין", - "tried_url": "נוסה: {{url}}", - "provider_logs": "לוגים של הספק", - "no_logs_captured": "לא נלכדו לוגים." - } - } -} \ No newline at end of file From 31d3d4bec8c9b119a758aea19fce15844d2b39be Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:24:01 +0100 Subject: [PATCH 025/285] Add Hebrew locale to locales.ts --- src/constants/locales.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 5b277e70..e658637f 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -10,5 +10,6 @@ export const LOCALES = [ { code: 'hr', key: 'croatian' }, { code: 'zh-CN', key: 'chinese' }, { code: 'hi', key: 'hindi' }, - { code: 'sr', key: 'serbian' } -]; \ No newline at end of file + { code: 'sr', key: 'serbian' } + { code: 'he', key: 'hebrew' } +]; From 85ac2e810f51fb4d2de463fa0d078aba2721e6f3 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:45:52 +0100 Subject: [PATCH 026/285] Added Bulgarian lang --- src/i18n/locales/bg.json | 1420 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1420 insertions(+) create mode 100644 src/i18n/locales/bg.json diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json new file mode 100644 index 00000000..eb2ce601 --- /dev/null +++ b/src/i18n/locales/bg.json @@ -0,0 +1,1420 @@ +{ + "common": { + "loading": "Зареждане...", + "cancel": "Отказ", + "save": "Запазване", + "delete": "Изтриване", + "edit": "Редактиране", + "search": "Търсене", + "error": "Грешка", + "success": "Успех", + "ok": "ОК", + "unknown": "Неизвестно", + "retry": "Повторен опит", + "try_again": "Опитайте отново", + "go_back": "Назад", + "settings": "Настройки", + "close": "Затваряне", + "enable": "Активиране", + "disable": "Деактивиране", + "show_more": "Покажи повече", + "show_less": "Покажи по-малко", + "load_more": "Зареди още", + "unknown_date": "Неизвестна дата", + "anonymous_user": "Анонимен потребител", + "time": { + "now": "Току-що", + "minutes_ago": "преди {{count}}м", + "hours_ago": "преди {{count}}ч", + "days_ago": "преди {{count}}д" + }, + "days_short": { + "sun": "Нд", + "mon": "Пн", + "tue": "Вт", + "wed": "Ср", + "thu": "Чт", + "fri": "Пт", + "sat": "Сб" + }, + "email": "Имейл", + "status": "Статус" + }, + "home": { + "categories": { + "movies": "Филми", + "series": "Сериали", + "channels": "Канали" + }, + "movies": "Филми", + "tv_shows": "ТВ предавания", + "load_more_catalogs": "Зареди още каталози", + "no_content": "Няма налично съдържание", + "add_catalogs": "Добавяне на каталози", + "sign_in_available": "Налично вписване", + "sign_in_desc": "Можете да се впишете по всяко време от Настройки → Профил", + "view_all": "Виж всички", + "this_week": "Тази седмица", + "upcoming": "Предстоящи", + "recently_released": "Наскоро пуснати", + "no_scheduled_episodes": "Сериали без планирани епизоди", + "check_back_later": "Проверете отново по-късно", + "continue_watching": "Продължи гледането", + "up_next": "Следващо", + "up_next_caps": "СЛЕДВАЩО", + "released": "Издаден", + "new": "Ново", + "tba": "Ще бъде обявено", + "new_episodes": "{{count}} нови епизода", + "season_short": "С{{season}}", + "episode_short": "Е{{episode}}", + "season": "Сезон {{season}}", + "episode": "Епизод {{episode}}", + "movie": "Филм", + "series": "Сериал", + "tv_show": "ТВ предаване", + "percent_watched": "{{percent}}% изгледано", + "view_details": "Виж детайли", + "remove": "Премахни", + "play": "Пусни", + "play_now": "Пусни сега", + "resume": "Продължи", + "info": "Инфо", + "more_info": "Още инфо", + "my_list": "Моят списък", + "save": "Запази", + "saved": "Запазено", + "retry": "Повтори", + "install_addons": "Инсталирай добавки", + "settings": "Настройки", + "no_featured_content": "Няма акцентирано съдържание", + "couldnt_load_featured": "Неуспешно зареждане на акценти", + "no_featured_desc": "Инсталирайте добавки с каталози или променете източника в настройките.", + "load_error_desc": "Проблем при извличане на съдържанието. Проверете връзката си и опитайте отново.", + "no_featured_available": "Няма налични акценти", + "no_description": "Няма налично описание" + }, + "navigation": { + "home": "Начало", + "library": "Библиотека", + "search": "Търсене", + "downloads": "Изтегляния", + "settings": "Настройки" + }, + "search": { + "title": "Търсене", + "recent_searches": "Скорошни търсения", + "discover": "Открий", + "movies": "Филми", + "tv_shows": "ТВ предавания", + "select_catalog": "Избери каталог", + "all_genres": "Всички жанрове", + "discovering": "Откриване на съдържание...", + "show_more": "Покажи още ({{count}})", + "no_content_found": "Няма намерено съдържание", + "try_different": "Опитайте различен жанр или каталог", + "select_catalog_desc": "Изберете каталог за откриване", + "tap_catalog_desc": "Докоснете каталога по-горе, за да започнете", + "placeholder": "Търсене на филми, сериали...", + "keep_typing": "Продължете да пишете...", + "type_characters": "Въведете поне 2 знака за търсене", + "no_results": "Няма намерени резултати", + "try_keywords": "Опитайте с други ключови думи или проверете правописа", + "select_type": "Избери тип", + "browse_movies": "Разгледай филмови каталози", + "browse_tv": "Разгледай каталози за сериали", + "select_genre": "Избери жанр", + "show_all_content": "Покажи цялото съдържание", + "genres_count": "{{count}} жанра" + }, + "library": { + "title": "Библиотека", + "watched": "Гледани", + "continue": "Продължи", + "watchlist": "Списък за гледане", + "collection": "Колекция", + "rated": "Оценени", + "items": "елемента", + "trakt_collections": "Trakt колекции", + "trakt_collection": "Trakt колекция", + "no_trakt": "Няма Trakt колекции", + "no_trakt_desc": "Вашите Trakt колекции ще се появят тук, след като започнете да използвате Trakt", + "load_collections": "Зареди колекции", + "empty_folder": "Няма съдържание в {{folder}}", + "empty_folder_desc": "Тази колекция е празна", + "refresh": "Обнови", + "no_movies": "Все още няма филми", + "no_series": "Все още няма ТВ сериали", + "no_content": "Все още няма съдържание", + "add_content_desc": "Добавете съдържание към библиотеката си, за да го видите тук", + "find_something": "Намери нещо за гледане", + "removed_from_library": "Премахнато от библиотеката", + "item_removed": "Елементът е премахнат от вашата библиотека", + "failed_update_library": "Неуспешно обновяване на библиотеката", + "unable_remove": "Неуспешно премахване от библиотеката", + "marked_watched": "Маркирано като изгледано", + "marked_unwatched": "Маркирано като неизгледано", + "item_marked_watched": "Елементът е маркиран като изгледан", + "item_marked_unwatched": "Елементът е маркиран като неизгледан", + "failed_update_watched": "Неуспешно обновяване на статуса", + "unable_update_watched": "Неуспешно обновяване на статуса на гледане", + "added_to_library": "Добавено в библиотеката", + "item_added": "Добавено в локалната ви библиотека", + "add_to_library": "Добави в библиотека", + "remove_from_library": "Премахни от библиотека", + "mark_watched": "Маркирай като гледано", + "mark_unwatched": "Маркирай като негледано", + "share": "Сподели", + "add_to_watchlist": "Добави в Trakt Watchlist", + "remove_from_watchlist": "Премахни от Trakt Watchlist", + "added_to_watchlist": "Добавено в списъка", + "added_to_watchlist_desc": "Добавено във вашия Trakt watchlist", + "removed_from_watchlist": "Премахнато от списъка", + "removed_from_watchlist_desc": "Премахнато от вашия Trakt watchlist", + "add_to_collection": "Добави в Trakt колекция", + "remove_from_collection": "Премахни от Trakt колекция", + "added_to_collection": "Добавено в колекция", + "added_to_collection_desc": "Добавено във вашата Trakt колекция", + "removed_from_collection": "Премахнато от колекция", + "removed_from_collection_desc": "Премахнато от вашата Trakt колекция" + }, + "metadata": { + "unable_to_load": "Неуспешно зареждане на съдържание", + "error_code": "Код на грешка: {{code}}", + "content_not_found": "Съдържанието не е намерено", + "content_not_found_desc": "Това съдържание не съществува или е премахнато.", + "server_error": "Сървърна грешка", + "server_error_desc": "Сървърът е временно недостъпен. Моля, опитайте по-късно.", + "bad_gateway": "Грешен шлюз (Bad gateway)", + "bad_gateway_desc": "Сървърът има проблеми. Моля, опитайте по-късно.", + "service_unavailable": "Услугата е недостъпна", + "service_unavailable_desc": "Услугата е в процес на профилактика. Опитайте по-късно.", + "too_many_requests": "Твърде много заявки", + "too_many_requests_desc": "Правите твърде много заявки. Моля, изчакайте и опитайте пак.", + "request_timeout": "Изтекло време за заявка", + "request_timeout_desc": "Заявката отне твърде дълго време. Опитайте отново.", + "network_error": "Мрежова грешка", + "network_error_desc": "Моля, проверете интернет връзката си.", + "auth_error": "Грешка при удостоверяване", + "auth_error_desc": "Проверете настройките на профила си и опитайте пак.", + "access_denied": "Достъпът е отказан", + "access_denied_desc": "Нямате разрешение за достъп до това съдържание.", + "connection_error": "Грешка при свързване", + "streams_unavailable": "Стриймовете са недостъпни", + "streams_unavailable_desc": "Източниците за стрийминг в момента са недостъпни. Опитайте по-късно.", + "unknown_error": "Неизвестна грешка", + "something_went_wrong": "Нещо се обърка. Моля, опитайте отново.", + "cast": "Актьорски състав", + "more_like_this": "Още подобни", + "collection": "Колекция", + "episodes": "Епизоди", + "seasons": "Сезони", + "posters": "Постери", + "banners": "Банери", + "specials": "Специални", + "season_number": "Сезон {{number}}", + "episode_count": "{{count}} Епизод", + "episode_count_plural": "{{count}} Епизода", + "no_episodes": "Няма налични епизоди", + "no_episodes_for_season": "Няма налични епизоди за Сезон {{season}}", + "episodes_not_released": "Епизодите може още да не са издадени", + "no_description": "Няма налично описание", + "episode_label": "ЕПИЗОД {{number}}", + "watch_again": "Гледай отново", + "completed": "Завършено", + "play_episode": "Пусни С{{season}}Е{{episode}}", + "play": "Пусни", + "watched": "Гледано", + "watched_on_trakt": "Гледано в Trakt", + "synced_with_trakt": "Синхронизирано с Trakt", + "saved": "Запазено", + "director": "Режисьор", + "directors": "Режисьори", + "creator": "Създател", + "creators": "Създатели", + "production": "Продукция", + "network": "Мрежа", + "mark_watched": "Маркирай като гледано", + "mark_unwatched": "Маркирай като негледано", + "marking": "Маркиране...", + "removing": "Премахване...", + "unmark_season": "Отмаркирай Сезон {{season}}", + "mark_season": "Маркирай Сезон {{season}}", + "resume": "Продължи", + "spoiler_warning": "Предупреждение за спойлер", + "spoiler_warning_desc": "Този коментар съдържа спойлери. Сигурни ли сте, че искате да го видите?", + "cancel": "Отказ", + "reveal_spoilers": "Покажи спойлерите", + "movie_details": "Детайли за филма", + "show_details": "Детайли за сериала", + "tagline": "Слоган", + "status": "Статус", + "release_date": "Дата на излизане", + "runtime": "Времетраене", + "budget": "Бюджет", + "revenue": "Приходи", + "origin_country": "Държава на произход", + "original_language": "Оригинален език", + "first_air_date": "Първо излъчване", + "last_air_date": "Последно излъчване", + "total_episodes": "Общо епизоди", + "episode_runtime": "Продължителност на епизод", + "created_by": "Създадено от", + "backdrop_gallery": "Галерия фонове", + "loading_episodes": "Зареждане на епизоди...", + "no_episodes_available": "Няма налични епизоди", + "play_next": "Следващ С{{season}}Е{{episode}}", + "play_next_episode": "Пусни следващ епизод", + "save": "Запази", + "percent_watched": "{{percent}}% изгледано", + "percent_watched_trakt": "{{percent}}% изгледано ({{traktPercent}}% в Trakt)", + "synced_with_trakt_progress": "Синхронизирано с Trakt", + "using_trakt_progress": "Използва се прогрес от Trakt", + "added_to_collection_hero": "Добавено в колекция", + "added_to_collection_desc_hero": "Добавено във вашата Trakt колекция", + "removed_from_collection_hero": "Премахнато от колекция", + "removed_from_collection_desc_hero": "Премахнато от вашата Trakt колекция", + "mark_as_watched": "Маркирай като гледано", + "mark_as_unwatched": "Маркирай като негледано" + }, + "cast": { + "biography": "Биография", + "known_for": "Известен с", + "personal_info": "Лична информация", + "born_in": "Роден в {{place}}", + "filmography": "Филмография", + "also_known_as": "Известен още като", + "no_info_available": "Няма налична допълнителна информация", + "as_character": "като {{character}}", + "loading_details": "Зареждане на детайли...", + "years_old": "на {{age}} години", + "view_filmography": "Виж филмографията", + "filter": "Филтър", + "sort_by": "Сортирай по", + "sort_popular": "Популярни", + "sort_latest": "Най-нови", + "sort_upcoming": "Предстоящи", + "upcoming_badge": "ПРЕДСТОЯЩО", + "coming_soon": "Очаквайте скоро", + "filmography_count": "Филмография • {{count}} заглавия", + "loading_filmography": "Зареждане на филмография...", + "load_more_remaining": "Зареди още ({{count}} оставащи)", + "alert_error_title": "Грешка", + "alert_error_message": "Неуспешно зареждане на \"{{title}}\". Моля, опитайте по-късно.", + "alert_ok": "ОК", + "no_upcoming": "Няма предстоящи заглавия за този актьор", + "no_content": "Няма налично съдържание за този актьор", + "no_movies": "Няма налични филми за този актьор", + "no_tv": "Няма налични ТВ сериали за този актьор" + }, + "comments": { + "title": "Trakt коментари", + "spoiler_warning": "⚠️ Този коментар съдържа спойлери. Докоснете за преглед.", + "spoiler": "Спойлер", + "contains_spoilers": "Съдържа спойлери", + "reveal": "Покажи", + "vip": "VIP", + "unavailable": "Коментарите са недостъпни", + "no_comments": "Все още няма коментари в Trakt", + "not_in_database": "Това съдържание може още да не е в базата на Trakt", + "check_trakt": "Провери в Trakt" + }, + "trailers": { + "title": "Трейлъри", + "official_trailers": "Официални трейлъри", + "official_trailer": "Официален трейлър", + "teasers": "Тийзъри", + "teaser": "Тийзър", + "clips_scenes": "Клипове и сцени", + "clip": "Клип", + "featurettes": "Кратки филми (Featurettes)", + "featurette": "Featurette", + "behind_the_scenes": "Зад кулисите", + "no_trailers": "Няма налични трейлъри", + "unavailable": "Трейлърът е недостъпен", + "unavailable_desc": "Този трейлър не може да бъде зареден в момента. Моля, опитайте по-късно.", + "unable_to_play": "Неуспешно пускане на трейлъра. Моля, опитайте пак.", + "watch_on_youtube": "Гледай в YouTube" + }, + "catalog": { + "no_content_found": "Няма намерено съдържание", + "no_content_filters": "Няма намерено съдържание за избраните филтри", + "loading_content": "Зареждане на съдържание...", + "back": "Назад", + "in_theaters": "В кината", + "all": "Всички", + "failed_tmdb": "Неуспешно зареждане на съдържание от TMDB", + "movies": "Филми", + "tv_shows": "ТВ сериали", + "channels": "Канали" + }, + "streams": { + "back_to_episodes": "Назад към епизодите", + "back_to_info": "Назад към информацията", + "fetching_from": "Извличане от:", + "no_sources_available": "Няма налични източници за стрийминг", + "add_sources_desc": "Моля, добавете източници в настройките", + "add_sources": "Добави източници", + "finding_streams": "Търсене на налични стриймове...", + "finding_best_stream": "Търсене на най-добрия стрийм за автоматично пускане...", + "still_fetching": "Все още се извличат стриймове...", + "no_streams_available": "Няма налични стриймове", + "starting_best_stream": "Стартиране на най-добрия стрийм...", + "loading_more_sources": "Зареждане на още източници..." + }, + "player_ui": { + "via": "чрез {{name}}", + "audio_tracks": "Аудио писти", + "no_audio_tracks": "Няма налични аудио писти", + "playback_speed": "Скорост на възпроизвеждане", + "on_hold": "На изчакване", + "playback_error": "Грешка при възпроизвеждане", + "unknown_error": "Възникна неизвестна грешка по време на възпроизвеждане.", + "copy_error": "Копирай детайлите за грешката", + "copied_to_clipboard": "Копирано в клипборда", + "dismiss": "Отхвърли", + "continue_watching": "Продължи гледането", + "start_over": "Започни отначало", + "resume": "Продължи", + "change_source": "Промени източника", + "switching_source": "Превключване на източника...", + "no_sources_found": "Няма намерени източници", + "sources": "Източници", + "finding_sources": "Търсене на източници...", + "unknown_source": "Неизвестен източник", + "sources_limited": "Източниците може да са ограничени поради грешки при доставчика.", + "episodes": "Епизоди", + "specials": "Специални", + "season": "Сезон {{season}}", + "stream": "Стрийм {{number}}", + "subtitles": "Субтитри", + "built_in": "Вградени", + "addons": "Добавки", + "style": "Стил", + "none": "Няма", + "search_online_subtitles": "Търси субтитри онлайн", + "preview": "Преглед", + "quick_presets": "Бързи настройки", + "default": "По подразбиране", + "yellow": "Жълто", + "high_contrast": "Висок контраст", + "large": "Големи", + "core": "Основни", + "font_size": "Размер на шрифта", + "show_background": "Покажи фон", + "advanced": "Разширени", + "position": "Позиция", + "text_color": "Цвят на текста", + "align": "Подравняване", + "bottom_offset": "Отместване отдолу", + "background_opacity": "Прозрачност на фона", + "text_shadow": "Сянка на текста", + "on": "Вкл.", + "off": "Изкл.", + "outline_color": "Цвят на контура", + "outline": "Контур", + "outline_width": "Ширина на контура", + "letter_spacing": "Разстояние между буквите", + "line_height": "Височина на реда", + "timing_offset": "Изместване на времето (s)", + "visual_sync": "Визуална синхронизация", + "timing_hint": "Преместете субтитрите по-рано (-) или по-късно (+), за да ги синхронизирате.", + "reset_defaults": "Възстанови настройките", + "mark_intro_start": "Маркирай начало на интро", + "mark_intro_end": "Маркирай край на интро", + "intro_start_marked": "Началото на интрото е маркирано", + "intro_submitted": "Интрото е изпратено успешно", + "intro_submit_failed": "Неуспешно изпращане на интро" + }, + "downloads": { + "title": "Изтегляния", + "no_downloads": "Все още няма изтегляния", + "no_downloads_desc": "Изтегленото съдържание ще се появи тук за гледане офлайн", + "explore": "Разгледай съдържание", + "path_copied": "Пътят е копиран", + "path_copied_desc": "Локалният път до файла е копиран в клипборда", + "copied": "Копирано", + "incomplete": "Незавършено изтегляне", + "incomplete_desc": "Изтеглянето все още не е завършено", + "not_available": "Не е достъпно", + "not_available_desc": "Локалният път до файла е достъпен само след приключване на изтеглянето.", + "status_downloading": "Изтегляне", + "status_completed": "Завършено", + "status_paused": "На пауза", + "status_error": "Грешка", + "status_queued": "На опашка", + "status_unknown": "Неизвестно", + "provider": "Доставчик", + "streaming_playlist_warning": "Може да не се възпроизведе - стрийминг плейлист", + "remaining": "остават", + "not_ready": "Изтеглянето не е готово", + "not_ready_desc": "Моля, изчакайте до завършване на изтеглянето.", + "filter_all": "Всички", + "filter_active": "Активни", + "filter_done": "Готови", + "filter_paused": "На пауза", + "no_filter_results": "Няма {{filter}} изтегляния", + "try_different_filter": "Опитайте да изберете друг филтър", + "limitations_title": "Ограничения при изтегляне", + "limitations_msg": "• Файлове под 1MB обикновено са M3U8 стрийминг плейлисти и не могат да бъдат изтеглени за гледане офлайн. Те работят само със стрийминг онлайн и съдържат връзки към видео сегменти, а не самото видео съдържание.", + "remove_title": "Премахни изтеглянето", + "remove_confirm": "Премахване на \"{{title}}\"{{season_episode}}?", + "cancel": "Отказ", + "remove": "Премахни" + }, + "addons": { + "title": "Добавки", + "reorder_mode": "Режим за пренареждане", + "reorder_info": "Добавките най-отгоре имат по-висок приоритет при зареждане на съдържание", + "add_addon_placeholder": "URL на добавка", + "add_button": "Добави добавка", + "my_addons": "Моите добавки", + "community_addons": "Добавки от общността", + "no_addons": "Няма инсталирани добавки", + "uninstall_title": "Деинсталирай добавка", + "uninstall_message": "Сигурни ли сте, че искате да деинсталирате {{name}}?", + "uninstall_button": "Деинсталирай", + "install_success": "Добавката е инсталирана успешно", + "install_error": "Неуспешно инсталиране на добавка", + "load_error": "Неуспешно зареждане на добавки", + "fetch_error": "Неуспешно извличане на детайли за добавката", + "invalid_url": "Моля, въведете URL на добавка", + "configure": "Конфигурирай", + "version": "Версия: {{version}}", + "installed_addons": "ИНСТАЛИРАНИ ДОБАВКИ", + "reorder_drag_title": "ПЛЪЗНЕТЕ ДОБАВКИТЕ ЗА ПРЕНАРЕЖДАНЕ", + "install": "Инсталирай", + "config_unavailable_title": "Конфигурацията е недостъпна", + "config_unavailable_msg": "Неуспешно определяне на URL адреса за конфигурация на тази добавка.", + "cannot_open_config_title": "Не може да се отвори конфигурацията", + "cannot_open_config_msg": "URL адресът за конфигурация ({{url}}) не може да бъде отворен. Добавката може да няма страница за конфигурация.", + "description": "Описание", + "supported_types": "Поддържани типове", + "catalogs": "Каталози", + "no_description": "Няма налично описание", + "overview": "ОБЗОР", + "no_categories": "Няма категории", + "pre_installed": "ПРЕДВАРИТЕЛНО ИНСТАЛИРАНИ" + }, + "trakt": { + "title": "Trakt настройки", + "settings_title": "Trakt настройки", + "connect_title": "Свързване с Trakt", + "connect_desc": "Синхронизирайте историята, списъка за гледане и колекцията си с Trakt.tv", + "sign_in": "Вписване с Trakt", + "sign_out": "Излизане", + "sign_out_confirm": "Сигурни ли сте, че искате да излезете от вашия Trakt профил?", + "joined": "Присъединил се на {{date}}", + "sync_settings_title": "Настройки за синхронизация", + "sync_info": "Когато сте свързани с Trakt, цялата история се синхронизира директно от API и не се записва в локалното хранилище. Вашият списък \"Продължи гледането\" отразява глобалния ви прогрес в Trakt.", + "auto_sync_label": "Автоматична синхронизация на прогреса", + "auto_sync_desc": "Автоматично синхронизиране на прогреса на гледане с Trakt", + "import_history_label": "Импортиране на историята на гледане", + "import_history_desc": "Използвайте \"Синхронизирай сега\", за да импортирате историята и прогреса си от Trakt", + "sync_now_button": "Синхронизирай сега", + "display_settings_title": "Настройки на дисплея", + "show_comments_label": "Покажи Trakt коментари", + "show_comments_desc": "Показване на Trakt коментари в екраните с метаданни, когато са налични", + "maintenance_title": "В процес на профилактика", + "maintenance_unavailable": "Trakt е недостъпен", + "maintenance_desc": "Интеграцията с Trakt временно е преустановена за профилактика. Цялата синхронизация и удостоверяване са деактивирани до приключване на профилактиката.", + "maintenance_button": "Услугата е в профилактика", + "auth_success_title": "Успешно свързване", + "auth_success_msg": "Вашият Trakt профил беше свързан успешно.", + "auth_error_title": "Грешка при удостоверяване", + "auth_error_msg": "Неуспешно завършване на удостоверяването с Trakt.", + "auth_error_generic": "Възникна грешка по време на удостоверяването.", + "sign_out_error": "Неуспешно излизане от Trakt.", + "sync_complete_title": "Синхронизацията завърши", + "sync_success_msg": "Успешно синхронизиран прогрес с Trakt.", + "sync_error_msg": "Синхронизацията не успя. Моля, опитайте отново." + }, + "simkl": { + "title": "Simkl настройки", + "settings_title": "Simkl настройки", + "connect_title": "Свързване със Simkl", + "connect_desc": "Синхронизирайте историята си и следете какво гледате", + "sign_in": "Вписване със Simkl", + "sign_out": "Прекъсване на връзката", + "sign_out_confirm": "Сигурни ли сте, че искате да прекъснете връзката със Simkl?", + "syncing_desc": "Вашите изгледани елементи се синхронизират със Simkl.", + "auth_success_title": "Успешно свързване", + "auth_success_msg": "Вашият Simkl профил беше свързан успешно.", + "auth_error_title": "Грешка при удостоверяване", + "auth_error_msg": "Неуспешно завършване на удостоверяването със Simkl.", + "auth_error_generic": "Възникна грешка по време на удостоверяването.", + "sign_out_error": "Неуспешно прекъсване на връзката със Simkl.", + "config_error_title": "Грешка в конфигурацията", + "config_error_msg": "Липсва Simkl Client ID в променливите на средата.", + "conflict_title": "Конфликт", + "conflict_msg": "Не можете да се свържете със Simkl, докато Trakt е свързан. Моля, първо прекъснете връзката с Trakt.", + "disclaimer": "Nuvio не е свързан със Simkl." + }, + "tmdb_settings": { + "title": "TMDb настройки", + "metadata_enrichment": "Обогатяване на метаданни", + "metadata_enrichment_desc": "Подобрете метаданните на съдържанието с данни от TMDb за по-добри детайли и информация.", + "enable_enrichment": "Активирай обогатяването", + "enable_enrichment_desc": "Допълва метаданните от добавките с данни от TMDb за актьорски състав, сертификация, лога/постери и продукция.", + "localized_text": "Локализиран текст", + "localized_text_desc": "Извличане на заглавия и описания на предпочитания от вас език от TMDb.", + "language": "Език", + "change": "Промени", + "logo_preview": "Преглед на лого", + "logo_preview_desc": "Прегледът показва как ще изглеждат локализираните лога на избрания език.", + "example": "Пример:", + "no_logo": "Няма налично лого", + "enrichment_options": "Опции за обогатяване", + "enrichment_options_desc": "Контролирайте какви данни да се извличат от TMDb. Деактивираните опции ще използват данни от добавката, ако са налични.", + "cast_crew": "Актьори и екип", + "cast_crew_desc": "Актьори, режисьори, сценаристи със снимки на профила", + "title_description": "Заглавие и описание", + "title_description_desc": "Използвай локализирано заглавие и обзорен текст от TMDb", + "title_logos": "Лога на заглавия", + "title_logos_desc": "Висококачествени изображения на лога на заглавия", + "banners_backdrops": "Банери и фонове", + "banners_backdrops_desc": "Изображения на фонове с висока резолюция", + "certification": "Сертификация на съдържанието", + "certification_desc": "Възрастови рейтинги (PG-13, R, TV-MA и др.)", + "recommendations": "Препоръки", + "recommendations_desc": "Предложения за подобно съдържание", + "episode_data": "Данни за епизоди", + "episode_data_desc": "Миниатюри на епизоди, инфо и резервни варианти за ТВ сериали", + "season_posters": "Постери на сезони", + "season_posters_desc": "Специфични за сезона изображения на постери", + "production_info": "Информация за продукцията", + "production_info_desc": "Мрежи и продуцентски компании с лога", + "movie_details": "Детайли за филма", + "movie_details_desc": "Бюджет, приходи, времетраене, слоган", + "tv_details": "Детайли за ТВ сериала", + "tv_details_desc": "Статус, брой сезони, мрежи, създатели", + "movie_collections": "Филмови колекции", + "movie_collections_desc": "Филми от франчайзи (Marvel, Star Wars и др.)", + "api_configuration": "API конфигурация", + "api_configuration_desc": "Конфигурирайте вашия TMDb API достъп за разширена функционалност.", + "custom_api_key": "Персонализиран API ключ", + "custom_api_key_desc": "Използвайте собствен TMDb API ключ за по-добра производителност и специални лимити.", + "custom_key_active": "Персонализираният API ключ е активен", + "api_key_required": "Изисква се API ключ", + "api_key_placeholder": "Поставете вашия TMDb API ключ (v3)", + "how_to_get_key": "Как да получа TMDb API ключ?", + "built_in_key_msg": "В момента се използва вграденият API ключ. Помислете за използване на собствен ключ за по-добра производителност.", + "cache_size": "Размер на кеша", + "clear_cache": "Изчисти кеша", + "cache_days": "Отговорите от TMDB се кешират за 7 дни за подобряване на производителността", + "choose_language": "Избери език", + "choose_language_desc": "Изберете предпочитания език за съдържанието от TMDb", + "popular": "Популярни", + "all_languages": "Всички езици", + "search_results": "Резултати от търсенето", + "no_languages_found": "Няма намерени езици за \"{{query}}\"", + "clear_search": "Изчисти търсенето", + "clear_cache_title": "Изчисти TMDB кеша", + "clear_cache_msg": "Това ще изчисти всички кеширани данни на TMDB ({{size}}). Това може временно да забави зареждането до възстановяване на кеша.", + "clear_cache_success": "Кешът на TMDB е изчистен успешно.", + "clear_cache_error": "Неуспешно изчистване на кеша.", + "clear_api_key_title": "Изчисти API ключа", + "clear_api_key_msg": "Сигурни ли сте, че искате да премахнете персонализирания си API ключ и да се върнете към оригиналния?", + "clear_api_key_success": "API ключът е изчистен успешно", + "clear_api_key_error": "Неуспешно изчистване на API ключа", + "empty_api_key": "API ключът не може да бъде празен.", + "invalid_api_key": "Невалиден API ключ. Моля, проверете и опитайте отново.", + "save_error": "Възникна грешка при запазването. Моля, опитайте отново.", + "using_builtin_key": "Сега се използва вграденият TMDb API ключ.", + "using_custom_key": "Сега се използва вашият персонализиран TMDb API ключ.", + "enter_custom_key": "Моля, въведете и запазете вашия персонализиран TMDb API ключ.", + "key_verified": "API ключът е потвърден и запазен успешно." + }, + "settings": { + "language": "Език", + "select_language": "Избери език", + "english": "Английски", + "portuguese": "Португалски", + "portuguese_br": "Португалски (Бразилия)", + "portuguese_pt": "Португалски (Португалия)", + "german": "Немски", + "arabic": "Арабски", + "spanish": "Испански", + "french": "Френски", + "italian": "Италиански", + "croatian": "Хърватски", + "chinese": "Китайски (Опростен)", + "hindi": "Хинди", + "serbian": "Сръбски", + "hebrew": "Иврит", + "bulgarian": "български", + "account": "Профил", + "content_discovery": "Съдържание и откриване", + "appearance": "Външен вид", + "integrations": "Интеграции", + "playback": "Възпроизвеждане", + "backup_restore": "Архивиране и възстановяване", + "updates": "Обновявания", + "about": "Относно", + "developer": "Разработчик", + "cache": "Кеш", + "title": "Настройки", + "settings_title": "Настройки", + "sign_in_sync": "Влез за синхронизиране", + "add_catalogs_sources": "Добавки, каталози и източници", + "player_trailers_downloads": "Плейър, трейлъри, изтегляния", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Провери за обновления", + "clear_mdblist_cache": "Изчисти MDBList кеша", + "cache_management": "УПРАВЛЕНИЕ НА КЕША", + "downloads_counter": "изтегляния и броене", + "made_with_love": "Направено с ❤️ от Tapframe и приятели", + "sections": { + "information": "ИНФОРМАЦИЯ", + "account": "ПРОФИЛ", + "theme": "ТЕМА", + "layout": "ОФОРМЛЕНИЕ", + "sources": "ИЗТОЧНИЦИ", + "catalogs": "КАТАЛОЗИ", + "discovery": "ОТКРИВАНЕ", + "metadata": "МЕТАДАННИ", + "ai_assistant": "AI АСИСТЕНТ", + "video_player": "ВИДЕО ПЛЕЙЪР", + "audio_subtitles": "АУДИО И СУБТИТРИ", + "media": "МЕДИЯ", + "notifications": "ИЗВЕСТИЯ", + "testing": "ТЕСТВАНЕ", + "danger_zone": "ОПАСНА ЗОНА" + }, + "items": { + "legal": "Правна информация", + "privacy_policy": "Политика за поверителност", + "report_issue": "Докладвай проблем", + "version": "Версия", + "contributors": "Сътрудници", + "view_contributors": "Виж всички сътрудници", + "theme": "Тема", + "episode_layout": "Оформление на епизодите", + "streams_backdrop": "Фон на стриймовете", + "streams_backdrop_desc": "Покажи замъглен фон при стриймове на мобилни устройства", + "addons": "Добавки", + "installed": "инсталирани", + "debrid_integration": "Debrid интеграция", + "debrid_desc": "Свържи Torbox", + "plugins": "Плъгини", + "plugins_desc": "Управление на плъгини и хранилища", + "catalogs": "Каталози", + "active": "активни", + "home_screen": "Начален екран", + "home_screen_desc": "Оформление и съдържание", + "continue_watching": "Продължи гледането", + "continue_watching_desc": "Поведение на кеша и възпроизвеждането", + "show_discover": "Покажи секция Откриване", + "show_discover_desc": "Показване на съдържание за откриване в Търсене", + "mdblist": "MDBList", + "mdblist_connected": "Свързан", + "mdblist_desc": "Активирайте за добавяне на рейтинги и ревюта", + "simkl": "Simkl", + "simkl_connected": "Свързан", + "simkl_desc": "Следете какво гледате", + "tmdb": "TMDB", + "tmdb_desc": "Доставчик на метаданни и лога", + "openrouter": "OpenRouter API", + "openrouter_connected": "Свързан", + "openrouter_desc": "Добавете API ключ за активиране на AI чат", + "video_player": "Видео плейър", + "built_in": "Вграден", + "external": "Външен", + "preferred_audio": "Предпочитан език на аудиото", + "preferred_subtitle": "Предпочитан език на субтитрите", + "subtitle_source": "Приоритет на източника на субтитри", + "auto_select_subs": "Автоматичен избор на субтитри", + "auto_select_subs_desc": "Автоматично избиране на субтитри според предпочитанията", + "show_trailers": "Покажи трейлъри", + "show_trailers_desc": "Показване на трейлъри в основната секция", + "enable_downloads": "Активирай изтеглянията", + "enable_downloads_desc": "Покажи раздел Изтегляния и разреши запазване на стриймове", + "notifications": "Известия", + "notifications_desc": "Напомняния за епизоди", + "developer_tools": "Инструменти за разработчици", + "developer_tools_desc": "Опции за тестване и дебъгване", + "test_onboarding": "Тествай запознаването", + "reset_onboarding": "Нулирай запознаването", + "test_announcement": "Тествай анонса", + "test_announcement_desc": "Покажи наслагването за новости", + "reset_campaigns": "Нулирай кампаниите", + "reset_campaigns_desc": "Изчисти импресиите от кампании", + "clear_all_data": "Изчисти всички данни", + "clear_all_data_desc": "Нулирай всички настройки и кеширани данни" + }, + "options": { + "horizontal": "Хоризонтално", + "vertical": "Вертикално", + "internal_first": "Първо вътрешни", + "internal_first_desc": "Предпочитане на вградени субтитри, след това външни", + "external_first": "Първо външни", + "external_first_desc": "Предпочитане на субтитри от добавки, след това вградени", + "any_available": "Всички налични", + "any_available_desc": "Използвай първата налична пътека за субтитри" + }, + "clear_data_desc": "Това ще нулира всички настройки и ще изчисти всички кеширани данни. Сигурни ли сте?", + "app_updates": "Обновявания на приложението", + "about_nuvio": "Относно Nuvio" + }, + "privacy": { + "title": "Поверителност и данни", + "settings_desc": "Контрол на телеметрията и събирането на данни", + "info_title": "Вашата поверителност е важна", + "info_description": "Контролирайте какви данни се събират и споделят. Анализите са изключени по подразбиране, а докладите за грешки са анонимни по подразбиране.", + "analytics_enabled_title": "Анализите са активирани", + "analytics_enabled_message": "Данните за употреба ще бъдат събирани, за да помогнат за подобряване на приложението. Можете да деактивирате това по всяко време.", + "disable_error_reporting_title": "Деактивиране на докладите за грешки?", + "disable_error_reporting_message": "Деактивирането на докладите за грешки означава, че няма да бъдем уведомявани за сривове или проблеми, които срещате. Това може да повлияе на способността ни да отстраняваме грешки.", + "enable_session_replay_title": "Активиране на запис на сесията?", + "enable_session_replay_message": "Записът на сесията записва вашия екран, когато възникнат грешки, за да ни помогне да разберем какво се е случило. Това може да улови видимо съдържание на вашия екран.", + "enable_pii_title": "Активиране на събирането на PII данни?", + "enable_pii_message": "Това позволява събирането на лично идентифицираща информация като IP адрес и детайли за устройството. Тези данни помагат за диагностициране на проблеми, но увеличават излагането на поверителността.", + "disable_all_title": "Деактивиране на цялата телеметрия?", + "disable_all_message": "Това ще деактивира всички анализи, доклади за грешки и записи на сесии. Няма да получаваме никакви данни за употребата на приложението или сривове.", + "disable_all_button": "Деактивирай всичко", + "all_disabled_title": "Цялата телеметрия е деактивирана", + "all_disabled_message": "Цялото събиране на данни е деактивирано. Промените влизат в сила при следващото стартиране на приложението.", + "reset_title": "Нулиране до препоръчителните", + "reset_message": "Настройките за поверителност бяха нулирани до препоръчителните по подразбиране (доклади за грешки активирани, анализи деактивирани).", + "section_analytics": "АНАЛИЗИ", + "analytics_title": "Анализи на употребата", + "analytics_description": "Събиране на анонимни модели на употреба и прегледи на екрани", + "section_error_reporting": "ДОКЛАДИ ЗА ГРЕШКИ", + "error_reporting_title": "Доклади за сривове", + "error_reporting_description": "Изпращане на анонимни доклади за сривове за подобряване на стабилността", + "session_replay_title": "Запис на сесия", + "session_replay_description": "Записване на екрана при възникване на грешки", + "pii_title": "Включи информация за устройството", + "pii_description": "Изпращане на IP адрес и детайли за устройството с докладите", + "section_quick_actions": "БЪРЗИ ДЕЙСТВИЯ", + "disable_all": "Деактивирай цялата телеметрия", + "disable_all_desc": "Изключи цялото събиране на данни", + "reset_recommended": "Нулиране до препоръчителните", + "reset_recommended_desc": "Настройки по подразбиране с фокус върху поверителността и доклади за грешки", + "section_learn_more": "НАУЧЕТЕ ПОВЕЧЕ", + "privacy_policy": "Политика за поверителност", + "current_settings": "Обобщение на текущите настройки", + "summary_analytics": "Анализи", + "summary_errors": "Доклади за грешки", + "summary_replay": "Запис на сесия", + "summary_pii": "Инфо за устройството", + "restart_note_detailed": "* Промените в анализите и докладите за грешки влизат в сила веднага. Настройките за запис на сесия и PII изискват рестартиране на приложението." + }, + "ai_settings": { + "title": "AI Асистент", + "info_title": "Чат, захранван от AI", + "info_desc": "Задавайте въпроси за всеки филм или епизод на сериал, използвайки напреднал AI. Получете информация за сюжета, героите, темите, любопитни факти и още - всичко това е захранвано от изчерпателни данни от TMDB.", + "feature_1": "Контекст и анализ за конкретен епизод", + "feature_2": "Обяснения на сюжета и прозрения за героите", + "feature_3": "Закулисни любопитни факти и факти", + "feature_4": "Ваш собствен безплатен OpenRouter API ключ", + "api_key_section": "OPENROUTER API КЛЮЧ", + "api_key_label": "API ключ", + "api_key_desc": "Въведете вашия OpenRouter API ключ, за да активирате функциите за AI чат", + "save_api_key": "Запази API ключа", + "saving": "Запазване...", + "update": "Обнови", + "remove": "Премахни", + "get_free_key": "Вземете безплатен API ключ от OpenRouter", + "enable_chat": "Активирай AI чат", + "enable_chat_desc": "Когато е активирано, бутонът „Питай AI“ ще се появи на страниците със съдържание.", + "chat_enabled": "AI чатът е активиран", + "chat_enabled_desc": "Вече можете да задавате въпроси за филми и сериали. Потърсете бутона „Питай AI“ на страниците със съдържание!", + "how_it_works": "Как работи", + "how_it_works_desc": "• OpenRouter осигурява достъп до множество AI модели\n• Вашият API ключ остава поверителен и защитен\n• Безплатният план включва щедри лимити за употреба\n• Чат с контекст за конкретни епизоди/филми\n• Получаване на детайлен анализ и обяснения", + "error_invalid_key": "Моля, въведете валиден API ключ", + "error_key_format": "API ключовете на OpenRouter трябва да започват с \"sk-or-\"", + "success_saved": "OpenRouter API ключът е запазен успешно!", + "error_save": "Неуспешно запазване на API ключа", + "confirm_remove_title": "Премахване на API ключ", + "confirm_remove_msg": "Сигурни ли сте, че искате да премахнете вашия OpenRouter API ключ? Това ще деактивира функциите за AI чат.", + "success_removed": "API ключът е премахнат успешно", + "error_remove": "Неуспешно премахване на API ключа" + }, + "catalog_settings": { + "title": "Каталози", + "layout_phone": "ОФОРМЛЕНИЕ НА КАТАЛОГА (ТЕЛЕФОН)", + "posters_per_row": "Постери на ред", + "auto": "Автоматично", + "show_titles": "Покажи заглавия на постери", + "show_titles_desc": "Показване на заглавието под всеки постер", + "phone_only_hint": "Прилага се само за телефони. Таблетите запазват адаптивно оформление.", + "catalogs_group": "Каталози", + "enabled_count": "{{enabled}} от {{total}} активирани", + "rename_hint": "Задръжте продължително върху каталог, за да го преименувате", + "rename_modal_title": "Преименуване на каталог", + "rename_placeholder": "Въведете ново име на каталога", + "error_save_name": "Името не можа да бъде запазено." + }, + "continue_watching_settings": { + "title": "Продължи гледането", + "playback_behavior": "ПОВЕДЕНИЕ ПРИ ВЪЗПРОИЗВЕЖДАНЕ", + "use_cached": "Използвай кеширани стриймове", + "use_cached_desc": "Когато е активирано, щракването върху елементи от „Продължи гледането“ ще отвори плейъра директно чрез предишно използвани стриймове. Когато е деактивирано, се отваря екран със съдържание.", + "open_metadata": "Отвори екран с метаданни", + "open_metadata_desc": "Когато кешираните стриймове са деактивирани, отвори екрана с метаданни вместо екрана със стриймове. Това показва детайли за съдържанието и позволява ръчен избор на стрийм.", + "card_appearance": "ВЪНШЕН ВИД НА КАРТАТА", + "card_style": "Стил на картата", + "card_style_desc": "Изберете как елементите от „Продължи гледането“ да се появяват на началния екран", + "wide": "Широка", + "poster": "Постер", + "cache_settings": "НАСТРОЙКИ НА КЕША", + "cache_duration": "Продължителност на кеша на стрийма", + "cache_duration_desc": "Колко дълго да се пазят кешираните връзки към стриймове преди да изтекат", + "important_note": "Важна бележка", + "important_note_text": "Не всички връзки към стриймове може да останат активни за пълната продължителност на кеша. По-дългото време може да доведе до изтекли връзки. Ако кеширана връзка не работи, приложението ще премине към извличане на нови стриймове.", + "how_it_works": "Как работи", + "how_it_works_cached": "• Стриймовете се кешират за избраната от вас продължителност след възпроизвеждане\n• Кешираните стриймове се проверяват преди употреба\n• Ако кешът е невалиден или изтекъл, се връща към екрана със съдържание\n• „Използвай кеширани стриймове“ контролира директния плейър срещу навигацията в екрана\n• „Отвори екран с метаданни“ се появява само когато кешираните стриймове са деактивирани", + "how_it_works_uncached": "• Когато кешираните стриймове са деактивирани, кликването върху елементи от „Продължи гледането“ отваря екрани със съдържание\n• Опцията „Отвори екран с метаданни“ контролира кой екран да се отвори\n• Екранът с метаданни показва детайли и позволява ръчен избор на стрийм\n• Екранът със стриймове показва наличните стриймове за незабавно възпроизвеждане", + "changes_saved": "Промените са запазени", + "min": "мин", + "hour": "час", + "hours": "часа" + }, + "contributors": { + "title": "Сътрудници", + "special_mentions": "Специални благодарности", + "tab_contributors": "Сътрудници", + "tab_special": "Специални", + "tab_donors": "Дарители", + "manager_role": "Мениджър на общността", + "manager_desc": "Управлява Discord и Reddit общностите за Nuvio", + "sponsor_role": "Спонсор на сървъра", + "sponsor_desc": "Спонсорира инфраструктурата на сървъра за Nuvio", + "mod_role": "Discord модератор", + "mod_desc": "Помага за модерирането на Nuvio Discord общността", + "loading": "Зареждане...", + "discord_user": "Discord потребител", + "contributions": "приноса", + "gratitude_title": "Благодарни сме за всеки принос", + "gratitude_desc": "Всеки ред код, доклад за грешка и предложение помага Nuvio да стане по-добър за всички", + "special_thanks_title": "Специални благодарности", + "special_thanks_desc": "Тези невероятни хора помагат на общността на Nuvio да работи и на сървърите да бъдат онлайн", + "donors_desc": "Благодарим ви, че вярвате в това, което градим. Вашата подкрепа поддържа Nuvio безплатен и постоянно подобряващ се.", + "latest_donations": "Последни", + "leaderboard": "Класация", + "loading_donors": "Зареждане на дарители...", + "no_donors": "Все още няма дарители", + "error_rate_limit": "Лимитът на GitHub API е превишен. Моля, опитайте по-късно.", + "error_failed": "Неуспешно зареждане на сътрудниците. Моля, проверете интернет връзката си.", + "retry": "Опитай отново", + "no_contributors": "Няма намерени сътрудници", + "loading_contributors": "Зареждане на сътрудници..." + }, + "debrid": { + "title": "Debrid Интеграция", + "description_torbox": "Отключете 4K висококачествени стриймове и светкавична скорост чрез интегриране на Torbox. Въведете вашия API ключ по-долу за незабавно подобрение.", + "description_torrentio": "Конфигурирайте Torrentio, за да получите торент стриймове за филми и сериали. Изисква се debrid услуга за стрийминг.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Свързан", + "status_disconnected": "Прекъснат", + "enable_addon": "Активирай добавката", + "disconnect_button": "Прекъсни връзката и премахни", + "disconnect_loading": "Прекъсване на връзката...", + "account_info": "Информация за профила", + "plan": "План", + "plan_free": "Безплатен", + "plan_essential": "Essential ($3/мес)", + "plan_pro": "Pro ($10/мес)", + "plan_standard": "Standard ($5/мес)", + "plan_unknown": "Неизвестен", + "expires": "Изтича на", + "downloaded": "Изтеглено", + "status_active": "Активен", + "connected_title": "✓ Свързан с TorBox", + "connected_desc": "Вашата добавка TorBox е активна и предоставя премиум стриймове.", + "configure_title": "Конфигурирай добавката", + "configure_desc": "Персонализирайте вашето изживяване. Сортиране по качество, филтриране по размер и други настройки.", + "open_settings": "Отвори настройките", + "what_is_debrid": "Какво е Debrid услуга?", + "enter_api_key": "Въведете вашия API ключ", + "connect_button": "Свържи и инсталирай", + "connecting": "Свързване...", + "unlock_speeds_title": "Отключете премиум скорости", + "unlock_speeds_desc": "Вземете абонамент за Torbox за достъп до кеширани стриймове с високо качество без буфериране.", + "get_subscription": "Вземи абонамент", + "powered_by": "Задвижвано от", + "disclaimer_torbox": "Nuvio не е свързан с Torbox по никакъв начин.", + "disclaimer_torrentio": "Nuvio не е свързан с Torrentio по никакъв начин.", + "installed_badge": "✓ ИНСТАЛИРАНО", + "promo_title": "⚡ Нуждаете се от Debrid услуга?", + "promo_desc": "Вземете TorBox за светкавичен 4K стрийминг без буфериране. Премиум кеширани торенти и незабавни изтегляния.", + "promo_button": "Вземи абонамент за TorBox", + "service_label": "Debrid услуга *", + "api_key_label": "API ключ *", + "sorting_label": "Сортиране", + "exclude_qualities": "Изключи качества", + "priority_languages": "Приоритетни езици", + "max_results": "Макс. резултати", + "additional_options": "Допълнителни опции", + "no_download_links": "Не показвай връзки за изтегляне", + "no_debrid_catalog": "Не показвай debrid каталог", + "install_button": "Инсталирай Torrentio", + "installing": "Инсталиране...", + "update_button": "Обнови конфигурацията", + "updating": "Обновяване...", + "remove_button": "Премахни Torrentio", + "error_api_required": "Изисква се API ключ", + "error_api_required_desc": "Моля, въведете вашия API ключ за debrid услугата, за да инсталирате Torrentio.", + "success_installed": "Добавката Torrentio е инсталирана успешно!", + "success_removed": "Добавката Torrentio е премахната успешно", + "alert_disconnect_title": "Прекъсване на Torbox", + "alert_disconnect_msg": "Сигурни ли сте, че искате да прекъснете връзката с Torbox? Това ще премахне добавката и изчисти API ключа." + }, + "home_screen": { + "title": "Настройки на началния екран", + "changes_applied": "Промените са приложени", + "display_options": "ОПЦИИ ЗА ДИСПЛЕЯ", + "show_hero": "Покажи секция „Hero“", + "show_hero_desc": "Предпочитано съдържание най-отгоре", + "show_this_week": "Покажи секция „Тази седмица“", + "show_this_week_desc": "Нови епизоди от текущата седмица", + "select_catalogs": "Избери каталози", + "all_catalogs": "Всички каталози", + "selected": "избрани", + "hero_layout": "Hero оформление", + "layout_legacy": "Класическо", + "layout_carousel": "Въртележка (Carousel)", + "layout_appletv": "Apple TV", + "layout_desc": "Банер на цял екран, плъзгащи се карти или стил Apple TV", + "featured_source": "Източник на акцентите", + "using_catalogs": "Използване на каталози", + "manage_selected_catalogs": "Управление на избраните каталози", + "dynamic_bg": "Динамичен Hero фон", + "dynamic_bg_desc": "Замъглен банер зад въртележката", + "performance_note": "Може да повлияе на производителността на по-слаби устройства.", + "posters": "Постери", + "show_titles": "Покажи заглавия", + "poster_size": "Размер на постера", + "poster_corners": "Ъгли на постера", + "size_small": "Малък", + "size_medium": "Среден", + "size_large": "Голям", + "corners_square": "Квадратни", + "corners_rounded": "Заоблени", + "corners_pill": "Тип хапче", + "about_these_settings": "ОТНОСНО ТЕЗИ НАСТРОЙКИ", + "about_desc": "Тези настройки контролират как се показва съдържанието на вашия начален екран. Промените се прилагат веднага.", + "hero_catalogs": { + "title": "Каталози за Hero секция", + "select_all": "Избери всички", + "clear_all": "Изчисти всички", + "info": "Изберете кои каталози да се показват в секцията hero. Ако нищо не е избрано, ще се използват всички. Не забравяйте да натиснете Запази.", + "settings_saved": "Настройките са запазени", + "error_load": "Неуспешно зареждане на каталозите", + "movies": "Филми", + "tv_shows": "ТВ сериали" + } + }, + "calendar": { + "title": "Календар", + "loading": "Зареждане на календара...", + "no_scheduled_episodes": "Няма насрочени епизоди", + "check_back_later": "Проверете отново по-късно", + "showing_episodes_for": "Показване на епизоди за {{date}}", + "show_all_episodes": "Покажи всички епизоди", + "no_episodes_for": "Няма епизоди за {{date}}", + "no_upcoming_found": "Няма намерени предстоящи епизоди", + "add_series_desc": "Добавете сериали в библиотеката си, за да виждате техните предстоящи епизоди тук" + }, + "mdblist": { + "title": "Източници на рейтинги", + "status_disabled": "MDBList е деактивиран", + "status_active": "API ключът е активен", + "status_required": "Изисква се API ключ", + "status_disabled_desc": "Функционалността на MDBList в момента е изключена.", + "status_active_desc": "Рейтингите от MDBList са активирани.", + "status_required_desc": "Добавете вашия ключ по-долу, за да активирате рейтингите.", + "enable_toggle": "Активирай MDBList", + "enable_toggle_desc": "Включи/изключи цялата функционалност на MDBList", + "api_section": "API ключ", + "placeholder": "Поставете вашия MDBList API ключ", + "save": "Запази", + "clear": "Изчисти ключа", + "rating_providers": "Доставчици на рейтинги", + "rating_providers_desc": "Изберете кои рейтинги да се показват в приложението", + "how_to": "Как да получа API ключ", + "step_1": "Влезте в", + "step_1_link": "уебсайта на MDBList", + "step_2": "Отидете в секция", + "step_2_settings": "Настройки", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Генерирайте нов ключ и го копирайте.", + "go_to_website": "Отиди в MDBList", + "alert_clear_title": "Изчистване на API ключ", + "alert_clear_msg": "Сигурни ли сте, че искате да премахнете запазения API ключ?", + "success_saved": "API ключът е запазен успешно.", + "error_empty": "API ключът не може да бъде празен.", + "error_save": "Възникна грешка при запазването. Моля, опитайте отново.", + "api_key_empty_error": "API ключът не може да бъде празен.", + "success_cleared": "API ключът е изчистен успешно", + "error_clear": "Неуспешно изчистване на API ключа" + }, + "notification": { + "title": "Настройки на известията", + "section_general": "Общи", + "enable_notifications": "Активирай известията", + "section_types": "Типове известия", + "new_episodes": "Нови епизоди", + "upcoming_shows": "Предстоящи сериали", + "reminders": "Напомняния", + "section_timing": "Време на известяване", + "timing_desc": "Кога да бъдете уведомени преди излъчването на епизод?", + "hours_1": "1 час", + "hours_suffix": "часа", + "section_status": "Статус на известията", + "stats_upcoming": "Предстоящи", + "stats_this_week": "Тази седмица", + "stats_total": "Общо", + "sync_button": "Синхронизирай Библиотека и Trakt", + "syncing": "Синхронизиране...", + "sync_desc": "Автоматично синхронизира известията за всички сериали във вашата библиотека и списъка за гледане на Trakt.", + "section_advanced": "Разширени", + "reset_button": "Нулирай всички известия", + "test_button": "Тестово известие (5 сек)", + "test_notification_in": "Известие след {{seconds}}с...", + "test_notification_text": "Известието ще се появи след {{seconds}} секунди", + "alert_reset_title": "Нулиране на известията", + "alert_reset_msg": "Това ще анулира всички насрочени известия, но няма да премахне нищо от библиотеката ви. Сигурни ли сте?", + "alert_reset_success": "Всички известия бяха нулирани", + "alert_sync_complete": "Синхронизацията приключи", + "alert_sync_msg": "Успешно синхронизирани известия за вашата библиотека и Trakt.\n\nНасрочени: {{upcoming}} предстоящи епизода\nТази седмица: {{thisWeek}} епизода", + "alert_test_scheduled": "Тестовото известие е насрочено да се появи веднага" + }, + "backup": { + "title": "Архивиране и възстановяване", + "options_title": "Опции за архивиране", + "options_desc": "Изберете какво да включите във вашите архиви", + "section_core": "Основни данни", + "section_addons": "Добавки и интеграции", + "section_settings": "Настройки и предпочитания", + "library_label": "Библиотека", + "library_desc": "Вашите запазени филми и сериали", + "watch_progress_label": "Прогрес на гледане", + "watch_progress_desc": "Позиции на продължаване на гледането", + "addons_label": "Добавки", + "addons_desc": "Инсталирани Stremio добавки", + "plugins_label": "Плъгини", + "plugins_desc": "Персонализирани конфигурации на търсачки", + "trakt_label": "Trakt интеграция", + "trakt_desc": "Синхронизиране на данни и токени за автентификация", + "app_settings_label": "Настройки на приложението", + "app_settings_desc": "Тема, предпочитания и конфигурации", + "user_prefs_label": "Потребителски предпочитания", + "user_prefs_desc": "Подредба на добавките и настройки на интерфейса", + "catalog_settings_label": "Настройки на каталога", + "catalog_settings_desc": "Филтри на каталога и предпочитания", + "api_keys_label": "API ключове", + "api_keys_desc": "Ключове за MDBList и OpenRouter", + "action_create": "Създай архив", + "action_restore": "Възстанови от архив", + "section_info": "Относно архивите", + "info_text": "• Персонализирайте какво да се архивира чрез превключвателите по-горе\n• Архивните файлове се съхраняват локално на вашето устройство\n• Споделете архива си, за да прехвърлите данни между устройства\n• Възстановяването ще презапише текущите ви данни", + "alert_create_title": "Създаване на архив", + "alert_no_content": "Няма избрано съдържание за архивиране.\n\nМоля, активирайте поне една опция в секцията за архивиране по-горе.", + "alert_backup_created_title": "Архивът е създаден", + "alert_backup_created_msg": "Вашият архив е създаден и е готов за споделяне.", + "alert_backup_failed_title": "Архивирането е неуспешно", + "alert_restore_confirm_title": "Потвърдете възстановяването", + "alert_restore_confirm_msg": "Това ще възстанови вашите данни от архив, създаден на {{date}}.\n\nТова действие ще презапише текущите ви данни. Сигурни ли сте, че искате да продължите?", + "alert_restore_complete_title": "Възстановяването приключи", + "alert_restore_complete_msg": "Вашите данни бяха успешно възстановени. Моля, рестартирайте приложението, за да видите промените.", + "alert_restore_failed_title": "Възстановяването е неуспешно", + "restart_app": "Рестартирай приложението", + "alert_restart_failed_title": "Рестартирането е неуспешно", + "alert_restart_failed_msg": "Неуспешно рестартиране на приложението. Моля, затворете и отворете приложението ръчно." + }, + "updates": { + "title": "Обновявания", + "status_checking": "Проверка за обновявания...", + "status_available": "Налично е обновяване!", + "status_downloading": "Изтегляне на обновяването...", + "status_installing": "Инсталиране на обновяването...", + "status_success": "Обновяването е инсталирано успешно!", + "status_error": "Обновяването е неуспешно", + "status_ready": "Готовност за проверка за обновявания", + "action_check": "Провери за обновявания", + "action_install": "Инсталирай обновяването", + "release_notes": "Бележки към версията:", + "version": "Версия:", + "last_checked": "Последна проверка:", + "current_version": "Текуща версия:", + "current_release_notes": "Текущи бележки към версията:", + "github_release": "GITHUB ВЕРСИЯ", + "current": "Текуща:", + "latest": "Най-нова:", + "notes": "Бележки:", + "view_release": "Виж версията", + "notification_settings": "НАСТРОЙКИ ЗА ИЗВЕСТИЯ", + "ota_alerts_label": "Известия за OTA обновявания", + "ota_alerts_desc": "Показвай известия за обновявания по въздуха", + "major_alerts_label": "Известия за големи обновявания", + "major_alerts_desc": "Показвай известия за нови версии на приложението в GitHub", + "alert_disable_ota_title": "Деактивиране на OTA известията?", + "alert_disable_ota_msg": "Вече няма да получавате автоматични известия за OTA обновявания.\n\n⚠️ Предупреждение: Поддържането на последната версия е важно за:\n• Поправки на грешки и стабилност\n• Нови функции и подобрения\n• Предоставяне на точни доклади за сривове", + "alert_disable_major_title": "Деактивиране на големите известия?", + "alert_disable_major_msg": "Вече няма да получавате известия за големи обновявания, които изискват преинсталация.\n\n⚠️ Предупреждение: Големите обновявания често включват:\n• Критични корекции по сигурността\n• Промени, изискващи преинсталиране\n• Важни корекции за съвместимост", + "warning_note": "Активираните известия гарантират, че получавате поправки и стабилност.", + "disable": "Деактивирай", + "alert_no_update_to_install": "Няма налично обновяване за инсталиране", + "alert_install_failed": "Неуспешно инсталиране на обновяването", + "alert_no_update_title": "Няма обновяване", + "alert_update_applied_msg": "Обновяването ще бъде приложено при следващото стартиране" + }, + "player": { + "title": "Видео плейър", + "section_selection": "ИЗБОР НА ПЛЕЙЪР", + "internal_title": "Вграден плейър", + "internal_desc": "Използвай плейъра по подразбиране на приложението", + "vlc_title": "VLC", + "vlc_desc": "Отвори стриймовете във VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Отвори стриймовете в Infuse плейър", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Отвори стриймовете в OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Отвори стриймовете в VidHub плейър", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Отвори стриймовете в Infuse LiveContainer", + "external_title": "Външен плейър", + "external_desc": "Отвори стриймовете в предпочитания от вас плейър", + "section_playback": "ОПЦИИ ЗА ВЪЗПРОИЗВЕЖДАНЕ", + "skip_intro_settings_title": "Пропусни интро", + "powered_by_introdb": "Задвижвано от IntroDB", + "autoplay_title": "Автоматично пускане", + "autoplay_desc": "Автоматично стартиране на първия стрийм от списъка.", + "resume_title": "Винаги продължавай", + "resume_desc": "Пропусни запитването и автоматично продължи от там, където сте спрели (ако е изгледано под 85%).", + "engine_title": "Двигател на видео плейъра", + "engine_desc": "Auto използва ExoPlayer с MPV като резервен вариант. За най-добра съвместимост се препоръчва Auto.", + "decoder_title": "Режим на декодиране", + "decoder_desc": "Как се декодира видеото. Auto се препоръчва за най-добър баланс.", + "gpu_title": "GPU рендиране", + "gpu_desc": "GPU-Next предлага по-добро управление на HDR и цветовете.", + "external_downloads_title": "Външен плейър за изтегляния", + "external_downloads_desc": "Възпроизвеждай изтегленото съдържание във външен плейър.", + "restart_required": "Изисква се рестартиране", + "restart_msg_decoder": "Моля, рестартирайте за промяна на декодера.", + "restart_msg_gpu": "Моля, рестартирайте за промяна на GPU режима.", + "option_auto": "Автоматично", + "option_auto_desc_engine": "ExoPlayer + MPV резерва", + "option_mpv": "MPV", + "option_mpv_desc": "Само MPV", + "option_auto_desc_decoder": "Най-добър баланс", + "option_sw": "SW", + "option_sw_desc": "Софтуерно", + "option_hw": "HW", + "option_hw_desc": "Хардуерно", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Пълен HW", + "option_gpu_desc": "Стандартно", + "option_gpu_next_desc": "Разширено" + }, + "plugins": { + "title": "Плъгини", + "enable_title": "Активирай плъгините", + "enable_desc": "Активирай системата за плъгини за външни медийни източници", + "repo_config_title": "Конфигурация на хранилища", + "repo_config_desc": "Управлявайте външни хранилища за плъгини.", + "your_repos": "Хранилища", + "your_repos_desc": "Конфигурирайте външни източници.", + "add_repo_button": "Добави хранилище", + "refresh": "Обнови", + "remove": "Премахни", + "enabled": "Активирано", + "disabled": "Деактивирано", + "updating": "Обновяване...", + "success": "Успех", + "error": "Грешка", + "alert_repo_added": "Хранилището е добавено успешно", + "alert_repo_saved": "URL адресът на хранилището е запазен", + "alert_repo_refreshed": "Хранилището е обновено успешно", + "alert_invalid_url": "Невалиден формат на URL", + "alert_plugins_cleared": "Всички плъгини са премахнати", + "alert_cache_cleared": "Кешът на хранилището е изчистен", + "unknown": "Неизвестно", + "active": "Активен", + "available": "Наличен", + "platform_disabled": "Платформата е изключена", + "limited": "Ограничен", + "clear_all": "Изчисти всички плъгини", + "clear_all_desc": "Сигурни ли сте? Това действие е необратимо.", + "clear_cache": "Изчисти кеша на хранилищата", + "clear_cache_desc": "Това ще премахне запазените URL адреси и кеширани данни.", + "add_new_repo": "Добави ново хранилище", + "available_plugins": "Налични плъгини ({{count}})", + "placeholder": "Търсене на плъгини...", + "all": "Всички", + "filter_all": "Всички типове", + "filter_movies": "Филми", + "filter_tv": "Сериали", + "enable_all": "Активирай всички", + "disable_all": "Деактивирай всички", + "no_plugins_found": "Няма намерени плъгини", + "no_plugins_available": "Няма налични плъгини", + "no_match_desc": "Няма съвпадения за \"{{query}}\".", + "configure_repo_desc": "Конфигурирайте хранилище по-горе.", + "clear_search": "Изчисти търсенето", + "no_external_player": "Без външен плейър", + "showbox_token": "ShowBox UI Токен", + "showbox_placeholder": "Поставете вашия ShowBox UI токен", + "save": "Запази", + "clear": "Изчисти", + "additional_settings": "Допълнителни настройки", + "enable_url_validation": "Активирай валидация на URL", + "url_validation_desc": "Проверявай URL адресите за надеждност (може да забави резултатите)", + "group_streams": "Групирай източниците", + "group_streams_desc": "Източниците се групират по хранилище.", + "sort_quality": "Сортирай първо по качество", + "sort_quality_desc": "Само при активирано групиране.", + "show_logos": "Покажи лога на плъгините", + "show_logos_desc": "Показвай лога до медийните връзки.", + "quality_filtering": "Филтриране по качество", + "quality_filtering_desc": "Изключете конкретни резолюции от резултатите.", + "excluded_qualities": "Изключени качества:", + "language_filtering": "Филтриране по език", + "language_filtering_desc": "Изключете конкретни езици от резултатите.", + "note": "Забележка:", + "language_filtering_note": "Прилага се само за доставчици с езикова информация.", + "excluded_languages": "Изключени езици:", + "about_title": "Относно плъгините", + "about_desc_1": "Плъгините са модулни компоненти, които адаптират съдържание от външни протоколи.", + "about_desc_2": "Плъгините с етикет „Ограничен“ може да изискват външна конфигурация.", + "help_title": "Настройка на плъгини", + "help_step_1": "1. **Активиране** - Включете основния ключ", + "help_step_2": "2. **Добавяне** - Добавете валиден URL на хранилище", + "help_step_3": "3. **Обновяване** - Изтеглете наличните плъгини", + "help_step_4": "4. **Активиране** - Включете плъгините, които искате", + "got_it": "Разбрах!", + "repo_format_hint": "Формат: https://raw.githubusercontent.com/username/repo", + "cancel": "Отказ", + "add": "Добави" + }, + "theme": { + "title": "Теми", + "select_theme": "ИЗБЕРИ ТЕМА", + "create_custom": "Създай персонализирана тема", + "options": "ОПЦИИ", + "use_dominant_color": "Използвай доминиращ цвят от постера", + "categories": { + "all": "Всички теми", + "dark": "Тъмни теми", + "colorful": "Цветни", + "custom": "Моите теми" + }, + "editor": { + "theme_name_placeholder": "Име на темата", + "save": "Запази", + "primary": "Основен", + "secondary": "Вторичен", + "background": "Фон", + "invalid_name_title": "Невалидно име", + "invalid_name_msg": "Моля, въведете валидно име" + }, + "alerts": { + "delete_title": "Изтриване на тема", + "delete_msg": "Сигурни ли сте, че искате да изтриете \"{{name}}\"?", + "ok": "ОК", + "delete": "Изтрий", + "cancel": "Отказ", + "back": "Настройки" + } + }, + "legal": { + "title": "Правна информация", + "intro_title": "Естество на приложението", + "intro_text": "Nuvio е медиен плейър и приложение за управление на метаданни. То действа единствено като интерфейс за разглеждане на публично достъпни метаданни. Nuvio не хоства, не съхранява и не разпространява медийно съдържание.", + "extensions_title": "Плъгини от трети страни", + "extensions_text": "Тези плъгини се разработват от независими разработчици. Ние нямаме контрол върху тяхната законност или функционалност.", + "user_resp_title": "Отговорност на потребителя", + "user_resp_text": "Потребителите носят пълна отговорност за инсталираните плъгини и достъпваното съдържание.", + "dmca_title": "Авторски права и DMCA", + "dmca_text": "Ние уважаваме интелектуалната собственост. Тъй като Nuvio не хоства съдържание, не можем да премахваме такова от интернет.", + "warranty_title": "Без гаранция", + "warranty_text": "Софтуерът се предоставя „във вида, в който е“, без никакви гаранции." + }, + "plugin_tester": { + "title": "Тестер на плъгини", + "subtitle": "Стартирайте търсачки и следете лог файловете", + "tabs": { + "individual": "Индивидуален", + "repo": "Репо тестер", + "code": "Код", + "logs": "Логове", + "results": "Резултати" + }, + "common": { + "error": "Грешка", + "success": "Успех", + "movie": "Филм", + "tv": "Сериал", + "tmdb_id": "TMDB ID", + "season": "Сезон", + "episode": "Епизод", + "running": "Работи…", + "run_test": "Пусни тест", + "play": "Пусни", + "done": "Готово", + "test": "Тест", + "testing": "Тестване…" + }, + "individual": { + "load_from_url": "Зареди от URL", + "load_from_url_desc": "Поставете GitHub URL или локален IP.", + "enter_url_error": "Моля, въведете URL", + "code_loaded": "Кодът е зареден", + "fetch_error": "Грешка при извличане: {{message}}", + "no_code_error": "Няма код за изпълнение", + "plugin_code": "Код на плъгина", + "focus_editor": "Фокусирай редактора", + "code_placeholder": "// Поставете кода тук...", + "test_parameters": "Тестови параметри", + "no_logs": "Все още няма логове.", + "no_streams": "Няма намерени стриймове.", + "streams_found": "{{count}} намерен стрийм", + "streams_found_plural": "{{count}} намерени стрийма", + "tap_play_hint": "Натиснете Пусни за тест.", + "unnamed_stream": "Неименуван стрийм", + "quality": "Качество: {{quality}}", + "size": "Размер: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Хедъри: {{count}} броя", + "find_placeholder": "Търси в кода…", + "edit_code_title": "Редактирай кода", + "no_url_stream_error": "Няма намерен URL за този стрийm" + }, + "repo": { + "title": "Репо тестер", + "description": "Тествайте всеки доставчик от хранилище.", + "enter_repo_url_error": "Моля, въведете URL на хранилище", + "invalid_url_title": "Невалиден URL", + "invalid_url_msg": "Използвайте GitHub raw URL или локален http(s).", + "manifest_build_error": "Неуспешно изграждане на манифест URL", + "manifest_fetch_error": "Неуспешно извличане на манифест", + "repo_manifest_fetch_error": "Грешка при извличане на манифест на хранилището", + "missing_filename": "Липсва име на файл в манифеста", + "scraper_build_error": "Неуспешно изграждане на URL на търсачка", + "download_scraper_error": "Неуспешно изтегляне на търсачка", + "test_failed": "Тестът е неуспешен", + "test_parameters": "Параметри за репо тест", + "test_parameters_desc": "Използват се само за Репо тестера.", + "using_info": "Използва се: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Използва се: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Доставчици", + "repository_default": "Хранилище", + "providers_count": "{{count}} доставчика", + "fetch_hint": "Извлечете репо за списък.", + "test_all": "Тествай всички", + "status_running": "РАБОТИ", + "status_ok": "ОК ({{count}})", + "status_ok_empty": "ОК (0)", + "status_failed": "ГРЕШКА", + "status_idle": "В ПОКОЙ", + "tried_url": "Опитано: {{url}}", + "provider_logs": "Логове на доставчика", + "no_logs_captured": "Няма уловени логове." + } + } +} From 52bfa24a20740d1323f5edd86d775999784a78ca Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:47:27 +0100 Subject: [PATCH 027/285] Add Bulgarian translations to resources --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 4dbfcd3e..82aa6691 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -12,6 +12,7 @@ import hi from './locales/hi.json'; import zhCN from './locales/zh-CN.json'; import sr from './locales/sr.json'; import he from './locales/he.json'; +import bg from './locales/bg.json'; export const resources = { en: { translation: en }, @@ -27,4 +28,5 @@ export const resources = { hi: { translation: hi }, sr: { translation: sr }, he: { translation: he }, + bg: { translation: bg }, }; From 528f0dcbffa3ac2d17fa6cab1019342e4b5b8aaa Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 17:48:45 +0100 Subject: [PATCH 028/285] Add Bulgarian locale to locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index e658637f..bb5064d3 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -12,4 +12,5 @@ export const LOCALES = [ { code: 'hi', key: 'hindi' }, { code: 'sr', key: 'serbian' } { code: 'he', key: 'hebrew' } + { code: 'bg', key: 'bulgarian' } ]; From fb67d908c8e1cd0f485127dc20ec630af4b0fde1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:25:12 +0100 Subject: [PATCH 029/285] Add Bulgarian language support to translations --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 3f933712..4637f1e2 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -637,6 +637,7 @@ "hindi": "الهندية", "serbian": "الصربية", "hebrew": "العبرية", + "bulgarian": "بلغاري", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From f9bccef2017179dd98eee46d4e2b263c68fb0bec Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:27:08 +0100 Subject: [PATCH 030/285] Add Bulgarian translation to de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index e7b0bb4e..8cad6659 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -637,6 +637,7 @@ "hindi": "Hindi", "serbian": "Serbisch", "hebrew": "Hebräisch", + "bulgarian": "Bulgarisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From abf7b40e7099fc79dcf027c010d4e143ec650a12 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:28:16 +0100 Subject: [PATCH 031/285] Add Bulgarian language support to locales --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 6dc74258..0591a00a 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -642,6 +642,7 @@ "hindi": "Hindi", "serbian": "Serbian", "hebrew": "Hebrew", + "bulgarian": "Bulgarian", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 0c9ea1c3750897a46066285546a6c2ad6fa30f03 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:29:25 +0100 Subject: [PATCH 032/285] Add Bulgarian language support to es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 9c09f290..00a65dbb 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -637,6 +637,7 @@ "hindi": "Hindi", "serbian": "Serbio", "hebrew": "Hebreo", + "bulgarian": "Búlgaro", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 911c5ce96cdf65a89027d9aff4f954e95fabad66 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:30:49 +0100 Subject: [PATCH 033/285] Add Bulgarian language support to French locale --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 17865605..86b60c87 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -637,6 +637,7 @@ "hindi": "Hindi", "serbian": "Serbe", "hebrew": "Hébreu", + "bulgarian": "Bulgare" "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From 476d3b806c20df445e95ab5618e91f48ea4d58f6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:32:45 +0100 Subject: [PATCH 034/285] Added Bulgarian lang --- src/i18n/locales/he.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 5a638b3a..7d41fa0d 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -642,6 +642,7 @@ "hindi": "הינדי", "serbian": "סרבית", "hebrew": "עברית", + "bulgarian": "בולגרית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1416,4 +1417,5 @@ "no_logs_captured": "לא נלכדו לוגים." } } -} \ No newline at end of file + +} From 948c1719e931281a0140da710e839131f752e6bb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:34:12 +0100 Subject: [PATCH 035/285] Add Bulgarian language support to hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 1e82507f..80ca92c9 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -637,6 +637,7 @@ "hindi": "हिन्दी", "serbian": "सर्बियाई", "hebrew": "इब्रानी", + "bulgarian": "बुल्गारियाई", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 5c05b43708eba8fcf4daa4d484858148a7541a39 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:35:13 +0100 Subject: [PATCH 036/285] Add Bulgarian language support to it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index e52eb699..524b1389 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -637,6 +637,7 @@ "hindi": "Hindi", "serbian": "Serbo", "hebrew": "Ebraico", + "bulgarian": "Bulgaro", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 22799aa2c11795dc5fda2b7fcc44844d87b34fcd Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:37:02 +0100 Subject: [PATCH 037/285] Add Bulgarian language support to pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 0a38c4d7..ffc2ff11 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -651,6 +651,7 @@ "hindi": "Hindi", "serbian": "Sérvio", "hebrew": "Hebraico", + "bulgarian": "Búlgaro", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 7d8441fad96ee761f014c462ab64d1cbac448a75 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:38:22 +0100 Subject: [PATCH 038/285] Add Bulgarian language support to pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 8130dcef..894e0301 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -649,6 +649,7 @@ "hindi": "Hindi", "serbian": "Sérvio", "hebrew": "Hebraico", + "bulgarian": "Búlgaro", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 8e958027e6de0a64d58631a575c15deae5063aaa Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:40:12 +0100 Subject: [PATCH 039/285] Added Bulgarian lang --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index b4310644..ed63e6c0 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -636,6 +636,7 @@ "hindi": "Хинди", "serbian": "Српски", "hebrew": "Хебрејски", + "bulgarian": "бугарски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1414,3 +1415,4 @@ + From fb2edf688872b702ede555c3be1a393ba96cdcef Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:41:20 +0100 Subject: [PATCH 040/285] Add Bulgarian language support to localization --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 75124eb1..4f314f2d 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -637,6 +637,7 @@ "hindi": "印地语", "serbian": "塞尔维亚语", "hebrew": "希伯来语", + "bulgarian": "保加利亚语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From de5a17dd9ff614acab8dfbb27166d52642024b16 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:53:13 +0100 Subject: [PATCH 041/285] Added Polish lang --- src/i18n/locales/pl.json | 1422 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1422 insertions(+) create mode 100644 src/i18n/locales/pl.json diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json new file mode 100644 index 00000000..5fc43f21 --- /dev/null +++ b/src/i18n/locales/pl.json @@ -0,0 +1,1422 @@ +{ + "common": { + "loading": "Ładowanie...", + "cancel": "Annuluj", + "save": "Zapisz", + "delete": "Usuń", + "edit": "Edytuj", + "search": "Szukaj", + "error": "Błąd", + "success": "Sukces", + "ok": "OK", + "unknown": "Nieznane", + "retry": "Ponów", + "try_again": "Spróbuj ponownie", + "go_back": "Wróć", + "settings": "Ustawienia", + "close": "Zamknij", + "enable": "Włącz", + "disable": "Wyłącz", + "show_more": "Pokaż więcej", + "show_less": "Pokaż mniej", + "load_more": "Załaduj więcej", + "unknown_date": "Nieznana data", + "anonymous_user": "Anonimowy użytkownik", + "time": { + "now": "Przed chwilą", + "minutes_ago": "{{count}} min temu", + "hours_ago": "{{count}} godz. temu", + "days_ago": "{{count}} dni temu" + }, + "days_short": { + "sun": "Ndz", + "mon": "Pon", + "tue": "Wt", + "wed": "Śr", + "thu": "Czw", + "fri": "Pt", + "sat": "Sob" + }, + "email": "Email", + "status": "Status" + }, + "home": { + "categories": { + "movies": "Filmy", + "series": "Seriale", + "channels": "Kanały" + }, + "movies": "Filmy", + "tv_shows": "Programy TV", + "load_more_catalogs": "Załaduj więcej katalogów", + "no_content": "Brak dostępnej zawartości", + "add_catalogs": "Dodaj katalogi", + "sign_in_available": "Logowanie dostępne", + "sign_in_desc": "Możesz zalogować się w dowolnym momencie w Ustawienia → Konto", + "view_all": "Zobacz wszystko", + "this_week": "W tym tygodniu", + "upcoming": "Nadchodzące", + "recently_released": "Ostatnio wydane", + "no_scheduled_episodes": "Seriale bez zaplanowanych odcinków", + "check_back_later": "Sprawdź ponownie później", + "continue_watching": "Kontynuuj oglądanie", + "up_next": "Następne", + "up_next_caps": "NASTĘPNE", + "released": "Wydano", + "new": "Nowe", + "tba": "TBA", + "new_episodes": "{{count}} nowych odcinków", + "season_short": "S{{season}}", + "episode_short": "O{{episode}}", + "season": "Sezon {{season}}", + "episode": "Odcinek {{episode}}", + "movie": "Film", + "series": "Serial", + "tv_show": "Program TV", + "percent_watched": "Obejrzano {{percent}}%", + "view_details": "Pokaż szczegóły", + "remove": "Usuń", + "play": "Odtwórz", + "play_now": "Odtwórz teraz", + "resume": "Wznów", + "info": "Info", + "more_info": "Więcej informacji", + "my_list": "Moja lista", + "save": "Zapisz", + "saved": "Zapisano", + "retry": "Ponów", + "install_addons": "Zainstaluj dodatki", + "settings": "Ustawienia", + "no_featured_content": "Brak wyróżnionej zawartości", + "couldnt_load_featured": "Nie udało się załadować wyróżnionych treści", + "no_featured_desc": "Zainstaluj dodatki z katalogami lub zmień źródło treści w ustawieniach.", + "load_error_desc": "Wystąpił problem z pobieraniem wyróżnionych treści. Sprawdź połączenie i spróbuj ponownie.", + "no_featured_available": "Brak dostępnych wyróżnionych treści", + "no_description": "Brak opisu" + }, + "navigation": { + "home": "Start", + "library": "Biblioteka", + "search": "Szukaj", + "downloads": "Pobrane", + "settings": "Ustawienia" + }, + "search": { + "title": "Szukaj", + "recent_searches": "Ostatnie wyszukiwania", + "discover": "Odkrywaj", + "movies": "Filmy", + "tv_shows": "Programy TV", + "select_catalog": "Wybierz katalog", + "all_genres": "Wszystkie gatunki", + "discovering": "Odkrywanie treści...", + "show_more": "Pokaż więcej ({{count}})", + "no_content_found": "Nie znaleziono treści", + "try_different": "Spróbuj innego gatunku lub katalogu", + "select_catalog_desc": "Wybierz katalog, aby zacząć odkrywać", + "tap_catalog_desc": "Stuknij w powyższy katalog, aby zacząć", + "placeholder": "Szukaj filmów, seriali...", + "keep_typing": "Pisz dalej...", + "type_characters": "Wpisz co najmniej 2 znaki, aby szukać", + "no_results": "Brak wyników", + "try_keywords": "Spróbuj innych słów kluczowych lub sprawdź pisownię", + "select_type": "Wybierz typ", + "browse_movies": "Przeglądaj katalogi filmów", + "browse_tv": "Przeglądaj katalogi seriali", + "select_genre": "Wybierz gatunek", + "show_all_content": "Pokaż całą zawartość", + "genres_count": "{{count}} gatunków" + }, + "library": { + "title": "Biblioteka", + "watched": "Obejrzane", + "continue": "Kontynuuj", + "watchlist": "Do obejrzenia", + "collection": "Kolekcja", + "rated": "Ocenione", + "items": "elementy", + "trakt_collections": "Kolekcje Trakt", + "trakt_collection": "Kolekcja Trakt", + "no_trakt": "Brak kolekcji Trakt", + "no_trakt_desc": "Twoje kolekcje Trakt pojawią się tutaj po zalogowaniu do Trakt", + "load_collections": "Załaduj kolekcje", + "empty_folder": "Brak treści w {{folder}}", + "empty_folder_desc": "Ta kolekcja jest pusta", + "refresh": "Odśwież", + "no_movies": "Brak filmów", + "no_series": "Brak seriali", + "no_content": "Brak treści", + "add_content_desc": "Dodaj treści do biblioteki, aby zobaczyć je tutaj", + "find_something": "Znajdź coś do obejrzenia", + "removed_from_library": "Usunięto z biblioteki", + "item_removed": "Element usunięty z Twojej biblioteki", + "failed_update_library": "Nie udało się zaktualizować biblioteki", + "unable_remove": "Nie można usunąć elementu z biblioteki", + "marked_watched": "Oznaczono jako obejrzane", + "marked_unwatched": "Oznaczono jako nieobejrzane", + "item_marked_watched": "Element oznaczony jako obejrzany", + "item_marked_unwatched": "Element oznaczony jako nieobejrzany", + "failed_update_watched": "Nie udało się zaktualizować statusu oglądania", + "unable_update_watched": "Nie można zaktualizować statusu oglądania", + "added_to_library": "Dodano do biblioteki", + "item_added": "Dodano do lokalnej biblioteki", + "add_to_library": "Dodaj do biblioteki", + "remove_from_library": "Usuń z biblioteki", + "mark_watched": "Oznacz jako obejrzane", + "mark_unwatched": "Oznacz jako nieobejrzane", + "share": "Udostępnij", + "add_to_watchlist": "Dodaj do listy Trakt", + "remove_from_watchlist": "Usuń z listy Trakt", + "added_to_watchlist": "Dodano do listy", + "added_to_watchlist_desc": "Dodano do Twojej listy do obejrzenia na Trakt", + "removed_from_watchlist": "Usunięto z listy", + "removed_from_watchlist_desc": "Usunięto z Twojej listy do obejrzenia na Trakt", + "add_to_collection": "Dodaj do kolekcji Trakt", + "remove_from_collection": "Usuń z kolekcji Trakt", + "added_to_collection": "Dodano do kolekcji", + "added_to_collection_desc": "Dodano do Twojej kolekcji Trakt", + "removed_from_collection": "Usunięto z kolekcji", + "removed_from_collection_desc": "Usunięto z Twojej kolekcji Trakt" + }, + "metadata": { + "unable_to_load": "Nie można załadować treści", + "error_code": "Kod błędu: {{code}}", + "content_not_found": "Nie znaleziono treści", + "content_not_found_desc": "Ta treść nie istnieje lub mogła zostać usunięta.", + "server_error": "Błąd serwera", + "server_error_desc": "Serwer jest chwilowo niedostępny. Spróbuj ponownie później.", + "bad_gateway": "Błąd bramy", + "bad_gateway_desc": "Serwer napotkał problemy. Spróbuj ponownie później.", + "service_unavailable": "Usługa niedostępna", + "service_unavailable_desc": "Usługa jest obecnie w trakcie konserwacji. Spróbuj ponownie później.", + "too_many_requests": "Zbyt wiele zapytań", + "too_many_requests_desc": "Wysyłasz zbyt wiele zapytań. Odczekaj chwilę i spróbuj ponownie.", + "request_timeout": "Przekroczono czas oczekiwania", + "request_timeout_desc": "Zapytanie trwało zbyt długo. Spróbuj ponownie.", + "network_error": "Błąd sieci", + "network_error_desc": "Sprawdź połączenie internetowe i spróbuj ponownie.", + "auth_error": "Błąd uwierzytelniania", + "auth_error_desc": "Sprawdź ustawienia konta i spróbuj ponownie.", + "access_denied": "Odmowa dostępu", + "access_denied_desc": "Nie masz uprawnień do dostępu do tej treści.", + "connection_error": "Błąd połączenia", + "streams_unavailable": "Strumienie niedostępne", + "streams_unavailable_desc": "Źródła strumieniowania są obecnie niedostępne. Spróbuj ponownie później.", + "unknown_error": "Nieznany błąd", + "something_went_wrong": "Coś poszło nie tak. Spróbuj ponownie.", + "cast": "Obsada", + "more_like_this": "Więcej w tym stylu", + "collection": "Kolekcja", + "episodes": "Odcinki", + "seasons": "Sezony", + "posters": "Plakaty", + "banners": "Bannery", + "specials": "Odcinki specjalne", + "season_number": "Sezon {{number}}", + "episode_count": "{{count}} odcinek", + "episode_count_plural": "{{count}} odcinki", + "no_episodes": "Brak dostępnych odcinków", + "no_episodes_for_season": "Brak dostępnych odcinków dla sezonu {{season}}", + "episodes_not_released": "Odcinki mogły jeszcze nie zostać wydane", + "no_description": "Brak opisu", + "episode_label": "ODCINEK {{number}}", + "watch_again": "Obejrzyj ponownie", + "completed": "Ukończono", + "play_episode": "Odtwórz S{{season}}O{{episode}}", + "play": "Odtwórz", + "watched": "Obejrzane", + "watched_on_trakt": "Obejrzane na Trakt", + "synced_with_trakt": "Zsynchronizowano z Trakt", + "saved": "Zapisano", + "director": "Reżyser", + "directors": "Reżyserzy", + "creator": "Twórca", + "creators": "Twórcy", + "production": "Produkcja", + "network": "Sieć", + "mark_watched": "Oznacz jako obejrzane", + "mark_unwatched": "Oznacz jako nieobejrzane", + "marking": "Oznaczanie...", + "removing": "Usuwanie...", + "unmark_season": "Odznacz sezon {{season}}", + "mark_season": "Oznacz sezon {{season}}", + "resume": "Wznów", + "spoiler_warning": "Ostrzeżenie o spojlerach", + "spoiler_warning_desc": "Ten komentarz zawiera spojlery. Czy na pewno chcesz go wyświetlić?", + "cancel": "Anuluj", + "reveal_spoilers": "Pokaż spojlery", + "movie_details": "Szczegóły filmu", + "show_details": "Pokaż szczegóły", + "tagline": "Hasło", + "status": "Status", + "release_date": "Data premiery", + "runtime": "Czas trwania", + "budget": "Budżet", + "revenue": "Przychód", + "origin_country": "Kraj pochodzenia", + "original_language": "Język oryginalny", + "first_air_date": "Data pierwszej emisji", + "last_air_date": "Data ostatniej emisji", + "total_episodes": "Liczba odcinków", + "episode_runtime": "Czas trwania odcinka", + "created_by": "Utworzone przez", + "backdrop_gallery": "Galeria tła", + "loading_episodes": "Ładowanie odcinków...", + "no_episodes_available": "Brak dostępnych odcinków", + "play_next": "Odtwórz S{{season}}O{{episode}}", + "play_next_episode": "Odtwórz następny odcinek", + "save": "Zapisz", + "percent_watched": "Obejrzano {{percent}}%", + "percent_watched_trakt": "Obejrzano {{percent}}% ({{traktPercent}}% na Trakt)", + "synced_with_trakt_progress": "Zsynchronizowano postęp z Trakt", + "using_trakt_progress": "Używanie postępu z Trakt", + "added_to_collection_hero": "Dodano do kolekcji", + "added_to_collection_desc_hero": "Dodano do Twojej kolekcji Trakt", + "removed_from_collection_hero": "Usunięto z kolekcji", + "removed_from_collection_desc_hero": "Usunięto z Twojej kolekcji Trakt", + "mark_as_watched": "Oznacz jako obejrzane", + "mark_as_unwatched": "Oznacz jako nieobejrzane" + }, + "cast": { + "biography": "Biografia", + "known_for": "Znany(a) z", + "personal_info": "Informacje osobiste", + "born_in": "Urodzony(a) w {{place}}", + "filmography": "Filmografia", + "also_known_as": "Znany(a) również jako", + "no_info_available": "Brak dodatkowych informacji", + "as_character": "jako {{character}}", + "loading_details": "Ładowanie szczegółów...", + "years_old": "{{age}} lat", + "view_filmography": "Zobacz filmografię", + "filter": "Filtruj", + "sort_by": "Sortuj według", + "sort_popular": "Popularność", + "sort_latest": "Najnowsze", + "sort_upcoming": "Nadchodzące", + "upcoming_badge": "NADCHODZĄCE", + "coming_soon": "Wkrótce", + "filmography_count": "Filmografia • {{count}} pozycji", + "loading_filmography": "Ładowanie filmografii...", + "load_more_remaining": "Załaduj więcej (zostało {{count}})", + "alert_error_title": "Błąd", + "alert_error_message": "Nie można załadować „{{title}}”. Spróbuj ponownie później.", + "alert_ok": "OK", + "no_upcoming": "Brak nadchodzących wydań dla tego aktora/aktorki", + "no_content": "Brak treści dla tego aktora/aktorki", + "no_movies": "Brak filmów dla tego aktora/aktorki", + "no_tv": "Brak seriali dla tego aktora/aktorki" + }, + "comments": { + "title": "Komentarze Trakt", + "spoiler_warning": "⚠️ Ten komentarz zawiera spojlery. Stuknij, aby odkryć.", + "spoiler": "Spojler", + "contains_spoilers": "Zawiera spojlery", + "reveal": "Odkryj", + "vip": "VIP", + "unavailable": "Komentarze niedostępne", + "no_comments": "Brak komentarzy na Trakt", + "not_in_database": "Tej treści może nie być jeszcze w bazie Trakt", + "check_trakt": "Sprawdź Trakt" + }, + "trailers": { + "title": "Zwiastuny", + "official_trailers": "Oficjalne zwiastuny", + "official_trailer": "Oficjalny zwiastun", + "teasers": "Teasery", + "teaser": "Teaser", + "clips_scenes": "Klipy i sceny", + "clip": "Klip", + "featurettes": "Materiały dodatkowe", + "featurette": "Featurette", + "behind_the_scenes": "Za kulisami", + "no_trailers": "Brak dostępnych zwiastunów", + "unavailable": "Zwiastun niedostępny", + "unavailable_desc": "Nie udało się załadować zwiastuna. Spróbuj ponownie później.", + "unable_to_play": "Nie można odtworzyć zwiastuna. Spróbuj ponownie.", + "watch_on_youtube": "Obejrzyj na YouTube" + }, + "catalog": { + "no_content_found": "Nie znaleziono treści", + "no_content_filters": "Nie znaleziono treści dla wybranych filtrów", + "loading_content": "Ładowanie treści...", + "back": "Wstecz", + "in_theaters": "W kinach", + "all": "Wszystkie", + "failed_tmdb": "Nie udało się załadować treści z TMDB", + "movies": "Filmy", + "tv_shows": "Programy TV", + "channels": "Kanały" + }, + "streams": { + "back_to_episodes": "Wróć do odcinków", + "back_to_info": "Wróć do informacji", + "fetching_from": "Pobieranie z:", + "no_sources_available": "Brak dostępnych źródeł strumieniowania", + "add_sources_desc": "Dodaj źródła strumieniowania w ustawieniach", + "add_sources": "Dodaj źródła", + "finding_streams": "Szukanie dostępnych strumieni...", + "finding_best_stream": "Szukanie najlepszego strumienia do autoodtwarzania...", + "still_fetching": "Wciąż pobieram strumienie...", + "no_streams_available": "Brak dostępnych strumieni", + "starting_best_stream": "Uruchamianie najlepszego strumienia...", + "loading_more_sources": "Ładowanie większej liczby źródeł..." + }, + "player_ui": { + "via": "przez {{name}}", + "audio_tracks": "Ścieżki dźwiękowe", + "no_audio_tracks": "Brak dostępnych ścieżek dźwiękowych", + "playback_speed": "Prędkość odtwarzania", + "on_hold": "Wstrzymano", + "playback_error": "Błąd odtwarzania", + "unknown_error": "Wystąpił nieznany błąd podczas odtwarzania.", + "copy_error": "Kopiuj szczegóły błędu", + "copied_to_clipboard": "Skopiowano do schowka", + "dismiss": "Odrzuć", + "continue_watching": "Kontynuuj oglądanie", + "start_over": "Zacznij od nowa", + "resume": "Wznów", + "change_source": "Zmień źródło", + "switching_source": "Przełączanie źródła...", + "no_sources_found": "Nie znaleziono źródeł", + "sources": "Źródła", + "finding_sources": "Szukanie źródeł...", + "unknown_source": "Nieznane źródło", + "sources_limited": "Liczba źródeł może być ograniczona z powodu błędów dostawcy.", + "episodes": "Odcinki", + "specials": "Specials", + "season": "Sezon {{season}}", + "stream": "Strumień {{number}}", + "subtitles": "Napisy", + "built_in": "Wbudowane", + "addons": "Dodatki", + "style": "Styl", + "none": "Brak", + "search_online_subtitles": "Szukaj napisów online", + "preview": "Podgląd", + "quick_presets": "Szybkie ustawienia", + "default": "Domyślne", + "yellow": "Żółte", + "high_contrast": "Wysoki kontrast", + "large": "Duże", + "core": "Podstawowe", + "font_size": "Wielkość czcionki", + "show_background": "Pokaż tło", + "advanced": "Zaawansowane", + "position": "Pozycja", + "text_color": "Kolor tekstu", + "align": "Wyrównanie", + "bottom_offset": "Margines dolny", + "background_opacity": "Przezroczystość tła", + "text_shadow": "Cień tekstu", + "on": "Wł.", + "off": "Wył.", + "outline_color": "Kolor obrysu", + "outline": "Obrys", + "outline_width": "Szerokość obrysu", + "letter_spacing": "Odstępy między literami", + "line_height": "Wysokość linii", + "timing_offset": "Przesunięcie czasu (s)", + "visual_sync": "Synchronizacja wizualna", + "timing_hint": "Przesuń napisy wcześniej (-) lub później (+), aby zsynchronizować.", + "reset_defaults": "Przywróć domyślne", + "mark_intro_start": "Oznacz początek intro", + "mark_intro_end": "Oznacz koniec intro", + "intro_start_marked": "Oznaczono początek intro", + "intro_submitted": "Pomyślnie przesłano intro", + "intro_submit_failed": "Nie udało się przesłać intro" + }, + "downloads": { + "title": "Pobrane", + "no_downloads": "Brak pobranych plików", + "no_downloads_desc": "Pobrane treści pojawią się tutaj, aby umożliwić oglądanie offline", + "explore": "Przeglądaj treści", + "path_copied": "Skopiowano ścieżkę", + "path_copied_desc": "Ścieżka do pliku lokalnego została skopiowana do schowka", + "copied": "Skopiowano", + "incomplete": "Pobieranie nieukończone", + "incomplete_desc": "Pobieranie jeszcze się nie zakończyło", + "not_available": "Niedostępne", + "not_available_desc": "Ścieżka do pliku lokalnego jest dostępna dopiero po zakończeniu pobierania.", + "status_downloading": "Pobieranie", + "status_completed": "Zakończono", + "status_paused": "Wstrzymano", + "status_error": "Błąd", + "status_queued": "W kolejce", + "status_unknown": "Nieznany", + "provider": "Dostawca", + "streaming_playlist_warning": "Może nie działać – lista odtwarzania strumieniowego", + "remaining": "pozostało", + "not_ready": "Pobieranie niegotowe", + "not_ready_desc": "Proszę czekać na zakończenie pobierania.", + "filter_all": "Wszystkie", + "filter_active": "Aktywne", + "filter_done": "Gotowe", + "filter_paused": "Wstrzymane", + "no_filter_results": "Brak pobrań dla filtra: {{filter}}", + "try_different_filter": "Spróbuj wybrać inny filtr", + "limitations_title": "Ograniczenia pobierania", + "limitations_msg": "• Pliki mniejsze niż 1MB to zazwyczaj listy odtwarzania M3U8 i nie można ich pobrać do oglądania offline. Działają one tylko ze strumieniowaniem online i zawierają linki do segmentów wideo, a nie samą treść wideo.", + "remove_title": "Usuń pobrane", + "remove_confirm": "Usunąć „{{title}}”{{season_episode}}?", + "cancel": "Anuluj", + "remove": "Usuń" + }, + "addons": { + "title": "Dodatki", + "reorder_mode": "Tryb zmiany kolejności", + "reorder_info": "Dodatki na górze mają wyższy priorytet podczas ładowania treści", + "add_addon_placeholder": "URL dodatku", + "add_button": "Dodaj dodatek", + "my_addons": "Moje dodatki", + "community_addons": "Dodatki społeczności", + "no_addons": "Brak zainstalowanych dodatków", + "uninstall_title": "Odinstaluj dodatek", + "uninstall_message": "Czy na pewno chcesz odinstalować {{name}}?", + "uninstall_button": "Odinstaluj", + "install_success": "Dodatek zainstalowany pomyślnie", + "install_error": "Nie udało się zainstalować dodatku", + "load_error": "Nie udało się załadować dodatków", + "fetch_error": "Nie udało się pobrać szczegółów dodatku", + "invalid_url": "Proszę podać prawidłowy URL dodatku", + "configure": "Konfiguruj", + "version": "Wersja: {{version}}", + "installed_addons": "ZAINSTALOWANE DODATKI", + "reorder_drag_title": "PRZECIĄGNIJ DODATKI, ABY ZMIENIĆ KOLEJNOŚĆ", + "install": "Instaluj", + "config_unavailable_title": "Konfiguracja niedostępna", + "config_unavailable_msg": "Nie można określić adresu URL konfiguracji dla tego dodatku.", + "cannot_open_config_title": "Nie można otworzyć konfiguracji", + "cannot_open_config_msg": "Nie można otworzyć adresu URL konfiguracji ({{url}}). Dodatek może nie posiadać strony konfiguracji.", + "description": "Opis", + "supported_types": "Obsługiwane typy", + "catalogs": "Katalogi", + "no_description": "Brak dostępnego opisu", + "overview": "PRZEGLĄD", + "no_categories": "Brak kategorii", + "pre_installed": "PREINSTALOWANE" + }, + "trakt": { + "title": "Ustawienia Trakt", + "settings_title": "Ustawienia Trakt", + "connect_title": "Połącz z Trakt", + "connect_desc": "Synchronizuj historię oglądania, listę do obejrzenia i kolekcję z Trakt.tv", + "sign_in": "Zaloguj się przez Trakt", + "sign_out": "Wyloguj się", + "sign_out_confirm": "Czy na pewno chcesz wylogować się z konta Trakt?", + "joined": "Dołączono {{date}}", + "sync_settings_title": "Ustawienia synchronizacji", + "sync_info": "Po połączeniu z Trakt pełna historia jest synchronizowana bezpośrednio z API i nie jest zapisywana lokalnie. Twoja lista „Kontynuuj oglądanie” odzwierciedla ogólny postęp na Trakt.", + "auto_sync_label": "Automatyczna synchronizacja postępu", + "auto_sync_desc": "Automatycznie przesyłaj postęp oglądania do Trakt", + "import_history_label": "Importuj historię oglądania", + "import_history_desc": "Użyj „Synchronizuj teraz”, aby zaimportować historię i postępy z Trakt", + "sync_now_button": "Synchronizuj teraz", + "display_settings_title": "Ustawienia wyświetlania", + "show_comments_label": "Pokaż komentarze Trakt", + "show_comments_desc": "Wyświetlaj komentarze Trakt w szczegółach treści, jeśli są dostępne", + "maintenance_title": "Przerwa techniczna", + "maintenance_unavailable": "Trakt niedostępny", + "maintenance_desc": "Integracja z Trakt jest tymczasowo wstrzymana z powodu prac konserwacyjnych. Synchronizacja i autoryzacja są wyłączone do czasu zakończenia prac.", + "maintenance_button": "Usługa w trakcie konserwacji", + "auth_success_title": "Połączono pomyślnie", + "auth_success_msg": "Twoje konto Trakt zostało pomyślnie połączone.", + "auth_error_title": "Błąd autoryzacji", + "auth_error_msg": "Nie udało się ukończyć autoryzacji w serwisie Trakt.", + "auth_error_generic": "Wystąpił błąd podczas autoryzacji.", + "sign_out_error": "Nie udało się wylogować z Trakt.", + "sync_complete_title": "Synchronizacja zakończona", + "sync_success_msg": "Pomyślnie zsynchronizowano postęp oglądania z Trakt.", + "sync_error_msg": "Synchronizacja nie powiodła się. Spróbuj ponownie." + }, + "simkl": { + "title": "Ustawienia Simkl", + "settings_title": "Ustawienia Simkl", + "connect_title": "Połącz z Simkl", + "connect_desc": "Synchronizuj historię i śledź to, co oglądasz", + "sign_in": "Zaloguj się przez Simkl", + "sign_out": "Odłącz", + "sign_out_confirm": "Czy na pewno chcesz odłączyć konto Simkl?", + "syncing_desc": "Twoje obejrzane pozycje są synchronizowane z Simkl.", + "auth_success_title": "Połączono pomyślnie", + "auth_success_msg": "Twoje konto Simkl zostało pomyślnie połączone.", + "auth_error_title": "Błąd autoryzacji", + "auth_error_msg": "Nie udało się ukończyć autoryzacji w serwisie Simkl.", + "auth_error_generic": "Wystąpił błąd podczas autoryzacji.", + "sign_out_error": "Nie udało się odłączyć od Simkl.", + "config_error_title": "Błąd konfiguracji", + "config_error_msg": "Brak Simkl Client ID w zmiennych środowiskowych.", + "conflict_title": "Konflikt", + "conflict_msg": "Nie możesz połączyć się z Simkl, gdy połączony jest Trakt. Proszę najpierw odłączyć Trakt.", + "disclaimer": "Nuvio nie jest powiązane z serwisem Simkl." + }, + "tmdb_settings": { + "title": "Ustawienia TMDb", + "metadata_enrichment": "Wzbogacanie metadanych", + "metadata_enrichment_desc": "Ulepsz metadane treści o dane z TMDb, aby uzyskać lepsze szczegóły i informacje.", + "enable_enrichment": "Włącz wzbogacanie", + "enable_enrichment_desc": "Uzupełnia metadane dodatków o dane z TMDb dotyczące obsady, klasyfikacji wiekowej, logo/plakatów i produkcji.", + "localized_text": "Zlokalizowany tekst", + "localized_text_desc": "Pobieraj tytuły i opisy w preferowanym języku z bazy TMDb.", + "language": "Język", + "change": "Zmień", + "logo_preview": "Podgląd logo", + "logo_preview_desc": "Podgląd pokazuje, jak zlokalizowane logo będzie wyglądać w wybranym języku.", + "example": "Przykład:", + "no_logo": "Brak dostępnego logo", + "enrichment_options": "Opcje wzbogacania", + "enrichment_options_desc": "Wybierz, jakie dane mają być pobierane z TMDb. Wyłączone opcje będą korzystać z danych dodatku.", + "cast_crew": "Obsada i ekipa", + "cast_crew_desc": "Aktorzy, reżyserzy, scenarzyści wraz ze zdjęciami profilowymi", + "title_description": "Tytuł i opis", + "title_description_desc": "Używaj zlokalizowanego tytułu i opisu z TMDb", + "title_logos": "Logo tytułowe", + "title_logos_desc": "Wysokiej jakości grafiki z tytułami", + "banners_backdrops": "Bannery i tła", + "banners_backdrops_desc": "Obrazy tła w wysokiej rozdzielczości", + "certification": "Klasyfikacja treści", + "certification_desc": "Ograniczenia wiekowe (PG-13, R, TV-MA itp.)", + "recommendations": "Rekomendacje", + "recommendations_desc": "Sugestie podobnych treści", + "episode_data": "Dane odcinków", + "episode_data_desc": "Miniatury odcinków, informacje i dane zapasowe dla seriali", + "season_posters": "Plakaty sezonów", + "season_posters_desc": "Grafiki plakatów przypisane do konkretnych sezonów", + "production_info": "Informacje o produkcji", + "production_info_desc": "Stacje telewizyjne i firmy produkcyjne wraz z logo", + "movie_details": "Szczegóły filmu", + "movie_details_desc": "Budżet, przychody, czas trwania, hasło reklamowe", + "tv_details": "Szczegóły serialu", + "tv_details_desc": "Status, liczba sezonów, sieci, twórcy", + "movie_collections": "Kolekcje filmowe", + "movie_collections_desc": "Serie filmowe (Marvel, Gwiezdne Wojny itp.)", + "api_configuration": "Konfiguracja API", + "api_configuration_desc": "Skonfiguruj dostęp do API TMDb dla rozszerzonej funkcjonalności.", + "custom_api_key": "Własny klucz API", + "custom_api_key_desc": "Użyj własnego klucza API TMDb dla lepszej wydajności i dedykowanych limitów.", + "custom_key_active": "Własny klucz API aktywny", + "api_key_required": "Klucz API wymagany", + "api_key_placeholder": "Wklej swój klucz API TMDb (v3)", + "how_to_get_key": "Jak uzyskać klucz API TMDb?", + "built_in_key_msg": "Obecnie używasz wbudowanego klucza API. Rozważ użycie własnego klucza dla lepszej wydajności.", + "cache_size": "Rozmiar pamięci podręcznej", + "clear_cache": "Wyczyść pamięć podręczną", + "cache_days": "Odpowiedzi TMDB są przechowywane przez 7 dni w celu poprawy wydajności", + "choose_language": "Wybierz język", + "choose_language_desc": "Wybierz preferowany język dla treści z TMDb", + "popular": "Popularne", + "all_languages": "Wszystkie języki", + "search_results": "Wyniki wyszukiwania", + "no_languages_found": "Nie znaleziono języków dla „{{query}}”", + "clear_search": "Wyczyść wyszukiwanie", + "clear_cache_title": "Wyczyść pamięć podręczną TMDB", + "clear_cache_msg": "To spowoduje usunięcie wszystkich zapisanych danych TMDB ({{size}}). Może to tymczasowo spowolnić ładowanie do czasu odbudowania pamięci.", + "clear_cache_success": "Pamięć podręczna TMDB została wyczyszczona.", + "clear_cache_error": "Nie udało się wyczyścić pamięci podręcznej.", + "clear_api_key_title": "Usuń klucz API", + "clear_api_key_msg": "Czy na pewno chcesz usunąć własny klucz API i wrócić do domyślnego?", + "clear_api_key_success": "Klucz API został usunięty", + "clear_api_key_error": "Nie udało się usunąć klucza API", + "empty_api_key": "Klucz API nie może być pusty.", + "invalid_api_key": "Nieprawidłowy klucz API. Sprawdź i spróbuj ponownie.", + "save_error": "Wystąpił błąd podczas zapisywania. Spróbuj ponownie.", + "using_builtin_key": "Używasz teraz wbudowanego klucza API TMDb.", + "using_custom_key": "Używasz teraz własnego klucza API TMDb.", + "enter_custom_key": "Proszę wprowadzić i zapisać własny klucz API TMDb.", + "key_verified": "Klucz API został zweryfikowany i zapisany pomyślnie." + }, + "settings": { + "language": "Język", + "select_language": "Wybierz język", + "english": "Angielski", + "portuguese": "Portugalski", + "portuguese_br": "Portugalski (Brazylia)", + "portuguese_pt": "Portugalski (Portugalia)", + "german": "Niemiecki", + "arabic": "Arabski", + "spanish": "Hiszpański", + "french": "Francuski", + "italian": "Włoski", + "croatian": "Chorwacki", + "chinese": "Chiński (Uproszczony)", + "hindi": "Hindi", + "serbian": "Serbski", + "hebrew": "Hebrajski", + "bulgarian": "Bułgarski", + "polish": "Polski", + "account": "Konto", + "content_discovery": "Treści i odkrywanie", + "appearance": "Wygląd", + "integrations": "Integracje", + "playback": "Odtwarzanie", + "backup_restore": "Kopia zapasowa i przywracanie", + "updates": "Aktualizacje", + "about": "O aplikacji", + "developer": "Deweloper", + "cache": "Pamięć podręczna", + "title": "Ustawienia", + "settings_title": "Ustawienia", + "sign_in_sync": "Zaloguj się, aby synchronizować", + "add_catalogs_sources": "Dodatki, katalogi i źródła", + "player_trailers_downloads": "Odtwarzacz, zwiastuny, pobieranie", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Sprawdź aktualizacje", + "clear_mdblist_cache": "Wyczyść pamięć MDBList", + "cache_management": "ZARZĄDZANIE PAMIĘCIĄ PODRĘCZNĄ", + "downloads_counter": "pobrań i wciąż rośnie", + "made_with_love": "Stworzone z ❤️ przez Tapframe i przyjaciół", + "sections": { + "information": "INFORMACJE", + "account": "KONTO", + "theme": "MOTYW", + "layout": "UKŁAD", + "sources": "ŹRÓDŁA", + "catalogs": "KATALOGI", + "discovery": "ODKRYWANIE", + "metadata": "METADANE", + "ai_assistant": "ASYSTENT AI", + "video_player": "ODTWARZACZ WIDEO", + "audio_subtitles": "AUDIO I NAPISY", + "media": "MEDIA", + "notifications": "POWIADOMIENIA", + "testing": "TESTOWANIE", + "danger_zone": "STREFA NIEBEZPIECZEŃSTWA" + }, + "items": { + "legal": "Informacje prawne i zastrzeżenia", + "privacy_policy": "Polityka prywatności", + "report_issue": "Zgłoś problem", + "version": "Wersja", + "contributors": "Współtwórcy", + "view_contributors": "Zobacz wszystkich współtwórców", + "theme": "Motyw", + "episode_layout": "Układ odcinków", + "streams_backdrop": "Tło strumieni", + "streams_backdrop_desc": "Pokaż rozmyte tło podczas strumieniowania na urządzeniach mobilnych", + "addons": "Dodatki", + "installed": "zainstalowane", + "debrid_integration": "Integracja Debrid", + "debrid_desc": "Połącz Torbox", + "plugins": "Wtyczki", + "plugins_desc": "Zarządzaj wtyczkami i repozytoriami", + "catalogs": "Katalogi", + "active": "aktywne", + "home_screen": "Ekran główny", + "home_screen_desc": "Układ i zawartość", + "continue_watching": "Kontynuuj oglądanie", + "continue_watching_desc": "Zachowanie pamięci podręcznej i odtwarzania", + "show_discover": "Pokaż sekcję odkrywania", + "show_discover_desc": "Wyświetlaj odkryte treści w wyszukiwarce", + "mdblist": "MDBList", + "mdblist_connected": "Połączono", + "mdblist_desc": "Włącz, aby dodać oceny i recenzje", + "simkl": "Simkl", + "simkl_connected": "Połączono", + "simkl_desc": "Śledź to, co oglądasz", + "tmdb": "TMDB", + "tmdb_desc": "Dostawca metadanych i logo", + "openrouter": "OpenRouter API", + "openrouter_connected": "Połączono", + "openrouter_desc": "Dodaj klucz API, aby włączyć czat AI", + "video_player": "Odtwarzacz wideo", + "built_in": "Wbudowany", + "external": "Zewnętrzny", + "preferred_audio": "Preferowany język audio", + "preferred_subtitle": "Preferowany język napisów", + "subtitle_source": "Priorytet źródła napisów", + "auto_select_subs": "Automatyczny wybór napisów", + "auto_select_subs_desc": "Automatycznie wybieraj napisy pasujące do Twoich preferencji", + "show_trailers": "Pokaż zwiastuny", + "show_trailers_desc": "Wyświetlaj zwiastuny w sekcji głównej", + "enable_downloads": "Włącz pobieranie", + "enable_downloads_desc": "Pokaż kartę Pobrane i włącz zapisywanie strumieni", + "notifications": "Powiadomienia", + "notifications_desc": "Przypomnienia o odcinkach", + "developer_tools": "Narzędzia deweloperskie", + "developer_tools_desc": "Opcje testowania i debugowania", + "test_onboarding": "Testuj powitanie (Onboarding)", + "reset_onboarding": "Resetuj powitanie", + "test_announcement": "Testuj ogłoszenie", + "test_announcement_desc": "Pokaż nakładkę „Co nowego”", + "reset_campaigns": "Resetuj kampanie", + "reset_campaigns_desc": "Wyczyść wyświetlenia kampanii", + "clear_all_data": "Wyczyść wszystkie dane", + "clear_all_data_desc": "Zresetuj wszystkie ustawienia i dane w pamięci podręcznej" + }, + "options": { + "horizontal": "Poziomy", + "vertical": "Pionowy", + "internal_first": "Najpierw wewnętrzne", + "internal_first_desc": "Preferuj napisy wbudowane, następnie zewnętrzne", + "external_first": "Najpierw zewnętrzne", + "external_first_desc": "Preferuj napisy z dodatków, następnie wbudowane", + "any_available": "Dowolne dostępne", + "any_available_desc": "Użyj pierwszej dostępnej ścieżki napisów" + }, + "clear_data_desc": "To zresetuje wszystkie ustawienia i wyczyści pamięć podręczną. Czy na pewno?", + "app_updates": "Aktualizacje aplikacji", + "about_nuvio": "O Nuvio" + }, + "privacy": { + "title": "Prywatność i Dane", + "settings_desc": "Kontrola telemetrii i zbierania danych", + "info_title": "Twoja prywatność jest ważna", + "info_description": "Kontroluj, jakie dane są zbierane i udostępniane. Analityka jest domyślnie wyłączona, a raporty o błędach są domyślnie anonimowe.", + "analytics_enabled_title": "Analityka włączona", + "analytics_enabled_message": "Dane o użytkowaniu będą zbierane w celu ulepszania aplikacji. Możesz to wyłączyć w dowolnym momencie.", + "disable_error_reporting_title": "Wyłączyć raportowanie błędów?", + "disable_error_reporting_message": "Wyłączenie raportowania błędów oznacza, że nie będziemy powiadamiani o awariach lub problemach, których doświadczasz. Może to wpłynąć na naszą zdolność do naprawiania błędów.", + "enable_session_replay_title": "Włączyć powtórkę sesji?", + "enable_session_replay_message": "Powtórka sesji rejestruje ekran w momencie wystąpienia błędu, aby pomóc nam zrozumieć, co się stało. Może to zarejestrować treści widoczne na ekranie.", + "enable_pii_title": "Włączyć zbieranie danych PII?", + "enable_pii_message": "Pozwala to na zbieranie danych osobowych, takich jak adres IP i szczegóły urządzenia. Dane te pomagają diagnozować problemy, ale zwiększają ryzyko naruszenia prywatności.", + "disable_all_title": "Wyłączyć całą telemetrię?", + "disable_all_message": "Spowoduje to wyłączenie analityki, raportowania błędów i powtórek sesji. Nie będziemy otrzymywać żadnych danych o użytkowaniu ani awariach aplikacji.", + "disable_all_button": "Wyłącz wszystko", + "all_disabled_title": "Telemetria wyłączona", + "all_disabled_message": "Wszelkie zbieranie danych zostało wyłączone. Zmiany wejdą w życie po ponownym uruchomieniu aplikacji.", + "reset_title": "Przywróć zalecane", + "reset_message": "Ustawienia prywatności zostały zresetowane do zalecanych wartości domyślnych (raportowanie błędów włączone, analityka wyłączona).", + "section_analytics": "ANALITYKA", + "analytics_title": "Statystyki użytkowania", + "analytics_description": "Zbieraj anonimowe wzorce użytkowania i widoki ekranu", + "section_error_reporting": "RAPORTOWANIE BŁĘDÓW", + "error_reporting_title": "Raporty o awariach", + "error_reporting_description": "Wysyłaj anonimowe raporty o awariach, aby poprawić stabilność", + "session_replay_title": "Powtórka sesji", + "session_replay_description": "Rejestruj ekran w momencie wystąpienia błędu", + "pii_title": "Dołącz info o urządzeniu", + "pii_description": "Wysyłaj adres IP i szczegóły urządzenia wraz z raportami", + "section_quick_actions": "SZYBKIE AKCJE", + "disable_all": "Wyłącz całą telemetrię", + "disable_all_desc": "Wyłącz całkowicie zbieranie danych", + "reset_recommended": "Przywróć zalecane", + "reset_recommended_desc": "Ustawienia prywatności z raportowaniem błędów", + "section_learn_more": "DOWIEDZ SIĘ WIĘCEJ", + "privacy_policy": "Polityka prywatności", + "current_settings": "Podsumowanie obecnych ustawień", + "summary_analytics": "Analityka", + "summary_errors": "Raporty o błędach", + "summary_replay": "Powtórka sesji", + "summary_pii": "Info o urządzeniu", + "restart_note_detailed": "* Zmiany w analityce i raportowaniu błędów wchodzą w życie natychmiast. Powtórka sesji i ustawienia PII wymagają restartu aplikacji." + }, + "ai_settings": { + "title": "Asystent AI", + "info_title": "Czat oparty na AI", + "info_desc": "Zadawaj pytania dotyczące dowolnego filmu lub odcinka serialu, korzystając z zaawansowanej sztucznej inteligencji. Uzyskaj wgląd w fabułę, postacie, motywy, ciekawostki i wiele więcej – wszystko w oparciu o kompleksowe dane TMDB.", + "feature_1": "Analiza i kontekst specyficzny dla odcinka", + "feature_2": "Wyjaśnienia fabuły i wgląd w postacie", + "feature_3": "Ciekawostki i fakty zza kulis", + "feature_4": "Twój własny, darmowy klucz API OpenRouter", + "api_key_section": "KLUCZ API OPENROUTER", + "api_key_label": "Klucz API", + "api_key_desc": "Wprowadź swój klucz API OpenRouter, aby włączyć funkcje czatu AI", + "save_api_key": "Zapisz klucz API", + "saving": "Zapisywanie...", + "update": "Aktualizuj", + "remove": "Usuń", + "get_free_key": "Pobierz darmowy klucz API z OpenRouter", + "enable_chat": "Włącz czat AI", + "enable_chat_desc": "Gdy ta opcja jest włączona, na stronach treści pojawi się przycisk „Zapytaj AI”.", + "chat_enabled": "Czat AI włączony", + "chat_enabled_desc": "Możesz teraz zadawać pytania dotyczące filmów i seriali. Szukaj przycisku „Zapytaj AI” na stronach treści!", + "how_it_works": "Jak to działa", + "how_it_works_desc": "• OpenRouter zapewnia dostęp do wielu modeli AI\n• Twój klucz API pozostaje prywatny i bezpieczny\n• Darmowy poziom zawiera hojne limity użytkowania\n• Czatuj z uwzględnieniem kontekstu konkretnych odcinków/filmów\n• Otrzymuj szczegółowe analizy i wyjaśnienia", + "error_invalid_key": "Proszę wprowadzić poprawny klucz API", + "error_key_format": "Klucze API OpenRouter powinny zaczynać się od „sk-or-”", + "success_saved": "Klucz API OpenRouter zapisany pomyślnie!", + "error_save": "Nie udało się zapisać klucza API", + "confirm_remove_title": "Usuń klucz API", + "confirm_remove_msg": "Czy na pewno chcesz usunąć swój klucz API OpenRouter? Spowoduje to wyłączenie funkcji czatu AI.", + "success_removed": "Klucz API został usunięty", + "error_remove": "Nie udało się usunąć klucza API" + }, + "catalog_settings": { + "title": "Katalogi", + "layout_phone": "UKŁAD EKRANU KATALOGU (TELEFON)", + "posters_per_row": "Plakaty w rzędzie", + "auto": "Auto", + "show_titles": "Pokaż tytuły na plakatach", + "show_titles_desc": "Wyświetlaj tekst tytułu pod każdym plakatem", + "phone_only_hint": "Dotyczy tylko telefonów. Tablety zachowują układ adaptacyjny.", + "catalogs_group": "Katalogi", + "enabled_count": "{{enabled}} z {{total}} włączonych", + "rename_hint": "Przytrzymaj dłużej katalog, aby zmienić jego nazwę", + "rename_modal_title": "Zmień nazwę katalogu", + "rename_placeholder": "Wprowadź nową nazwę katalogu", + "error_save_name": "Nie udało się zapisać własnej nazwy." + }, + "continue_watching_settings": { + "title": "Kontynuuj oglądanie", + "playback_behavior": "ZACHOWANIE ODTWARZANIA", + "use_cached": "Używaj zapisanych strumieni", + "use_cached_desc": "Gdy ta opcja jest włączona, kliknięcie pozycji w „Kontynuuj oglądanie” otworzy odtwarzacz bezpośrednio przy użyciu wcześniej odtworzonych strumieni. Gdy wyłączona, otwiera ekran treści.", + "open_metadata": "Otwórz ekran szczegółów", + "open_metadata_desc": "Gdy zapisane strumienie są wyłączone, otwórz ekran metadanych zamiast ekranu wyboru strumieni. Pozwala to zobaczyć szczegóły i ręcznie wybrać źródło.", + "card_appearance": "WYGLĄD KARTY", + "card_style": "Styl karty", + "card_style_desc": "Wybierz, jak pozycje „Kontynuuj oglądanie” mają wyglądać na ekranie głównym", + "wide": "Szeroka", + "poster": "Plakat", + "cache_settings": "USTAWIENIA PAMIĘCI PODRĘCZNEJ", + "cache_duration": "Czas przechowywania strumienia", + "cache_duration_desc": "Jak długo przechowywać linki do strumieni, zanim wygasną", + "important_note": "Ważna uwaga", + "important_note_text": "Nie wszystkie linki do strumieni pozostają aktywne przez cały czas przechowywania w pamięci. Dłuższy czas może skutkować wygaśnięciem linków. Jeśli zapisany link zawiedzie, aplikacja pobierze nowe źródła.", + "how_it_works": "Jak to działa", + "how_it_works_cached": "• Strumienie są zapisywane na wybrany czas po odtworzeniu\n• Zapisane strumienie są weryfikowane przed użyciem\n• Jeśli pamięć wygasła, następuje powrót do ekranu treści\n• „Używaj zapisanych strumieni” kontroluje nawigację bezpośrednio do odtwarzacza\n• „Otwórz ekran szczegółów” pojawia się tylko, gdy zapisane strumienie są wyłączone", + "how_it_works_uncached": "• Gdy zapisane strumienie są wyłączone, kliknięcie pozycji otwiera ekrany treści\n• Opcja „Otwórz ekran szczegółów” kontroluje, który ekran otworzyć\n• Ekran metadanych pokazuje szczegóły i pozwala na ręczny wybór\n• Ekran strumieni pokazuje dostępne źródła do natychmiastowego odtworzenia", + "changes_saved": "Zmiany zapisane", + "min": "min", + "hour": "godz.", + "hours": "godz." + }, + "contributors": { + "title": "Współtwórcy", + "special_mentions": "Specjalne wyróżnienia", + "tab_contributors": "Współtwórcy", + "tab_special": "Specjalne", + "tab_donors": "Darczyńcy", + "manager_role": "Community Manager", + "manager_desc": "Zarządza społecznościami Discord i Reddit dla Nuvio", + "sponsor_role": "Sponsor serwera", + "sponsor_desc": "Sponsoruje infrastrukturę serwerową dla Nuvio", + "mod_role": "Moderator Discord", + "mod_desc": "Pomaga moderować społeczność Nuvio na Discordzie", + "loading": "Ładowanie...", + "discord_user": "Użytkownik Discord", + "contributions": "wkład", + "gratitude_title": "Jesteśmy wdzięczni za każdy wkład", + "gratitude_desc": "Każda linijka kodu, zgłoszenie błędu i sugestia pomaga ulepszać Nuvio dla wszystkich", + "special_thanks_title": "Specjalne podziękowania", + "special_thanks_desc": "Te niesamowite osoby pomagają utrzymać społeczność Nuvio i serwery online", + "donors_desc": "Dziękujemy za wiarę w to, co budujemy. Wasze wsparcie sprawia, że Nuvio pozostaje darmowe i stale się rozwija.", + "latest_donations": "Najnowsze", + "leaderboard": "Ranking", + "loading_donors": "Ładowanie darczyńców...", + "no_donors": "Brak darczyńców", + "error_rate_limit": "Przekroczono limit API GitHub. Spróbuj ponownie później lub odśwież.", + "error_failed": "Nie udało się załadować współtwórców. Sprawdź połączenie internetowe.", + "retry": "Spróbuj ponownie", + "no_contributors": "Nie znaleziono współtwórców", + "loading_contributors": "Ładowanie współtwórców..." + }, + "debrid": { + "title": "Integracja Debrid", + "description_torbox": "Odblokuj strumienie w jakości 4K i błyskawiczne prędkości dzięki integracji z Torbox. Wprowadź swój klucz API poniżej, aby natychmiast ulepszyć swoje wrażenia.", + "description_torrentio": "Skonfiguruj Torrentio, aby otrzymywać strumienie torrent dla filmów i seriali. Usługa debrid jest wymagana do odtwarzania treści.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Połączono", + "status_disconnected": "Rozłączono", + "enable_addon": "Włącz dodatek", + "disconnect_button": "Rozłącz i usuń", + "disconnect_loading": "Rozłączanie...", + "account_info": "Informacje o koncie", + "plan": "Plan", + "plan_free": "Darmowy", + "plan_essential": "Essential ($3/mc)", + "plan_pro": "Pro ($10/mc)", + "plan_standard": "Standard ($5/mc)", + "plan_unknown": "Nieznany", + "expires": "Wygasa", + "downloaded": "Pobrano", + "status_active": "Aktywny", + "connected_title": "✓ Połączono z TorBox", + "connected_desc": "Twój dodatek TorBox jest aktywny i dostarcza strumienie premium.", + "configure_title": "Konfiguruj dodatek", + "configure_desc": "Spersonalizuj swoje wrażenia. Sortuj według jakości, filtruj rozmiary plików i zarządzaj innymi ustawieniami.", + "open_settings": "Otwórz ustawienia", + "what_is_debrid": "Czym jest usługa Debrid?", + "enter_api_key": "Wprowadź swój klucz API", + "connect_button": "Połącz i zainstaluj", + "connecting": "Łączenie...", + "unlock_speeds_title": "Odblokuj prędkość Premium", + "unlock_speeds_desc": "Wykup subskrypcję Torbox, aby uzyskać dostęp do zapisanych strumieni wysokiej jakości bez buforowania.", + "get_subscription": "Kup subskrypcję", + "powered_by": "Obsługiwane przez", + "disclaimer_torbox": "Nuvio nie jest w żaden sposób powiązane z Torbox.", + "disclaimer_torrentio": "Nuvio nie jest w żaden sposób powiązane z Torrentio.", + "installed_badge": "✓ ZAINSTALOWANO", + "promo_title": "⚡ Potrzebujesz usługi Debrid?", + "promo_desc": "Wybierz TorBox dla błyskawicznego strumieniowania 4K bez buforowania. Torrenty premium i natychmiastowe pobieranie.", + "promo_button": "Kup subskrypcję TorBox", + "service_label": "Usługa Debrid *", + "api_key_label": "Klucz API *", + "sorting_label": "Sortowanie", + "exclude_qualities": "Wyklucz jakości", + "priority_languages": "Języki priorytetowe", + "max_results": "Maks. wyników", + "additional_options": "Opcje dodatkowe", + "no_download_links": "Nie pokazuj linków do pobierania", + "no_debrid_catalog": "Nie pokazuj katalogu debrid", + "install_button": "Instaluj Torrentio", + "installing": "Instalowanie...", + "update_button": "Aktualizuj konfigurację", + "updating": "Aktualizacja...", + "remove_button": "Usuń Torrentio", + "error_api_required": "Klucz API wymagany", + "error_api_required_desc": "Proszę wprowadzić klucz API usługi debrid, aby zainstalować Torrentio.", + "success_installed": "Dodatek Torrentio zainstalowany pomyślnie!", + "success_removed": "Dodatek Torrentio został usunięty", + "alert_disconnect_title": "Rozłącz Torbox", + "alert_disconnect_msg": "Czy na pewno chcesz rozłączyć Torbox? Spowoduje to usunięcie dodatku i wyczyszczenie klucza API." + }, + "home_screen": { + "title": "Ustawienia ekranu głównego", + "changes_applied": "Zmiany zastosowane", + "display_options": "OPCJE WYŚWIETLANIA", + "show_hero": "Pokaż sekcję Hero", + "show_hero_desc": "Wyróżnione treści na górze", + "show_this_week": "Pokaż sekcję „W tym tygodniu”", + "show_this_week_desc": "Nowe odcinki z obecnego tygodnia", + "select_catalogs": "Wybierz katalogi", + "all_catalogs": "Wszystkie katalogi", + "selected": "wybrane", + "hero_layout": "Układ sekcji Hero", + "layout_legacy": "Klasyczny", + "layout_carousel": "Karuzela", + "layout_appletv": "Apple TV", + "layout_desc": "Banner na całą szerokość, przesuwane karty lub styl Apple TV", + "featured_source": "Źródło wyróżnionych", + "using_catalogs": "Używanie katalogów", + "manage_selected_catalogs": "Zarządzaj wybranymi katalogami", + "dynamic_bg": "Dynamiczne tło Hero", + "dynamic_bg_desc": "Rozmyty banner za karuzelą", + "performance_note": "Może wpływać na wydajność na słabszych urządzeniach.", + "posters": "Plakaty", + "show_titles": "Pokaż tytuły", + "poster_size": "Rozmiar plakatów", + "poster_corners": "Narożniki plakatów", + "size_small": "Małe", + "size_medium": "Średnie", + "size_large": "Duże", + "corners_square": "Kwadratowe", + "corners_rounded": "Zaokrąglone", + "corners_pill": "Pastylka", + "about_these_settings": "O TYCH USTAWIENIACH", + "about_desc": "Te ustawienia kontrolują sposób wyświetlania treści na ekranie głównym. Zmiany są stosowane natychmiast.", + "hero_catalogs": { + "title": "Katalogi sekcji Hero", + "select_all": "Zaznacz wszystko", + "clear_all": "Wyczyść wszystko", + "info": "Wybierz, które katalogi mają być wyświetlane w sekcji Hero. Jeśli żadne nie zostaną wybrane, użyte zostaną wszystkie. Pamiętaj o zapisaniu zmian.", + "settings_saved": "Ustawienia zapisane", + "error_load": "Nie udało się załadować katalogów", + "movies": "Filmy", + "tv_shows": "Seriale" + } + }, + "calendar": { + "title": "Kalendarz", + "loading": "Ładowanie kalendarza...", + "no_scheduled_episodes": "Brak zaplanowanych odcinków", + "check_back_later": "Sprawdź ponownie później", + "showing_episodes_for": "Odcinki na dzień: {{date}}", + "show_all_episodes": "Pokaż wszystkie odcinki", + "no_episodes_for": "Brak odcinków na dzień {{date}}", + "no_upcoming_found": "Nie znaleziono nadchodzących odcinków", + "add_series_desc": "Dodaj seriale do biblioteki, aby zobaczyć ich nadchodzące odcinki tutaj" + }, + "mdblist": { + "title": "Źródła ocen", + "status_disabled": "MDBList wyłączony", + "status_active": "Klucz API aktywny", + "status_required": "Klucz API wymagany", + "status_disabled_desc": "Funkcjonalność MDBList jest obecnie wyłączona.", + "status_active_desc": "Oceny z MDBList są włączone.", + "status_required_desc": "Dodaj swój klucz poniżej, aby włączyć oceny.", + "enable_toggle": "Włącz MDBList", + "enable_toggle_desc": "Włącz/wyłącz wszystkie funkcje MDBList", + "api_section": "Klucz API", + "placeholder": "Wklej swój klucz API MDBList", + "save": "Zapisz", + "clear": "Wyczyść klucz", + "rating_providers": "Dostawcy ocen", + "rating_providers_desc": "Wybierz, które oceny mają być wyświetlane w aplikacji", + "how_to": "Jak uzyskać klucz API", + "step_1": "Zaloguj się na", + "step_1_link": "stronie MDBList", + "step_2": "Przejdź do sekcji", + "step_2_settings": "Ustawienia", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Wygeneruj nowy klucz i skopiuj go.", + "go_to_website": "Przejdź do MDBList", + "alert_clear_title": "Usuń klucz API", + "alert_clear_msg": "Czy na pewno chcesz usunąć zapisany klucz API?", + "success_saved": "Klucz API zapisany pomyślnie.", + "error_empty": "Klucz API nie może być pusty.", + "error_save": "Wystąpił błąd podczas zapisywania. Spróbuj ponownie.", + "api_key_empty_error": "Klucz API nie może być pusty.", + "success_cleared": "Klucz API został usunięty", + "error_clear": "Nie udało się usunąć klucza API" + }, + "notification": { + "title": "Ustawienia powiadomień", + "section_general": "Ogólne", + "enable_notifications": "Włącz powiadomienia", + "section_types": "Typy powiadomień", + "new_episodes": "Nowe odcinki", + "upcoming_shows": "Nadchodzące programy", + "reminders": "Przypomnienia", + "section_timing": "Czas powiadomienia", + "timing_desc": "Kiedy powiadomić Cię przed emisją odcinka?", + "hours_1": "1 godzina", + "hours_suffix": "godz.", + "section_status": "Status powiadomień", + "stats_upcoming": "Nadchodzące", + "stats_this_week": "W tym tygodniu", + "stats_total": "Łącznie", + "sync_button": "Synchronizuj Bibliotekę i Trakt", + "syncing": "Synchronizacja...", + "sync_desc": "Automatycznie synchronizuje powiadomienia dla wszystkich seriali w bibliotece oraz na liście do obejrzenia/kolekcji Trakt.", + "section_advanced": "Zaawansowane", + "reset_button": "Zresetuj wszystkie powiadomienia", + "test_button": "Testuj powiadomienie (5 sek)", + "test_notification_in": "Powiadomienie za {{seconds}}s...", + "test_notification_text": "Powiadomienie pojawi się za {{seconds}} sekund", + "alert_reset_title": "Resetuj powiadomienia", + "alert_reset_msg": "To anuluje wszystkie zaplanowane powiadomienia, ale nie usunie niczego z biblioteki. Kontynuować?", + "alert_reset_success": "Wszystkie powiadomienia zostały zresetowane", + "alert_sync_complete": "Synchronizacja zakończona", + "alert_sync_msg": "Pomyślnie zsynchronizowano powiadomienia dla pozycji z biblioteki i Trakt.\n\nZaplanowano: {{upcoming}} nadchodzących odcinków\nW tym tygodniu: {{thisWeek}} odcinków", + "alert_test_scheduled": "Testowe powiadomienie zaplanowane" + }, + "backup": { + "title": "Kopia zapasowa i przywracanie", + "options_title": "Opcje kopii zapasowej", + "options_desc": "Wybierz, co ma zostać uwzględnione w kopii", + "section_core": "Dane podstawowe", + "section_addons": "Dodatki i integracje", + "section_settings": "Ustawienia i preferencje", + "library_label": "Biblioteka", + "library_desc": "Twoje zapisane filmy i seriale", + "watch_progress_label": "Postęp oglądania", + "watch_progress_desc": "Pozycje kontynuowania oglądania", + "addons_label": "Dodatki", + "addons_desc": "Zainstalowane dodatki Stremio", + "plugins_label": "Wtyczki", + "plugins_desc": "Własne konfiguracje scraperów", + "trakt_label": "Integracja Trakt", + "trakt_desc": "Dane synchronizacji i tokeny autoryzacji", + "app_settings_label": "Ustawienia aplikacji", + "app_settings_desc": "Motyw, preferencje i konfiguracje", + "user_prefs_label": "Preferencje użytkownika", + "user_prefs_desc": "Kolejność dodatków i ustawienia UI", + "catalog_settings_label": "Ustawienia katalogu", + "catalog_settings_desc": "Filtry katalogów i preferencje", + "api_keys_label": "Klucze API", + "api_keys_desc": "Klucze MDBList i OpenRouter", + "action_create": "Utwórz kopię zapasową", + "action_restore": "Przywróć z kopii", + "section_info": "O kopiach zapasowych", + "info_text": "• Dostosuj zakres kopii za pomocą przełączników powyżej\n• Pliki kopii są przechowywane lokalnie na Twoim urządzeniu\n• Udostępnij kopię, aby przenieść dane między urządzeniami\n• Przywracanie nadpisze Twoje obecne dane", + "alert_create_title": "Utwórz kopię zapasową", + "alert_no_content": "Nie wybrano żadnej treści do kopii zapasowej.\n\nProszę włączyć co najmniej jedną opcję powyżej.", + "alert_backup_created_title": "Kopia utworzona", + "alert_backup_created_msg": "Twoja kopia zapasowa została utworzona i jest gotowa do udostępnienia.", + "alert_backup_failed_title": "Kopia nieudana", + "alert_restore_confirm_title": "Potwierdź przywracanie", + "alert_restore_confirm_msg": "To przywróci dane z kopii utworzonej w dniu {{date}}.\n\nTa akcja nadpisze obecne dane. Czy na pewno chcesz kontynuować?", + "alert_restore_complete_title": "Przywracanie zakończone", + "alert_restore_complete_msg": "Dane zostały pomyślnie przywrócone. Uruchom ponownie aplikację, aby zobaczyć zmiany.", + "alert_restore_failed_title": "Przywracanie nieudane", + "restart_app": "Restartuj aplikację", + "alert_restart_failed_title": "Restart nieudany", + "alert_restart_failed_msg": "Nie udało się zrestartować aplikacji. Proszę zamknąć ją ręcznie i otworzyć ponownie." + }, + "updates": { + "title": "App Updates", + "status_checking": "Checking for updates...", + "status_available": "Update available!", + "status_downloading": "Downloading update...", + "status_installing": "Installing update...", + "status_success": "Update installed successfully!", + "status_error": "Update failed", + "status_ready": "Ready to check for updates", + "action_check": "Check for Updates", + "action_install": "Install Update", + "release_notes": "Release notes:", + "version": "Version:", + "last_checked": "Last checked:", + "current_version": "Current version:", + "current_release_notes": "Current release notes:", + "github_release": "GITHUB RELEASE", + "current": "Current:", + "latest": "Latest:", + "notes": "Notes:", + "view_release": "View Release", + "notification_settings": "NOTIFICATION SETTINGS", + "ota_alerts_label": "OTA Update Alerts", + "ota_alerts_desc": "Show notifications for over-the-air updates", + "major_alerts_label": "Major Update Alerts", + "major_alerts_desc": "Show notifications for new app versions on GitHub", + "alert_disable_ota_title": "Disable OTA Update Alerts?", + "alert_disable_ota_msg": "You will no longer receive automatic notifications for OTA updates.\n\n⚠️ Warning: Staying on the latest version is important for:\n• Bug fixes and stability improvements\n• New features and enhancements\n• Providing accurate feedback and crash reports\n\nYou can still manually check for updates in this screen.", + "alert_disable_major_title": "Disable Major Update Alerts?", + "alert_disable_major_msg": "You will no longer receive notifications for major app updates that require reinstallation.\n\n⚠️ Warning: Major updates often include:\n• Critical security patches\n• Breaking changes that require app reinstall\n• Important compatibility fixes\n\nYou can still check for updates manually.", + "warning_note": "Keeping alerts enabled ensures you receive bug fixes and can provide accurate crash reports.", + "disable": "Disable", + "alert_no_update_to_install": "No update available to install", + "alert_install_failed": "Failed to install update", + "alert_no_update_title": "No Update", + "alert_update_applied_msg": "Update will be applied on next app restart" + }, + "player": { + "title": "Video Player", + "section_selection": "PLAYER SELECTION", + "internal_title": "Built-in Player", + "internal_desc": "Use the app's default video player", + "vlc_title": "VLC", + "vlc_desc": "Open streams in VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Open streams in Infuse player", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Open streams in OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Open streams in VidHub player", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Open streams in Infuse player LiveContainer", + "external_title": "External Player", + "external_desc": "Open streams in your preferred video player", + "section_playback": "PLAYBACK OPTIONS", + "skip_intro_settings_title": "Skip Intro", + "powered_by_introdb": "Powered by IntroDB", + "autoplay_title": "Auto-play First Stream", + "autoplay_desc": "Automatically start the first stream shown in the list.", + "resume_title": "Always Resume", + "resume_desc": "Skip the resume prompt and automatically continue where you left off (if less than 85% watched).", + "engine_title": "Video Player Engine", + "engine_desc": "Auto uses ExoPlayer with MPV fallback. Some formats like Dolby Vision and HDR may not be supported by MPV, so Auto is recommended for best compatibility.", + "decoder_title": "Decoder Mode", + "decoder_desc": "How video is decoded. Auto is recommended for best balance.", + "gpu_title": "GPU Rendering", + "gpu_desc": "GPU-Next offers better HDR and color management.", + "external_downloads_title": "External Player for Downloads", + "external_downloads_desc": "Play downloaded content in your preferred external player.", + "restart_required": "Restart Required", + "restart_msg_decoder": "Please restart the app for the decoder change to take effect.", + "restart_msg_gpu": "Please restart the app for the GPU mode change to take effect.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV fallback", + "option_mpv": "MPV", + "option_mpv_desc": "MPV only", + "option_auto_desc_decoder": "Best balance", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Full HW", + "option_gpu_desc": "Standard", + "option_gpu_next_desc": "Advanced" + }, + "plugins": { + "title": "Plugins", + "enable_title": "Enable Plugins", + "enable_desc": "Enable the plugin engine to resolve external media sources", + "repo_config_title": "Repository Configuration", + "repo_config_desc": "Manage external plugin repositories. Toggle each repository on or off below.", + "your_repos": "Repositories", + "your_repos_desc": "Configure external sources for plugins.", + "add_repo_button": "Add Repository", + "refresh": "Refresh", + "remove": "Remove", + "enabled": "Enabled", + "disabled": "Disabled", + "updating": "Updating...", + "success": "Success", + "error": "Error", + "alert_repo_added": "Repository added and plugins loaded successfully", + "alert_repo_saved": "Repository URL saved successfully", + "alert_repo_refreshed": "Repository refreshed successfully", + "alert_invalid_url": "Invalid URL Format", + "alert_plugins_cleared": "All plugins have been removed", + "alert_cache_cleared": "Repository cache cleared successfully", + "unknown": "Unknown", + "active": "Active", + "available": "Available", + "platform_disabled": "Platform Disabled", + "limited": "Limited", + "clear_all": "Clear All Plugins", + "clear_all_desc": "Are you sure you want to remove all installed plugins? This action cannot be undone.", + "clear_cache": "Clear Repository Cache", + "clear_cache_desc": "This will remove the saved repository URL and clear all cached plugin data. You will need to re-enter your repository URL.", + "add_new_repo": "Add New Repository", + "available_plugins": "Available Plugins ({{count}})", + "placeholder": "Search plugins...", + "all": "All", + "filter_all": "All Types", + "filter_movies": "Movies", + "filter_tv": "TV Shows", + "enable_all": "Enable All", + "disable_all": "Disable All", + "no_plugins_found": "No Plugins Found", + "no_plugins_available": "No Plugins Available", + "no_match_desc": "No plugins match \"{{query}}\". Try a different search term.", + "configure_repo_desc": "Configure a repository above to view available plugins.", + "clear_search": "Clear Search", + "no_external_player": "No external player", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "Paste your ShowBox UI token", + "save": "Save", + "clear": "Clear", + "additional_settings": "Additional Settings", + "enable_url_validation": "Enable URL Validation", + "url_validation_desc": "Validate media URLs before returning them (may slow down results but improves reliability)", + "group_streams": "Group Plugin Sources", + "group_streams_desc": "When enabled, sources are grouped by repository. When disabled, each plugin shows as a separate provider.", + "sort_quality": "Sort by Quality First", + "sort_quality_desc": "When enabled, sources are sorted by quality first. Only available when grouping is enabled.", + "show_logos": "Show Plugin Logos", + "show_logos_desc": "Display plugin logos next to media links on the sources screen.", + "quality_filtering": "Quality Filtering", + "quality_filtering_desc": "Exclude specific video resolutions from search results. Tap on a quality to exclude it from plugin results.", + "excluded_qualities": "Excluded qualities:", + "language_filtering": "Language Filtering", + "language_filtering_desc": "Exclude specific languages from search results. Tap on a language to exclude it from plugin results.", + "note": "Note:", + "language_filtering_note": "This filter only applies to providers that include language information. It does not affect other providers.", + "excluded_languages": "Excluded languages:", + "about_title": "About Plugins", + "about_desc_1": "Plugins are modular components that adapt content from various external protocols. They run locally on your device and can be installed from trusted repositories.", + "about_desc_2": "Plugins marked as \"Limited\" may require specific external configurations.", + "help_title": "Plugin Setup", + "help_step_1": "1. **Enable Plugins** - Turn on the main switch", + "help_step_2": "2. **Add Repository** - Add a valid repository URL", + "help_step_3": "3. **Refresh Repository** - Fetch available plugins", + "help_step_4": "4. **Activate** - Enable the plugins you wish to use", + "got_it": "Got it!", + "repo_format_hint": "Format: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "Cancel", + "add": "Add" + }, + "theme": { + "title": "App Themes", + "select_theme": "SELECT THEME", + "create_custom": "Create Custom Theme", + "options": "OPTIONS", + "use_dominant_color": "Use Dominant Color from Artwork", + "categories": { + "all": "All Themes", + "dark": "Dark Themes", + "colorful": "Colorful", + "custom": "My Themes" + }, + "editor": { + "theme_name_placeholder": "Theme name", + "save": "Save", + "primary": "Primary", + "secondary": "Secondary", + "background": "Background", + "invalid_name_title": "Invalid Name", + "invalid_name_msg": "Please enter a valid theme name" + }, + "alerts": { + "delete_title": "Delete Theme", + "delete_msg": "Are you sure you want to delete \"{{name}}\"?", + "ok": "OK", + "delete": "Delete", + "cancel": "Cancel", + "back": "Settings" + } + }, + "legal": { + "title": "Legal & Disclaimer", + "intro_title": "Nature of the Application", + "intro_text": "Nuvio is a media player and metadata management application. It acts solely as a client-side interface for browsing publicly available metadata (movies, TV shows, etc.) and playing media files provided by the user or third-party extensions. Nuvio itself does not host, store, distribute, or index any media content.", + "extensions_title": "Third-Party Plugins", + "extensions_text": "Nuvio uses an extensible architecture that allows users to install third-party plugins. These plugins are developed and maintained by independent developers not affiliated with Nuvio. We have no control over, and assume no responsibility for, the content, legality, or functionality of any third-party plugin.", + "user_resp_title": "User Responsibility", + "user_resp_text": "Users are solely responsible for the plugins they install and the content they access. By using this application, you agree to ensure that you have the legal right to access any content you view using Nuvio. The developers of Nuvio do not endorse or encourage copyright infringement.", + "dmca_title": "Copyright & DMCA", + "dmca_text": "We respect the intellectual property rights of others. Since Nuvio does not host any content, we cannot remove content from the internet. However, if you believe that the application interface itself infringes on your rights, please contact us.", + "warranty_title": "No Warranty", + "warranty_text": "This software is provided \"as is\", without warranty of any kind, express or implied. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability arising from the use of this software." + }, + "plugin_tester": { + "title": "Plugin Tester", + "subtitle": "Run scrapers and inspect logs in real-time", + "tabs": { + "individual": "Individual", + "repo": "Repo Tester", + "code": "Code", + "logs": "Logs", + "results": "Results" + }, + "common": { + "error": "Error", + "success": "Success", + "movie": "Movie", + "tv": "TV", + "tmdb_id": "TMDB ID", + "season": "Season", + "episode": "Episode", + "running": "Running…", + "run_test": "Run Test", + "play": "Play", + "done": "Done", + "test": "Test", + "testing": "Testing…" + }, + "individual": { + "load_from_url": "Load from URL", + "load_from_url_desc": "Paste a raw GitHub URL or local IP and tap download.", + "enter_url_error": "Please enter a URL", + "code_loaded": "Code loaded from URL", + "fetch_error": "Failed to fetch: {{message}}", + "no_code_error": "No code to run", + "plugin_code": "Plugin Code", + "focus_editor": "Focus code editor", + "code_placeholder": "// Paste plugin code here...", + "test_parameters": "Test Parameters", + "no_logs": "No logs yet. Run a test to see output.", + "no_streams": "No streams found yet.", + "streams_found": "{{count}} Stream Found", + "streams_found_plural": "{{count}} Streams Found", + "tap_play_hint": "Tap Play to test a stream in the native player.", + "unnamed_stream": "Unnamed Stream", + "quality": "Quality: {{quality}}", + "size": "Size: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Headers: {{count}} custom header(s)", + "find_placeholder": "Find in code…", + "edit_code_title": "Edit Code", + "no_url_stream_error": "No URL found for this stream" + }, + "repo": { + "title": "Repo Tester", + "description": "Fetch a repository (local URL or GitHub raw) and test each provider.", + "enter_repo_url_error": "Please enter a repository URL", + "invalid_url_title": "Invalid URL", + "invalid_url_msg": "Use a GitHub raw URL or a local http(s) URL.\n\nExample:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "Could not build a manifest URL from the input", + "manifest_fetch_error": "Failed to fetch manifest", + "repo_manifest_fetch_error": "Failed to fetch repository manifest", + "missing_filename": "Missing filename in manifest", + "scraper_build_error": "Could not build a scraper URL", + "download_scraper_error": "Failed to download scraper", + "test_failed": "Test failed", + "test_parameters": "Repo Test Parameters", + "test_parameters_desc": "These parameters are used only for Repo Tester.", + "using_info": "Using: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Using: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Providers", + "repository_default": "Repository", + "providers_count": "{{count}} providers", + "fetch_hint": "Fetch a repo to list providers.", + "test_all": "Test All", + "status_running": "RUNNING", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "FAILED", + "status_idle": "IDLE", + "tried_url": "Tried: {{url}}", + "provider_logs": "Provider Logs", + "no_logs_captured": "No logs captured." + } + } +} + From eccb7b76d661b965bd1a14c8f1a3911a0010ba54 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:55:20 +0100 Subject: [PATCH 042/285] Add Polish language support to resources --- src/i18n/resources.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 82aa6691..8dec2f8c 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -13,6 +13,7 @@ import zhCN from './locales/zh-CN.json'; import sr from './locales/sr.json'; import he from './locales/he.json'; import bg from './locales/bg.json'; +import pl from './locales/pl.json'; export const resources = { en: { translation: en }, @@ -28,5 +29,6 @@ export const resources = { hi: { translation: hi }, sr: { translation: sr }, he: { translation: he }, - bg: { translation: bg }, + bg: { translation: bg }, + pl: { translation: pl }, }; From a1c16b9bea051a0cdad8a313b78032009afe0803 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:56:20 +0100 Subject: [PATCH 043/285] Add Polish language support to locales --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index bb5064d3..29471b73 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -13,4 +13,5 @@ export const LOCALES = [ { code: 'sr', key: 'serbian' } { code: 'he', key: 'hebrew' } { code: 'bg', key: 'bulgarian' } + { code: 'pl', key: 'polish' } ]; From c17b09e53d05e94443ba0f08391ceddda670f369 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 18:59:01 +0100 Subject: [PATCH 044/285] Add Polish language translation to ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 4637f1e2..c6597850 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -638,6 +638,7 @@ "serbian": "الصربية", "hebrew": "العبرية", "bulgarian": "بلغاري", + "polish": "بولندي", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From e274989d0b00d54d85f459d77f37df2fb505bfd4 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:01:23 +0100 Subject: [PATCH 045/285] Added Polish lang --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index eb2ce601..8931e805 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -643,6 +643,7 @@ "serbian": "Сръбски", "hebrew": "Иврит", "bulgarian": "български", + "polish": "Полски", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1418,3 +1419,4 @@ } } } + From 2720d2231cf9dfe358d496a11b6d65ef26e729d5 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:02:13 +0100 Subject: [PATCH 046/285] Add Polish language support to de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 8cad6659..44118404 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -638,6 +638,7 @@ "serbian": "Serbisch", "hebrew": "Hebräisch", "bulgarian": "Bulgarisch", + "polish": "Polnisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From 339e3e2ad44eaa3b2bae6b135f4651e7e8b901ee Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:02:51 +0100 Subject: [PATCH 047/285] Add Polish language support to locales --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 0591a00a..70e2e576 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -643,6 +643,7 @@ "serbian": "Serbian", "hebrew": "Hebrew", "bulgarian": "Bulgarian", + "polish": "Polish", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 1bad730545a042fba412ab4ce7fb069cf438e05b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:04:08 +0100 Subject: [PATCH 048/285] Add Polish language support to locales --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 00a65dbb..31a84da2 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -638,6 +638,7 @@ "serbian": "Serbio", "hebrew": "Hebreo", "bulgarian": "Búlgaro", + "polish": "Polaco", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 72c3d301a08ff8600c10f6d5b7105abde9c65723 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:05:24 +0100 Subject: [PATCH 049/285] Add Polish language translation to fr.json --- src/i18n/locales/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 86b60c87..6e4b5151 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -637,7 +637,8 @@ "hindi": "Hindi", "serbian": "Serbe", "hebrew": "Hébreu", - "bulgarian": "Bulgare" + "bulgarian": "Bulgare", + "polish": "Polonais", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From 209103d6c3c372754c13c88ab208f72e280ff298 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:07:25 +0100 Subject: [PATCH 050/285] Added Polish lang --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 7d41fa0d..4c1b5202 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -643,6 +643,7 @@ "serbian": "סרבית", "hebrew": "עברית", "bulgarian": "בולגרית", + "polish": "פולנית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1419,3 +1420,4 @@ } } + From 3098e1ab13c3e00cb4e364a9db1c5932e21844d7 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:08:21 +0100 Subject: [PATCH 051/285] Add Polish language support to hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 80ca92c9..f576618b 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -638,6 +638,7 @@ "serbian": "सर्बियाई", "hebrew": "इब्रानी", "bulgarian": "बुल्गारियाई", + "polish": "पोलिश", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 04d25178b4e40682b6096e78b1eec3d703d50fd6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:09:23 +0100 Subject: [PATCH 052/285] Add Polish language translation to it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 524b1389..d7de9a0f 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -638,6 +638,7 @@ "serbian": "Serbo", "hebrew": "Ebraico", "bulgarian": "Bulgaro", + "polish": "Polacco", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 780a93bb115b4066ebaae5aac789f3827b54cf3a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:11:44 +0100 Subject: [PATCH 053/285] Add Polish language support to pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index ffc2ff11..3c52824c 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -652,6 +652,7 @@ "serbian": "Sérvio", "hebrew": "Hebraico", "bulgarian": "Búlgaro", + "polish": "Polonês", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 0b473d47c6c80737fcc9113589757bbfe57c49e2 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:12:19 +0100 Subject: [PATCH 054/285] Add Polish language support to pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 894e0301..e2721073 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -650,6 +650,7 @@ "serbian": "Sérvio", "hebrew": "Hebraico", "bulgarian": "Búlgaro", + "polish": "Polonês", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From eeccecb542f2150298986af9142c84191aea4953 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:13:35 +0100 Subject: [PATCH 055/285] Added Polish lang --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index ed63e6c0..c913c641 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -637,6 +637,7 @@ "serbian": "Српски", "hebrew": "Хебрејски", "bulgarian": "бугарски", + "polish": "Пољски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1416,3 +1417,4 @@ + From 7112dd9ed05b19aa488343a5bb2d00c8b50755e7 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:15:25 +0100 Subject: [PATCH 056/285] Add Polish language translation to zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 4f314f2d..4696d60e 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -638,6 +638,7 @@ "serbian": "塞尔维亚语", "hebrew": "希伯来语", "bulgarian": "保加利亚语", + "polish": "波兰语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From 4304ec7b54018006ba2414902fc31c3e91bf8569 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:46:50 +0100 Subject: [PATCH 057/285] Added Czech lang --- src/i18n/locales/cs.json | 1412 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1412 insertions(+) create mode 100644 src/i18n/locales/cs.json diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json new file mode 100644 index 00000000..c344e63c --- /dev/null +++ b/src/i18n/locales/cs.json @@ -0,0 +1,1412 @@ +{ + "common": { + "loading": "Načítání...", + "cancel": "Zrušit", + "save": "Uložit", + "delete": "Smazat", + "edit": "Upravit", + "search": "Hledat", + "error": "Chyba", + "success": "Úspěch", + "ok": "OK", + "unknown": "Neznámý", + "retry": "Zkusit znovu", + "try_again": "Zkusit znovu", + "go_back": "Zpět", + "settings": "Nastavení", + "close": "Zavřít", + "enable": "Povolit", + "disable": "Zakázat", + "show_more": "Zobrazit více", + "show_less": "Zobrazit méně", + "load_more": "Načíst další", + "unknown_date": "Neznámé datum", + "anonymous_user": "Anonymní uživatel", + "time": { + "now": "Právě teď", + "minutes_ago": "před {{count}} min", + "hours_ago": "před {{count}} h", + "days_ago": "před {{count}} d" + }, + "days_short": { + "sun": "Ne", + "mon": "Po", + "tue": "Út", + "wed": "St", + "thu": "Čt", + "fri": "Pá", + "sat": "So" + }, + "email": "E-mail", + "status": "Stav" + }, + "home": { + "categories": { + "movies": "Filmy", + "series": "Seriály", + "channels": "Kanály" + }, + "movies": "Filmy", + "tv_shows": "TV pořady", + "load_more_catalogs": "Načíst další katalogy", + "no_content": "Žádný obsah není k dispozici", + "add_catalogs": "Přidat katalogy", + "sign_in_available": "Možnost přihlášení", + "sign_in_desc": "Přihlásit se můžete kdykoli v Nastavení → Účet", + "view_all": "Zobrazit vše", + "this_week": "Tento týden", + "upcoming": "Nadcházející", + "recently_released": "Nedávno vydáno", + "no_scheduled_episodes": "Seriály bez naplánovaných epizod", + "check_back_later": "Zkuste to později", + "continue_watching": "Pokračovat ve sledování", + "up_next": "Další na řadě", + "up_next_caps": "DALŠÍ NA ŘADĚ", + "released": "Vydáno", + "new": "Nové", + "tba": "Bude oznámeno", + "new_episodes": "{{count}} nové epizody", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Série {{season}}", + "episode": "Epizoda {{episode}}", + "movie": "Film", + "series": "Seriál", + "tv_show": "TV pořad", + "percent_watched": "{{percent}} % zhlédnuto", + "view_details": "Zobrazit podrobnosti", + "remove": "Odebrat", + "play": "Přehrát", + "play_now": "Přehrát nyní", + "resume": "Pokračovat", + "info": "Info", + "more_info": "Více informací", + "my_list": "Můj seznam", + "save": "Uložit", + "saved": "Uloženo", + "retry": "Zkusit znovu", + "install_addons": "Instalovat doplňky", + "settings": "Nastavení", + "no_featured_content": "Žádný doporučený obsah", + "couldnt_load_featured": "Nepodařilo se načíst doporučený obsah", + "no_featured_desc": "Nainstalujte doplňky s katalogy nebo změňte zdroj obsahu v nastavení.", + "load_error_desc": "Při načítání doporučeného obsahu došlo k chybě. Zkontrolujte připojení a zkuste to znovu.", + "no_featured_available": "Žádný doporučený obsah není k dispozici", + "no_description": "Popis není k dispozici" + }, + "navigation": { + "home": "Domů", + "library": "Knihovna", + "search": "Hledat", + "downloads": "Stažené", + "settings": "Nastavení" + }, + "search": { + "title": "Hledat", + "recent_searches": "Nedávná hledání", + "discover": "Objevovat", + "movies": "Filmy", + "tv_shows": "TV pořady", + "select_catalog": "Vybrat katalog", + "all_genres": "Všechny žánry", + "discovering": "Vyhledávání obsahu...", + "show_more": "Zobrazit více ({{count}})", + "no_content_found": "Nebyl nalezen žádný obsah", + "try_different": "Zkuste jiný žánr nebo katalog", + "select_catalog_desc": "Vyberte katalog k objevování", + "tap_catalog_desc": "Začněte klepnutím na kartu katalogu výše", + "placeholder": "Hledat filmy, seriály...", + "keep_typing": "Pište dál...", + "type_characters": "Pro hledání zadejte alespoň 2 znaky", + "no_results": "Nebyly nalezeny žádné výsledky", + "try_keywords": "Zkuste jiná klíčová slova nebo zkontrolujte pravopis", + "select_type": "Vybrat typ", + "browse_movies": "Procházet katalogy filmů", + "browse_tv": "Procházet katalogy seriálů", + "select_genre": "Vybrat žánr", + "show_all_content": "Zobrazit veškerý obsah", + "genres_count": "{{count}} žánrů" + }, + "library": { + "title": "Knihovna", + "watched": "Zhlédnuto", + "continue": "Pokračovat", + "watchlist": "Seznam ke zhlédnutí", + "collection": "Sbírka", + "rated": "Hodnoceno", + "items": "položky", + "trakt_collections": "Trakt sbírky", + "trakt_collection": "Trakt sbírka", + "no_trakt": "Žádné sbírky na Trakt", + "no_trakt_desc": "Vaše Trakt sbírky se zde zobrazí, jakmile začnete Trakt používat", + "load_collections": "Načíst sbírky", + "empty_folder": "Žádný obsah v {{folder}}", + "empty_folder_desc": "Tato sbírka je prázdná", + "refresh": "Obnovit", + "no_movies": "Zatím žádné filmy", + "no_series": "Zatím žádné TV pořady", + "no_content": "Zatím žádný obsah", + "add_content_desc": "Přidejte obsah do své knihovny, abyste jej zde viděli", + "find_something": "Najděte si něco ke zhlédnutí", + "removed_from_library": "Odebráno z knihovny", + "item_removed": "Položka byla odebrána z vaší knihovny", + "failed_update_library": "Nepodařilo se aktualizovat knihovnu", + "unable_remove": "Nepodařilo se odebrat položku z knihovny", + "marked_watched": "Označeno jako zhlédnuté", + "marked_unwatched": "Označeno jako nezhlédnuté", + "item_marked_watched": "Položka označena jako zhlédnutá", + "item_marked_unwatched": "Položka označena jako nezhlédnutá", + "failed_update_watched": "Nepodařilo se aktualizovat stav zhlédnutí", + "unable_update_watched": "Nelze aktualizovat stav zhlédnutí", + "added_to_library": "Přidáno do knihovny", + "item_added": "Přidáno do vaší místní knihovny", + "add_to_library": "Přidat do knihovny", + "remove_from_library": "Odebrat z knihovny", + "mark_watched": "Označit jako zhlédnuté", + "mark_unwatched": "Označit jako nezhlédnuté", + "share": "Sdílet", + "add_to_watchlist": "Přidat do Trakt seznamu", + "remove_from_watchlist": "Odebrat z Trakt seznamu", + "added_to_watchlist": "Přidáno do seznamu ke zhlédnutí", + "added_to_watchlist_desc": "Přidáno do vašeho Trakt seznamu", + "removed_from_watchlist": "Odebráno ze seznamu ke zhlédnutí", + "removed_from_watchlist_desc": "Odebráno z vašeho Trakt seznamu", + "add_to_collection": "Přidat do Trakt sbírky", + "remove_from_collection": "Odebrat z Trakt sbírky", + "added_to_collection": "Přidáno do sbírky", + "added_to_collection_desc": "Přidáno do vaší Trakt sbírky", + "removed_from_collection": "Odebráno ze sbírky", + "removed_from_collection_desc": "Odebráno z vaší Trakt sbírky" + }, + "metadata": { + "unable_to_load": "Nelze načíst obsah", + "error_code": "Kód chyby: {{code}}", + "content_not_found": "Obsah nebyl nalezen", + "content_not_found_desc": "Tento obsah neexistuje nebo mohl být odebrán.", + "server_error": "Chyba serveru", + "server_error_desc": "Server je dočasně nedostupný. Zkuste to prosím později.", + "bad_gateway": "Chybná brána", + "bad_gateway_desc": "Server má potíže. Zkuste to prosím později.", + "service_unavailable": "Služba nedostupná", + "service_unavailable_desc": "Služba je momentálně mimo provoz kvůli údržbě.", + "too_many_requests": "Příliš mnoho požadavků", + "too_many_requests_desc": "Provádíte příliš mnoho požadavků. Počkejte chvíli a zkuste to znovu.", + "request_timeout": "Časový limit vypršel", + "request_timeout_desc": "Požadavek trval příliš dlouho. Zkuste to znovu.", + "network_error": "Chyba sítě", + "network_error_desc": "Zkontrolujte připojení k internetu a zkuste to znovu.", + "auth_error": "Chyba autentizace", + "auth_error_desc": "Zkontrolujte nastavení účtu a zkuste to znovu.", + "access_denied": "Přístup odepřen", + "access_denied_desc": "Nemáte oprávnění k přístupu k tomuto obsahu.", + "connection_error": "Chyba připojení", + "streams_unavailable": "Streamy nedostupné", + "streams_unavailable_desc": "Zdroje streamování jsou momentálně nedostupné.", + "unknown_error": "Neznámá chyba", + "something_went_wrong": "Něco se pokazilo. Zkuste to znovu.", + "cast": "Obsazení", + "more_like_this": "Podobné", + "episodes": "Epizody", + "seasons": "Série", + "posters": "Plakáty", + "banners": "Bannery", + "specials": "Speciály", + "season_number": "Série {{number}}", + "episode_count": "{{count}} Epizoda", + "episode_count_plural": "{{count}} Epizody", + "no_episodes": "Žádné epizody nejsou k dispozici", + "no_episodes_for_season": "Pro sérii {{season}} nejsou k dispozici žádné epizody", + "episodes_not_released": "Epizody možná ještě nebyly vydány", + "episode_label": "EPIZODA {{number}}", + "watch_again": "Zhlédnout znovu", + "completed": "Dokončeno", + "play_episode": "Přehrát S{{season}}E{{episode}}", + "play": "Přehrát", + "watched": "Zhlédnuto", + "watched_on_trakt": "Zhlédnuto na Trakt", + "synced_with_trakt": "Synchronizováno s Trakt", + "director": "Režisér", + "directors": "Režiséři", + "creator": "Tvůrce", + "creators": "Tvůrci", + "production": "Produkce", + "network": "Stanice", + "marking": "Označování...", + "removing": "Odstraňování...", + "unmark_season": "Zrušit označení série {{season}}", + "mark_season": "Označit sérii {{season}}", + "resume": "Pokračovat", + "spoiler_warning": "Varování: Spoiler", + "spoiler_warning_desc": "Tento komentář obsahuje spoilery. Opravdu jej chcete odkrýt?", + "reveal_spoilers": "Odkrýt spoilery", + "movie_details": "Detaily filmu", + "show_details": "Detaily pořadu", + "tagline": "Slogan", + "release_date": "Datum vydání", + "runtime": "Délka", + "budget": "Rozpočet", + "revenue": "Tržby", + "origin_country": "Země původu", + "original_language": "Původní jazyk", + "first_air_date": "První vysílání", + "last_air_date": "Poslední vysílání", + "total_episodes": "Celkem epizod", + "episode_runtime": "Délka epizody", + "created_by": "Vytvořil", + "backdrop_gallery": "Galerie pozadí", + "loading_episodes": "Načítání epizod...", + "play_next": "Hrát S{{season}}E{{episode}}", + "play_next_episode": "Hrát další epizodu", + "percent_watched_trakt": "{{percent}} % zhlédnuto ({{traktPercent}} % na Trakt)", + "synced_with_trakt_progress": "Synchronizováno s Trakt", + "using_trakt_progress": "Používá se postup z Trakt", + "added_to_collection_hero": "Přidáno do sbírky", + "added_to_collection_desc_hero": "Přidáno do vaší Trakt sbírky", + "removed_from_collection_hero": "Odebráno ze sbírky", + "removed_from_collection_desc_hero": "Odebráno z vaší Trakt sbírky", + "mark_as_watched": "Označit jako zhlédnuté", + "mark_as_unwatched": "Označit jako nezhlédnuté" + }, + "cast": { + "biography": "Biografie", + "known_for": "Známý z", + "personal_info": "Osobní informace", + "born_in": "Narozen v {{place}}", + "filmography": "Filmografie", + "also_known_as": "Také známý jako", + "no_info_available": "Nejsou k dispozici žádné další informace", + "as_character": "jako {{character}}", + "loading_details": "Načítání detailů...", + "years_old": "{{age}} let", + "view_filmography": "Zobrazit filmografii", + "filter": "Filtr", + "sort_by": "Seřadit podle", + "sort_popular": "Populární", + "sort_latest": "Nejnovější", + "sort_upcoming": "Chystané", + "upcoming_badge": "CHYSTANÉ", + "coming_soon": "Již brzy", + "filmography_count": "Filmografie • {{count}} titulů", + "loading_filmography": "Načítání filmografie...", + "load_more_remaining": "Načíst další (zbývá {{count}})", + "alert_error_title": "Chyba", + "alert_error_message": "Nelze načíst \"{{title}}\". Zkuste to prosím později.", + "alert_ok": "OK", + "no_upcoming": "Pro tohoto herce nejsou k dispozici žádné chystané tituly", + "no_content": "Pro tohoto herce není k dispozici žádný obsah", + "no_movies": "Pro tohoto herce nejsou k dispozici žádné filmy", + "no_tv": "Pro tohoto herce nejsou k dispozici žádné TV pořady" + }, + "comments": { + "title": "Komentáře Trakt", + "spoiler_warning": "⚠️ Tento komentář obsahuje spoilery. Klepnutím odhalíte.", + "spoiler": "Spoiler", + "contains_spoilers": "Obsahuje spoilery", + "reveal": "Odhalit", + "vip": "VIP", + "unavailable": "Komentáře nejsou k dispozici", + "no_comments": "Na Trakt zatím nejsou žádné komentáře", + "not_in_database": "Tento obsah možná ještě není v databázi Trakt", + "check_trakt": "Zkontrolovat Trakt" + }, + "trailers": { + "title": "Trailery", + "official_trailers": "Oficiální trailery", + "official_trailer": "Oficiální trailer", + "teasers": "Teasery", + "teaser": "Teaser", + "clips_scenes": "Klipy a scény", + "clip": "Klip", + "featurettes": "Featuretty", + "featurette": "Featuretta", + "behind_the_scenes": "Ze zákulisí", + "no_trailers": "Nejsou k dispozici žádné trailery", + "unavailable": "Trailer nedostupný", + "unavailable_desc": "Tento trailer se nepodařilo načíst. Zkuste to prosím později.", + "unable_to_play": "Trailer nelze přehrát. Zkuste to znovu.", + "watch_on_youtube": "Sledovat na YouTube" + }, + "catalog": { + "no_content_found": "Nebyl nalezen žádný obsah", + "no_content_filters": "Pro vybrané filtry nebyl nalezen žádný obsah", + "loading_content": "Načítání obsahu...", + "back": "Zpět", + "in_theaters": "V kinech", + "all": "Vše", + "failed_tmdb": "Nepodařilo se načíst obsah z TMDB", + "movies": "Filmy", + "tv_shows": "TV pořady", + "channels": "Kanály" + }, + "streams": { + "back_to_episodes": "Zpět k epizodám", + "back_to_info": "Zpět na info", + "fetching_from": "Získávání z:", + "no_sources_available": "Nejsou k dispozici žádné zdroje streamování", + "add_sources_desc": "Přidejte zdroje streamování v nastavení", + "add_sources": "Přidat zdroje", + "finding_streams": "Hledání dostupných streamů...", + "finding_best_stream": "Hledání nejlepšího streamu pro automatické přehrávání...", + "still_fetching": "Stále vyhledávám streamy...", + "no_streams_available": "Žádné streamy nejsou k dispozici", + "starting_best_stream": "Spouštění nejlepšího streamu...", + "loading_more_sources": "Načítání dalších zdrojů..." + }, + "player_ui": { + "via": "přes {{name}}", + "audio_tracks": "Zvukové stopy", + "no_audio_tracks": "Nejsou k dispozici žádné zvukové stopy", + "playback_speed": "Rychlost přehrávání", + "on_hold": "Pozastaveno", + "playback_error": "Chyba přehrávání", + "unknown_error": "Během přehrávání došlo k neznámé chybě.", + "copy_error": "Kopírovat detaily chyby", + "copied_to_clipboard": "Zkopírováno do schránky", + "dismiss": "Zavřít", + "continue_watching": "Pokračovat ve sledování", + "start_over": "Přehrát od začátku", + "resume": "Pokračovat", + "change_source": "Změnit zdroj", + "switching_source": "Přepínání zdroje...", + "no_sources_found": "Nebyly nalezeny žádné zdroje", + "sources": "Zdroje", + "finding_sources": "Hledání zdrojů...", + "unknown_source": "Neznámý zdroj", + "sources_limited": "Zdroje mohou být omezeny kvůli chybám poskytovatele.", + "episodes": "Epizody", + "specials": "Speciály", + "season": "Série {{season}}", + "stream": "Stream {{number}}", + "subtitles": "Titulky", + "built_in": "Vestavěné", + "addons": "Doplňky", + "style": "Styl", + "none": "Žádné", + "search_online_subtitles": "Hledat titulky online", + "preview": "Náhled", + "quick_presets": "Rychlé předvolby", + "default": "Výchozí", + "yellow": "Žlutá", + "high_contrast": "Vysoký kontrast", + "large": "Velké", + "core": "Základní", + "font_size": "Velikost písma", + "show_background": "Zobrazit pozadí", + "advanced": "Pokročilé", + "position": "Pozice", + "text_color": "Barva textu", + "align": "Zarovnání", + "bottom_offset": "Odsazení zdola", + "background_opacity": "Průhlednost pozadí", + "text_shadow": "Stín textu", + "on": "Zapnuto", + "off": "Vypnuto", + "outline_color": "Barva obrysu", + "outline": "Obrys", + "outline_width": "Šířka obrysu", + "letter_spacing": "Prokládání písma", + "line_height": "Výška řádku", + "timing_offset": "Časový posun (s)", + "visual_sync": "Vizuální synchronizace", + "timing_hint": "Pokud je potřeba, posuňte titulky dříve (-) nebo později (+) pro synchronizaci.", + "reset_defaults": "Obnovit výchozí", + "mark_intro_start": "Označit začátek znělky", + "mark_intro_end": "Označit konec znělky", + "intro_start_marked": "Začátek znělky označen", + "intro_submitted": "Znělka úspěšně odeslána", + "intro_submit_failed": "Odeslání znělky se nezdařilo" + }, + "downloads": { + "title": "Stažené", + "no_downloads": "Zatím žádné stažené soubory", + "no_downloads_desc": "Stažený obsah se zde zobrazí pro offline sledování", + "explore": "Prozkoumat obsah", + "path_copied": "Cesta zkopírována", + "path_copied_desc": "Cesta k místnímu souboru byla zkopírována", + "copied": "Zkopírováno", + "incomplete": "Stahování nedokončeno", + "incomplete_desc": "Stahování ještě není dokončeno", + "not_available": "Není k dispozici", + "not_available_desc": "Cesta k místnímu souboru je k dispozici až po dokončení stahování.", + "status_downloading": "Stahování", + "status_completed": "Dokončeno", + "status_paused": "Pozastaveno", + "status_error": "Chyba", + "status_queued": "Ve frontě", + "status_unknown": "Neznámý", + "provider": "Poskytovatel", + "streaming_playlist_warning": "Nemusí jít přehrát - streamovací playlist", + "remaining": "zbývá", + "not_ready": "Stahování není připraveno", + "not_ready_desc": "Počkejte prosím na dokončení stahování.", + "filter_all": "Vše", + "filter_active": "Aktivní", + "filter_done": "Hotovo", + "filter_paused": "Pozastaveno", + "no_filter_results": "Žádná stahování typu {{filter}}", + "try_different_filter": "Zkuste vybrat jiný filtr", + "limitations_title": "Omezení stahování", + "limitations_msg": "• Soubory menší než 1 MB jsou obvykle streamovací playlisty M3U8 a nelze je stáhnout pro offline sledování. Ty fungují pouze s online streamováním a obsahují odkazy na video segmenty, nikoli skutečný video obsah.", + "remove_title": "Odstranit stažený soubor", + "remove_confirm": "Odstranit \"{{title}}\"{{season_episode}}?", + "cancel": "Zrušit", + "remove": "Odstranit" + }, + "addons": { + "title": "Doplňky", + "reorder_mode": "Režim řazení", + "reorder_info": "Doplňky nahoře mají vyšší prioritu při načítání obsahu", + "add_addon_placeholder": "URL doplňku", + "add_button": "Přidat doplněk", + "my_addons": "Moje doplňky", + "community_addons": "Komunitní doplňky", + "no_addons": "Nejsou nainstalovány žádné doplňky", + "uninstall_title": "Odinstalovat doplněk", + "uninstall_message": "Opravdu chcete odinstalovat {{name}}?", + "uninstall_button": "Odinstalovat", + "install_success": "Doplněk byl úspěšně nainstalován", + "install_error": "Instalace doplňku se nezdařila", + "load_error": "Nepodařilo se načíst doplňky", + "fetch_error": "Nepodařilo se načíst podrobnosti o doplňku", + "invalid_url": "Zadejte prosím URL doplňku", + "configure": "Konfigurovat", + "version": "Verze: {{version}}", + "installed_addons": "NAINSTALOVANÉ DOPLŇKY", + "reorder_drag_title": "TAŽENÍM ZMĚŇTE POŘADÍ", + "install": "Instalovat", + "config_unavailable_title": "Konfigurace nedostupná", + "config_unavailable_msg": "Nepodařilo se určit konfigurační URL pro tento doplněk.", + "cannot_open_config_title": "Nelze otevřít konfiguraci", + "cannot_open_config_msg": "Konfigurační URL ({{url}}) nelze otevřít. Doplněk nemusí mít konfigurační stránku.", + "description": "Popis", + "supported_types": "Podporované typy", + "catalogs": "Katalogy", + "no_description": "Popis není k dispozici", + "overview": "PŘEHLED", + "no_categories": "Žádné kategorie", + "pre_installed": "PŘEDINSTALOVÁNO" + }, + "trakt": { + "title": "Nastavení Trakt", + "settings_title": "Nastavení Trakt", + "connect_title": "Propojit s Trakt", + "connect_desc": "Synchronizujte historii sledování, seznam ke zhlédnutí a sbírku s Trakt.tv", + "sign_in": "Přihlásit se k Trakt", + "sign_out": "Odhlásit se", + "sign_out_confirm": "Opravdu se chcete odhlásit ze svého Trakt účtu?", + "joined": "Připojen(a) {{date}}", + "sync_settings_title": "Nastavení synchronizace", + "sync_info": "Při propojení s Trakt se celá historie synchronizuje přímo z API a neukládá se do místního úložiště. Váš seznam 'Pokračovat ve sledování' odráží váš globální postup na Trakt.", + "auto_sync_label": "Automatická synchronizace postupu", + "auto_sync_desc": "Automaticky synchronizovat postup sledování na Trakt", + "import_history_label": "Importovat historii sledování", + "import_history_desc": "Použijte 'Synchronizovat nyní' pro import historie a postupu z Trakt", + "sync_now_button": "Synchronizovat nyní", + "display_settings_title": "Nastavení zobrazení", + "show_comments_label": "Zobrazit komentáře Trakt", + "show_comments_desc": "Zobrazit komentáře z Trakt v detailech obsahu, pokud jsou k dispozici", + "maintenance_title": "Probíhá údržba", + "maintenance_unavailable": "Trakt je nedostupný", + "maintenance_desc": "Integrace Trakt je dočasně pozastavena kvůli údržbě. Veškerá synchronizace a autentizace je vypnuta.", + "maintenance_button": "Služba v údržbě", + "auth_success_title": "Úspěšně připojeno", + "auth_success_msg": "Váš Trakt účet byl úspěšně připojen.", + "auth_error_title": "Chyba autentizace", + "auth_error_msg": "Nepodařilo se dokončit autentizaci s Trakt.", + "auth_error_generic": "Během autentizace došlo k chybě.", + "sign_out_error": "Nepodařilo se odhlásit z Trakt.", + "sync_complete_title": "Synchronizace dokončena", + "sync_success_msg": "Váš postup sledování byl úspěšně synchronizován s Trakt.", + "sync_error_msg": "Synchronizace se nezdařila. Zkuste to prosím znovu." + }, + "simkl": { + "title": "Nastavení Simkl", + "settings_title": "Nastavení Simkl", + "connect_title": "Propojit s Simkl", + "connect_desc": "Synchronizujte historii sledování a sledujte, co právě sledujete", + "sign_in": "Přihlásit se k Simkl", + "sign_out": "Odpojit", + "sign_out_confirm": "Opravdu se chcete odpojit od Simkl?", + "syncing_desc": "Vaše zhlédnuté položky se synchronizují s Simkl.", + "auth_success_title": "Úspěšně připojeno", + "auth_success_msg": "Váš Simkl účet byl úspěšně připojen.", + "auth_error_title": "Chyba autentizace", + "auth_error_msg": "Nepodařilo se dokončit autentizaci s Simkl.", + "auth_error_generic": "Během autentizace došlo k chybě.", + "sign_out_error": "Nepodařilo se odpojit od Simkl.", + "config_error_title": "Chyba konfigurace", + "config_error_msg": "Simkl Client ID chybí v proměnných prostředí.", + "conflict_title": "Konflikt", + "conflict_msg": "Nemůžete se připojit k Simkl, dokud je připojen Trakt. Nejprve odpojte Trakt.", + "disclaimer": "Nuvio není přidruženo k Simkl." + }, + "tmdb_settings": { + "title": "Nastavení TMDb", + "metadata_enrichment": "Obohacení metapodat", + "metadata_enrichment_desc": "Vylepšete metapodaty o data z TMDb pro lepší detaily a informace.", + "enable_enrichment": "Povolit obohacení", + "enable_enrichment_desc": "Doplňuje metapodaty z doplňků o TMDb data pro obsazení, certifikaci, loga a produkční info.", + "localized_text": "Lokalizovaný text", + "localized_text_desc": "Načítat názvy a popisy v preferovaném jazyce z TMDb.", + "language": "Jazyk", + "change": "Změnit", + "logo_preview": "Náhled loga", + "logo_preview_desc": "Náhled ukazuje, jak se budou lokalizovaná loga zobrazovat ve vybraném jazyce.", + "example": "Příklad:", + "no_logo": "Logo není k dispozici", + "enrichment_options": "Možnosti obohacení", + "enrichment_options_desc": "Nastavte, která data se mají z TMDb načítat. Vypnuté možnosti použijí data z doplňku.", + "cast_crew": "Obsazení a štáb", + "cast_crew_desc": "Herci, režiséři, scénáristé s profilovými fotkami", + "title_description": "Název a popis", + "title_description_desc": "Použít lokalizovaný název a přehled z TMDb", + "title_logos": "Loga titulů", + "title_logos_desc": "Vysoce kvalitní obrázky s názvy titulů", + "banners_backdrops": "Bannery a pozadí", + "banners_backdrops_desc": "Obrázky pozadí ve vysokém rozlišení", + "certification": "Certifikace obsahu", + "certification_desc": "Věkové hodnocení (PG-13, R, TV-MA atd.)", + "recommendations": "Doporučení", + "recommendations_desc": "Návrhy podobného obsahu", + "episode_data": "Data epizod", + "episode_data_desc": "Náhledy epizod, info a záložní data pro seriály", + "season_posters": "Plakáty sérií", + "season_posters_desc": "Plakáty specifické pro jednotlivé série", + "production_info": "Produkční info", + "production_info_desc": "Stanice a produkční společnosti s logy", + "movie_details": "Detaily filmu", + "movie_details_desc": "Rozpočet, tržby, délka, slogan", + "tv_details": "Detaily seriálu", + "tv_details_desc": "Stav, počet sérií, stanice, tvůrci", + "movie_collections": "Filmové sbírky", + "movie_collections_desc": "Filmové franšízy (Marvel, Star Wars atd.)", + "api_configuration": "Konfigurace API", + "api_configuration_desc": "Nakonfigurujte svůj přístup k TMDb API pro vylepšené funkce.", + "custom_api_key": "Vlastní API klíč", + "custom_api_key_desc": "Použijte vlastní TMDb API klíč pro lepší výkon a vyhrazené limity.", + "custom_key_active": "Vlastní API klíč je aktivní", + "api_key_required": "API klíč je vyžadován", + "api_key_placeholder": "Vložte svůj TMDb API klíč (v3)", + "how_to_get_key": "Jak získat TMDb API klíč?", + "built_in_key_msg": "Aktuálně používáte vestavěný API klíč. Zvažte použití vlastního klíče pro lepší výkon.", + "cache_size": "Velikost mezipaměti", + "clear_cache": "Vymazat mezipaměť", + "cache_days": "Odezvy TMDB jsou uloženy v mezipaměti po dobu 7 dní pro zvýšení výkonu", + "choose_language": "Vybrat jazyk", + "choose_language_desc": "Vyberte preferovaný jazyk pro obsah z TMDb", + "popular": "Populární", + "all_languages": "Všechny jazyky", + "search_results": "Výsledky hledání", + "no_languages_found": "Pro dotaz \"{{query}}\" nebyly nalezeny žádné jazyky", + "clear_search": "Vymazat hledání", + "clear_cache_title": "Vymazat TMDB mezipaměť", + "clear_cache_msg": "Tímto vymažete všechna uložená data TMDB ({{size}}). To může dočasně zpomalit načítání, dokud se mezipaměť neobnoví.", + "clear_cache_success": "Mezipaměť TMDB byla úspěšně vymazána.", + "clear_cache_error": "Nepodařilo se vymazat mezipaměť.", + "clear_api_key_title": "Vymazat API klíč", + "clear_api_key_msg": "Opravdu chcete odebrat svůj vlastní API klíč a vrátit se k výchozímu?", + "clear_api_key_success": "API klíč byl úspěšně vymazán", + "clear_api_key_error": "Nepodařilo se vymazat API klíč", + "empty_api_key": "API klíč nemůže být prázdný.", + "invalid_api_key": "Neplatný API klíč. Zkontrolujte jej a zkuste to znovu.", + "save_error": "Při ukládání došlo k chybě. Zkuste to znovu.", + "using_builtin_key": "Nyní používáte vestavěný TMDb API klíč.", + "using_custom_key": "Nyní používáte svůj vlastní TMDb API klíč.", + "enter_custom_key": "Zadejte a uložte svůj vlastní TMDb API klíč.", + "key_verified": "API klíč byl úspěšně ověřen a uložen." + }, + "settings": { + "language": "Jazyk", + "select_language": "Vybrat jazyk", + "english": "Angličtina", + "portuguese": "Portugalština", + "portuguese_br": "Portugalština (Brazílie)", + "portuguese_pt": "Portugalština (Portugalsko)", + "german": "Němčina", + "arabic": "Arabština", + "spanish": "Španělština", + "french": "Francouzština", + "italian": "Italština", + "croatian": "Chorvatština", + "chinese": "Čínština (Zjednodušená)", + "hindi": "Hindština", + "serbian": "Srbština", + "hebrew": "Hebrejština", + "bulgarian": "Bulharština", + "polish": "Polština", + "czech": "Čeština", + "account": "Účet", + "content_discovery": "Obsah a objevování", + "appearance": "Vzhled", + "integrations": "Integrace", + "playback": "Přehrávání", + "backup_restore": "Záloha a obnovení", + "updates": "Aktualizace", + "about": "O aplikaci", + "developer": "Vývojář", + "cache": "Mezipaměť", + "title": "Nastavení", + "settings_title": "Nastavení", + "sign_in_sync": "Přihlaste se pro synchronizaci", + "add_catalogs_sources": "Doplňky, katalogy a zdroje", + "player_trailers_downloads": "Přehrávač, trailery, stahování", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Zkontrolovat aktualizace", + "clear_mdblist_cache": "Vymazat mezipaměť MDBList", + "cache_management": "SPRÁVA MEZIPAMĚTI", + "downloads_counter": "stažení a přibývají", + "made_with_love": "Vytvořeno s ❤️ týmem Tapframe a přáteli", + "sections": { + "information": "INFORMACE", + "account": "ÚČET", + "theme": "MOTIV", + "layout": "ROZVRŽENÍ", + "sources": "ZDROJE", + "catalogs": "KATALOGY", + "discovery": "OBJEVOVÁNÍ", + "metadata": "METADATA", + "ai_assistant": "AI ASISTENT", + "video_player": "VIDEO PŘEHRÁVAČ", + "audio_subtitles": "AUDIO A TITULKY", + "media": "MÉDIA", + "notifications": "NOTIFIKACE", + "testing": "TESTOVÁNÍ", + "danger_zone": "NEBEZPEČNÁ ZÓNA" + }, + "items": { + "legal": "Právní informace", + "privacy_policy": "Zásady ochrany osobních údajů", + "report_issue": "Nahlásit problém", + "version": "Verze", + "contributors": "Přispěvatelé", + "view_contributors": "Zobrazit všechny přispěvatele", + "theme": "Motiv", + "episode_layout": "Rozvržení epizod", + "streams_backdrop": "Pozadí streamů", + "streams_backdrop_desc": "Zobrazit rozmazané pozadí u mobilních streamů", + "addons": "Doplňky", + "installed": "nainstalováno", + "debrid_integration": "Integrace Debrid", + "debrid_desc": "Připojit Torbox", + "plugins": "Pluginy", + "plugins_desc": "Spravovat pluginy a repozitáře", + "catalogs": "Katalogy", + "active": "aktivní", + "home_screen": "Domovská obrazovka", + "home_screen_desc": "Rozvržení a obsah", + "continue_watching": "Pokračovat ve sledování", + "continue_watching_desc": "Mezipaměť a chování při přehrávání", + "show_discover": "Zobrazit sekci Objevovat", + "show_discover_desc": "Zobrazit obsah k objevování v Hledání", + "mdblist": "MDBList", + "mdblist_connected": "Připojeno", + "mdblist_desc": "Povolit pro přidání hodnocení a recenzí", + "simkl": "Simkl", + "simkl_connected": "Připojeno", + "simkl_desc": "Sledujte, co sledujete", + "tmdb": "TMDB", + "tmdb_desc": "Zdroj metapodat a log", + "openrouter": "OpenRouter API", + "openrouter_connected": "Připojeno", + "openrouter_desc": "Přidejte svůj API klíč pro povolení AI chatu", + "video_player": "Video přehrávač", + "built_in": "Vestavěný", + "external": "Externí", + "preferred_audio": "Preferovaný jazyk zvuku", + "preferred_subtitle": "Preferovaný jazyk titulků", + "subtitle_source": "Priorita zdroje titulků", + "auto_select_subs": "Automaticky vybrat titulky", + "auto_select_subs_desc": "Automaticky vybrat titulky odpovídající vašim preferencím", + "show_trailers": "Zobrazit trailery", + "show_trailers_desc": "Zobrazit trailery v hlavní sekci", + "enable_downloads": "Povolit stahování", + "enable_downloads_desc": "Zobrazit kartu Stahování i možnost ukládání streamů", + "notifications": "Notifikace", + "notifications_desc": "Připomenutí epizod", + "developer_tools": "Vývojářské nástroje", + "developer_tools_desc": "Možnosti testování a ladění", + "test_onboarding": "Testovat uvítání", + "reset_onboarding": "Resetovat uvítání", + "test_announcement": "Testovat oznámení", + "test_announcement_desc": "Zobrazit překryvnou vrstvu 'Co je nového'", + "reset_campaigns": "Resetovat kampaně", + "reset_campaigns_desc": "Vymazat imprese kampaní", + "clear_all_data": "Vymazat všechna data", + "clear_all_data_desc": "Resetovat všechna nastavení a smazat data v mezipaměti" + }, + "options": { + "horizontal": "Horizontální", + "vertical": "Vertikální", + "internal_first": "Nejdříve interní", + "internal_first_desc": "Preferovat vestavěné titulky, poté externí", + "external_first": "Nejdříve externí", + "external_first_desc": "Preferovat titulky z doplňků, poté vestavěné", + "any_available": "Jakékoli dostupné", + "any_available_desc": "Použít první dostupnou stopu titulků" + }, + "clear_data_desc": "Tímto dojde k resetování všech nastavení a vymazání všech dat v mezipaměti. Jste si jisti?", + "app_updates": "Aktualizace aplikace", + "about_nuvio": "O aplikaci Nuvio" + }, + "privacy": { + "title": "Soukromí a data", + "settings_desc": "Ovládání telemetrie a sběru dat", + "info_title": "Na vašem soukromí záleží", + "info_description": "Mějte pod kontrolou, jaká data jsou sbírána a sdílena. Analytika je ve výchozím nastavení vypnutá a hlášení o chybách jsou anonymní.", + "analytics_enabled_title": "Analytika povolena", + "analytics_enabled_message": "Data o používání budou sbírána pro zlepšení aplikace. Toto můžete kdykoli vypnout.", + "disable_error_reporting_title": "Vypnout hlášení chyb?", + "disable_error_reporting_message": "Vypnutím hlášení o chybách nebudeme upozorněni na pády nebo problémy, které zaznamenáte. To může ovlivnit naši schopnost opravovat chyby.", + "enable_session_replay_title": "Povolit záznam relace?", + "enable_session_replay_message": "Záznam relace nahrává obrazovku při výskytu chyby, abychom pochopili, co se stalo. Může zachytit viditelný obsah na vaší obrazovce.", + "enable_pii_title": "Povolit sběr PII?", + "enable_pii_message": "Toto umožňuje sběr osobně identifikovatelných informací, jako je IP adresa a detaily o zařízení. Tato data pomáhají diagnostikovat problémy, ale zvyšují expozici soukromí.", + "disable_all_title": "Vypnout veškerou telemetrii?", + "disable_all_message": "Tímto vypnete veškerou analytiku, hlášení chyb i záznamy relací. Nebudeme dostávat žádná data o používání nebo pádech aplikace.", + "disable_all_button": "Vypnout vše", + "all_disabled_title": "Veškerá telemetrie vypnuta", + "all_disabled_message": "Veškerý sběr dat byl vypnut. Změny se projeví při příštím restartu aplikace.", + "reset_title": "Resetovat na doporučené", + "reset_message": "Nastavení soukromí byla resetována na doporučené výchozí hodnoty (hlášení chyb povoleno, analytika vypnuta).", + "section_analytics": "ANALYTIKA", + "analytics_title": "Analytika používání", + "analytics_description": "Sbírat anonymní vzorce používání a zobrazení obrazovek", + "section_error_reporting": "HLÁŠENÍ CHYB", + "error_reporting_title": "Hlášení o pádech", + "error_reporting_description": "Odesílat anonymní hlášení o pádech pro zlepšení stability", + "session_replay_title": "Záznam relace", + "session_replay_description": "Nahrávat obrazovku při výskytu chyb", + "pii_title": "Zahrnout info o zařízení", + "pii_description": "Odesílat IP adresu a detaily o zařízení spolu s hlášeními", + "section_quick_actions": "RYCHLÉ AKCE", + "disable_all": "Vypnout veškerou telemetrii", + "disable_all_desc": "Vypnout veškerý sběr dat", + "reset_recommended": "Resetovat na doporučené", + "reset_recommended_desc": "Soukromí na prvním místě s hlášením chyb", + "section_learn_more": "ZJISTIT VÍCE", + "privacy_policy": "Zásady ochrany osobních údajů", + "current_settings": "Shrnutí aktuálního nastavení", + "summary_analytics": "Analytika", + "summary_errors": "Hlášení chyb", + "summary_replay": "Záznam relace", + "summary_pii": "Info o zařízení", + "restart_note_detailed": "* Změny analytiky a hlášení chyb se projeví okamžitě. Nastavení záznamu relace a PII vyžaduje restart aplikace." + }, + "ai_settings": { + "title": "AI Asistent", + "info_title": "Chat s podporou AI", + "info_desc": "Ptejte se na cokoli ohledně jakéhokoli filmu nebo epizody seriálu pomocí pokročilé AI. Získejte vhled do děje, postav, témat, zajímavostí a dalšího - vše poháněno komplexními daty z TMDB.", + "feature_1": "Kontext a analýza specifická pro danou epizodu", + "feature_2": "Vysvětlení děje a vhled do postav", + "feature_3": "Zajímavosti ze zákulisí a fakta", + "feature_4": "Váš vlastní bezplatný API klíč OpenRouter", + "api_key_section": "OPENROUTER API KLÍČ", + "api_key_label": "API klíč", + "api_key_desc": "Zadejte svůj OpenRouter API klíč pro povolení funkcí AI chatu", + "save_api_key": "Uložit API klíč", + "saving": "Ukládání...", + "update": "Aktualizovat", + "remove": "Odebrat", + "get_free_key": "Získat zdarma API klíč od OpenRouter", + "enable_chat": "Povolit AI chat", + "enable_chat_desc": "Po zapnutí se na stránkách s obsahem zobrazí tlačítko 'Poptat se AI'.", + "chat_enabled": "AI chat povolen", + "chat_enabled_desc": "Nyní se můžete ptát na filmy a seriály. Hledejte tlačítko 'Poptat se AI' na stránkách s obsahem!", + "how_it_works": "Jak to funguje", + "how_it_works_desc": "• OpenRouter poskytuje přístup k mnoha modelům AI\n• Váš API klíč zůstává soukromý a v bezpečí\n• Bezplatná úroveň zahrnuje štědré limity používání\n• Chatujte s kontextem o konkrétních epizodách/filmech\n• Získejte detailní analýzu a vysvětlení", + "error_invalid_key": "Zadejte prosím platný API klíč", + "error_key_format": "OpenRouter API klíče by měly začínat na 'sk-or-'", + "success_saved": "API klíč OpenRouter byl úspěšně uložen!", + "error_save": "Nepodařilo se uložit API klíč", + "confirm_remove_title": "Odebrat API klíč", + "confirm_remove_msg": "Opravdu chcete odebrat svůj OpenRouter API klíč? Tím se vypnou funkce AI chatu.", + "success_removed": "API klíč byl úspěšně odebrán", + "error_remove": "Nepodařilo se odebrat API klíč" + }, + "catalog_settings": { + "title": "Katalogy", + "layout_phone": "ROZVRŽENÍ KATALOGU (TELEFON)", + "posters_per_row": "Plakátů na řádek", + "auto": "Auto", + "show_titles": "Zobrazit názvy u plakátů", + "show_titles_desc": "Zobrazit text názvu pod každým plakátem", + "phone_only_hint": "Platí pouze pro telefony. Tablety si ponechávají adaptivní rozvržení.", + "catalogs_group": "Katalogy", + "enabled_count": "{{enabled}} z {{total}} povoleno", + "rename_hint": "Dlouhým stisknutím katalog přejmenujete", + "rename_modal_title": "Přejmenovat katalog", + "rename_placeholder": "Zadejte nový název katalogu", + "error_save_name": "Nepodařilo se uložit vlastní název." + }, + "continue_watching_settings": { + "title": "Pokračovat ve sledování", + "playback_behavior": "CHOVÁNÍ PŘI PŘEHRÁVÁNÍ", + "use_cached": "Používat streamy z mezipaměti", + "use_cached_desc": "Pokud je povoleno, kliknutím na položky v 'Pokračovat ve sledování' se přímo otevře přehrávač s použitím dříve přehrávaných streamů. Pokud je vypnuto, otevře se obrazovka s obsahem.", + "open_metadata": "Otevřít obrazovku metapodat", + "open_metadata_desc": "Pokud jsou streamy z mezipaměti vypnuty, otevře se obrazovka Metadat namísto obrazovky Streamů. To zobrazí detaily obsahu a umožní manuální výběr streamu.", + "card_appearance": "VZHLED KARTY", + "card_style": "Styl karty", + "card_style_desc": "Vyberte, jak se mají položky v 'Pokračovat ve sledování' zobrazovat na domovské obrazovce", + "wide": "Široká", + "poster": "Plakát", + "cache_settings": "NASTAVENÍ MEZIPAMĚTI", + "cache_duration": "Doba uložení streamu v mezipaměti", + "cache_duration_desc": "Jak dlouho uchovávat odkazy na streamy v mezipaměti, než vyprší", + "important_note": "Důležitá poznámka", + "important_note_text": "Ne všechny odkazy na streamy musí zůstat aktivní po celou dobu uložení v mezipaměti. Delší doba může vést k nefunkčním odkazům. Pokud odkaz z mezipaměti selže, aplikace se vrátí k načítání čerstvých streamů.", + "how_it_works": "Jak to funguje", + "how_it_works_cached": "• Streamy jsou po přehrání uloženy do mezipaměti na vámi zvolenou dobu\n• Streamy v mezipaměti jsou před použitím ověřeny\n• Pokud je mezipaměť neplatná nebo vypršela, aplikace se vrátí na obrazovku obsahu\n• 'Používat streamy z mezipaměti' ovládá navigaci (přímo přehrávač vs. obrazovka)\n• 'Otevřít obrazovku metapodat' se zobrazí pouze při vypnutí streamů z mezipaměti", + "how_it_works_uncached": "• Když jsou streamy z mezipaměti vypnuty, kliknutí na 'Pokračovat ve sledování' otevře obrazovku obsahu\n• Možnost 'Otevřít obrazovku metapodat' určuje, která obrazovka se otevře\n• Obrazovka metapodat ukazuje detaily a dovoluje ruční výběr\n• Obrazovka streamů ukazuje dostupné zdroje pro okamžité přehrání", + "changes_saved": "Změny uloženy", + "min": "min", + "hour": "hodina", + "hours": "hodin" + }, + "contributors": { + "title": "Přispěvatelé", + "special_mentions": "Zvláštní uznání", + "tab_contributors": "Přispěvatelé", + "tab_special": "Zvláštní uznání", + "tab_donors": "Dárci", + "manager_role": "Komunitní manažer", + "manager_desc": "Spravuje komunity Discord a Reddit pro Nuvio", + "sponsor_role": "Sponzor serveru", + "sponsor_desc": "Sponzoroval serverovou infrastrukturu pro Nuvio", + "mod_role": "Discord moderátor", + "mod_desc": "Pomáhá moderovat komunitu Nuvio na Discordu", + "loading": "Načítání...", + "discord_user": "Uživatel Discordu", + "contributions": "příspěvků", + "gratitude_title": "Jsme vděční za každý příspěvek", + "gratitude_desc": "Každý řádek kódu, nahlášení chyby a návrh pomáhá dělat Nuvio lepším pro všechny", + "special_thanks_title": "Zvláštní poděkování", + "special_thanks_desc": "Tito úžasní lidé pomáhají udržovat komunitu Nuvio v chodu a servery online", + "donors_desc": "Děkujeme, že věříte v to, co stavíme. Vaše podpora udržuje Nuvio zdarma a umožňuje nám se neustále zlepšovat.", + "latest_donations": "Nejnovější", + "leaderboard": "Žebříček", + "loading_donors": "Načítání dárců...", + "no_donors": "Zatím žádní dárci", + "error_rate_limit": "Limit požadavků GitHub API byl překročen. Zkuste to prosím později nebo obnovte stažením dolů.", + "error_failed": "Nepodařilo se načíst přispěvatele. Zkontrolujte prosím připojení k internetu.", + "retry": "Zkusit znovu", + "no_contributors": "Nebyli nalezeni žádní přispěvatelé", + "loading_contributors": "Načítání přispěvatelů..." + }, + "debrid": { + "title": "Integrace Debrid", + "description_torbox": "Odemkněte 4K streamy ve vysoké kvalitě a bleskovou rychlost integrací Torboxu. Zadejte svůj API klíč níže a okamžitě vylepšete svůj zážitek ze sledování.", + "description_torrentio": "Nakonfigurujte Torrentio pro získávání torrentových streamů pro filmy a seriály. Pro streamování obsahu je vyžadována služba debrid.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Připojeno", + "status_disconnected": "Odpojeno", + "enable_addon": "Povolit doplněk", + "disconnect_button": "Odpojit a odebrat", + "disconnect_loading": "Odpojování...", + "account_info": "Informace o účtu", + "plan": "Tarif", + "plan_free": "Zdarma", + "plan_essential": "Essential ($3/měsíc)", + "plan_pro": "Pro ($10/měsíc)", + "plan_standard": "Standard ($5/měsíc)", + "plan_unknown": "Neznámý", + "expires": "Vyprší", + "downloaded": "Staženo", + "status_active": "Aktivní", + "connected_title": "✓ Připojeno k TorBoxu", + "connected_desc": "Váš doplněk TorBox je aktivní a poskytuje prémiové streamy.", + "configure_title": "Konfigurovat doplněk", + "configure_desc": "Přizpůsobte si zážitek ze sledování. Řaďte podle kvality, filtrujte velikosti souborů a spravujte další nastavení integrace.", + "open_settings": "Otevřít nastavení", + "what_is_debrid": "Co je to služba Debrid?", + "enter_api_key": "Zadejte svůj API klíč", + "connect_button": "Připojit a instalovat", + "connecting": "Připojování...", + "unlock_speeds_title": "Odemkněte prémiové rychlosti", + "unlock_speeds_desc": "Získejte předplatné Torbox pro přístup k cachovaným streamům ve vysoké kvalitě bez načítání.", + "get_subscription": "Získat předplatné", + "powered_by": "Poháněno", + "disclaimer_torbox": "Nuvio není žádným způsobem spojeno s Torboxem.", + "disclaimer_torrentio": "Nuvio není žádným způsobem spojeno s Torrentio.", + "installed_badge": "✓ NAINSTALOVÁNO", + "promo_title": "⚡ Potřebujete službu Debrid?", + "promo_desc": "Získejte TorBox pro bleskové 4K streamování bez sekání. Prémiové cachované torrenty a okamžité stahování.", + "promo_button": "Získat předplatné TorBox", + "service_label": "Debrid služba *", + "api_key_label": "API klíč *", + "sorting_label": "Řazení", + "exclude_qualities": "Vyloučit kvality", + "priority_languages": "Prioritní jazyky", + "max_results": "Max. výsledků", + "additional_options": "Další možnosti", + "no_download_links": "Nezobrazovat odkazy ke stažení", + "no_debrid_catalog": "Nezobrazovat debrid katalog", + "install_button": "Instalovat Torrentio", + "installing": "Instalace...", + "update_button": "Aktualizovat konfiguraci", + "updating": "Aktualizace...", + "remove_button": "Odebrat Torrentio", + "error_api_required": "API klíč je vyžadován", + "error_api_required_desc": "Pro instalaci Torrentio zadejte prosím API klíč své debrid služby.", + "success_installed": "Doplněk Torrentio byl úspěšně nainstalován!", + "success_removed": "Doplněk Torrentio byl úspěšně odebrán", + "alert_disconnect_title": "Odpojit Torbox", + "alert_disconnect_msg": "Opravdu chcete odpojit Torbox? Tímto dojde k odebrání doplňku a vymazání vašeho uloženého API klíče." + }, + "home_screen": { + "title": "Nastavení domovské obrazovky", + "changes_applied": "Změny byly aplikovány", + "display_options": "MOŽNOSTI ZOBRAZENÍ", + "show_hero": "Zobrazit hlavní sekci (Hero)", + "show_hero_desc": "Doporučený obsah v horní části", + "show_this_week": "Zobrazit sekci 'Tento týden'", + "show_this_week_desc": "Nové epizody z aktuálního týdne", + "select_catalogs": "Vybrat katalogy", + "all_catalogs": "Všechny katalogy", + "selected": "vybráno", + "hero_layout": "Rozvržení hlavní sekce", + "layout_legacy": "Původní (Legacy)", + "layout_carousel": "Karousel", + "layout_appletv": "Apple TV", + "layout_desc": "Banner na celou šířku, posuvné karty nebo styl Apple TV", + "featured_source": "Zdroj doporučeného obsahu", + "using_catalogs": "Používání katalogů", + "manage_selected_catalogs": "Spravovat vybrané katalogy", + "dynamic_bg": "Dynamické pozadí hlavní sekce", + "dynamic_bg_desc": "Rozmazaný banner za karouselem", + "performance_note": "Může ovlivnit výkon na slabších zařízeních.", + "posters": "Plakáty", + "show_titles": "Zobrazit názvy", + "poster_size": "Velikost plakátu", + "poster_corners": "Rohy plakátu", + "size_small": "Malé", + "size_medium": "Střední", + "size_large": "Velké", + "corners_square": "Ostré", + "corners_rounded": "Zaoblené", + "corners_pill": "Výrazně zaoblené", + "about_these_settings": "O TOMTO NASTAVENÍ", + "about_desc": "Tato nastavení určují, jak se obsah zobrazuje na vaší domovské obrazovce. Změny se projeví okamžitě bez nutnosti restartu aplikace.", + "hero_catalogs": { + "title": "Katalogy hlavní sekce", + "select_all": "Vybrat vše", + "clear_all": "Zrušit výběr", + "info": "Vyberte, které katalogy se mají zobrazovat v hlavní sekci (Hero). Pokud není vybrán žádný, použijí se všechny katalogy. Po dokončení nezapomeňte stisknout Uložit.", + "settings_saved": "Nastavení uloženo", + "error_load": "Nepodařilo se načíst katalogy", + "movies": "Filmy", + "tv_shows": "TV pořady" + } + }, + "calendar": { + "title": "Kalendář", + "loading": "Načítání kalendáře...", + "no_scheduled_episodes": "Žádné naplánované epizody", + "check_back_later": "Zkuste to prosím později", + "showing_episodes_for": "Zobrazení epizod pro {{date}}", + "show_all_episodes": "Zobrazit všechny epizody", + "no_episodes_for": "Žádné epizody pro {{date}}", + "no_upcoming_found": "Nebyly nalezeny žádné nadcházející epizody", + "add_series_desc": "Přidejte seriály do své knihovny, abyste zde viděli jejich nadcházející epizody" + }, + "mdblist": { + "title": "Zdroje hodnocení", + "status_disabled": "MDBList zakázán", + "status_active": "API klíč je aktivní", + "status_required": "Vyžadován API klíč", + "status_disabled_desc": "Funkcionalita MDBList je aktuálně vypnutá.", + "status_active_desc": "Hodnocení z MDBList jsou povolena.", + "status_required_desc": "Pro povolení hodnocení přidejte svůj klíč níže.", + "enable_toggle": "Povolit MDBList", + "enable_toggle_desc": "Zapnout/vypnout veškerou funkcionalitu MDBList", + "api_section": "API klíč", + "placeholder": "Vložte svůj MDBList API klíč", + "save": "Uložit", + "clear": "Smazat klíč", + "rating_providers": "Poskytovatelé hodnocení", + "rating_providers_desc": "Vyberte, která hodnocení se mají v aplikaci zobrazovat", + "how_to": "Jak získat API klíč", + "step_1": "Přihlaste se na", + "step_1_link": "webové stránce MDBList", + "step_2": "Přejděte do sekce", + "step_2_settings": "Settings", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Vygenerujte nový klíč a zkopírujte jej.", + "go_to_website": "Přejít na MDBList", + "alert_clear_title": "Smazat API klíč", + "alert_clear_msg": "Opravdu chcete odebrat uložený API klíč?", + "success_saved": "API klíč byl úspěšně uložen.", + "error_empty": "API klíč nemůže být prázdný.", + "error_save": "Při ukládání došlo k chybě. Zkuste to prosím znovu.", + "api_key_empty_error": "API klíč nemůže být prázdný.", + "success_cleared": "API klíč byl úspěšně smazán", + "error_clear": "Nepodařilo se smazat API klíč" + }, + "notification": { + "title": "Nastavení oznámení", + "section_general": "Obecné", + "enable_notifications": "Povolit oznámení", + "section_types": "Typy oznámení", + "new_episodes": "Nové epizody", + "upcoming_shows": "Nadcházející pořady", + "reminders": "Připomínky", + "section_timing": "Načasování oznámení", + "timing_desc": "Kdy chcete být upozorněni před vysíláním epizody?", + "hours_1": "1 hodina", + "hours_suffix": "hodin", + "section_status": "Stav oznámení", + "stats_upcoming": "Nadcházející", + "stats_this_week": "Tento týden", + "stats_total": "Celkem", + "sync_button": "Synchronizovat knihovnu a Trakt", + "syncing": "Synchronizace...", + "sync_desc": "Automaticky synchronizuje oznámení pro všechny pořady ve vaší knihovně a seznamu sledování/kolekci Trakt.", + "section_advanced": "Pokročilé", + "reset_button": "Resetovat všechna oznámení", + "test_button": "Testovací oznámení (5 s)", + "test_notification_in": "Oznámení za {{seconds}} s...", + "test_notification_text": "Oznámení se zobrazí za {{seconds}} sekund", + "alert_reset_title": "Resetovat oznámení", + "alert_reset_msg": "Tímto zrušíte všechna naplánovaná oznámení, ale nic neodstraníte z vaší knihovny. Jste si jisti?", + "alert_reset_success": "Všechna oznámení byla resetována", + "alert_sync_complete": "Synchronizace dokončena", + "alert_sync_msg": "Oznámení pro položky z vaší knihovny a Traktu byla úspěšně synchronizována.\n\nNaplánováno: {{upcoming}} nadcházejících epizod\nTento týden: {{thisWeek}} epizod", + "alert_test_scheduled": "Testovací oznámení naplánováno k okamžitému spuštění" + }, + "backup": { + "title": "Zálohování a obnovení", + "options_title": "Možnosti zálohování", + "options_desc": "Vyberte, co chcete zahrnout do svých záloh", + "section_core": "Základní data", + "section_addons": "Doplňky a integrace", + "section_settings": "Nastavení a předvolby", + "library_label": "Knihovna", + "library_desc": "Vaše uložené filmy a seriály", + "watch_progress_label": "Průběh sledování", + "watch_progress_desc": "Pozice rozkoukaných pořadů", + "addons_label": "Doplňky", + "addons_desc": "Nainstalované doplňky Stremio", + "plugins_label": "Pluginy", + "plugins_desc": "Vlastní konfigurace scraperů", + "trakt_label": "Integrace Trakt", + "trakt_desc": "Synchronizační data a autentizační tokeny", + "app_settings_label": "Nastavení aplikace", + "app_settings_desc": "Motiv, předvolby a konfigurace", + "user_prefs_label": "Uživatelské předvolby", + "user_prefs_desc": "Pořadí doplňků a nastavení UI", + "catalog_settings_label": "Nastavení katalogu", + "catalog_settings_desc": "Filtry katalogu a preference", + "api_keys_label": "API klíče", + "api_keys_desc": "Klíče pro MDBList a OpenRouter", + "action_create": "Vytvořit zálohu", + "action_restore": "Obnovit ze zálohy", + "section_info": "O zálohování", + "info_text": "• Pomocí přepínačů výše přizpůsobte obsah zálohy\n• Soubory zálohy jsou uloženy lokálně ve vašem zařízení\n• Sdílejte zálohu pro přenos dat mezi zařízeními\n• Obnovení přepíše vaše aktuální data", + "alert_create_title": "Vytvořit zálohu", + "alert_no_content": "K zálohování nebyl vybrán žádný obsah.\n\nPovolte prosím alespoň jednu možnost v sekci Možnosti zálohování výše.", + "alert_backup_created_title": "Záloha vytvořena", + "alert_backup_created_msg": "Vaše záloha byla vytvořena a je připravena ke sdílení.", + "alert_backup_failed_title": "Zálohování selhalo", + "alert_restore_confirm_title": "Potvrdit obnovení", + "alert_restore_confirm_msg": "Tímto obnovíte svá data ze zálohy vytvořené dne {{date}}.\n\nTato akce přepíše vaše aktuální data. Opravdu chcete pokračovat?", + "alert_restore_complete_title": "Obnovení dokončeno", + "alert_restore_complete_msg": "Vaše data byla úspěšně obnovena. Restartujte prosím aplikaci, aby se projevily všechny změny.", + "alert_restore_failed_title": "Obnovení selhalo", + "restart_app": "Restartovat aplikaci", + "alert_restart_failed_title": "Restart selhal", + "alert_restart_failed_msg": "Nepodařilo se restartovat aplikaci. Zavřete a znovu otevřete aplikaci ručně, abyste viděli obnovená data." + }, + "updates": { + "title": "Aktualizace aplikace", + "status_checking": "Kontrola aktualizací...", + "status_available": "Aktualizace je k dispozici!", + "status_downloading": "Stahování aktualizace...", + "status_installing": "Instalace aktualizace...", + "status_success": "Aktualizace byla úspěšně nainstalována!", + "status_error": "Aktualizace selhala", + "status_ready": "Připraveno ke kontrole aktualizací", + "action_check": "Zkontrolovat aktualizace", + "action_install": "Instalovat aktualizaci", + "release_notes": "Poznámky k vydání:", + "version": "Verze:", + "last_checked": "Poslední kontrola:", + "current_version": "Aktuální verze:", + "current_release_notes": "Poznámky k aktuální verzi:", + "github_release": "GITHUB RELEASE", + "current": "Aktuální:", + "latest": "Nejnovější:", + "notes": "Poznámky:", + "view_release": "Zobrazit vydání", + "notification_settings": "NASTAVENÍ OZNÁMENÍ", + "ota_alerts_label": "Upozornění na OTA aktualizace", + "ota_alerts_desc": "Zobrazovat oznámení pro bezdrátové (over-the-air) aktualizace", + "major_alerts_label": "Upozornění na hlavní aktualizace", + "major_alerts_desc": "Zobrazovat oznámení pro nové verze aplikace na GitHubu", + "alert_disable_ota_title": "Zakázat upozornění na OTA aktualizace?", + "alert_disable_ota_msg": "Již nebudete dostávat automatická oznámení o OTA aktualizacích.\n\n⚠️ Varování: Používání nejnovější verze je důležité pro:\n• Opravy chyb a stabilitu\n• Nové funkce a vylepšení\n• Poskytování přesné zpětné vazby a hlášení o pádech\n\nAktualizace můžete stále kontrolovat ručně na této obrazovce.", + "alert_disable_major_title": "Zakázat upozornění na hlavní aktualizace?", + "alert_disable_major_msg": "Již nebudete dostávat oznámení o hlavních aktualizacích aplikace, které vyžadují přeinstalaci.\n\n⚠️ Varování: Hlavní aktualizace často obsahují:\n• Kritické bezpečnostní záplaty\n• Zásadní změny vyžadující přeinstalaci\n• Důležité opravy kompatibility\n\nAktualizace můžete stále kontrolovat ručně.", + "warning_note": "Ponechání upozornění zapnutých zajišťuje, že obdržíte opravy chyb a budete moci poskytovat přesná hlášení o pádech.", + "disable": "Zakázat", + "alert_no_update_to_install": "Není k dispozici žádná aktualizace k instalaci", + "alert_install_failed": "Instalace aktualizace selhala", + "alert_no_update_title": "Žádná aktualizace", + "alert_update_applied_msg": "Aktualizace bude aplikována při příštím spuštění aplikace" + }, + "player": { + "title": "Video přehrávač", + "section_selection": "VÝBĚR PŘEHRÁVAČE", + "internal_title": "Vestavěný přehrávač", + "internal_desc": "Použít výchozí video přehrávač aplikace", + "vlc_title": "VLC", + "vlc_desc": "Otevírat streamy v přehrávači VLC", + "infuse_title": "Infuse", + "infuse_desc": "Otevírat streamy v přehrávači Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Otevírat streamy v přehrávači OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Otevírat streamy v přehrávači VidHub", + "infuse_live_title": "Infuse LiveContainer", + "infuse_live_desc": "Otevírat streamy v přehrávači Infuse přes LiveContainer", + "external_title": "Externí přehrávač", + "external_desc": "Otevírat streamy ve vašem preferovaném přehrávači", + "section_playback": "MOŽNOSTI PŘEHRÁVÁNÍ", + "skip_intro_settings_title": "Přeskočit úvod", + "powered_by_introdb": "Poháněno IntroDB", + "autoplay_title": "Automaticky přehrát první stream", + "autoplay_desc": "Automaticky spustit první stream zobrazený v seznamu.", + "resume_title": "Vždy navázat", + "resume_desc": "Přeskočit dotaz na pokračování a automaticky navázat tam, kde jste skončili (pokud zbývá více než 15 %).", + "engine_title": "Jádro video přehrávače", + "engine_desc": "Auto používá ExoPlayer s MPV jako zálohou. Některé formáty jako Dolby Vision a HDR nemusí být v MPV podporovány, proto je doporučeno nastavení Auto.", + "decoder_title": "Režim dekodéru", + "decoder_desc": "Způsob dekódování videa. Auto je doporučeno pro nejlepší rovnováhu.", + "gpu_title": "GPU vykreslování", + "gpu_desc": "GPU-Next nabízí lepší správu HDR a barev.", + "external_downloads_title": "Externí přehrávač pro stažené", + "external_downloads_desc": "Přehrávat stažený obsah ve vašem preferovaném externím přehrávači.", + "restart_required": "Vyžadován restart", + "restart_msg_decoder": "Restartujte prosím aplikaci, aby se změna dekodéru projevila.", + "restart_msg_gpu": "Restartujte prosím aplikaci, aby se změna režimu GPU projevila.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV záloha", + "option_mpv": "MPV", + "option_mpv_desc": "Pouze MPV", + "option_auto_desc_decoder": "Nejlepší rovnováha", + "option_sw": "SW", + "option_sw_desc": "Softwarové", + "option_hw": "HW", + "option_hw_desc": "Hardwarové", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Plné HW", + "option_gpu_desc": "Standardní", + "option_gpu_next_desc": "Pokročilé" + }, + "plugins": { + "title": "Pluginy", + "enable_title": "Povolit pluginy", + "enable_desc": "Povolit jádro pluginů pro vyhledávání externích zdrojů médií", + "repo_config_title": "Konfigurace repozitáře", + "repo_config_desc": "Spravujte externí repozitáře pluginů. Jednotlivé repozitáře můžete zapnout nebo vypnout níže.", + "your_repos": "Repozitáře", + "your_repos_desc": "Konfigurace externích zdrojů pro pluginy.", + "add_repo_button": "Přidat repozitář", + "refresh": "Obnovit", + "remove": "Odebrat", + "enabled": "Povoleno", + "disabled": "Zakázáno", + "updating": "Aktualizace...", + "success": "Úspěch", + "error": "Chyba", + "alert_repo_added": "Repozitář byl přidán a pluginy úspěšně načteny", + "alert_repo_saved": "URL repozitáře byla úspěšně uložena", + "alert_repo_refreshed": "Repozitář byl úspěšně obnoven", + "alert_invalid_url": "Neplatný formát URL", + "alert_plugins_cleared": "Všechny pluginy byly odebrány", + "alert_cache_cleared": "Mezipaměť repozitáře byla úspěšně vymazána", + "unknown": "Neznámý", + "active": "Aktivní", + "available": "Dostupný", + "platform_disabled": "Platforma zakázána", + "limited": "Omezený", + "clear_all": "Smazat všechny pluginy", + "clear_all_desc": "Opravdu chcete odebrat všechny nainstalované pluginy? Tuto akci nelze vrátit zpět.", + "clear_cache": "Vymazat mezipaměť repozitáře", + "clear_cache_desc": "Tímto odstraníte uloženou URL repozitáře a vymažete všechna data pluginů v mezipaměti. Budete muset znovu zadat URL repozitáře.", + "add_new_repo": "Přidat nový repozitář", + "available_plugins": "Dostupné pluginy ({{count}})", + "placeholder": "Hledat pluginy...", + "all": "Vše", + "filter_all": "Všechny typy", + "filter_movies": "Filmy", + "filter_tv": "TV pořady", + "enable_all": "Povolit vše", + "disable_all": "Zakázat vše", + "no_plugins_found": "Nebyly nalezeny žádné pluginy", + "no_plugins_available": "Nejsou k dispozici žádné pluginy", + "no_match_desc": "Žádné pluginy neodpovídají dotazu \"{{query}}\". Zkuste jiný termín.", + "configure_repo_desc": "Pro zobrazení dostupných pluginů nejprve nakonfigurujte repozitář výše.", + "clear_search": "Vymazat hledání", + "no_external_player": "Žádný externí přehrávač", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "Vložte svůj ShowBox UI token", + "save": "Uložit", + "clear": "Smazat", + "additional_settings": "Další nastavení", + "enable_url_validation": "Povolit validaci URL", + "url_validation_desc": "Ověřit URL médií před jejich vrácením (může zpomalit výsledky, ale zvyšuje spolehlivost)", + "group_streams": "Seskupovat zdroje pluginů", + "group_streams_desc": "Pokud je povoleno, zdroje jsou seskupeny podle repozitáře. Pokud je zakázáno, každý plugin se zobrazuje jako samostatný poskytovatel.", + "sort_quality": "Řadit primárně podle kvality", + "sort_quality_desc": "Pokud je povoleno, zdroje jsou nejdříve řazeny podle kvality. Dostupné pouze při zapnutém seskupování.", + "show_logos": "Zobrazovat loga pluginů", + "show_logos_desc": "Zobrazit loga pluginů vedle odkazů na média na obrazovce zdrojů.", + "quality_filtering": "Filtrování kvality", + "quality_filtering_desc": "Vyloučit konkrétní rozlišení videa z výsledků hledání. Klepnutím na kvalitu ji vyloučíte.", + "excluded_qualities": "Vyloučené kvality:", + "language_filtering": "Filtrování jazyků", + "language_filtering_desc": "Vyloučit konkrétní jazyky z výsledků hledání. Klepnutím na jazyk jej vyloučíte.", + "note": "Poznámka:", + "language_filtering_note": "Tento filtr se vztahuje pouze na poskytovatele, kteří uvádějí informace o jazyce.", + "excluded_languages": "Vyloučené jazyky:", + "about_title": "O pluginech", + "about_desc_1": "Pluginy jsou modulární komponenty, které adaptují obsah z různých externích protokolů. Běží lokálně na vašem zařízení.", + "about_desc_2": "Pluginy označené jako „Omezené“ mohou vyžadovat specifické externí konfigurace.", + "help_title": "Nastavení pluginů", + "help_step_1": "1. **Povolit pluginy** - Zapněte hlavní vypínač", + "help_step_2": "2. **Přidat repozitář** - Zadejte platnou URL repozitáře", + "help_step_3": "3. **Obnovit repozitář** - Načtěte dostupné pluginy", + "help_step_4": "4. **Aktivovat** - Povolte pluginy, které chcete používat", + "got_it": "Rozumím!", + "repo_format_hint": "Formát: https://raw.githubusercontent.com/uzivatel/repo/refs/heads/hlavni", + "cancel": "Zrušit", + "add": "Přidat" + }, + "theme": { + "title": "Motivy aplikace", + "select_theme": "VYBRAT MOTIV", + "create_custom": "Vytvořit vlastní motiv", + "options": "MOŽNOSTI", + "use_dominant_color": "Použít dominantní barvu z plakátu", + "categories": { + "all": "Všechny motivy", + "dark": "Tmavé motivy", + "colorful": "Barevné", + "custom": "Moje motivy" + }, + "editor": { + "theme_name_placeholder": "Název motivu", + "save": "Uložit", + "primary": "Primární", + "secondary": "Sekundární", + "background": "Pozadí", + "invalid_name_title": "Neplatný název", + "invalid_name_msg": "Zadejte prosím platný název motivu" + }, + "alerts": { + "delete_title": "Smazat motiv", + "delete_msg": "Opravdu chcete smazat motiv „{{name}}“?", + "ok": "OK", + "delete": "Smazat", + "cancel": "Zrušit", + "back": "Nastavení" + } + }, + "legal": { + "title": "Právní informace", + "intro_title": "Povaha aplikace", + "intro_text": "Nuvio je přehrávač médií a nástroj pro správu metadat. Funguje výhradně jako klientské rozhraní pro prohlížení veřejně dostupných metadat (filmy, seriály atd.) a přehrávání souborů poskytnutých uživatelem nebo doplňky třetích stran. Nuvio samo o sobě nehostuje, neukládá, nedistribuuje ani neindexuje žádný mediální obsah.", + "extensions_title": "Pluginy třetích stran", + "extensions_text": "Nuvio využívá rozšiřitelnou architekturu, která uživatelům umožňuje instalovat pluginy třetích stran. Tyto pluginy jsou vyvíjeny nezávislými vývojáři. Nemáme žádnou kontrolu nad obsahem, legalitou nebo funkcionalitou jakéhokoli pluginu třetí strany.", + "user_resp_title": "Odpovědnost uživatele", + "user_resp_text": "Uživatelé jsou výhradně odpovědní za pluginy, které instalují, a obsah, ke kterému přistupují. Používáním této aplikace souhlasíte s tím, že zajistíte, abyste měli zákonné právo na přístup k obsahu. Vývojáři aplikace Nuvio neschvalují ani nepodporují porušování autorských práv.", + "dmca_title": "Autorská práva a DMCA", + "dmca_text": "Respektujeme práva duševního vlastnictví ostatních. Protože Nuvio nehostuje žádný obsah, nemůžeme jej z internetu odstranit. Pokud se však domníváte, že samotné rozhraní aplikace porušuje vaše práva, kontaktujte nás.", + "warranty_title": "Bez záruky", + "warranty_text": "Tento software je poskytován „tak, jak je“, bez jakékoli záruky. Autoři ani držitelé autorských práv v žádném případě nenesou odpovědnost za jakékoli nároky, škody nebo jiné závazky vyplývající z používání tohoto softwaru." + }, + "plugin_tester": { + "title": "Tester pluginů", + "subtitle": "Spouštějte scrapery a sledujte logy v reálném čase", + "tabs": { + "individual": "Individuální", + "repo": "Tester repozitáře", + "code": "Kód", + "logs": "Logy", + "results": "Výsledky" + }, + "common": { + "error": "Chyba", + "success": "Úspěch", + "movie": "Film", + "tv": "TV", + "tmdb_id": "TMDB ID", + "season": "Série", + "episode": "Epizoda", + "running": "Běží…", + "run_test": "Spustit test", + "play": "Přehrát", + "done": "Hotovo", + "test": "Test", + "testing": "Testování…" + }, + "individual": { + "load_from_url": "Načíst z URL", + "load_from_url_desc": "Vložte přímou URL z GitHubu nebo lokální IP a klepněte na stáhnout.", + "enter_url_error": "Zadejte prosím URL", + "code_loaded": "Kód načten z URL", + "fetch_error": "Chyba načítání: {{message}}", + "no_code_error": "Žádný kód ke spuštění", + "plugin_code": "Kód pluginu", + "focus_editor": "Aktivovat editor kódu", + "code_placeholder": "// Zde vložte kód pluginu...", + "test_parameters": "Parametry testu", + "no_logs": "Zatím žádné logy. Spusťte test pro zobrazení výstupu.", + "no_streams": "Zatím nebyly nalezeny žádné streamy.", + "streams_found": "Nalezen {{count}} stream", + "streams_found_plural": "Nalezeno {{count}} streamů", + "tap_play_hint": "Klepnutím na Přehrát otestujete stream v nativním přehrávači.", + "unnamed_stream": "Nepojmenovaný stream", + "quality": "Kvalita: {{quality}}", + "size": "Velikost: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Hlavičky: {{count}} vlastní hlavička/y", + "find_placeholder": "Hledat v kódu…", + "edit_code_title": "Upravit kód", + "no_url_stream_error": "Pro tento stream nebyla nalezena žádná URL" + }, + "repo": { + "title": "Tester repozitáře", + "description": "Načtěte repozitář (lokální URL nebo GitHub raw) a otestujte každého poskytovatele.", + "enter_repo_url_error": "Zadejte prosím URL repozitáře", + "invalid_url_title": "Neplatná URL", + "invalid_url_msg": "Použijte přímou GitHub raw URL nebo lokální http(s) URL.\n\nPříklad:\nhttps://raw.githubusercontent.com/uzivatel/nuvio-providers/refs/heads/main", + "manifest_build_error": "Nepodařilo se sestavit URL manifestu ze vstupu", + "manifest_fetch_error": "Nepodařilo se načíst manifest", + "repo_manifest_fetch_error": "Nepodařilo se načíst manifest repozitáře", + "missing_filename": "V manifestu chybí název souboru", + "scraper_build_error": "Nepodařilo se sestavit URL scraperu", + "download_scraper_error": "Nepodařilo se stáhnout scraper", + "test_failed": "Test selhal", + "test_parameters": "Parametry testu repozitáře", + "test_parameters_desc": "Tyto parametry se používají pouze pro Tester repozitáře.", + "using_info": "Použito: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Použito: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Poskytovatelé", + "repository_default": "Repozitář", + "providers_count": "{{count}} poskytovatelů", + "fetch_hint": "Načtěte repozitář pro zobrazení seznamu poskytovatelů.", + "test_all": "Otestovat vše", + "status_running": "BĚŽÍ", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "CHYBA", + "status_idle": "NEČINNÝ", + "tried_url": "Zkoušeno: {{url}}", + "provider_logs": "Logy poskytovatele", + "no_logs_captured": "Nebyly zachyceny žádné logy." + } + } +} From 830fc0977413a7476b91868d075dc41afee10a07 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:49:23 +0100 Subject: [PATCH 058/285] Add Czech language support to resources --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 8dec2f8c..92372bb0 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -14,6 +14,7 @@ import sr from './locales/sr.json'; import he from './locales/he.json'; import bg from './locales/bg.json'; import pl from './locales/pl.json'; +import cs from './locales/cs.json'; export const resources = { en: { translation: en }, @@ -31,4 +32,5 @@ export const resources = { he: { translation: he }, bg: { translation: bg }, pl: { translation: pl }, + cs: { translation: cs }, }; From 879380778801454d54387f86df21c19d612f9802 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:50:31 +0100 Subject: [PATCH 059/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 29471b73..04b2c278 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -14,4 +14,5 @@ export const LOCALES = [ { code: 'he', key: 'hebrew' } { code: 'bg', key: 'bulgarian' } { code: 'pl', key: 'polish' } + { code: 'cs', key: 'czech' } ]; From 10a016409fdf6abc78d661b1b0dc4ece4cf5a0a1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:52:52 +0100 Subject: [PATCH 060/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index c6597850..6e84eafb 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -639,6 +639,7 @@ "hebrew": "العبرية", "bulgarian": "بلغاري", "polish": "بولندي", + "czech": "التشيكية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 9d1dc93733571883203c61d4223a68cb4734be3a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:54:07 +0100 Subject: [PATCH 061/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index 8931e805..f47137d0 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -644,6 +644,7 @@ "hebrew": "Иврит", "bulgarian": "български", "polish": "Полски", + "czech": "Чешки", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1420,3 +1421,4 @@ } } + From 3e7c6c36094c57c86e14d5155f346235554cee97 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:55:15 +0100 Subject: [PATCH 062/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 44118404..8f49bb40 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -639,6 +639,7 @@ "hebrew": "Hebräisch", "bulgarian": "Bulgarisch", "polish": "Polnisch", + "czech": "Tschechisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From 7cfcdc9f030736ad72429c5a9556ce14694f6687 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:55:57 +0100 Subject: [PATCH 063/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 70e2e576..c6267b67 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -644,6 +644,7 @@ "hebrew": "Hebrew", "bulgarian": "Bulgarian", "polish": "Polish", + "czech": "Czech", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 4b1b6830b937638c96d741a18b8eceb387d6fcf6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:57:55 +0100 Subject: [PATCH 064/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 31a84da2..7468c2af 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -639,6 +639,7 @@ "hebrew": "Hebreo", "bulgarian": "Búlgaro", "polish": "Polaco", + "czech": "Checo", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From c25a1a934df78b7156fff64140084e389bd2060d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:58:49 +0100 Subject: [PATCH 065/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 6e4b5151..4e15889d 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -639,6 +639,7 @@ "hebrew": "Hébreu", "bulgarian": "Bulgare", "polish": "Polonais", + "czech": "Tchèque", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From bcc7ca72264e2505d49db0b88955766b71669855 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 19:59:43 +0100 Subject: [PATCH 066/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 4c1b5202..487bc86f 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -644,6 +644,7 @@ "hebrew": "עברית", "bulgarian": "בולגרית", "polish": "פולנית", + "czech": "צ'כית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1421,3 +1422,4 @@ } + From 98412343e3be9cc28ba0058624ae293e76ae0ed8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:00:40 +0100 Subject: [PATCH 067/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index f576618b..dc009965 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -639,6 +639,7 @@ "hebrew": "इब्रानी", "bulgarian": "बुल्गारियाई", "polish": "पोलिश", + "czech": "चेक", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From c4687cc3e79acfe80e2090eb5c48ac6f2cb51fda Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:01:44 +0100 Subject: [PATCH 068/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index d7de9a0f..5c9460ad 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -639,6 +639,7 @@ "hebrew": "Ebraico", "bulgarian": "Bulgaro", "polish": "Polacco", + "czech": "Ceco", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 8ccd3a5a9cdda65159b689ad42ce2f1ad1d97e58 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:02:49 +0100 Subject: [PATCH 069/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 5fc43f21..6e606d4e 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -644,6 +644,7 @@ "hebrew": "Hebrajski", "bulgarian": "Bułgarski", "polish": "Polski", + "czech": "Czeski", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1420,3 +1421,4 @@ } } + From dfeb7bee79efe58677d65a44c40d8374fb6d1c9f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:03:31 +0100 Subject: [PATCH 070/285] Update pl.json From ddc3b4e06cfcb6772e2261e5ff2be0d919cb540c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:04:14 +0100 Subject: [PATCH 071/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 3c52824c..68f2a0ff 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -653,6 +653,7 @@ "hebrew": "Hebraico", "bulgarian": "Búlgaro", "polish": "Polonês", + "czech": "Theco", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From d5fe93d6882fc6d90a72536b9d23ee2ffa208251 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:04:57 +0100 Subject: [PATCH 072/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index e2721073..2725eff7 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -651,6 +651,7 @@ "hebrew": "Hebraico", "bulgarian": "Búlgaro", "polish": "Polonês", + "czech": "Theco", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 957f014d0ee8c80eb711c5a68cd5ca1c5d7cd572 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:05:48 +0100 Subject: [PATCH 073/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index c913c641..74081146 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -638,6 +638,7 @@ "hebrew": "Хебрејски", "bulgarian": "бугарски", "polish": "Пољски", + "czech": "Чешки", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1418,3 +1419,4 @@ + From 9834d974bcc6c548dffee38d11b1b24ccb08df23 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 20:06:33 +0100 Subject: [PATCH 074/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 4696d60e..22bc4e91 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -639,6 +639,7 @@ "hebrew": "希伯来语", "bulgarian": "保加利亚语", "polish": "波兰语", + "czech": "捷克语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From 5f65c48c02b6ef7f2ccdfc9beeab070c5d83fa46 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 21:56:02 +0100 Subject: [PATCH 075/285] Added Turkish lang --- src/i18n/locales/tr.json | 1423 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1423 insertions(+) create mode 100644 src/i18n/locales/tr.json diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json new file mode 100644 index 00000000..9e453618 --- /dev/null +++ b/src/i18n/locales/tr.json @@ -0,0 +1,1423 @@ +{ + "common": { + "loading": "Yükleniyor...", + "cancel": "İptal", + "save": "Kaydet", + "delete": "Sil", + "edit": "Düzenle", + "search": "Ara", + "error": "Hata", + "success": "Başarılı", + "ok": "Tamam", + "unknown": "Bilinmiyor", + "retry": "Yeniden Dene", + "try_again": "Tekrar Dene", + "go_back": "Geri Git", + "settings": "Ayarlar", + "close": "Kapat", + "enable": "Etkinleştir", + "disable": "Devre Dışı Bırak", + "show_more": "Daha Fazla Göster", + "show_less": "Daha Az Göster", + "load_more": "Daha Fazla Yükle", + "unknown_date": "Bilinmeyen tarih", + "anonymous_user": "Anonim Kullanıcı", + "time": { + "now": "Az önce", + "minutes_ago": "{{count}}dk önce", + "hours_ago": "{{count}}sa önce", + "days_ago": "{{count}}g önce" + }, + "days_short": { + "sun": "Paz", + "mon": "Pzt", + "tue": "Sal", + "wed": "Çar", + "thu": "Per", + "fri": "Cum", + "sat": "Cmt" + }, + "email": "E-posta", + "status": "Durum" + }, + "home": { + "categories": { + "movies": "Filmler", + "series": "Diziler", + "channels": "Kanallar" + }, + "movies": "Filmler", + "tv_shows": "TV Programları", + "load_more_catalogs": "Daha Fazla Katalog Yükle", + "no_content": "İçerik mevcut değil", + "add_catalogs": "Katalog Ekle", + "sign_in_available": "Giriş Yapılabilir", + "sign_in_desc": "Ayarlar → Hesap kısmından dilediğiniz zaman giriş yapabilirsiniz", + "view_all": "Tümünü Gör", + "this_week": "Bu Hafta", + "upcoming": "Yakında", + "recently_released": "Yeni Çıkanlar", + "no_scheduled_episodes": "Planlanmış Bölümü Olmayan Diziler", + "check_back_later": "Sonra tekrar kontrol edin", + "continue_watching": "İzlemeye Devam Et", + "up_next": "Sıradaki", + "up_next_caps": "SIRADAKİ", + "released": "Yayınlandı", + "new": "Yeni", + "tba": "Açıklanacak", + "new_episodes": "{{count}} Yeni Bölüm", + "season_short": "S{{season}}", + "episode_short": "B{{episode}}", + "season": "Sezon {{season}}", + "episode": "Bölüm {{episode}}", + "movie": "Film", + "series": "Dizi", + "tv_show": "TV Programı", + "percent_watched": "%{{percent}} izlendi", + "view_details": "Detayları Gör", + "remove": "Kaldır", + "play": "Oynat", + "play_now": "Şimdi Oynat", + "resume": "Devam Et", + "info": "Bilgi", + "more_info": "Daha Fazla Bilgi", + "my_list": "Listem", + "save": "Kaydet", + "saved": "Kaydedildi", + "retry": "Yeniden Dene", + "install_addons": "Eklentileri Yükle", + "settings": "Ayarlar", + "no_featured_content": "Öne Çıkan İçerik Yok", + "couldnt_load_featured": "Öne çıkan içerik yüklenemedi", + "no_featured_desc": "Katalog içeren eklentiler yükleyin veya ayarlardan içerik kaynağını değiştirin.", + "load_error_desc": "Öne çıkan içerik getirilirken bir sorun oluştu. Lütfen bağlantınızı kontrol edip tekrar deneyin.", + "no_featured_available": "Kullanılabilir öne çıkan içerik yok", + "no_description": "Açıklama mevcut değil" + }, + "navigation": { + "home": "Ana Sayfa", + "library": "Kütüphane", + "search": "Ara", + "downloads": "İndirmeler", + "settings": "Ayarlar" + }, + "search": { + "title": "Ara", + "recent_searches": "Son Aramalar", + "discover": "Keşfet", + "movies": "Filmler", + "tv_shows": "TV Programları", + "select_catalog": "Katalog Seç", + "all_genres": "Tüm Türler", + "discovering": "İçerik keşfediliyor...", + "show_more": "Daha Fazla Göster ({{count}})", + "no_content_found": "İçerik bulunamadı", + "try_different": "Farklı bir tür veya katalog deneyin", + "select_catalog_desc": "Keşfetmek için bir katalog seçin", + "tap_catalog_desc": "Başlamak için yukarıdaki katalog çipine dokunun", + "placeholder": "Film, dizi ara...", + "keep_typing": "Yazmaya devam edin...", + "type_characters": "Aramak için en az 2 karakter yazın", + "no_results": "Sonuç bulunamadı", + "try_keywords": "Farklı anahtar kelimeler deneyin veya yazımınızı kontrol edin", + "select_type": "Tür Seç", + "browse_movies": "Film kataloglarına göz at", + "browse_tv": "TV dizisi kataloglarına göz at", + "select_genre": "Tür Seç", + "show_all_content": "Tüm içeriği göster", + "genres_count": "{{count}} tür" + }, + "library": { + "title": "Kütüphane", + "watched": "İzlendi", + "continue": "Devam Et", + "watchlist": "İzleme Listesi", + "collection": "Koleksiyon", + "rated": "Puanlananlar", + "items": "öğe", + "trakt_collections": "Trakt koleksiyonları", + "trakt_collection": "Trakt Koleksiyonu", + "no_trakt": "Trakt koleksiyonu yok", + "no_trakt_desc": "Trakt kullanmaya başladığınızda koleksiyonlarınız burada görünecektir", + "load_collections": "Koleksiyonları Yükle", + "empty_folder": "{{folder}} klasöründe içerik yok", + "empty_folder_desc": "Bu koleksiyon boş", + "refresh": "Yenile", + "no_movies": "Henüz film yok", + "no_series": "Henüz TV dizisi yok", + "no_content": "Henüz içerik yok", + "add_content_desc": "Burada görmek için kütüphanenize içerik ekleyin", + "find_something": "İzleyecek bir şeyler bul", + "removed_from_library": "Kütüphaneden Kaldırıldı", + "item_removed": "Öğe kütüphanenizden kaldırıldı", + "failed_update_library": "Kütüphane güncellenemedi", + "unable_remove": "Öğe kütüphaneden kaldırılamıyor", + "marked_watched": "İzlendi Olarak İşaretlendi", + "marked_unwatched": "İzlenmedi Olarak İşaretlendi", + "item_marked_watched": "Öğe izlendi olarak işaretlendi", + "item_marked_unwatched": "Öğe izlenmedi olarak işaretlendi", + "failed_update_watched": "İzlendi durumu güncellenemedi", + "unable_update_watched": "İzlendi durumu güncellenemiyor", + "added_to_library": "Kütüphaneye Eklendi", + "item_added": "Yerel kütüphanenize eklendi", + "add_to_library": "Kütüphaneye Ekle", + "remove_from_library": "Kütüphaneden Kaldır", + "mark_watched": "İzlendi Olarak İşaretle", + "mark_unwatched": "İzlenmedi Olarak İşaretle", + "share": "Paylaş", + "add_to_watchlist": "Trakt İzleme Listesine Ekle", + "remove_from_watchlist": "Trakt İzleme Listesinden Kaldır", + "added_to_watchlist": "İzleme Listesine Eklendi", + "added_to_watchlist_desc": "Trakt izleme listenize eklendi", + "removed_from_watchlist": "İzleme Listesinden Kaldırıldı", + "removed_from_watchlist_desc": "Trakt izleme listenizden kaldırıldı", + "add_to_collection": "Trakt Koleksiyonuna Ekle", + "remove_from_collection": "Trakt Koleksiyonundan Kaldır", + "added_to_collection": "Koleksiyona Eklendi", + "added_to_collection_desc": "Trakt koleksiyonunuza eklendi", + "removed_from_collection": "Koleksiyondan Kaldırıldı", + "removed_from_collection_desc": "Trakt koleksiyonunuzdan kaldırıldı" + }, + "metadata": { + "unable_to_load": "İçerik Yüklenemedi", + "error_code": "Hata Kodu: {{code}}", + "content_not_found": "İçerik bulunamadı", + "content_not_found_desc": "Bu içerik mevcut değil veya kaldırılmış olabilir.", + "server_error": "Sunucu hatası", + "server_error_desc": "Sunucu geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin.", + "bad_gateway": "Hatalı ağ geçidi", + "bad_gateway_desc": "Sunucu sorun yaşıyor. Lütfen daha sonra tekrar deneyin.", + "service_unavailable": "Hizmet kullanılamıyor", + "service_unavailable_desc": "Hizmet şu anda bakım nedeniyle kapalı. Lütfen daha sonra tekrar deneyin.", + "too_many_requests": "Çok fazla istek", + "too_many_requests_desc": "Çok fazla istek yapıyorsunuz. Lütfen biraz bekleyip tekrar deneyin.", + "request_timeout": "İstek zaman aşımı", + "request_timeout_desc": "İstek çok uzun sürdü. Lütfen tekrar deneyin.", + "network_error": "Ağ hatası", + "network_error_desc": "Lütfen internet bağlantınızı kontrol edip tekrar deneyin.", + "auth_error": "Kimlik doğrulama hatası", + "auth_error_desc": "Lütfen hesap ayarlarınızı kontrol edip tekrar deneyin.", + "access_denied": "Erişim reddedildi", + "access_denied_desc": "Bu içeriğe erişim izniniz yok.", + "connection_error": "Bağlantı hatası", + "streams_unavailable": "Yayınlar kullanılamıyor", + "streams_unavailable_desc": "Yayın kaynakları şu anda kullanılamıyor. Lütfen daha sonra tekrar deneyin.", + "unknown_error": "Bilinmeyen hata", + "something_went_wrong": "Bir şeyler yanlış gitti. Lütfen tekrar deneyin.", + "cast": "Oyuncular", + "more_like_this": "Benzer İçerikler", + "collection": "Koleksiyon", + "episodes": "Bölümler", + "seasons": "Sezonlar", + "posters": "Afişler", + "banners": "Bannerlar", + "specials": "Özeller", + "season_number": "Sezon {{number}}", + "episode_count": "{{count}} Bölüm", + "episode_count_plural": "{{count}} Bölüm", + "no_episodes": "Bölüm mevcut değil", + "no_episodes_for_season": "Sezon {{season}} için bölüm mevcut değil", + "episodes_not_released": "Bölümler henüz yayınlanmamış olabilir", + "no_description": "Açıklama mevcut değil", + "episode_label": "BÖLÜM {{number}}", + "watch_again": "Tekrar İzle", + "completed": "Tamamlandı", + "play_episode": "Oynat S{{season}}E{{episode}}", + "play": "Oynat", + "watched": "İzlendi", + "watched_on_trakt": "Trakt'ta izlendi", + "synced_with_trakt": "Trakt ile senkronize edildi", + "saved": "Kaydedildi", + "director": "Yönetmen", + "directors": "Yönetmenler", + "creator": "Oluşturan", + "creators": "Oluşturanlar", + "production": "Yapım", + "network": "Kanal", + "mark_watched": "İzlendi Olarak İşaretle", + "mark_unwatched": "İzlenmedi Olarak İşaretle", + "marking": "İşaretleniyor...", + "removing": "Kaldırılıyor...", + "unmark_season": "Sezonu İzlenmedi Yap {{season}}", + "mark_season": "Sezonu İzlendi Yap {{season}}", + "resume": "Devam Et", + "spoiler_warning": "Spoiler Uyarısı", + "spoiler_warning_desc": "Bu yorum spoiler içeriyor. Görmek istediğinize emin misiniz?", + "cancel": "İptal", + "reveal_spoilers": "Spoiler'ı Göster", + "movie_details": "Film Detayları", + "show_details": "Program Detayları", + "tagline": "Slogan", + "status": "Durum", + "release_date": "Yayın Tarihi", + "runtime": "Süre", + "budget": "Bütçe", + "revenue": "Hasılat", + "origin_country": "Menşei Ülke", + "original_language": "Orijinal Dil", + "first_air_date": "İlk Yayın Tarihi", + "last_air_date": "Son Yayın Tarihi", + "total_episodes": "Toplam Bölüm", + "episode_runtime": "Bölüm Süresi", + "created_by": "Oluşturan", + "backdrop_gallery": "Arka Plan Galerisi", + "loading_episodes": "Bölümler yükleniyor...", + "no_episodes_available": "Bölüm mevcut değil", + "play_next": "Sıradakini Oynat S{{season}}E{{episode}}", + "play_next_episode": "Sıradaki Bölümü Oynat", + "save": "Kaydet", + "percent_watched": "%{{percent}} izlendi", + "percent_watched_trakt": "%{{percent}} izlendi (Trakt'ta %{{traktPercent}})", + "synced_with_trakt_progress": "Trakt ile senkronize edildi", + "using_trakt_progress": "Trakt ilerlemesi kullanılıyor", + "added_to_collection_hero": "Koleksiyona Eklendi", + "added_to_collection_desc_hero": "Trakt koleksiyonunuza eklendi", + "removed_from_collection_hero": "Koleksiyondan Kaldırıldı", + "removed_from_collection_desc_hero": "Trakt koleksiyonunuzdan kaldırıldı", + "mark_as_watched": "İzlendi Olarak İşaretle", + "mark_as_unwatched": "İzlenmedi Olarak İşaretle" + }, + "cast": { + "biography": "Biyografi", + "known_for": "Bilindiği Yapımlar", + "personal_info": "Kişisel Bilgiler", + "born_in": "{{place}} doğumlu", + "filmography": "Filmografi", + "also_known_as": "Ayrıca Şöyle Bilinir", + "no_info_available": "Ek bilgi mevcut değil", + "as_character": "{{character}} rolünde", + "loading_details": "Detaylar yükleniyor...", + "years_old": "{{age}} yaşında", + "view_filmography": "Filmografiyi Görüntüle", + "filter": "Filtrele", + "sort_by": "Sırala", + "sort_popular": "Popüler", + "sort_latest": "En Yeni", + "sort_upcoming": "Gelecek", + "upcoming_badge": "GELECEK", + "coming_soon": "Yakında", + "filmography_count": "Filmografi • {{count}} yapım", + "loading_filmography": "Filmografi yükleniyor...", + "load_more_remaining": "Daha Fazla Yükle ({{count}} kalan)", + "alert_error_title": "Hata", + "alert_error_message": "\"{{title}}\" yüklenemedi. Lütfen daha sonra tekrar deneyin.", + "alert_ok": "Tamam", + "no_upcoming": "Bu oyuncu için gelecek bir yapım yok", + "no_content": "Bu oyuncu için içerik yok", + "no_movies": "Bu oyuncu için film yok", + "no_tv": "Bu oyuncu için TV programı yok" + }, + "comments": { + "title": "Trakt Yorumları", + "spoiler_warning": "⚠️ Bu yorum spoiler içerir. Görmek için dokunun.", + "spoiler": "Spoiler", + "contains_spoilers": "Spoiler içerir", + "reveal": "Göster", + "vip": "VIP", + "unavailable": "Yorumlar kullanılamıyor", + "no_comments": "Henüz Trakt yorumu yok", + "not_in_database": "Bu içerik henüz Trakt veritabanında olmayabilir", + "check_trakt": "Trakt'ı Kontrol Et" + }, + "trailers": { + "title": "Fragmanlar", + "official_trailers": "Resmi Fragmanlar", + "official_trailer": "Resmi Fragman", + "teasers": "Tanıtımlar", + "teaser": "Tanıtım", + "clips_scenes": "Klipler ve Sahneler", + "clip": "Klip", + "featurettes": "Özel Videolar", + "featurette": "Özel Video", + "behind_the_scenes": "Kamera Arkası", + "no_trailers": "Fragman mevcut değil", + "unavailable": "Fragman Kullanılamıyor", + "unavailable_desc": "Bu fragman şu an yüklenemedi. Lütfen daha sonra tekrar deneyin.", + "unable_to_play": "Fragman oynatılamıyor. Lütfen tekrar deneyin.", + "watch_on_youtube": "YouTube'da İzle" + }, + "catalog": { + "no_content_found": "İçerik bulunamadı", + "no_content_filters": "Seçili filtreler için içerik bulunamadı", + "loading_content": "İçerik yükleniyor...", + "back": "Geri", + "in_theaters": "Vizyondakiler", + "all": "Hepsi", + "failed_tmdb": "TMDB'den içerik yüklenemedi", + "movies": "Filmler", + "tv_shows": "TV Programları", + "channels": "Kanallar" + }, + "streams": { + "back_to_episodes": "Bölümlere Dön", + "back_to_info": "Bilgiye Dön", + "fetching_from": "Şuradan getiriliyor:", + "no_sources_available": "Yayın kaynağı mevcut değil", + "add_sources_desc": "Lütfen ayarlardan yayın kaynakları ekleyin", + "add_sources": "Kaynak Ekle", + "finding_streams": "Uygun yayınlar aranıyor...", + "finding_best_stream": "Otomatik oynatma için en iyi yayın aranıyor...", + "still_fetching": "Hala yayınlar aranıyor...", + "no_streams_available": "Yayın mevcut değil", + "starting_best_stream": "En iyi yayın başlatılıyor...", + "loading_more_sources": "Daha fazla kaynak yükleniyor..." + }, + "player_ui": { + "via": "{{name}} aracılığıyla", + "audio_tracks": "Ses Kanalları", + "no_audio_tracks": "Ses kanalı mevcut değil", + "playback_speed": "Oynatma Hızı", + "on_hold": "Beklemede", + "playback_error": "Oynatma Hatası", + "unknown_error": "Oynatma sırasında bilinmeyen bir hata oluştu.", + "copy_error": "Hata detaylarını kopyala", + "copied_to_clipboard": "Panoya kopyalandı", + "dismiss": "Kapat", + "continue_watching": "İzlemeye Devam Et", + "start_over": "Baştan Başlat", + "resume": "Devam Et", + "change_source": "Kaynağı Değiştir", + "switching_source": "Kaynak değiştiriliyor...", + "no_sources_found": "Kaynak bulunamadı", + "sources": "Kaynaklar", + "finding_sources": "Kaynaklar aranıyor...", + "unknown_source": "Bilinmeyen Kaynak", + "sources_limited": "Sağlayıcı hataları nedeniyle kaynaklar sınırlı olabilir.", + "episodes": "Bölümler", + "specials": "Özeller", + "season": "Sezon {{season}}", + "stream": "Yayın {{number}}", + "subtitles": "Altyazılar", + "built_in": "Yerleşik", + "addons": "Eklentiler", + "style": "Stil", + "none": "Yok", + "search_online_subtitles": "Çevrimiçi Altyazı Ara", + "preview": "Önizleme", + "quick_presets": "Hızlı Şablonlar", + "default": "Varsayılan", + "yellow": "Sarı", + "high_contrast": "Yüksek Kontrast", + "large": "Büyük", + "core": "Temel", + "font_size": "Yazı Tipi Boyutu", + "show_background": "Arka Planı Göster", + "advanced": "Gelişmiş", + "position": "Konum", + "text_color": "Metin Rengi", + "align": "Hizala", + "bottom_offset": "Alt Kenar Boşluğu", + "background_opacity": "Arka Plan Saydamlığı", + "text_shadow": "Metin Gölgesi", + "on": "Açık", + "off": "Kapalı", + "outline_color": "Kenarlık Rengi", + "outline": "Kenarlık", + "outline_width": "Kenarlık Genişliği", + "letter_spacing": "Harf Boşluğu", + "line_height": "Satır Yüksekliği", + "timing_offset": "Zamanlama Kaydırma (s)", + "visual_sync": "Görsel Senkronizasyon", + "timing_hint": "Gerekirse senkronizasyon için altyazıları öne (-) veya arkaya (+) alın.", + "reset_defaults": "Varsayılana sıfırla", + "mark_intro_start": "Giriş Başlangıcını İşaretle", + "mark_intro_end": "Giriş Bitişini İşaretle", + "intro_start_marked": "Giriş başlangıcı işaretlendi", + "intro_submitted": "Giriş başarıyla gönderildi", + "intro_submit_failed": "Giriş gönderilemedi" + }, + "downloads": { + "title": "İndirmeler", + "no_downloads": "Henüz İndirme Yok", + "no_downloads_desc": "İndirilen içerikler çevrimdışı izlemek için burada görünecek", + "explore": "İçerikleri Keşfet", + "path_copied": "Yol Kopyalandı", + "path_copied_desc": "Yerel dosya yolu panoya kopyalandı", + "copied": "Kopyalandı", + "incomplete": "İndirme Tamamlanmadı", + "incomplete_desc": "İndirme henüz bitmedi", + "not_available": "Kullanılamaz", + "not_available_desc": "Yerel dosya yolu sadece indirme bittikten sonra kullanılabilir.", + "status_downloading": "İndiriliyor", + "status_completed": "Tamamlandı", + "status_paused": "Duraklatıldı", + "status_error": "Hata", + "status_queued": "Sırada", + "status_unknown": "Bilinmiyor", + "provider": "Sağlayıcı", + "streaming_playlist_warning": "Oynatılamayabilir - akış listesi", + "remaining": "kaldı", + "not_ready": "İndirme hazır değil", + "not_ready_desc": "Lütfen indirme bitene kadar bekleyin.", + "filter_all": "Hepsi", + "filter_active": "Aktif", + "filter_done": "Bitenler", + "filter_paused": "Duraklatılanlar", + "no_filter_results": "{{filter}} indirme yok", + "try_different_filter": "Farklı bir filtre seçmeyi deneyin", + "limitations_title": "İndirme Kısıtlamaları", + "limitations_msg": "• 1MB'dan küçük dosyalar genellikle M3U8 akış listeleridir ve çevrimdışı izlemek için indirilemezler. Bunlar sadece çevrimiçi akışla çalışır ve gerçek video içeriğini değil, video parçalarının bağlantılarını içerir.", + "remove_title": "İndirmeyi Kaldır", + "remove_confirm": "\"{{title}}\"{{season_episode}} kaldırılsın mı?", + "cancel": "İptal", + "remove": "Kaldır" + }, + "addons": { + "title": "Eklentiler", + "reorder_mode": "Yeniden Sıralama Modu", + "reorder_info": "Üstteki eklentiler içerik yüklenirken daha yüksek önceliğe sahiptir", + "add_addon_placeholder": "Eklenti URL'si", + "add_button": "Eklenti Ekle", + "my_addons": "Eklentilerim", + "community_addons": "Topluluk Eklentileri", + "no_addons": "Yüklü eklenti yok", + "uninstall_title": "Eklentiyi Kaldır", + "uninstall_message": "{{name}} eklentisini kaldırmak istediğinize emin misiniz?", + "uninstall_button": "Kaldır", + "install_success": "Eklenti başarıyla yüklendi", + "install_error": "Eklenti yüklenemedi", + "load_error": "Eklentiler yüklenemedi", + "fetch_error": "Eklenti detayları alınamadı", + "invalid_url": "Lütfen geçerli bir eklenti URL'si girin", + "configure": "Yapılandır", + "version": "Sürüm: {{version}}", + "installed_addons": "YÜKLÜ EKLENTİLER", + "reorder_drag_title": "SIRALAMAK İÇİN EKLENTİLERİ SÜRÜKLEYİN", + "install": "Yükle", + "config_unavailable_title": "Yapılandırma Kullanılamıyor", + "config_unavailable_msg": "Bu eklenti için yapılandırma URL'si belirlenemedi.", + "cannot_open_config_title": "Yapılandırma Açılamıyor", + "cannot_open_config_msg": "Yapılandırma URL'si ({{url}}) açılamıyor. Eklentinin bir yapılandırma sayfası olmayabilir.", + "description": "Açıklama", + "supported_types": "Desteklenen Türler", + "catalogs": "Kataloglar", + "no_description": "Açıklama mevcut değil", + "overview": "GENEL BAKIŞ", + "no_categories": "Kategori yok", + "pre_installed": "ÖNCEDEN YÜKLENMİŞ" + }, + "trakt": { + "title": "Trakt Ayarları", + "settings_title": "Trakt Ayarları", + "connect_title": "Trakt ile Bağlan", + "connect_desc": "İzleme geçmişinizi, izleme listenizi ve koleksiyonunuzu Trakt.tv ile senkronize edin", + "sign_in": "Trakt ile Giriş Yap", + "sign_out": "Oturumu Kapat", + "sign_out_confirm": "Trakt hesabınızdan çıkış yapmak istediğinize emin misiniz?", + "joined": "{{date}} tarihinde katıldı", + "sync_settings_title": "Senkronizasyon Ayarları", + "sync_info": "Trakt'a bağlandığında, tam geçmiş doğrudan API üzerinden senkronize edilir ve yerel depolamaya yazılmaz. İzlemeye Devam Et listeniz küresel Trakt ilerlemenizi yansıtır.", + "auto_sync_label": "Oynatma ilerlemesini otomatik senkronize et", + "auto_sync_desc": "İzleme ilerlemesini otomatik olarak Trakt'a senkronize et", + "import_history_label": "İzleme geçmişini içe aktar", + "import_history_desc": "İzleme geçmişinizi ve ilerlemenizi Trakt'tan içe aktarmak için \"Şimdi Senkronize Et\" butonunu kullanın", + "sync_now_button": "Şimdi Senkronize Et", + "display_settings_title": "Görüntüleme Ayarları", + "show_comments_label": "Trakt Yorumlarını Göster", + "show_comments_desc": "Mevcut olduğunda meta veri ekranlarında Trakt yorumlarını görüntüle", + "maintenance_title": "Bakım Yapılıyor", + "maintenance_unavailable": "Trakt Kullanılamıyor", + "maintenance_desc": "Trakt entegrasyonu bakım nedeniyle geçici olarak durduruldu. Bakım tamamlanana kadar tüm senkronizasyon ve kimlik doğrulama işlemleri devre dışıdır.", + "maintenance_button": "Hizmet Bakımda", + "auth_success_title": "Başarıyla Bağlanıldı", + "auth_success_msg": "Trakt hesabınız başarıyla bağlandı.", + "auth_error_title": "Kimlik Doğrulama Hatası", + "auth_error_msg": "Trakt ile kimlik doğrulama tamamlanamadı.", + "auth_error_generic": "Kimlik doğrulama sırasında bir hata oluştu.", + "sign_out_error": "Trakt oturumu kapatılamadı.", + "sync_complete_title": "Senkronizasyon Tamamlandı", + "sync_success_msg": "İzleme ilerlemeniz Trakt ile başarıyla senkronize edildi.", + "sync_error_msg": "Senkronizasyon başarısız oldu. Lütfen tekrar deneyin." + }, + "simkl": { + "title": "Simkl Ayarları", + "settings_title": "Simkl Ayarları", + "connect_title": "Simkl ile Bağlan", + "connect_desc": "İzleme geçmişinizi senkronize edin ve ne izlediğinizi takip edin", + "sign_in": "Simkl ile Giriş Yap", + "sign_out": "Bağlantıyı Kes", + "sign_out_confirm": "Simkl bağlantısını kesmek istediğinize emin misiniz?", + "syncing_desc": "İzlediğiniz öğeler Simkl ile senkronize ediliyor.", + "auth_success_title": "Başarıyla Bağlanıldı", + "auth_success_msg": "Simkl hesabınız başarıyla bağlandı.", + "auth_error_title": "Kimlik Doğrulama Hatası", + "auth_error_msg": "Simkl ile kimlik doğrulama tamamlanamadı.", + "auth_error_generic": "Kimlik doğrulama sırasında bir hata oluştu.", + "sign_out_error": "Simkl bağlantısı kesilemedi.", + "config_error_title": "Yapılandırma Hatası", + "config_error_msg": "Ortam değişkenlerinde Simkl Client ID eksik.", + "conflict_title": "Çakışma", + "conflict_msg": "Trakt bağlıyken Simkl'e bağlanamazsınız. Lütfen önce Trakt bağlantısını kesin.", + "disclaimer": "Nuvio'nun Simkl ile bir bağlantısı yoktur." + }, + "tmdb_settings": { + "title": "TMDb Ayarları", + "metadata_enrichment": "Meta Veri Zenginleştirme", + "metadata_enrichment_desc": "Daha iyi detaylar ve bilgiler için içerik meta verilerinizi TMDb verileriyle geliştirin.", + "enable_enrichment": "Zenginleştirmeyi Etkinleştir", + "enable_enrichment_desc": "Oyuncular, sertifikalar, logolar/afişler ve yapım bilgileri için eklenti meta verilerini TMDb ile güçlendirir.", + "localized_text": "Yerelleştirilmiş Metin", + "localized_text_desc": "Başlıkları ve açıklamaları TMDb'den tercih ettiğiniz dilde getirin.", + "language": "Dil", + "change": "Değiştir", + "logo_preview": "Logo Önizleme", + "logo_preview_desc": "Önizleme, yerelleştirilmiş logoların seçilen dilde nasıl görüneceğini gösterir.", + "example": "Örnek:", + "no_logo": "Logo mevcut değil", + "enrichment_options": "Zenginleştirme Seçenekleri", + "enrichment_options_desc": "Hangi verilerin TMDb'den getirileceğini kontrol edin. Devre dışı bırakılan seçenekler varsa eklenti verilerini kullanacaktır.", + "cast_crew": "Oyuncular ve Ekip", + "cast_crew_desc": "Profil fotoğraflarıyla birlikte oyuncular, yönetmenler, yazarlar", + "title_description": "Başlık ve Açıklama", + "title_description_desc": "TMDb yerelleştirilmiş başlığını ve genel bakış metnini kullan", + "title_logos": "Başlık Logoları", + "title_logos_desc": "Yüksek kaliteli başlık tasarım görselleri", + "banners_backdrops": "Bannerlar ve Arka Planlar", + "banners_backdrops_desc": "Yüksek çözünürlüklü arka plan görselleri", + "certification": "İçerik Sertifikasyonu", + "certification_desc": "Yaş derecelendirmeleri (PG-13, R, TV-MA, vb.)", + "recommendations": "Öneriler", + "recommendations_desc": "Benzer içerik önerileri", + "episode_data": "Bölüm Verileri", + "episode_data_desc": "TV şovları için bölüm küçük resimleri, bilgiler ve yedek veriler", + "season_posters": "Sezon Afişleri", + "season_posters_desc": "Sezona özel afiş görselleri", + "production_info": "Yapım Bilgisi", + "production_info_desc": "Logolarıyla birlikte kanallar ve yapım şirketleri", + "movie_details": "Film Detayları", + "movie_details_desc": "Bütçe, hasılat, süre, slogan", + "tv_details": "TV Programı Detayları", + "tv_details_desc": "Durum, sezon sayısı, kanallar, yaratıcılar", + "movie_collections": "Film Koleksiyonları", + "movie_collections_desc": "Seri filmler (Marvel, Star Wars, vb.)", + "api_configuration": "API Yapılandırması", + "api_configuration_desc": "Gelişmiş işlevsellik için TMDb API erişiminizi yapılandırın.", + "custom_api_key": "Özel API Anahtarı", + "custom_api_key_desc": "Daha iyi performans ve özel limitler için kendi TMDb API anahtarınızı kullanın.", + "custom_key_active": "Özel API anahtarı aktif", + "api_key_required": "API anahtarı gerekli", + "api_key_placeholder": "TMDb API anahtarınızı yapıştırın (v3)", + "how_to_get_key": "TMDb API anahtarı nasıl alınır?", + "built_in_key_msg": "Şu anda yerleşik API anahtarı kullanılıyor. Daha iyi performans için kendi anahtarınızı kullanmayı düşünebilirsiniz.", + "cache_size": "Önbellek Boyutu", + "clear_cache": "Önbelleği Temizle", + "cache_days": "Performansı artırmak için TMDB yanıtları 7 gün boyunca önbelleğe alınır", + "choose_language": "Dil Seçin", + "choose_language_desc": "TMDb içeriği için tercih ettiğiniz dili seçin", + "popular": "Popüler", + "all_languages": "Tüm Diller", + "search_results": "Arama Sonuçları", + "no_languages_found": "\"{{query}}\" için dil bulunamadı", + "clear_search": "Aramayı Temizle", + "clear_cache_title": "TMDB Önbelleğini Temizle", + "clear_cache_msg": "Bu işlem tüm önbelleğe alınmış TMDB verilerini ({{size}}) temizleyecektir. Önbellek yeniden oluşturulana kadar yükleme geçici olarak yavaşlayabilir.", + "clear_cache_success": "TMDB önbelleği başarıyla temizlendi.", + "clear_cache_error": "Önbellek temizlenemedi.", + "clear_api_key_title": "API Anahtarını Temizle", + "clear_api_key_msg": "Özel API anahtarınızı kaldırıp varsayılana dönmek istediğinize emin misiniz?", + "clear_api_key_success": "API anahtarı başarıyla temizlendi", + "clear_api_key_error": "API anahtarı temizlenemedi", + "empty_api_key": "API Anahtarı boş olamaz.", + "invalid_api_key": "Geçersiz API anahtarı. Lütfen kontrol edip tekrar deneyin.", + "save_error": "Kaydetme sırasında bir hata oluştu. Lütfen tekrar deneyin.", + "using_builtin_key": "Şimdi yerleşik TMDb API anahtarı kullanılıyor.", + "using_custom_key": "Şimdi özel TMDb API anahtarınız kullanılıyor.", + "enter_custom_key": "Lütfen özel TMDb API anahtarınızı girin ve kaydedin.", + "key_verified": "API anahtarı doğrulandı ve başarıyla kaydedildi." + }, + "settings": { + "language": "Dil", + "select_language": "Dil Seçin", + "english": "İngilizce", + "portuguese": "Portekizce", + "portuguese_br": "Portekizce (Brezilya)", + "portuguese_pt": "Portekizce (Portekiz)", + "german": "Almanca", + "arabic": "Arapça", + "spanish": "İspanyolca", + "french": "Fransızca", + "italian": "İtalyanca", + "croatian": "Hırvatça", + "chinese": "Çince (Basitleştirilmiş)", + "hindi": "Hintçe", + "serbian": "Sırpça", + "hebrew": "İbranice", + "bulgarian": "Bulgarca", + "polish": "Polonyaca", + "czech": "Çekçe", + "turkish": "Türkçe", + "account": "Hesap", + "content_discovery": "İçerik ve Keşif", + "appearance": "Görünüm", + "integrations": "Entegrasyonlar", + "playback": "Oynatma", + "backup_restore": "Yedekle ve Geri Yükle", + "updates": "Güncellemeler", + "about": "Hakkında", + "developer": "Geliştirici", + "cache": "Önbellek", + "title": "Ayarlar", + "settings_title": "Ayarlar", + "sign_in_sync": "Senkronizasyon için giriş yapın", + "add_catalogs_sources": "Eklentiler, kataloglar ve kaynaklar", + "player_trailers_downloads": "Oynatıcı, fragmanlar, indirmeler", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Güncellemeleri kontrol et", + "clear_mdblist_cache": "MDBList Önbelleğini Temizle", + "cache_management": "ÖNBELLEK YÖNETİMİ", + "downloads_counter": "indirme ve artıyor", + "made_with_love": "Tapframe ve arkadaşları tarafından ❤️ ile yapıldı", + "sections": { + "information": "BİLGİ", + "account": "HESAP", + "theme": "TEMA", + "layout": "DÜZEN", + "sources": "KAYNAKLAR", + "catalogs": "KATALOGLAR", + "discovery": "KEŞİF", + "metadata": "META VERİ", + "ai_assistant": "AI ASİSTANI", + "video_player": "VİDEO OYNATICI", + "audio_subtitles": "SES VE ALTYAZI", + "media": "MEDYA", + "notifications": "BİLDİRİMLER", + "testing": "TEST", + "danger_zone": "TEHLİKELİ BÖLGE" + }, + "items": { + "legal": "Yasal ve Sorumluluk Reddi", + "privacy_policy": "Gizlilik Politikası", + "report_issue": "Sorun Bildir", + "version": "Sürüm", + "contributors": "Katkıda Bulunanlar", + "view_contributors": "Tüm katkıda bulunanları gör", + "theme": "Tema", + "episode_layout": "Bölüm Düzeni", + "streams_backdrop": "Yayın Arka Planı", + "streams_backdrop_desc": "Mobil yayınlarda bulanık arka plan göster", + "addons": "Eklentiler", + "installed": "yüklü", + "debrid_integration": "Debrid Entegrasyonu", + "debrid_desc": "Torbox'ı bağla", + "plugins": "Eklentiler", + "plugins_desc": "Eklentileri ve depoları yönet", + "catalogs": "Kataloglar", + "active": "aktif", + "home_screen": "Ana Ekran", + "home_screen_desc": "Düzen ve içerik", + "continue_watching": "İzlemeye Devam Et", + "continue_watching_desc": "Önbellek ve oynatma davranışı", + "show_discover": "Keşfet Bölümünü Göster", + "show_discover_desc": "Aramada keşif içeriğini görüntüle", + "mdblist": "MDBList", + "mdblist_connected": "Bağlı", + "mdblist_desc": "Puanlar ve incelemeler eklemek için etkinleştir", + "simkl": "Simkl", + "simkl_connected": "Bağlı", + "simkl_desc": "İzlediklerini takip et", + "tmdb": "TMDB", + "tmdb_desc": "Meta veri ve logo kaynağı sağlayıcısı", + "openrouter": "OpenRouter API", + "openrouter_connected": "Bağlı", + "openrouter_desc": "AI sohbetini etkinleştirmek için API anahtarınızı ekleyin", + "video_player": "Video Oynatıcı", + "built_in": "Yerleşik", + "external": "Harici", + "preferred_audio": "Tercih Edilen Ses Dili", + "preferred_subtitle": "Tercih Edilen Altyazı Dili", + "subtitle_source": "Altyazı Kaynak Önceliği", + "auto_select_subs": "Altyazıları Otomatik Seç", + "auto_select_subs_desc": "Tercihlerinize uygun altyazıları otomatik olarak seç", + "show_trailers": "Fragmanları Göster", + "show_trailers_desc": "Hero bölümünde fragmanları görüntüle", + "enable_downloads": "İndirmeleri Etkinleştir", + "enable_downloads_desc": "İndirmeler sekmesini göster ve yayınları kaydetmeyi etkinleştir", + "notifications": "Bildirimler", + "notifications_desc": "Bölüm hatırlatıcıları", + "developer_tools": "Geliştirici Araçları", + "developer_tools_desc": "Test ve hata ayıklama seçenekleri", + "test_onboarding": "Başlangıç Rehberini Test Et", + "reset_onboarding": "Başlangıç Rehberini Sıfırla", + "test_announcement": "Duyuruyu Test Et", + "test_announcement_desc": "Yenilikler katmanını göster", + "reset_campaigns": "Kampanyaları Sıfırla", + "reset_campaigns_desc": "Kampanya gösterimlerini temizle", + "clear_all_data": "Tüm Verileri Temizle", + "clear_all_data_desc": "Tüm ayarları ve önbelleğe alınmış verileri sıfırla" + }, + "options": { + "horizontal": "Yatay", + "vertical": "Dikey", + "internal_first": "Önce Dahili", + "internal_first_desc": "Önce gömülü altyazıları, sonra haricileri tercih et", + "external_first": "Önce Harici", + "external_first_desc": "Önce eklenti altyazılarını, sonra gömülüleri tercih et", + "any_available": "Herhangi Biri", + "any_available_desc": "Mevcut olan ilk altyazı kanalını kullan" + }, + "clear_data_desc": "Bu işlem tüm ayarları sıfırlayacak ve tüm önbelleği temizleyecektir. Emin misiniz?", + "app_updates": "Uygulama Güncellemeleri", + "about_nuvio": "Nuvio Hakkında" + }, + "privacy": { + "title": "Gizlilik ve Veri", + "settings_desc": "Telemetri ve veri toplama ayarlarını kontrol edin", + "info_title": "Gizliliğiniz Önemlidir", + "info_description": "Hangi verilerin toplanıp paylaşılacağını kontrol edin. Analitikler varsayılan olarak kapalıdır ve hata raporları varsayılan olarak anonimdir.", + "analytics_enabled_title": "Analitik Etkinleştirildi", + "analytics_enabled_message": "Uygulamayı geliştirmeye yardımcı olmak için kullanım verileri toplanacaktır. Bunu istediğiniz zaman devre dışı bırakabilirsiniz.", + "disable_error_reporting_title": "Hata Bildirimi Devre Dışı Bırakılsın mı?", + "disable_error_reporting_message": "Hata bildirimini devre dışı bırakmak, yaşadığınız çökmelerden veya sorunlardan haberdar olamayacağımız anlamına gelir. Bu, hataları düzeltme yeteneğimizi etkileyebilir.", + "enable_session_replay_title": "Oturum Tekrarı Etkinleştirilsin mi?", + "enable_session_replay_message": "Oturum tekrarı, ne olduğunu anlamamıza yardımcı olmak için hatalar oluştuğunda ekranınızı kaydeder. Bu, ekranınızdaki görünür içeriği yakalayabilir.", + "enable_pii_title": "PII Koleksiyonu Etkinleştirilsin mi?", + "enable_pii_message": "Bu, IP adresi ve cihaz detayları gibi kişisel olarak tanımlanabilir bilgilerin toplanmasına izin verir. Bu veriler sorunları teşhis etmeye yardımcı olur ancak gizlilik maruziyetini artırır.", + "disable_all_title": "Tüm Telemetri Devre Dışı Bırakılsın mı?", + "disable_all_message": "Bu, tüm analitikleri, hata bildirimlerini ve oturum tekrarlarını devre dışı bırakacaktır. Uygulama kullanımı veya çökmeler hakkında herhangi bir veri almayacağız.", + "disable_all_button": "Hepsini Devre Dışı Bırak", + "all_disabled_title": "Tüm Telemetri Devre Dışı Bırakıldı", + "all_disabled_message": "Tüm veri toplama işlemleri devre dışı bırakıldı. Değişiklikler uygulama bir sonraki başlatıldığında geçerli olacaktır.", + "reset_title": "Önerilen Ayarlara Sıfırla", + "reset_message": "Gizlilik ayarları önerilen varsayılanlara sıfırlandı (hata bildirimi etkin, analitik devre dışı).", + "section_analytics": "ANALİTİK", + "analytics_title": "Kullanım Analitiği", + "analytics_description": "Anonim kullanım kalıplarını ve ekran görüntülerini topla", + "section_error_reporting": "HATA BİLDİRİMİ", + "error_reporting_title": "Çökme Raporları", + "error_reporting_description": "Kararlılığı artırmak için anonim çökme raporları gönder", + "session_replay_title": "Oturum Tekrarı", + "session_replay_description": "Hatalar oluştuğunda ekranı kaydet", + "pii_title": "Cihaz Bilgisini Dahil Et", + "pii_description": "Raporlarla birlikte IP adresi ve cihaz detaylarını gönder", + "section_quick_actions": "HIZLI EYLEMLER", + "disable_all": "Tüm Telemetriyi Kapat", + "disable_all_desc": "Tüm veri toplamayı kapat", + "reset_recommended": "Önerilene Sıfırla", + "reset_recommended_desc": "Hata bildirimi içeren gizlilik odaklı varsayılanlar", + "section_learn_more": "DAHA FAZLA BİLGİ", + "privacy_policy": "Gizlilik Politikası", + "current_settings": "Mevcut Ayarlar Özeti", + "summary_analytics": "Analitik", + "summary_errors": "Hata Raporları", + "summary_replay": "Oturum Tekrarı", + "summary_pii": "Cihaz Bilgisi", + "restart_note_detailed": "* Analitik ve hata bildirimi değişiklikleri anında geçerli olur. Oturum tekrarı ve PII ayarları uygulama yeniden başlatılmasını gerektirir." + }, + "ai_settings": { + "title": "AI Asistanı", + "info_title": "AI Destekli Sohbet", + "info_desc": "Gelişmiş yapay zeka kullanarak herhangi bir film veya TV dizisi bölümü hakkında sorular sorun. Konu, karakterler, temalar, trivia ve daha fazlası hakkında -tamamı kapsamlı TMDB verileriyle desteklenen- bilgiler edinin.", + "feature_1": "Bölüme özel bağlam ve analiz", + "feature_2": "Konu açıklamaları ve karakter içgörüleri", + "feature_3": "Kamera arkası trivia ve gerçekler", + "feature_4": "Kendi ücretsiz OpenRouter API anahtarınız", + "api_key_section": "OPENROUTER API ANAHTARI", + "api_key_label": "API Anahtarı", + "api_key_desc": "AI sohbet özelliklerini etkinleştirmek için OpenRouter API anahtarınızı girin", + "save_api_key": "API Anahtarını Kaydet", + "saving": "Kaydediliyor...", + "update": "Güncelle", + "remove": "Kaldır", + "get_free_key": "OpenRouter'dan Ücretsiz API Anahtarı Al", + "enable_chat": "AI Sohbeti Etkinleştir", + "enable_chat_desc": "Etkinleştirildiğinde, içerik sayfalarında AI'ya Sor butonu görünecektir.", + "chat_enabled": "AI Sohbet Etkin", + "chat_enabled_desc": "Artık filmler ve TV şovları hakkında sorular sorabilirsiniz. İçerik sayfalarındaki \"AI'ya Sor\" butonuna bakın!", + "how_it_works": "Nasıl çalışır?", + "how_it_works_desc": "• OpenRouter birden fazla AI modeline erişim sağlar\n• API anahtarınız gizli ve güvenli kalır\n• Ücretsiz katman cömert kullanım limitleri içerir\n• Belirli bölümler/filmler hakkında bağlamla sohbet edin\n• Detaylı analiz ve açıklamalar alın", + "error_invalid_key": "Lütfen geçerli bir API anahtarı girin", + "error_key_format": "OpenRouter API anahtarları \"sk-or-\" ile başlamalıdır", + "success_saved": "OpenRouter API anahtarı başarıyla kaydedildi!", + "error_save": "API anahtarı kaydedilemedi", + "confirm_remove_title": "API Anahtarını Kaldır", + "confirm_remove_msg": "OpenRouter API anahtarınızı kaldırmak istediğinize emin misiniz? Bu, AI sohbet özelliklerini devre dışı bırakacaktır.", + "success_removed": "API anahtarı başarıyla kaldırıldı", + "error_remove": "API anahtarı kaldırılamadı" + }, + "catalog_settings": { + "title": "Kataloglar", + "layout_phone": "KATALOG EKRANI DÜZENİ (TELEFON)", + "posters_per_row": "Satır başına afiş", + "auto": "Otomatik", + "show_titles": "Afiş Başlıklarını Göster", + "show_titles_desc": "Her afişin altında başlık metnini görüntüle", + "phone_only_hint": "Yalnızca telefonlar için geçerlidir. Tabletler uyarlanabilir düzeni korur.", + "catalogs_group": "Kataloglar", + "enabled_count": "{{total}} katalogdan {{enabled}} tanesi etkin", + "rename_hint": "Yeniden adlandırmak için bir kataloğa uzun basın", + "rename_modal_title": "Kataloğu Yeniden Adlandır", + "rename_placeholder": "Yeni katalog adını girin", + "error_save_name": "Özel ad kaydedilemedi." + }, + "continue_watching_settings": { + "title": "İzlemeye Devam Et", + "playback_behavior": "OYNATMA DAVRANIŞI", + "use_cached": "Önbelleğe Alınmış Yayınları Kullan", + "use_cached_desc": "Etkinleştirildiğinde, İzlemeye Devam Et öğelerine tıklamak, önceden oynatılan yayınları kullanarak oynatıcıyı doğrudan açar. Devre dışı bırakıldığında ise içerik ekranını açar.", + "open_metadata": "Meta Veri Ekranını Aç", + "open_metadata_desc": "Önbelleğe alınmış yayınlar devre dışı bırakıldığında, Yayınlar ekranı yerine Meta Veri ekranını açar. Bu, içerik detaylarını gösterir ve manuel yayın seçimine izin verir.", + "card_appearance": "KART GÖRÜNÜMÜ", + "card_style": "Kart Stili", + "card_style_desc": "İzlemeye Devam Et öğelerinin ana ekranda nasıl görüneceğini seçin", + "wide": "Geniş", + "poster": "Afiş", + "cache_settings": "ÖNBELLEK AYARLARI", + "cache_duration": "Yayın Önbellek Süresi", + "cache_duration_desc": "Önbelleğe alınmış yayın bağlantılarının süresi dolmadan ne kadar süre saklanacağı", + "important_note": "Önemli Not", + "important_note_text": "Tüm yayın bağlantıları tam önbellek süresi boyunca aktif kalmayabilir. Daha uzun önbellek süreleri süresi dolmuş bağlantılara neden olabilir. Önbelleğe alınmış bir bağlantı başarısız olursa, uygulama yeni yayınları getirmeye geri dönecektir.", + "how_it_works": "Nasıl çalışır?", + "how_it_works_cached": "• Yayınlar oynatıldıktan sonra seçtiğiniz süre boyunca önbelleğe alınır\n• Önbelleğe alınan yayınlar kullanılmadan önce doğrulanır\n• Önbellek geçersizse veya süresi dolmuşsa içerik ekranına döner\n• \"Önbelleğe Alınmış Yayınları Kullan\" doğrudan oynatıcı vs ekran navigasyonunu kontrol eder\n• \"Meta Veri Ekranını Aç\" seçeneği yalnızca önbelleğe alınmış yayınlar devre dışı bırakıldığında görünür", + "how_it_works_uncached": "• Önbelleğe alınmış yayınlar devre dışı bırakıldığında, İzlemeye Devam Et öğelerine tıklamak içerik ekranlarını açar\n• \"Meta Veri Ekranını Aç\" seçeneği hangi ekranın açılacağını kontrol eder\n• Meta Veri ekranı içerik detaylarını gösterir ve manuel yayın seçimine izin verir\n• Yayınlar ekranı hemen oynatma için mevcut yayınları gösterir", + "changes_saved": "Değişiklikler kaydedildi", + "min": "dk", + "hour": "saat", + "hours": "saat" + }, + "contributors": { + "title": "Katkıda Bulunanlar", + "special_mentions": "Özel Mansiyonlar", + "tab_contributors": "Katkıda Bulunanlar", + "tab_special": "Özel Mansiyonlar", + "tab_donors": "Bağışçılar", + "manager_role": "Topluluk Yöneticisi", + "manager_desc": "Nuvio için Discord ve Reddit topluluklarını yönetir", + "sponsor_role": "Sunucu Sponsoru", + "sponsor_desc": "Nuvio için sunucu altyapısına sponsor oldu", + "mod_role": "Discord Moderatörü", + "mod_desc": "Nuvio Discord topluluğunun yönetilmesine yardımcı olur", + "loading": "Yükleniyor...", + "discord_user": "Discord Kullanıcısı", + "contributions": "katkı", + "gratitude_title": "Her katkı için minnettarız", + "gratitude_desc": "Her kod satırı, hata raporu ve öneri Nuvio'yu herkes için daha iyi hale getirmeye yardımcı olur", + "special_thanks_title": "Özel Teşekkürler", + "special_thanks_desc": "Bu harika insanlar Nuvio topluluğunun devam etmesine ve sunucuların çevrimiçi kalmasına yardımcı oluyor", + "donors_desc": "İnşa ettiğimiz şeye inandığınız için teşekkür ederiz. Desteğiniz Nuvio'nun ücretsiz kalmasını ve sürekli gelişmesini sağlıyor.", + "latest_donations": "En Son", + "leaderboard": "Liderlik Tablosu", + "loading_donors": "Bağışçılar yükleniyor…", + "no_donors": "Henüz bağışçı yok", + "error_rate_limit": "GitHub API hız sınırı aşıldı. Lütfen daha sonra tekrar deneyin veya yenilemek için aşağı çekin.", + "error_failed": "Katkıda bulunanlar yüklenemedi. Lütfen internet bağlantınızı kontrol edin.", + "retry": "Tekrar Dene", + "no_contributors": "Katkıda bulunan bulunamadı", + "loading_contributors": "Katkıda bulunanlar yükleniyor..." + }, + "debrid": { + "title": "Debrid Entegrasyonu", + "description_torbox": "Torbox'ı entegre ederek 4K yüksek kaliteli yayınların ve yıldırım hızındaki hızların kilidini açın. Yayın deneyiminizi anında yükseltmek için aşağıya API Anahtarınızı girin.", + "description_torrentio": "Filmler ve TV şovları için torrent yayınları almak üzere Torrentio'yu yapılandırın. İçeriği yayınlamak için bir debrid hizmeti gereklidir.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Bağlı", + "status_disconnected": "Bağlantı Kesildi", + "enable_addon": "Eklentiyi Etkinleştir", + "disconnect_button": "Bağlantıyı Kes ve Kaldır", + "disconnect_loading": "Bağlantı kesiliyor...", + "account_info": "Hesap Bilgileri", + "plan": "Plan", + "plan_free": "Ücretsiz", + "plan_essential": "Essential ($3/ay)", + "plan_pro": "Pro ($10/ay)", + "plan_standard": "Standard ($5/ay)", + "plan_unknown": "Bilinmiyor", + "expires": "Sona Erme", + "downloaded": "İndirilen", + "status_active": "Aktif", + "connected_title": "✓ TorBox'a Bağlanıldı", + "connected_desc": "TorBox eklentiniz aktif ve premium yayınlar sağlıyor.", + "configure_title": "Eklentiyi Yapılandır", + "configure_desc": "Yayın deneyiminizi özelleştirin. Kaliteye göre sıralayın, dosya boyutlarını filtreleyin ve diğer entegrasyon ayarlarını yönetin.", + "open_settings": "Ayarları Aç", + "what_is_debrid": "Debrid Hizmeti Nedir?", + "enter_api_key": "API Anahtarınızı Girin", + "connect_button": "Bağlan ve Yükle", + "connecting": "Bağlanıyor...", + "unlock_speeds_title": "Premium Hızların Kilidini Açın", + "unlock_speeds_desc": "Sıfır ara belleğe alma ile önbelleğe alınmış yüksek kaliteli yayınlara erişmek için bir Torbox aboneliği edinin.", + "get_subscription": "Abonelik Al", + "powered_by": "Destekleyen", + "disclaimer_torbox": "Nuvio'nun hiçbir şekilde Torbox ile bağlantısı yoktur.", + "disclaimer_torrentio": "Nuvio'nun hiçbir şekilde Torrentio ile bağlantısı yoktur.", + "installed_badge": "✓ YÜKLENDİ", + "promo_title": "⚡ Bir Debrid Hizmetine mi İhtiyacınız Var?", + "promo_desc": "Sıfır ara belleğe alma ile yıldırım hızında 4K yayın için TorBox edinin. Premium önbelleğe alınmış torrentler ve anında indirmeler.", + "promo_button": "TorBox Aboneliği Al", + "service_label": "Debrid Hizmeti *", + "api_key_label": "API Anahtarı *", + "sorting_label": "Sıralama", + "exclude_qualities": "Kaliteleri Hariç Tut", + "priority_languages": "Öncelikli Diller", + "max_results": "Maksimum Sonuç", + "additional_options": "Ek Seçenekler", + "no_download_links": "İndirme bağlantılarını gösterme", + "no_debrid_catalog": "Debrid kataloğunu gösterme", + "install_button": "Torrentio Yükle", + "installing": "Yükleniyor...", + "update_button": "Yapılandırmayı Güncelle", + "updating": "Güncelleniyor...", + "remove_button": "Torrentio'yu Kaldır", + "error_api_required": "API Anahtarı Gerekli", + "error_api_required_desc": "Torrentio'yu yüklemek için lütfen debrid hizmeti API anahtarınızı girin.", + "success_installed": "Torrentio eklentisi başarıyla yüklendi!", + "success_removed": "Torrentio eklentisi başarıyla kaldırıldı", + "alert_disconnect_title": "Torbox Bağlantısını Kes", + "alert_disconnect_msg": "Torbox bağlantısını kesmek istediğinize emin misiniz? Bu işlem eklentiyi kaldıracak ve kaydedilmiş API anahtarınızı silecektir." + }, + "home_screen": { + "title": "Home Screen Settings", + "changes_applied": "Changes Applied", + "display_options": "DISPLAY OPTIONS", + "show_hero": "Show Hero Section", + "show_hero_desc": "Featured content at the top", + "show_this_week": "Show This Week Section", + "show_this_week_desc": "New episodes from current week", + "select_catalogs": "Select Catalogs", + "all_catalogs": "All catalogs", + "selected": "selected", + "hero_layout": "Hero Layout", + "layout_legacy": "Legacy", + "layout_carousel": "Carousel", + "layout_appletv": "Apple TV", + "layout_desc": "Full-width banner, swipeable cards, or Apple TV style", + "featured_source": "Featured Source", + "using_catalogs": "Using Catalogs", + "manage_selected_catalogs": "Manage selected catalogs", + "dynamic_bg": "Dynamic Hero Background", + "dynamic_bg_desc": "Blurred banner behind carousel", + "performance_note": "May impact performance on low-end devices.", + "posters": "Posters", + "show_titles": "Show Titles", + "poster_size": "Poster Size", + "poster_corners": "Poster Corners", + "size_small": "Small", + "size_medium": "Medium", + "size_large": "Large", + "corners_square": "Square", + "corners_rounded": "Rounded", + "corners_pill": "Pill", + "about_these_settings": "ABOUT THESE SETTINGS", + "about_desc": "These settings control how content is displayed on your Home screen. Changes are applied immediately without requiring an app restart.", + "hero_catalogs": { + "title": "Hero Section Catalogs", + "select_all": "Select All", + "clear_all": "Clear All", + "info": "Select which catalogs to display in the hero section. If none are selected, all catalogs will be used. Don't forget to press Save when you're done.", + "settings_saved": "Settings Saved", + "error_load": "Failed to load catalogs", + "movies": "Movies", + "tv_shows": "TV Shows" + } + }, + "calendar": { + "title": "Calendar", + "loading": "Loading calendar...", + "no_scheduled_episodes": "No scheduled episodes", + "check_back_later": "Check back later", + "showing_episodes_for": "Showing episodes for {{date}}", + "show_all_episodes": "Show All Episodes", + "no_episodes_for": "No episodes for {{date}}", + "no_upcoming_found": "No upcoming episodes found", + "add_series_desc": "Add series to your library to see their upcoming episodes here" + }, + "mdblist": { + "title": "Rating Sources", + "status_disabled": "MDBList Disabled", + "status_active": "API Key Active", + "status_required": "API Key Required", + "status_disabled_desc": "MDBList functionality is currently disabled.", + "status_active_desc": "Ratings from MDBList are enabled.", + "status_required_desc": "Add your key below to enable ratings.", + "enable_toggle": "Enable MDBList", + "enable_toggle_desc": "Turn on/off all MDBList functionality", + "api_section": "API Key", + "placeholder": "Paste your MDBList API key", + "save": "Save", + "clear": "Clear Key", + "rating_providers": "Rating Providers", + "rating_providers_desc": "Choose which ratings to display in the app", + "how_to": "How to get an API key", + "step_1": "Log in on the", + "step_1_link": "MDBList website", + "step_2": "Go to", + "step_2_settings": "Settings", + "step_2_api": "API", + "step_2_end": "section.", + "step_3": "Generate a new key and copy it.", + "go_to_website": "Go to MDBList", + "alert_clear_title": "Clear API Key", + "alert_clear_msg": "Are you sure you want to remove the saved API key?", + "success_saved": "API key saved successfully.", + "error_empty": "API Key cannot be empty.", + "error_save": "An error occurred while saving. Please try again.", + "api_key_empty_error": "API Key cannot be empty.", + "success_cleared": "API key cleared successfully", + "error_clear": "Failed to clear API key" + }, + "notification": { + "title": "Notification Settings", + "section_general": "General", + "enable_notifications": "Enable Notifications", + "section_types": "Notification Types", + "new_episodes": "New Episodes", + "upcoming_shows": "Upcoming Shows", + "reminders": "Reminders", + "section_timing": "Notification Timing", + "timing_desc": "When should you be notified before an episode airs?", + "hours_1": "1 hour", + "hours_suffix": "hours", + "section_status": "Notification Status", + "stats_upcoming": "Upcoming", + "stats_this_week": "This Week", + "stats_total": "Total", + "sync_button": "Sync Library & Trakt", + "syncing": "Syncing...", + "sync_desc": "Automatically syncs notifications for all shows in your library and Trakt watchlist/collection.", + "section_advanced": "Advanced", + "reset_button": "Reset All Notifications", + "test_button": "Test Notification (5 sec)", + "test_notification_in": "Notification in {{seconds}}s...", + "test_notification_text": "Notification will appear in {{seconds}} seconds", + "alert_reset_title": "Reset Notifications", + "alert_reset_msg": "This will cancel all scheduled notifications, but will not remove anything from your saved library. Are you sure?", + "alert_reset_success": "All notifications have been reset", + "alert_sync_complete": "Sync Complete", + "alert_sync_msg": "Successfully synced notifications for your library and Trakt items.\n\nScheduled: {{upcoming}} upcoming episodes\nThis week: {{thisWeek}} episodes", + "alert_test_scheduled": "Test notification scheduled to fire instantly" + }, + "backup": { + "title": "Backup & Restore", + "options_title": "Backup Options", + "options_desc": "Choose what to include in your backups", + "section_core": "Core Data", + "section_addons": "Addons & Integrations", + "section_settings": "Settings & Preferences", + "library_label": "Library", + "library_desc": "Your saved movies and TV shows", + "watch_progress_label": "Watch Progress", + "watch_progress_desc": "Continue watching positions", + "addons_label": "Addons", + "addons_desc": "Installed Stremio addons", + "plugins_label": "Plugins", + "plugins_desc": "Custom scraper configurations", + "trakt_label": "Trakt Integration", + "trakt_desc": "Sync data and authentication tokens", + "app_settings_label": "App Settings", + "app_settings_desc": "Theme, preferences, and configurations", + "user_prefs_label": "User Preferences", + "user_prefs_desc": "Addon order and UI settings", + "catalog_settings_label": "Catalog Settings", + "catalog_settings_desc": "Catalog filters and preferences", + "api_keys_label": "API Keys", + "api_keys_desc": "MDBList and OpenRouter keys", + "action_create": "Create Backup", + "action_restore": "Restore from Backup", + "section_info": "About Backups", + "info_text": "• Customize what gets backed up using the toggles above\n• Backup files are stored locally on your device\n• Share your backup to transfer data between devices\n• Restoring will overwrite your current data", + "alert_create_title": "Create Backup", + "alert_no_content": "No content selected for backup.\n\nPlease enable at least one option in the Backup Options section above.", + "alert_backup_created_title": "Backup Created", + "alert_backup_created_msg": "Your backup has been created and is ready to share.", + "alert_backup_failed_title": "Backup Failed", + "alert_restore_confirm_title": "Confirm Restore", + "alert_restore_confirm_msg": "This will restore your data from a backup created on {{date}}.\n\nThis action will overwrite your current data. Are you sure you want to continue?", + "alert_restore_complete_title": "Restore Complete", + "alert_restore_complete_msg": "Your data has been successfully restored. Please restart the app to see all changes.", + "alert_restore_failed_title": "Restore Failed", + "restart_app": "Restart App", + "alert_restart_failed_title": "Restart Failed", + "alert_restart_failed_msg": "Failed to restart the app. Please manually close and reopen the app to see your restored data." + }, + "updates": { + "title": "App Updates", + "status_checking": "Checking for updates...", + "status_available": "Update available!", + "status_downloading": "Downloading update...", + "status_installing": "Installing update...", + "status_success": "Update installed successfully!", + "status_error": "Update failed", + "status_ready": "Ready to check for updates", + "action_check": "Check for Updates", + "action_install": "Install Update", + "release_notes": "Release notes:", + "version": "Version:", + "last_checked": "Last checked:", + "current_version": "Current version:", + "current_release_notes": "Current release notes:", + "github_release": "GITHUB RELEASE", + "current": "Current:", + "latest": "Latest:", + "notes": "Notes:", + "view_release": "View Release", + "notification_settings": "NOTIFICATION SETTINGS", + "ota_alerts_label": "OTA Update Alerts", + "ota_alerts_desc": "Show notifications for over-the-air updates", + "major_alerts_label": "Major Update Alerts", + "major_alerts_desc": "Show notifications for new app versions on GitHub", + "alert_disable_ota_title": "Disable OTA Update Alerts?", + "alert_disable_ota_msg": "You will no longer receive automatic notifications for OTA updates.\n\n⚠️ Warning: Staying on the latest version is important for:\n• Bug fixes and stability improvements\n• New features and enhancements\n• Providing accurate feedback and crash reports\n\nYou can still manually check for updates in this screen.", + "alert_disable_major_title": "Disable Major Update Alerts?", + "alert_disable_major_msg": "You will no longer receive notifications for major app updates that require reinstallation.\n\n⚠️ Warning: Major updates often include:\n• Critical security patches\n• Breaking changes that require app reinstall\n• Important compatibility fixes\n\nYou can still check for updates manually.", + "warning_note": "Keeping alerts enabled ensures you receive bug fixes and can provide accurate crash reports.", + "disable": "Disable", + "alert_no_update_to_install": "No update available to install", + "alert_install_failed": "Failed to install update", + "alert_no_update_title": "No Update", + "alert_update_applied_msg": "Update will be applied on next app restart" + }, + "player": { + "title": "Video Player", + "section_selection": "PLAYER SELECTION", + "internal_title": "Built-in Player", + "internal_desc": "Use the app's default video player", + "vlc_title": "VLC", + "vlc_desc": "Open streams in VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Open streams in Infuse player", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Open streams in OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Open streams in VidHub player", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Open streams in Infuse player LiveContainer", + "external_title": "External Player", + "external_desc": "Open streams in your preferred video player", + "section_playback": "PLAYBACK OPTIONS", + "skip_intro_settings_title": "Skip Intro", + "powered_by_introdb": "Powered by IntroDB", + "autoplay_title": "Auto-play First Stream", + "autoplay_desc": "Automatically start the first stream shown in the list.", + "resume_title": "Always Resume", + "resume_desc": "Skip the resume prompt and automatically continue where you left off (if less than 85% watched).", + "engine_title": "Video Player Engine", + "engine_desc": "Auto uses ExoPlayer with MPV fallback. Some formats like Dolby Vision and HDR may not be supported by MPV, so Auto is recommended for best compatibility.", + "decoder_title": "Decoder Mode", + "decoder_desc": "How video is decoded. Auto is recommended for best balance.", + "gpu_title": "GPU Rendering", + "gpu_desc": "GPU-Next offers better HDR and color management.", + "external_downloads_title": "External Player for Downloads", + "external_downloads_desc": "Play downloaded content in your preferred external player.", + "restart_required": "Restart Required", + "restart_msg_decoder": "Please restart the app for the decoder change to take effect.", + "restart_msg_gpu": "Please restart the app for the GPU mode change to take effect.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV fallback", + "option_mpv": "MPV", + "option_mpv_desc": "MPV only", + "option_auto_desc_decoder": "Best balance", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Full HW", + "option_gpu_desc": "Standard", + "option_gpu_next_desc": "Advanced" + }, + "plugins": { + "title": "Plugins", + "enable_title": "Enable Plugins", + "enable_desc": "Enable the plugin engine to resolve external media sources", + "repo_config_title": "Repository Configuration", + "repo_config_desc": "Manage external plugin repositories. Toggle each repository on or off below.", + "your_repos": "Repositories", + "your_repos_desc": "Configure external sources for plugins.", + "add_repo_button": "Add Repository", + "refresh": "Refresh", + "remove": "Remove", + "enabled": "Enabled", + "disabled": "Disabled", + "updating": "Updating...", + "success": "Success", + "error": "Error", + "alert_repo_added": "Repository added and plugins loaded successfully", + "alert_repo_saved": "Repository URL saved successfully", + "alert_repo_refreshed": "Repository refreshed successfully", + "alert_invalid_url": "Invalid URL Format", + "alert_plugins_cleared": "All plugins have been removed", + "alert_cache_cleared": "Repository cache cleared successfully", + "unknown": "Unknown", + "active": "Active", + "available": "Available", + "platform_disabled": "Platform Disabled", + "limited": "Limited", + "clear_all": "Clear All Plugins", + "clear_all_desc": "Are you sure you want to remove all installed plugins? This action cannot be undone.", + "clear_cache": "Clear Repository Cache", + "clear_cache_desc": "This will remove the saved repository URL and clear all cached plugin data. You will need to re-enter your repository URL.", + "add_new_repo": "Add New Repository", + "available_plugins": "Available Plugins ({{count}})", + "placeholder": "Search plugins...", + "all": "All", + "filter_all": "All Types", + "filter_movies": "Movies", + "filter_tv": "TV Shows", + "enable_all": "Enable All", + "disable_all": "Disable All", + "no_plugins_found": "No Plugins Found", + "no_plugins_available": "No Plugins Available", + "no_match_desc": "No plugins match \"{{query}}\". Try a different search term.", + "configure_repo_desc": "Configure a repository above to view available plugins.", + "clear_search": "Clear Search", + "no_external_player": "No external player", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "Paste your ShowBox UI token", + "save": "Save", + "clear": "Clear", + "additional_settings": "Additional Settings", + "enable_url_validation": "Enable URL Validation", + "url_validation_desc": "Validate media URLs before returning them (may slow down results but improves reliability)", + "group_streams": "Group Plugin Sources", + "group_streams_desc": "When enabled, sources are grouped by repository. When disabled, each plugin shows as a separate provider.", + "sort_quality": "Sort by Quality First", + "sort_quality_desc": "When enabled, sources are sorted by quality first. Only available when grouping is enabled.", + "show_logos": "Show Plugin Logos", + "show_logos_desc": "Display plugin logos next to media links on the sources screen.", + "quality_filtering": "Quality Filtering", + "quality_filtering_desc": "Exclude specific video resolutions from search results. Tap on a quality to exclude it from plugin results.", + "excluded_qualities": "Excluded qualities:", + "language_filtering": "Language Filtering", + "language_filtering_desc": "Exclude specific languages from search results. Tap on a language to exclude it from plugin results.", + "note": "Note:", + "language_filtering_note": "This filter only applies to providers that include language information. It does not affect other providers.", + "excluded_languages": "Excluded languages:", + "about_title": "About Plugins", + "about_desc_1": "Plugins are modular components that adapt content from various external protocols. They run locally on your device and can be installed from trusted repositories.", + "about_desc_2": "Plugins marked as \"Limited\" may require specific external configurations.", + "help_title": "Plugin Setup", + "help_step_1": "1. **Enable Plugins** - Turn on the main switch", + "help_step_2": "2. **Add Repository** - Add a valid repository URL", + "help_step_3": "3. **Refresh Repository** - Fetch available plugins", + "help_step_4": "4. **Activate** - Enable the plugins you wish to use", + "got_it": "Got it!", + "repo_format_hint": "Format: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "Cancel", + "add": "Add" + }, + "theme": { + "title": "App Themes", + "select_theme": "SELECT THEME", + "create_custom": "Create Custom Theme", + "options": "OPTIONS", + "use_dominant_color": "Use Dominant Color from Artwork", + "categories": { + "all": "All Themes", + "dark": "Dark Themes", + "colorful": "Colorful", + "custom": "My Themes" + }, + "editor": { + "theme_name_placeholder": "Theme name", + "save": "Save", + "primary": "Primary", + "secondary": "Secondary", + "background": "Background", + "invalid_name_title": "Invalid Name", + "invalid_name_msg": "Please enter a valid theme name" + }, + "alerts": { + "delete_title": "Delete Theme", + "delete_msg": "Are you sure you want to delete \"{{name}}\"?", + "ok": "OK", + "delete": "Delete", + "cancel": "Cancel", + "back": "Settings" + } + }, + "legal": { + "title": "Legal & Disclaimer", + "intro_title": "Nature of the Application", + "intro_text": "Nuvio is a media player and metadata management application. It acts solely as a client-side interface for browsing publicly available metadata (movies, TV shows, etc.) and playing media files provided by the user or third-party extensions. Nuvio itself does not host, store, distribute, or index any media content.", + "extensions_title": "Third-Party Plugins", + "extensions_text": "Nuvio uses an extensible architecture that allows users to install third-party plugins. These plugins are developed and maintained by independent developers not affiliated with Nuvio. We have no control over, and assume no responsibility for, the content, legality, or functionality of any third-party plugin.", + "user_resp_title": "User Responsibility", + "user_resp_text": "Users are solely responsible for the plugins they install and the content they access. By using this application, you agree to ensure that you have the legal right to access any content you view using Nuvio. The developers of Nuvio do not endorse or encourage copyright infringement.", + "dmca_title": "Copyright & DMCA", + "dmca_text": "We respect the intellectual property rights of others. Since Nuvio does not host any content, we cannot remove content from the internet. However, if you believe that the application interface itself infringes on your rights, please contact us.", + "warranty_title": "No Warranty", + "warranty_text": "This software is provided \"as is\", without warranty of any kind, express or implied. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability arising from the use of this software." + }, + "plugin_tester": { + "title": "Plugin Tester", + "subtitle": "Run scrapers and inspect logs in real-time", + "tabs": { + "individual": "Individual", + "repo": "Repo Tester", + "code": "Code", + "logs": "Logs", + "results": "Results" + }, + "common": { + "error": "Error", + "success": "Success", + "movie": "Movie", + "tv": "TV", + "tmdb_id": "TMDB ID", + "season": "Season", + "episode": "Episode", + "running": "Running…", + "run_test": "Run Test", + "play": "Play", + "done": "Done", + "test": "Test", + "testing": "Testing…" + }, + "individual": { + "load_from_url": "Load from URL", + "load_from_url_desc": "Paste a raw GitHub URL or local IP and tap download.", + "enter_url_error": "Please enter a URL", + "code_loaded": "Code loaded from URL", + "fetch_error": "Failed to fetch: {{message}}", + "no_code_error": "No code to run", + "plugin_code": "Plugin Code", + "focus_editor": "Focus code editor", + "code_placeholder": "// Paste plugin code here...", + "test_parameters": "Test Parameters", + "no_logs": "No logs yet. Run a test to see output.", + "no_streams": "No streams found yet.", + "streams_found": "{{count}} Stream Found", + "streams_found_plural": "{{count}} Streams Found", + "tap_play_hint": "Tap Play to test a stream in the native player.", + "unnamed_stream": "Unnamed Stream", + "quality": "Quality: {{quality}}", + "size": "Size: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Headers: {{count}} custom header(s)", + "find_placeholder": "Find in code…", + "edit_code_title": "Edit Code", + "no_url_stream_error": "No URL found for this stream" + }, + "repo": { + "title": "Repo Tester", + "description": "Fetch a repository (local URL or GitHub raw) and test each provider.", + "enter_repo_url_error": "Please enter a repository URL", + "invalid_url_title": "Invalid URL", + "invalid_url_msg": "Use a GitHub raw URL or a local http(s) URL.\n\nExample:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "Could not build a manifest URL from the input", + "manifest_fetch_error": "Failed to fetch manifest", + "repo_manifest_fetch_error": "Failed to fetch repository manifest", + "missing_filename": "Missing filename in manifest", + "scraper_build_error": "Could not build a scraper URL", + "download_scraper_error": "Failed to download scraper", + "test_failed": "Test failed", + "test_parameters": "Repo Test Parameters", + "test_parameters_desc": "These parameters are used only for Repo Tester.", + "using_info": "Using: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Using: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Providers", + "repository_default": "Repository", + "providers_count": "{{count}} providers", + "fetch_hint": "Fetch a repo to list providers.", + "test_all": "Test All", + "status_running": "RUNNING", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "FAILED", + "status_idle": "IDLE", + "tried_url": "Tried: {{url}}", + "provider_logs": "Provider Logs", + "no_logs_captured": "No logs captured." + } + } +} From 7186c6ce9fe5c44c34c6697411b3c9e7a4a79d0e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 21:57:11 +0100 Subject: [PATCH 076/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 92372bb0..b07271ef 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -15,6 +15,7 @@ import he from './locales/he.json'; import bg from './locales/bg.json'; import pl from './locales/pl.json'; import cs from './locales/cs.json'; +import tr from './locales/tr.json'; export const resources = { en: { translation: en }, @@ -33,4 +34,5 @@ export const resources = { bg: { translation: bg }, pl: { translation: pl }, cs: { translation: cs }, + tr: { translation: tr }, }; From a39a6ba5e997ef2edcba089cb5025409d1ad479c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 21:57:57 +0100 Subject: [PATCH 077/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 04b2c278..9ea68c32 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -15,4 +15,5 @@ export const LOCALES = [ { code: 'bg', key: 'bulgarian' } { code: 'pl', key: 'polish' } { code: 'cs', key: 'czech' } + { code: 'tr', key: 'turkish' } ]; From 4ba570f300a8c8cbc2520c09fb3664c1a37e9e2b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 21:59:58 +0100 Subject: [PATCH 078/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 6e84eafb..3d2e2d5e 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -640,6 +640,7 @@ "bulgarian": "بلغاري", "polish": "بولندي", "czech": "التشيكية", + "turkish": "التركية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 73742e62e623d96ec555a886c68373a7152ef71e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:00:53 +0100 Subject: [PATCH 079/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index f47137d0..fd4abe81 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -645,6 +645,7 @@ "bulgarian": "български", "polish": "Полски", "czech": "Чешки", + "turkish": "Турски", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1422,3 +1423,4 @@ } + From e4bd00c0de33ac9f2e94d69e65791241e52c4540 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:01:47 +0100 Subject: [PATCH 080/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index c344e63c..9ad3e66c 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -635,6 +635,7 @@ "bulgarian": "Bulharština", "polish": "Polština", "czech": "Čeština", + "turkish": "Turečtina", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1410,3 +1411,4 @@ } } } + From eaa9eef2898e3322a137056acc4b2dac08e4ff1e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:02:48 +0100 Subject: [PATCH 081/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 8f49bb40..4d678dc0 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -640,6 +640,7 @@ "bulgarian": "Bulgarisch", "polish": "Polnisch", "czech": "Tschechisch", + "turkish": "Türkisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From 054e8b8439744b40c13cd957d5dae5eb80484281 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:04:21 +0100 Subject: [PATCH 082/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index c6267b67..c25cc88b 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -645,6 +645,7 @@ "bulgarian": "Bulgarian", "polish": "Polish", "czech": "Czech", + "turkish": "Turkish", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From ab2ee7d075ac55b09ef6c8183552a2bf0821adf3 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:05:08 +0100 Subject: [PATCH 083/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 7468c2af..97931223 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -640,6 +640,7 @@ "bulgarian": "Búlgaro", "polish": "Polaco", "czech": "Checo", + "turkish": "Turco", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From bd31a5b06164aeff4fb30884d0679b5c1eea7e23 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:06:43 +0100 Subject: [PATCH 084/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 4e15889d..a8c9d942 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -640,6 +640,7 @@ "bulgarian": "Bulgare", "polish": "Polonais", "czech": "Tchèque", + "turkish": "Turc", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From 8bdfe319aca968ebd0e2f7a7376336e699860902 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:07:31 +0100 Subject: [PATCH 085/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 487bc86f..4245f4a8 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -645,6 +645,7 @@ "bulgarian": "בולגרית", "polish": "פולנית", "czech": "צ'כית", + "turkish": "טורקית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1423,3 +1424,4 @@ } + From dc9a5e73be8280a7e87fefb045339084b8be8cd3 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:08:36 +0100 Subject: [PATCH 086/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index dc009965..2598cc29 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -640,6 +640,7 @@ "bulgarian": "बुल्गारियाई", "polish": "पोलिश", "czech": "चेक", + "turkish": "तुर्की", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 1eb3ce4b098f67fa832d2bb8fbb981c36a2802a5 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:09:37 +0100 Subject: [PATCH 087/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 5c9460ad..936def81 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -640,6 +640,7 @@ "bulgarian": "Bulgaro", "polish": "Polacco", "czech": "Ceco", + "turkish": "Turco", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From a085678049006729bd53b236c929fb6602f77448 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:10:31 +0100 Subject: [PATCH 088/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 6e606d4e..ab0f5d7d 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -645,6 +645,7 @@ "bulgarian": "Bułgarski", "polish": "Polski", "czech": "Czeski", + "turkish": "Turecki", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1422,3 +1423,4 @@ } + From fbb20a602ee86edd6f78c681880293cc5ca68383 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:11:10 +0100 Subject: [PATCH 089/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 68f2a0ff..230cd72b 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -654,6 +654,7 @@ "bulgarian": "Búlgaro", "polish": "Polonês", "czech": "Theco", + "turkish": "Turco", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From c7b8bee85e5e69eb72d852f89b290bb9d9ae7aad Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:11:48 +0100 Subject: [PATCH 090/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 2725eff7..167fa955 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -652,6 +652,7 @@ "bulgarian": "Búlgaro", "polish": "Polonês", "czech": "Theco", + "turkish": "Turco", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From bc1a0e481c55a80a94f95296675517a7c5779971 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:12:44 +0100 Subject: [PATCH 091/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 74081146..c09a8d20 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -639,6 +639,7 @@ "bulgarian": "бугарски", "polish": "Пољски", "czech": "Чешки", + "turkish": "Турски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1420,3 +1421,4 @@ + From 200a5025f0437ce45a080ff7820d8d2cf92593f4 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:14:00 +0100 Subject: [PATCH 092/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 22bc4e91..490578ee 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -640,6 +640,7 @@ "bulgarian": "保加利亚语", "polish": "波兰语", "czech": "捷克语", + "turkish": "土耳其语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From 61024439f9e51458ec6a8b39ff4e3e55e232fbcc Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:24:20 +0100 Subject: [PATCH 093/285] Added Slovenian lang --- src/i18n/locales/sl.json | 1424 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1424 insertions(+) create mode 100644 src/i18n/locales/sl.json diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json new file mode 100644 index 00000000..9ba9a1be --- /dev/null +++ b/src/i18n/locales/sl.json @@ -0,0 +1,1424 @@ +{ + "common": { + "loading": "Nalaganje...", + "cancel": "Prekliči", + "save": "Shrani", + "delete": "Izbriši", + "edit": "Uredi", + "search": "Išči", + "error": "Napaka", + "success": "Uspešno", + "ok": "V redu", + "unknown": "Neznano", + "retry": "Poskusi znova", + "try_again": "Poskusi ponovno", + "go_back": "Nazaj", + "settings": "Nastavitve", + "close": "Zapri", + "enable": "Omogoči", + "disable": "Onemogoči", + "show_more": "Pokaži več", + "show_less": "Pokaži manj", + "load_more": "Naloži več", + "unknown_date": "Neznan datum", + "anonymous_user": "Anonimen uporabnik", + "time": { + "now": "Ravno zdaj", + "minutes_ago": "pred {{count}} min", + "hours_ago": "pred {{count}} h", + "days_ago": "pred {{count}} d" + }, + "days_short": { + "sun": "Ned", + "mon": "Pon", + "tue": "Tor", + "wed": "Sre", + "thu": "Čet", + "fri": "Pet", + "sat": "Sob" + }, + "email": "E-pošta", + "status": "Stanje" + }, + "home": { + "categories": { + "movies": "Filmi", + "series": "Serije", + "channels": "Kanali" + }, + "movies": "Filmi", + "tv_shows": "TV oddaje", + "load_more_catalogs": "Naloži več katalogov", + "no_content": "Vsebina ni na voljo", + "add_catalogs": "Dodaj kataloge", + "sign_in_available": "Prijava je na voljo", + "sign_in_desc": "Prijavite se lahko kadarkoli v Nastavitve → Račun", + "view_all": "Prikaži vse", + "this_week": "Ta teden", + "upcoming": "Prihajajoče", + "recently_released": "Nedavno izšlo", + "no_scheduled_episodes": "Serije brez načrtovanih epizod", + "check_back_later": "Preverite pozneje", + "continue_watching": "Nadaljuj z gledanjem", + "up_next": "Naslednje", + "up_next_caps": "NASLEDNJE", + "released": "Izšlo", + "new": "Novo", + "tba": "Še ni določeno", + "new_episodes": "{{count}} novih epizod", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Sezona {{season}}", + "episode": "Epizoda {{episode}}", + "movie": "Film", + "series": "Serija", + "tv_show": "TV oddaja", + "percent_watched": "{{percent}} % ogledano", + "view_details": "Prikaži podrobnosti", + "remove": "Odstrani", + "play": "Predvajaj", + "play_now": "Predvajaj zdaj", + "resume": "Nadaljuj", + "info": "Informacije", + "more_info": "Več informacij", + "my_list": "Moj seznam", + "save": "Shrani", + "saved": "Shranjeno", + "retry": "Poskusi znova", + "install_addons": "Namesti dodatke", + "settings": "Nastavitve", + "no_featured_content": "Ni izpostavljene vsebine", + "couldnt_load_featured": "Izpostavljene vsebine ni bilo mogoče naložiti", + "no_featured_desc": "Namestite dodatke s katalogi ali spremenite vir vsebine v nastavitvah.", + "load_error_desc": "Prišlo je do težave pri pridobivanju izpostavljene vsebine. Preverite povezavo in poskusite znova.", + "no_featured_available": "Izpostavljena vsebina ni na voljo", + "no_description": "Opis ni na voljo" + }, + "navigation": { + "home": "Domov", + "library": "Knjižnica", + "search": "Iskanje", + "downloads": "Prenosi", + "settings": "Nastavitve" + }, + "search": { + "title": "Iskanje", + "recent_searches": "Nedavna iskanja", + "discover": "Odkrivaj", + "movies": "Filmi", + "tv_shows": "TV oddaje", + "select_catalog": "Izberi katalog", + "all_genres": "Vsi žanri", + "discovering": "Odkrivanje vsebine...", + "show_more": "Pokaži več ({{count}})", + "no_content_found": "Vsebine ni bilo mogoče najti", + "try_different": "Poskusite drug žanr ali katalog", + "select_catalog_desc": "Izberite katalog za raziskovanje", + "tap_catalog_desc": "Za začetek tapnite zavihek kataloga zgoraj", + "placeholder": "Išči filme, oddaje...", + "keep_typing": "Nadaljujte s tipkanjem...", + "type_characters": "Vnesite vsaj 2 znaka za iskanje", + "no_results": "Ni rezultatov", + "try_keywords": "Poskusite z drugimi ključnimi besedami ali preverite črkovanje", + "select_type": "Izberi vrsto", + "browse_movies": "Prebrskaj kataloge filmov", + "browse_tv": "Prebrskaj kataloge TV serij", + "select_genre": "Izberi žanr", + "show_all_content": "Prikaži vso vsebino", + "genres_count": "{{count}} žanrov" + }, + "library": { + "title": "Knjižnica", + "watched": "Ogledano", + "continue": "Nadaljuj", + "watchlist": "Seznam ogledov", + "collection": "Zbirka", + "rated": "Ocenjeno", + "items": "elementov", + "trakt_collections": "Trakt zbirke", + "trakt_collection": "Trakt zbirka", + "no_trakt": "Ni Trakt zbirk", + "no_trakt_desc": "Vaše Trakt zbirke se bodo pojavile tukaj, ko začnete uporabljati Trakt", + "load_collections": "Naloži zbirke", + "empty_folder": "Ni vsebine v {{folder}}", + "empty_folder_desc": "Ta zbirka je prazna", + "refresh": "Osveži", + "no_movies": "Ni še filmov", + "no_series": "Ni še TV oddaj", + "no_content": "Ni še vsebine", + "add_content_desc": "Dodajte vsebino v knjižnico, da jo vidite tukaj", + "find_something": "Najdi nekaj za gledanje", + "removed_from_library": "Odstranjeno iz knjižnice", + "item_removed": "Element odstranjen iz knjižnice", + "failed_update_library": "Posodobitev knjižnice ni uspela", + "unable_remove": "Elementa ni mogoče odstraniti iz knjižnice", + "marked_watched": "Označeno kot ogledano", + "marked_unwatched": "Označeno kot neogledano", + "item_marked_watched": "Element je označen kot ogledan", + "item_marked_unwatched": "Element je označen kot neogledan", + "failed_update_watched": "Posodobitev stanja ogleda ni uspela", + "unable_update_watched": "Stanja ogleda ni mogoče posodobiti", + "added_to_library": "Dodano v knjižnico", + "item_added": "Dodano v vašo lokalno knjižnico", + "add_to_library": "Dodaj v knjižnico", + "remove_from_library": "Odstrani iz knjižnice", + "mark_watched": "Označi kot ogledano", + "mark_unwatched": "Označi kot neogledano", + "share": "Deli", + "add_to_watchlist": "Dodaj na Trakt seznam ogledov", + "remove_from_watchlist": "Odstrani s Trakt seznama ogledov", + "added_to_watchlist": "Dodano na seznam ogledov", + "added_to_watchlist_desc": "Dodano na vaš Trakt seznam ogledov", + "removed_from_watchlist": "Odstranjeno s seznama ogledov", + "removed_from_watchlist_desc": "Odstranjeno z vašega Trakt seznama ogledov", + "add_to_collection": "Dodaj v Trakt zbirko", + "remove_from_collection": "Odstrani iz Trakt zbirke", + "added_to_collection": "Dodano v zbirko", + "added_to_collection_desc": "Dodano v vašo Trakt zbirko", + "removed_from_collection": "Odstranjeno iz zbirke", + "removed_from_collection_desc": "Odstranjeno iz vaše Trakt zbirke" + }, + "metadata": { + "unable_to_load": "Vsebine ni mogoče naložiti", + "error_code": "Koda napake: {{code}}", + "content_not_found": "Vsebine ni mogoče najti", + "content_not_found_desc": "Ta vsebina ne obstaja ali pa je bila odstranjena.", + "server_error": "Napaka strežnika", + "server_error_desc": "Strežnik trenutno ni na voljo. Poskusite pozneje.", + "bad_gateway": "Slab prehod", + "bad_gateway_desc": "Strežnik ima težave. Poskusite pozneje.", + "service_unavailable": "Storitev ni na voljo", + "service_unavailable_desc": "Storitev je trenutno onemogočena zaradi vzdrževanja. Poskusite pozneje.", + "too_many_requests": "Preveč zahtev", + "too_many_requests_desc": "Pošiljate preveč zahtev. Počakajte trenutek in poskusite znova.", + "request_timeout": "Časovna omejitev zahteve", + "request_timeout_desc": "Zahteva je trajala predolgo. Poskusite znova.", + "network_error": "Napaka omrežja", + "network_error_desc": "Preverite internetno povezavo in poskusite znova.", + "auth_error": "Napaka pri preverjanju pristnosti", + "auth_error_desc": "Preverite nastavitve računa in poskusite znova.", + "access_denied": "Dostop zavrnjen", + "access_denied_desc": "Nimate dovoljenja za dostop do te vsebine.", + "connection_error": "Napaka povezave", + "streams_unavailable": "Viri niso na voljo", + "streams_unavailable_desc": "Viri pretakanja trenutno niso na voljo. Poskusite pozneje.", + "unknown_error": "Neznana napaka", + "something_went_wrong": "Nekaj je šlo narobe. Poskusite znova.", + "cast": "Igralska zasedba", + "more_like_this": "Več podobnih vsebin", + "collection": "Zbirka", + "episodes": "Epizode", + "seasons": "Sezone", + "posters": "Plakati", + "banners": "Pasice", + "specials": "Posebne epizode", + "season_number": "Sezona {{number}}", + "episode_count": "{{count}} epizoda", + "episode_count_plural": "{{count}} epizod", + "no_episodes": "Epizode niso na voljo", + "no_episodes_for_season": "Ni epizod za sezono {{season}}", + "episodes_not_released": "Epizode morda še niso izšle", + "no_description": "Opis ni na voljo", + "episode_label": "EPIZODA {{number}}", + "watch_again": "Glej ponovno", + "completed": "Dokončano", + "play_episode": "Predvajaj S{{season}}E{{episode}}", + "play": "Predvajaj", + "watched": "Ogledano", + "watched_on_trakt": "Ogledano na Traktu", + "synced_with_trakt": "Sinhronizirano s Traktom", + "saved": "Shranjeno", + "director": "Režiser", + "directors": "Režiserji", + "creator": "Ustvarjalec", + "creators": "Ustvarjalci", + "production": "Produkcija", + "network": "Mreža", + "mark_watched": "Označi kot ogledano", + "mark_unwatched": "Označi kot neogledano", + "marking": "Označevanje...", + "removing": "Odstranjevanje...", + "unmark_season": "Odznači sezono {{season}}", + "mark_season": "Označi sezono {{season}}", + "resume": "Nadaljuj", + "spoiler_warning": "Opozorilo o razkritju", + "spoiler_warning_desc": "Ta komentar vsebuje razkritja zgodbe. Ali ga želite vseeno prikazati?", + "cancel": "Prekliči", + "reveal_spoilers": "Razkrij vsebino", + "movie_details": "Podrobnosti o filmu", + "show_details": "Podrobnosti o oddaji", + "tagline": "Slogan", + "status": "Stanje", + "release_date": "Datum izida", + "runtime": "Trajanje", + "budget": "Proračun", + "revenue": "Prihodek", + "origin_country": "Država izvora", + "original_language": "Izvirni jezik", + "first_air_date": "Prvič predvajano", + "last_air_date": "Zadnjič predvajano", + "total_episodes": "Skupaj epizod", + "episode_runtime": "Trajanje epizode", + "created_by": "Ustvaril", + "backdrop_gallery": "Galerija ozadij", + "loading_episodes": "Nalaganje epizod...", + "no_episodes_available": "Epizode niso na voljo", + "play_next": "Predvajaj S{{season}}E{{episode}}", + "play_next_episode": "Predvajaj naslednjo epizodo", + "save": "Shrani", + "percent_watched": "{{percent}} % ogledano", + "percent_watched_trakt": "{{percent}} % ogledano ({{traktPercent}} % na Traktu)", + "synced_with_trakt_progress": "Sinhronizirano s Traktom", + "using_trakt_progress": "Uporaba Trakt napredka", + "added_to_collection_hero": "Dodano v zbirko", + "added_to_collection_desc_hero": "Dodano v vašo Trakt zbirko", + "removed_from_collection_hero": "Odstranjeno iz zbirke", + "removed_from_collection_desc_hero": "Odstranjeno iz vaše Trakt zbirke", + "mark_as_watched": "Označi kot ogledano", + "mark_as_unwatched": "Označi kot neogledano" + }, + "cast": { + "biography": "Biografija", + "known_for": "Znan po", + "personal_info": "Osebni podatki", + "born_in": "Rojen v: {{place}}", + "filmography": "Filmografija", + "also_known_as": "Znan tudi kot", + "no_info_available": "Dodatne informacije niso na voljo", + "as_character": "kot {{character}}", + "loading_details": "Nalaganje podrobnosti...", + "years_old": "{{age}} let", + "view_filmography": "Prikaži filmografijo", + "filter": "Filter", + "sort_by": "Razvrsti po", + "sort_popular": "Priljubljeno", + "sort_latest": "Najnovejše", + "sort_upcoming": "Prihajajoče", + "upcoming_badge": "PRIHAJAJOČE", + "coming_soon": "Kmalu", + "filmography_count": "Filmografija • {{count}} naslovov", + "loading_filmography": "Nalaganje filmografije...", + "load_more_remaining": "Naloži več (še {{count}})", + "alert_error_title": "Napaka", + "alert_error_message": "Naslova \"{{title}}\" ni bilo mogoče naložiti. Poskusite pozneje.", + "alert_ok": "V redu", + "no_upcoming": "Za tega igralca ni prihajajočih izidov", + "no_content": "Za tega igralca ni na voljo nobene vsebine", + "no_movies": "Za tega igralca ni na voljo nobenih filmov", + "no_tv": "Za tega igralca ni na voljo nobenih TV oddaj" + }, + "comments": { + "title": "Trakt komentarji", + "spoiler_warning": "⚠️ Ta komentar vsebuje razkritja. Tapnite za prikaz.", + "spoiler": "Razkritje", + "contains_spoilers": "Vsebuje razkritja", + "reveal": "Razkrij", + "vip": "VIP", + "unavailable": "Komentarji niso na voljo", + "no_comments": "Na Traktu še ni komentarjev", + "not_in_database": "Te vsebine morda še ni v Trakt bazi podatkov", + "check_trakt": "Preveri Trakt" + }, + "trailers": { + "title": "Napovedniki", + "official_trailers": "Uradni napovedniki", + "official_trailer": "Uradni napovednik", + "teasers": "Napovedniki (teasers)", + "teaser": "Napovednik (teaser)", + "clips_scenes": "Izseki in prizori", + "clip": "Izsek", + "featurettes": "Prispevki (featurettes)", + "featurette": "Prispevek (featurette)", + "behind_the_scenes": "Zakulisje", + "no_trailers": "Napovedniki niso na voljo", + "unavailable": "Napovednik ni na voljo", + "unavailable_desc": "Napovednika trenutno ni mogoče naložiti. Poskusite pozneje.", + "unable_to_play": "Napovednika ni mogoče predvajati. Poskusite znova.", + "watch_on_youtube": "Glej na YouTubu" + }, + "catalog": { + "no_content_found": "Vsebine ni bilo mogoče najti", + "no_content_filters": "Za izbrane filtre ni bilo najdene vsebine", + "loading_content": "Nalaganje vsebine...", + "back": "Nazaj", + "in_theaters": "V kinih", + "all": "Vse", + "failed_tmdb": "Nalaganje vsebine s TMDB ni uspelo", + "movies": "Filmi", + "tv_shows": "TV oddaje", + "channels": "Kanali" + }, + "streams": { + "back_to_episodes": "Nazaj na epizode", + "back_to_info": "Nazaj na informacije", + "fetching_from": "Pridobivanje iz:", + "no_sources_available": "Viri pretakanja niso na voljo", + "add_sources_desc": "V nastavitvah dodajte vire pretakanja", + "add_sources": "Dodaj vire", + "finding_streams": "Iskanje razpoložljivih virov...", + "finding_best_stream": "Iskanje najboljšega vira za samodejno predvajanje...", + "still_fetching": "Še vedno pridobivam vire...", + "no_streams_available": "Ni razpoložljivih virov", + "starting_best_stream": "Zagon najboljšega vira...", + "loading_more_sources": "Nalaganje dodatnih virov..." + }, + "player_ui": { + "via": "preko {{name}}", + "audio_tracks": "Zvočni zapisi", + "no_audio_tracks": "Zvočni zapisi niso na voljo", + "playback_speed": "Hitrost predvajanja", + "on_hold": "Na čakanju", + "playback_error": "Napaka pri predvajanju", + "unknown_error": "Med predvajanjem je prišlo do neznane napake.", + "copy_error": "Kopiraj podrobnosti napake", + "copied_to_clipboard": "Kopirano v odložišče", + "dismiss": "Opusti", + "continue_watching": "Nadaljuj z gledanjem", + "start_over": "Začni znova", + "resume": "Nadaljuj", + "change_source": "Spremeni vir", + "switching_source": "Preklapljanje vira...", + "no_sources_found": "Ni najdenih virov", + "sources": "Viri", + "finding_sources": "Iskanje virov...", + "unknown_source": "Neznan vir", + "sources_limited": "Viri so morda omejeni zaradi napak ponudnika.", + "episodes": "Epizode", + "specials": "Posebne epizode", + "season": "Sezona {{season}}", + "stream": "Vir {{number}}", + "subtitles": "Podnapisi", + "built_in": "Vgrajeni", + "addons": "Dodatki", + "style": "Slog", + "none": "Brez", + "search_online_subtitles": "Išči podnapise na spletu", + "preview": "Predogled", + "quick_presets": "Hitre prednastavitve", + "default": "Privzeto", + "yellow": "Rumeno", + "high_contrast": "Visok kontrast", + "large": "Veliko", + "core": "Jedro", + "font_size": "Velikost pisave", + "show_background": "Pokaži ozadje", + "advanced": "Napredno", + "position": "Položaj", + "text_color": "Barva besedila", + "align": "Poravnava", + "bottom_offset": "Odmik od spodaj", + "background_opacity": "Prosojnost ozadja", + "text_shadow": "Senca besedila", + "on": "Vklopljeno", + "off": "Izklopljeno", + "outline_color": "Barva obrobe", + "outline": "Obroba", + "outline_width": "Širina obrobe", + "letter_spacing": "Razmik med črkami", + "line_height": "Višina vrstice", + "timing_offset": "Časovni zamik (s)", + "visual_sync": "Vizualna sinhronizacija", + "timing_hint": "Pomaknite podnapise prej (-) ali pozneje (+), če je potrebna sinhronizacija.", + "reset_defaults": "Ponastavi na privzeto", + "mark_intro_start": "Označi začetek uvoda", + "mark_intro_end": "Označi konec uvoda", + "intro_start_marked": "Začetek uvoda označen", + "intro_submitted": "Uvod uspešno poslan", + "intro_submit_failed": "Pošiljanje uvoda ni uspelo" + }, + "downloads": { + "title": "Prenosi", + "no_downloads": "Ni še prenosov", + "no_downloads_desc": "Prenesena vsebina se bo prikazala tukaj za ogled brez povezave", + "explore": "Razišči vsebino", + "path_copied": "Pot kopirana", + "path_copied_desc": "Pot do lokalne datoteke je kopirana v odložišče", + "copied": "Kopirano", + "incomplete": "Prenos ni dokončan", + "incomplete_desc": "Prenos še ni končan", + "not_available": "Ni na voljo", + "not_available_desc": "Lokalna pot je na voljo šele, ko je prenos končan.", + "status_downloading": "Prenašanje", + "status_completed": "Končano", + "status_paused": "V premoru", + "status_error": "Napaka", + "status_queued": "V čakalni vrsti", + "status_unknown": "Neznano", + "provider": "Ponudnik", + "streaming_playlist_warning": "Morda se ne bo predvajalo - pretočni seznam (playlist)", + "remaining": "preostalo", + "not_ready": "Prenos ni pripravljen", + "not_ready_desc": "Počakajte, da se prenos konča.", + "filter_all": "Vse", + "filter_active": "Aktivno", + "filter_done": "Končano", + "filter_paused": "V premoru", + "no_filter_results": "Ni prenosov za filter {{filter}}", + "try_different_filter": "Poskusite izbrati drug filter", + "limitations_title": "Omejitve prenosov", + "limitations_msg": "• Datoteke, manjše od 1 MB, so običajno M3U8 pretočni seznami in jih ni mogoče prenesti za ogled brez povezave. Te delujejo le s spletnim pretakanjem.", + "remove_title": "Odstrani prenos", + "remove_confirm": "Odstrani \"{{title}}\"{{season_episode}}?", + "cancel": "Prekliči", + "remove": "Odstrani" + }, + "addons": { + "title": "Dodatki", + "reorder_mode": "Način razvrščanja", + "reorder_info": "Dodatki na vrhu imajo prednost pri nalaganju vsebine", + "add_addon_placeholder": "URL dodatka", + "add_button": "Dodaj dodatek", + "my_addons": "Moji dodatki", + "community_addons": "Skupnostni dodatki", + "no_addons": "Ni nameščenih dodatkov", + "uninstall_title": "Odstrani dodatek", + "uninstall_message": "Ali ste prepričani, da želite odstraniti {{name}}?", + "uninstall_button": "Odstrani", + "install_success": "Dodatek uspešno nameščen", + "install_error": "Namestitev dodatka ni uspela", + "load_error": "Nalaganje dodatkov ni uspelo", + "fetch_error": "Pridobivanje podrobnosti o dodatku ni uspelo", + "invalid_url": "Vnesite URL dodatka", + "configure": "Nastavi", + "version": "Različica: {{version}}", + "installed_addons": "NAMEŠČENI DODATKI", + "reorder_drag_title": "POVLECITE DODATKE ZA RAZVRŠČANJE", + "install": "Namesti", + "config_unavailable_title": "Nastavitve niso na voljo", + "config_unavailable_msg": "Ni mogoče določiti URL-ja za nastavitev tega dodatka.", + "cannot_open_config_title": "Nastavitev ni mogoče odpreti", + "cannot_open_config_msg": "URL-ja za nastavitev ({{url}}) ni mogoče odpreti. Dodatek morda nima strani za nastavitve.", + "description": "Opis", + "supported_types": "Podprte vrste", + "catalogs": "Katalogi", + "no_description": "Opis ni na voljo", + "overview": "PREGLED", + "no_categories": "Brez kategorij", + "pre_installed": "PREDNAMEŠČENO" + }, + "trakt": { + "title": "Trakt nastavitve", + "settings_title": "Trakt nastavitve", + "connect_title": "Poveži se s Traktom", + "connect_desc": "Sinhronizirajte zgodovino ogledov, seznam ogledov in zbirko s Trakt.tv", + "sign_in": "Prijava v Trakt", + "sign_out": "Odjava", + "sign_out_confirm": "Ali ste prepričani, da se želite odjaviti iz svojega Trakt računa?", + "joined": "Pridružen {{date}}", + "sync_settings_title": "Nastavitve sinhronizacije", + "sync_info": "Ko ste povezani s Traktom, se celotna zgodovina sinhronizira neposredno prek API-ja in se ne zapisuje v lokalno shrambo. Vaš seznam 'Nadaljuj z gledanjem' odraža vaš globalni Trakt napredek.", + "auto_sync_label": "Samodejna sinhronizacija napredka", + "auto_sync_desc": "Samodejno sinhroniziraj napredek gledanja s Traktom", + "import_history_label": "Uvozi zgodovino ogledov", + "import_history_desc": "Uporabite 'Sinhroniziraj zdaj' za uvoz zgodovine ogledov in napredka s Trakta", + "sync_now_button": "Sinhroniziraj zdaj", + "display_settings_title": "Nastavitve zaslona", + "show_comments_label": "Prikaži Trakt komentarje", + "show_comments_desc": "Prikaži Trakt komentarje na zaslonih z metapodatki, ko so na voljo", + "maintenance_title": "Vzdrževanje", + "maintenance_unavailable": "Trakt ni na voljo", + "maintenance_desc": "Integracija s Traktom je začasno onemogočena zaradi vzdrževanja. Vsa sinhronizacija in avtentikacija sta onemogočeni, dokler vzdrževanje ni končano.", + "maintenance_button": "Storitev se vzdržuje", + "auth_success_title": "Uspešno povezano", + "auth_success_msg": "Vaš Trakt račun je bil uspešno povezan.", + "auth_error_title": "Napaka pri avtentikaciji", + "auth_error_msg": "Preverjanje pristnosti s Traktom ni uspelo.", + "auth_error_generic": "Med preverjanjem pristnosti je prišlo do napake.", + "sign_out_error": "Odjava iz Trakta ni uspela.", + "sync_complete_title": "Sinhronizacija končana", + "sync_success_msg": "Napredek gledanja je bil uspešno sinhroniziran s Traktom.", + "sync_error_msg": "Sinhronizacija ni uspela. Poskusite znova." + }, + "simkl": { + "title": "Simkl nastavitve", + "settings_title": "Simkl nastavitve", + "connect_title": "Poveži se s Simklom", + "connect_desc": "Sinhronizirajte zgodovino ogledov in spremljajte, kaj gledate", + "sign_in": "Prijava v Simkl", + "sign_out": "Prekini povezavo", + "sign_out_confirm": "Ali ste prepričani, da želite prekiniti povezavo s Simklom?", + "syncing_desc": "Vaši ogledani elementi se sinhronizirajo s Simklom.", + "auth_success_title": "Uspešno povezano", + "auth_success_msg": "Vaš Simkl račun je bil uspešno povezan.", + "auth_error_title": "Napaka pri avtentikaciji", + "auth_error_msg": "Preverjanje pristnosti s Simklom ni uspelo.", + "auth_error_generic": "Med preverjanjem pristnosti je prišlo do napake.", + "sign_out_error": "Prekinitev povezave s Simklom ni uspela.", + "config_error_title": "Napaka v konfiguraciji", + "config_error_msg": "Simkl Client ID manjka v okoljskih spremenljivkah.", + "conflict_title": "Spor", + "conflict_msg": "S Simklom se ne morete povezati, dokler je povezan Trakt. Najprej prekinite povezavo s Traktom.", + "disclaimer": "Nuvio ni povezan s Simklom." + }, + "tmdb_settings": { + "title": "TMDb nastavitve", + "metadata_enrichment": "Obogatitev metapodatkov", + "metadata_enrichment_desc": "Izboljšajte metapodatke vsebine s podatki TMDb za boljše podrobnosti in informacije.", + "enable_enrichment": "Omogoči obogatitev", + "enable_enrichment_desc": "Dopolni metapodatke dodatkov s TMDb podatki za igralce, certifikate, logotipe/plakate in produkcijske informacije.", + "localized_text": "Lokalizirano besedilo", + "localized_text_desc": "Pridobi naslove in opise v vašem prednostnem jeziku iz TMDb.", + "language": "Jezik", + "change": "Spremeni", + "logo_preview": "Predogled logotipa", + "logo_preview_desc": "Predogled prikazuje, kako se bodo lokalizirani logotipi pojavili v izbranem jeziku.", + "example": "Primer:", + "no_logo": "Logotip ni na voljo", + "enrichment_options": "Možnosti obogatitve", + "enrichment_options_desc": "Nadzirajte, kateri podatki se pridobivajo iz TMDb. Onemogočene možnosti bodo uporabile podatke dodatkov, če so na voljo.", + "cast_crew": "Igralska zasedba in ekipa", + "cast_crew_desc": "Igralci, režiserji, scenaristi s profilnimi fotografijami", + "title_description": "Naslov in opis", + "title_description_desc": "Uporabi lokaliziran naslov in opis iz TMDb", + "title_logos": "Logotipi naslovov", + "title_logos_desc": "Visokokakovostne slike naslovov", + "banners_backdrops": "Pasice in ozadja", + "banners_backdrops_desc": "Slike ozadja visoke ločljivosti", + "certification": "Certifikacija vsebine", + "certification_desc": "Starostne omejitve (PG-13, R, TV-MA, itd.)", + "recommendations": "Priporočila", + "recommendations_desc": "Predlogi za podobno vsebino", + "episode_data": "Podatki o epizodah", + "episode_data_desc": "Sličice epizod, informacije in nadomestni podatki za TV oddaje", + "season_posters": "Plakati sezon", + "season_posters_desc": "Slike plakatov za specifične sezone", + "production_info": "Informacije o produkciji", + "production_info_desc": "Mreže in produkcijske hiše z logotipi", + "movie_details": "Podrobnosti o filmu", + "movie_details_desc": "Proračun, prihodki, trajanje, slogan", + "tv_details": "Podrobnosti o TV oddaji", + "tv_details_desc": "Stanje, število sezon, mreže, ustvarjalci", + "movie_collections": "Filmske zbirke", + "movie_collections_desc": "Filmske franšize (Marvel, Star Wars, itd.)", + "api_configuration": "Konfiguracija API-ja", + "api_configuration_desc": "Konfigurirajte svoj dostop do TMDb API-ja za izboljšano funkcionalnost.", + "custom_api_key": "API ključ po meri", + "custom_api_key_desc": "Uporabite lasten TMDb API ključ za boljšo učinkovitost in namenske omejitve.", + "custom_key_active": "API ključ po meri je aktiven", + "api_key_required": "API ključ je obvezen", + "api_key_placeholder": "Prilepite svoj TMDb API ključ (v3)", + "how_to_get_key": "Kako pridobiti TMDb API ključ?", + "built_in_key_msg": "Trenutno uporabljate vgrajeni API ključ. Razmislite o uporabi lastnega ključa za boljšo učinkovitost.", + "cache_size": "Velikost predpomnilnika", + "clear_cache": "Počisti predpomnilnik", + "cache_days": "TMDb odzivi so shranjeni 7 dni za izboljšanje učinkovitosti", + "choose_language": "Izberi jezik", + "choose_language_desc": "Izberite prednostni jezik za TMDb vsebino", + "popular": "Priljubljeno", + "all_languages": "Vsi jeziki", + "search_results": "Rezultati iskanja", + "no_languages_found": "Ni najdenih jezikov za \"{{query}}\"", + "clear_search": "Počisti iskanje", + "clear_cache_title": "Počisti TMDb predpomnilnik", + "clear_cache_msg": "To bo izbrisalo vse shranjene TMDb podatke ({{size}}). To lahko začasno upočasni nalaganje.", + "clear_cache_success": "TMDb predpomnilnik uspešno počiščen.", + "clear_cache_error": "Predpomnilnika ni bilo mogoče počistiti.", + "clear_api_key_title": "Izbriši API ključ", + "clear_api_key_msg": "Ali ste prepričani, da želite odstraniti svoj API ključ in se vrniti na privzetega?", + "clear_api_key_success": "API ključ uspešno izbrisan", + "clear_api_key_error": "API ključa ni bilo mogoče izbrisati", + "empty_api_key": "API ključ ne more biti prazen.", + "invalid_api_key": "Neveljaven API ključ. Preverite in poskusite znova.", + "save_error": "Med shranjevanjem je prišlo do napake. Poskusite znova.", + "using_builtin_key": "Zdaj uporabljate vgrajeni TMDb API ključ.", + "using_custom_key": "Zdaj uporabljate svoj TMDb API ključ po meri.", + "enter_custom_key": "Vnesite in shranite svoj TMDb API ključ po meri.", + "key_verified": "API ključ je bil preverjen in uspešno shranjen." + }, + "settings": { + "language": "Jezik", + "select_language": "Izberite jezik", + "english": "Angleščina", + "portuguese": "Portugalščina", + "portuguese_br": "Portugalščina (Brazilija)", + "portuguese_pt": "Portugalščina (Portugalska)", + "german": "Nemščina", + "arabic": "Arabščina", + "spanish": "Španščina", + "french": "Francoščina", + "italian": "Italijanščina", + "croatian": "Hrvaščina", + "chinese": "Kitajščina (poenostavljena)", + "hindi": "Hindi", + "serbian": "Srbeščina", + "hebrew": "Hebrejščina", + "bulgarian": "Bulgarščina", + "polish": "Poljščina", + "czech": "Češčina", + "turkish": "Turščina", + "slovenian": "Slovenščina", + "account": "Račun", + "content_discovery": "Vsebina in odkrivanje", + "appearance": "Videz", + "integrations": "Integracije", + "playback": "Predvajanje", + "backup_restore": "Varnostna kopija in obnovitev", + "updates": "Posodobitve", + "about": "O aplikaciji", + "developer": "Razvijalec", + "cache": "Predpomnilnik", + "title": "Nastavitve", + "settings_title": "Nastavitve", + "sign_in_sync": "Prijavite se za sinhronizacijo", + "add_catalogs_sources": "Dodatki, katalogi in viri", + "player_trailers_downloads": "Predvajalnik, napovedniki, prenosi", + "mdblist_tmdb_ai": "MDBList, TMDb, AI", + "check_updates": "Preveri posodobitve", + "clear_mdblist_cache": "Počisti MDBList predpomnilnik", + "cache_management": "UPRAVLJANJE PREDPOMNILNIKA", + "downloads_counter": "prenosov in narašča", + "made_with_love": "Izdelano z ❤️ - Tapframe in prijatelji", + "sections": { + "information": "INFORMACIJE", + "account": "RAČUN", + "theme": "TEMA", + "layout": "POSTAVITEV", + "sources": "VIRI", + "catalogs": "KATALOGI", + "discovery": "ODKRIVANJE", + "metadata": "METAPODATKI", + "ai_assistant": "AI ASISTENT", + "video_player": "VIDEO PREDVAJALNIK", + "audio_subtitles": "AVDIO IN PODNAPISI", + "media": "MEDIJI", + "notifications": "OBVESTILA", + "testing": "TESTIRANJE", + "danger_zone": "NEVARNO OBMOČJE" + }, + "items": { + "legal": "Pravne informacije", + "privacy_policy": "Pravilnik o zasebnosti", + "report_issue": "Prijavi težavo", + "version": "Različica", + "contributors": "Sodelavci", + "view_contributors": "Prikaži vse sodelavce", + "theme": "Tema", + "episode_layout": "Postavitev epizod", + "streams_backdrop": "Ozadje virov", + "streams_backdrop_desc": "Prikaži zamegljeno ozadje pri virih na mobilnih napravah", + "addons": "Dodatki", + "installed": "nameščeno", + "debrid_integration": "Debrid integracija", + "debrid_desc": "Poveži Torbox", + "plugins": "Vtičniki", + "plugins_desc": "Upravljaj vtičnike in repozitorije", + "catalogs": "Katalogi", + "active": "aktivno", + "home_screen": "Začetni zaslon", + "home_screen_desc": "Postavitev in vsebina", + "continue_watching": "Nadaljuj z gledanjem", + "continue_watching_desc": "Predpomnjenje in obnašanje predvajanja", + "show_discover": "Pokaži razdelek 'Odkrivaj'", + "show_discover_desc": "Prikaži vsebino za odkrivanje v iskanju", + "mdblist": "MDBList", + "mdblist_connected": "Povezano", + "mdblist_desc": "Omogoči za ocene in ocene uporabnikov", + "simkl": "Simkl", + "simkl_connected": "Povezano", + "simkl_desc": "Spremljajte, kaj gledate", + "tmdb": "TMDb", + "tmdb_desc": "Vir metapodatkov in logotipov", + "openrouter": "OpenRouter API", + "openrouter_connected": "Povezano", + "openrouter_desc": "Dodajte API ključ za AI klepet", + "video_player": "Video predvajalnik", + "built_in": "Vgrajen", + "external": "Zunanji", + "preferred_audio": "Prednostni jezik zvoka", + "preferred_subtitle": "Prednostni jezik podnapisov", + "subtitle_source": "Prioriteta vira podnapisov", + "auto_select_subs": "Samodejna izbira podnapisov", + "auto_select_subs_desc": "Samodejno izberi podnapise po vaših željah", + "show_trailers": "Pokaži napovednike", + "show_trailers_desc": "Prikaži napovednike v glavnem razdelku", + "enable_downloads": "Omogoči prenose", + "enable_downloads_desc": "Prikaži zavihek Prenosi i omogoči shranjevanje", + "notifications": "Obvestila", + "notifications_desc": "Opomniki za epizode", + "developer_tools": "Orodja za razvijalce", + "developer_tools_desc": "Možnosti testiranja in razhroščevanja", + "test_onboarding": "Testiraj uvajanje", + "reset_onboarding": "Ponastavi uvajanje", + "test_announcement": "Testiraj obvestilo", + "test_announcement_desc": "Prikaži prekrivni zaslon 'Kaj je novega'", + "reset_campaigns": "Ponastavi kampanje", + "reset_campaigns_desc": "Počisti vtise kampanj", + "clear_all_data": "Počisti vse podatke", + "clear_all_data_desc": "Ponastavi vse nastavitve in predpomnjene podatke" + }, + "options": { + "horizontal": "Vodoravno", + "vertical": "Navpično", + "internal_first": "Najprej notranji", + "internal_first_desc": "Prednost imajo vgrajeni podnapisi", + "external_first": "Najprej zunanji", + "external_first_desc": "Prednost imajo zunanji podnapisi", + "any_available": "Katerikoli na voljo", + "any_available_desc": "Uporabi prvi razpoložljiv podnapis" + }, + "clear_data_desc": "To bo ponastavilo vse nastavitve in počistilo predpomnilnik. Ste prepričani?", + "app_updates": "Posodobitve aplikacije", + "about_nuvio": "O Nuvio" + }, + "privacy": { + "title": "Zasebnost in podatki", + "settings_desc": "Nadzor telemetrije in zbiranja podatkov", + "info_title": "Vaša zasebnost je pomembna", + "info_description": "Nadzirajte, kateri podatki se zbirajo. Analitika je privzeto izklopljena, poročila o napakah pa anonimna.", + "analytics_enabled_title": "Analitika omogočena", + "analytics_enabled_message": "Podatki o uporabi se bodo zbirali za izboljšanje aplikacije. To lahko kadarkoli onemogočite.", + "disable_error_reporting_title": "Onemogočim poročanje o napakah?", + "disable_error_reporting_message": "Če onemogočite poročanje, ne bomo obveščeni o sesutjih, kar oteži odpravljanje napak.", + "enable_session_replay_title": "Omogočim ponovni prikaz seje?", + "enable_session_replay_message": "To posname zaslon ob napaki za lažje razumevanje težave. Lahko zajame vidno vsebino zaslona.", + "enable_pii_title": "Omogočim zbiranje osebnih podatkov (PII)?", + "enable_pii_message": "Dovoli zbiranje IP naslova in podrobnosti o napravi za boljšo diagnostiko.", + "disable_all_title": "Onemogočim vso telemetrijo?", + "disable_all_message": "To bo onemogočilo vso analitiko in poročanje o napakah.", + "disable_all_button": "Onemogoči vse", + "all_disabled_title": "Vsa telemetrija onemogočena", + "all_disabled_message": "Zbiranje podatkov je onemogočeno. Spremembe stopijo v veljavo ob naslednjem zagonu.", + "reset_title": "Ponastavi na priporočeno", + "reset_message": "Nastavitve zasebnosti so bile ponastavljene na priporočene vrednosti.", + "section_analytics": "ANALITIKA", + "analytics_title": "Analitika uporabe", + "analytics_description": "Zbiranje anonimnih vzorcev uporabe", + "section_error_reporting": "POROČANJE O NAPAKAH", + "error_reporting_title": "Poročila o sesutjih", + "error_reporting_description": "Pošiljaj anonimna poročila za boljšo stabilnost", + "session_replay_title": "Ponovni prikaz seje", + "session_replay_description": "Posnemi zaslon, ko pride do napake", + "pii_title": "Vključi info o napravi", + "pii_description": "Pošlji IP naslov in podatke o napravi s poročili", + "section_quick_actions": "HITRE AKCIJE", + "disable_all": "Onemogoči vso telemetrijo", + "disable_all_desc": "Izklopi vso zbiranje podatkov", + "reset_recommended": "Ponastavi na priporočeno", + "reset_recommended_desc": "Zasebnost na prvem mestu s poročanjem o napakah", + "section_learn_more": "VEČ O TEM", + "privacy_policy": "Pravilnik o zasebnosti", + "current_settings": "Povzetek trenutnih nastavitev", + "summary_analytics": "Analitika", + "summary_errors": "Poročila o napakah", + "summary_replay": "Ponovni prikaz seje", + "summary_pii": "Info o napravi", + "restart_note_detailed": "* Spremembe analitike stopijo v veljavo takoj. Nastavitve seje in PII zahtevajo ponovni zagon." + }, + "ai_settings": { + "title": "AI asistent", + "info_title": "Klepet z umetno inteligenco", + "info_desc": "Z napredno umetno inteligenco zastavljajte vprašanja o katerem koli filmu ali epizodi TV oddaje. Pridobite vpoglede v zgodbo, like, teme in zanimivosti.", + "feature_1": "Kontekst in analiza posameznih epizod", + "feature_2": "Razlage zgodbe in vpogledi v like", + "feature_3": "Zanimivosti iz ozadja in dejstva", + "feature_4": "Uporaba lastnega brezplačnega OpenRouter API ključa", + "api_key_section": "OPENROUTER API KLJUČ", + "api_key_label": "API ključ", + "api_key_desc": "Vnesite svoj OpenRouter API ključ za AI klepet", + "save_api_key": "Shrani API ključ", + "saving": "Shranjevanje...", + "update": "Posodobi", + "remove": "Odstrani", + "get_free_key": "Pridobi brezplačen API ključ na OpenRouter", + "enable_chat": "Omogoči AI klepet", + "enable_chat_desc": "Ko je omogočeno, se na straneh z vsebino pojavi gumb 'Vprašaj AI'.", + "chat_enabled": "AI klepet omogočen", + "chat_enabled_desc": "Zdaj lahko sprašujete o filmih in oddajah. Poiščite gumb 'Vprašaj AI'!", + "how_it_works": "Kako deluje", + "how_it_works_desc": "• OpenRouter omogoča dostop do več AI modelov\n• Vaš API ključ ostane zaseben in varen\n• Brezplačni paket vključuje radodarne omejitve\n• Klepetajte s kontekstom o specifičnih epizodah\n• Pridobite podrobne analize in razlage", + "error_invalid_key": "Vnesite veljaven API ključ", + "error_key_format": "OpenRouter API ključi se morajo začeti s 'sk-or-'", + "success_saved": "OpenRouter API ključ uspešno shranjen!", + "error_save": "Shranjevanje API ključa ni uspelo", + "confirm_remove_title": "Odstrani API ključ", + "confirm_remove_msg": "Ali ste prepričani? To bo onemogočilo AI funkcije.", + "success_removed": "API ključ uspešno odstranjen", + "error_remove": "Odstranjevanje API ključa ni uspelo" + }, + "catalog_settings": { + "title": "Katalogi", + "layout_phone": "POSTAVITEV ZASLONA KATALOGOV (TELEFON)", + "posters_per_row": "Plakatov v vrstici", + "auto": "Samodejno", + "show_titles": "Pokaži naslove plakatov", + "show_titles_desc": "Prikaži naslov pod vsakim plakatom", + "phone_only_hint": "Velja samo za telefone. Tablice ohranijo prilagodljivo postavitev.", + "catalogs_group": "Katalogi", + "enabled_count": "Omogočeno {{enabled}} od {{total}}", + "rename_hint": "Dolgo pritisnite na katalog za preimenovanje", + "rename_modal_title": "Preimenuj katalog", + "rename_placeholder": "Vnesite novo ime kataloga", + "error_save_name": "Imena po meri ni bilo mogoče shraniti." + }, + "continue_watching_settings": { + "title": "Nadaljuj z gledanjem", + "playback_behavior": "OBNAŠANJE PREDVAJANJA", + "use_cached": "Uporabi predpomnjene vire", + "use_cached_desc": "Klik na elemente 'Nadaljuj z gledanjem' bo takoj odprl predvajalnik s prejšnjimi viri. Če je onemogočeno, odpre zaslon z vsebino.", + "open_metadata": "Odpri zaslon z metapodatki", + "open_metadata_desc": "Odpre podrobnosti o vsebini namesto seznama virov.", + "card_appearance": "VIDEZ KARTICE", + "card_style": "Slog kartice", + "card_style_desc": "Izberite videz elementov na začetnem zaslonu", + "wide": "Široko", + "poster": "Plakat", + "cache_settings": "NASTAVITVE PREDPOMNILNIKA", + "cache_duration": "Trajanje predpomnilnika virov", + "cache_duration_desc": "Kako dolgo naj se hranijo povezave do virov", + "important_note": "Pomembno obvestilo", + "important_note_text": "Vse povezave morda ne bodo delovale ves čas. Če predpomnjena povezava ne uspe, bo aplikacija poiskala nove vire.", + "how_it_works": "Kako deluje", + "how_it_works_cached": "• Viri se shranijo za izbrano obdobje\n• Pred uporabo se preveri njihova veljavnost\n• Če so potekli, se vrne na zaslon z vsebino", + "how_it_works_uncached": "• Ko je onemogočeno, klik odpre podrobnosti vsebine\n• Metapodatkovni zaslon omogoča ročno izbiro virov", + "changes_saved": "Spremembe shranjene", + "min": "min", + "hour": "ura", + "hours": "ure" + }, + "contributors": { + "title": "Sodelavci", + "special_mentions": "Posebne omembe", + "tab_contributors": "Sodelavci", + "tab_special": "Posebne omembe", + "tab_donors": "Donatorji", + "manager_role": "Upravitelj skupnosti", + "manager_desc": "Upravlja Discord in Reddit skupnosti za Nuvio", + "sponsor_role": "Sponzor strežnika", + "sponsor_desc": "Sponzorira strežniško infrastrukturo za Nuvio", + "mod_role": "Discord moderator", + "mod_desc": "Pomaga pri moderiranju Nuvio Discord skupnosti", + "loading": "Nalaganje...", + "discord_user": "Uporabnik Discorda", + "contributions": "prispevkov", + "gratitude_title": "Hvaležni smo za vsak prispevek", + "gratitude_desc": "Vsaka vrstica kode i predlog pomagata izboljšati Nuvio", + "special_thanks_title": "Posebna hvala", + "special_thanks_desc": "Ti ljudje pomagajo ohranjati skupnost i strežnike na spletu", + "donors_desc": "Hvala za vašo podporo, ki ohranja Nuvio brezplačen.", + "latest_donations": "Zadnje", + "leaderboard": "Lestvica", + "loading_donors": "Nalaganje donatorjev...", + "no_donors": "Ni še donatorjev", + "error_rate_limit": "Omejitev GitHub API presežena. Poskusite pozneje.", + "error_failed": "Nalaganje sodelavcev ni uspelo. Preverite povezavo.", + "retry": "Poskusi znova", + "no_contributors": "Ni najdenih sodelavcev", + "loading_contributors": "Nalaganje sodelavcev..." + }, + "debrid": { + "title": "Debrid integracija", + "description_torbox": "Odklenite 4K visokokakovostne tokove in bliskovite hitrosti z integracijo Torbox. Spodaj vnesite svoj API ključ za takojšnjo nadgradnjo izkušnje pretakanja.", + "description_torrentio": "Konfigurirajte Torrentio za pridobivanje hudourniških (torrent) tokov za filme in TV oddaje. Za pretakanje vsebine je potrebna debrid storitev.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Povezano", + "status_disconnected": "Prekinjeno", + "enable_addon": "Omogoči dodatek", + "disconnect_button": "Prekini in odstrani", + "disconnect_loading": "Prekinjanje povezave...", + "account_info": "Informacije o računu", + "plan": "Paket", + "plan_free": "Brezplačno", + "plan_essential": "Essential ($3/mesec)", + "plan_pro": "Pro ($10/mesec)", + "plan_standard": "Standard ($5/mesec)", + "plan_unknown": "Neznano", + "expires": "Potreče", + "downloaded": "Prenešeno", + "status_active": "Aktivno", + "connected_title": "✓ Povezano s TorBox", + "connected_desc": "Vaš TorBox dodatek je aktiven in zagotavlja premium tokove.", + "configure_title": "Konfiguriraj dodatek", + "configure_desc": "Prilagodite svojo izkušnjo pretakanja. Razvrstite po kakovosti, filtrirajte velikosti datotek in upravljajte druge nastavitve.", + "open_settings": "Odpri nastavitve", + "what_is_debrid": "Kaj je Debrid storitev?", + "enter_api_key": "Vnesite svoj API ključ", + "connect_button": "Poveži in namesti", + "connecting": "Povezovanje...", + "unlock_speeds_title": "Odklenite premium hitrosti", + "unlock_speeds_desc": "Pridobite Torbox naročnino za dostop do predpomnjenih visokokakovostnih tokov brez zatikanja.", + "get_subscription": "Pridobite naročnino", + "powered_by": "Poganja", + "disclaimer_torbox": "Nuvio ni na noben način povezan s Torboxom.", + "disclaimer_torrentio": "Nuvio ni na noben način povezan s Torrentio.", + "installed_badge": "✓ NAMEŠČENO", + "promo_title": "⚡ Potrebujete Debrid storitev?", + "promo_desc": "Pridobite TorBox za bliskovito 4K pretakanje brez čakanja na nalaganje. Premium predpomnjeni torrenti in takojšnji prenosi.", + "promo_button": "Pridobite TorBox naročnino", + "service_label": "Debrid storitev *", + "api_key_label": "API ključ *", + "sorting_label": "Razvrščanje", + "exclude_qualities": "Izključi kakovosti", + "priority_languages": "Prednostni jeziki", + "max_results": "Največ rezultatov", + "additional_options": "Dodatne možnosti", + "no_download_links": "Ne prikaži povezav za prenos", + "no_debrid_catalog": "Ne prikaži debrid kataloga", + "install_button": "Namesti Torrentio", + "installing": "Nameščanje...", + "update_button": "Posodobi konfiguracijo", + "updating": "Posodabljanje...", + "remove_button": "Odstrani Torrentio", + "error_api_required": "API ključ je obvezen", + "error_api_required_desc": "Za namestitev Torrentio vnesite API ključ svoje debrid storitve.", + "success_installed": "Dodatek Torrentio je bil uspešno nameščen!", + "success_removed": "Dodatek Torrentio je bil uspešno odstranjen", + "alert_disconnect_title": "Prekini povezavo s Torbox", + "alert_disconnect_msg": "Ali ste prepričani, da želite prekiniti povezavo s Torboxom? To bo odstranilo dodatek in izbrisalo shranjen API ključ." + }, + "home_screen": { + "title": "Nastavitve začetnega zaslona", + "changes_applied": "Spremembe uveljavljene", + "display_options": "MOŽNOSTI PRIKAZA", + "show_hero": "Prikaži glavni razdelek (Hero)", + "show_hero_desc": "Izpostavljena vsebina na vrhu", + "show_this_week": "Prikaži razdelek 'Ta teden'", + "show_this_week_desc": "Nove epizode iz trenutnega tedna", + "select_catalogs": "Izberite kataloge", + "all_catalogs": "Vsi katalogi", + "selected": "izbrano", + "hero_layout": "Postavitev glavnega razdelka", + "layout_legacy": "Klasično", + "layout_carousel": "Vrtiljak", + "layout_appletv": "Apple TV", + "layout_desc": "Pasica čez celotno širino, drsne kartice ali Apple TV slog", + "featured_source": "Vir izpostavljene vsebine", + "using_catalogs": "Uporaba katalogov", + "manage_selected_catalogs": "Upravljaj izbrane kataloge", + "dynamic_bg": "Dinamično ozadje glavnega razdelka", + "dynamic_bg_desc": "Zamegljena pasica za vrtiljakom", + "performance_note": "Lahko vpliva na delovanje na manj zmogljivih napravah.", + "posters": "Plakati", + "show_titles": "Prikaži naslove", + "poster_size": "Velikost plakata", + "poster_corners": "Robovi plakata", + "size_small": "Majhno", + "size_medium": "Srednje", + "size_large": "Veliko", + "corners_square": "Ostro", + "corners_rounded": "Zaobljeno", + "corners_pill": "Kapsula", + "about_these_settings": "O TEH NASTAVITVAH", + "about_desc": "Te nastavitve nadzorujejo prikaz vsebine na vašem začetnem zaslonu. Spremembe so uveljavljene takoj.", + "hero_catalogs": { + "title": "Katalogi glavnega razdelka", + "select_all": "Izberi vse", + "clear_all": "Počisti vse", + "info": "Izberite kataloge za prikaz v glavnem razdelku. Če ni izbran noben, bodo uporabljeni vsi. Ne pozabite shraniti.", + "settings_saved": "Nastavitve shranjene", + "error_load": "Nalaganje katalogov ni uspelo", + "movies": "Filmi", + "tv_shows": "TV oddaje" + } + }, + "calendar": { + "title": "Koledar", + "loading": "Nalaganje koledarja...", + "no_scheduled_episodes": "Ni načrtovanih epizod", + "check_back_later": "Preverite pozneje", + "showing_episodes_for": "Prikaz epizod za {{date}}", + "show_all_episodes": "Prikaži vse epizode", + "no_episodes_for": "Ni epizod za {{date}}", + "no_upcoming_found": "Ni najdenih prihajajočih epizod", + "add_series_desc": "Dodajte serije v svojo knjižnico, da tukaj vidite njihove prihajajoče epizode" + }, + "mdblist": { + "title": "Viri ocen", + "status_disabled": "MDBList onemogočen", + "status_active": "API ključ aktiven", + "status_required": "API ključ obvezen", + "status_disabled_desc": "Funkcionalnost MDBList je trenutno onemogočena.", + "status_active_desc": "Ocene iz MDBList so omogočene.", + "status_required_desc": "Spodaj dodajte svoj ključ za omogočanje ocen.", + "enable_toggle": "Omogoči MDBList", + "enable_toggle_desc": "Vklopi/izklopi vse MDBList funkcije", + "api_section": "API ključ", + "placeholder": "Prilepite svoj MDBList API ključ", + "save": "Shrani", + "clear": "Izbriši ključ", + "rating_providers": "Ponudniki ocen", + "rating_providers_desc": "Izberite, katere ocene želite videti v aplikaciji", + "how_to": "Kako pridobiti API ključ", + "step_1": "Prijavite se na", + "step_1_link": "spletni strani MDBList", + "step_2": "Pojdite v razdelek", + "step_2_settings": "Settings", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Ustvarite nov ključ in ga kopirajte.", + "go_to_website": "Pojdi na MDBList", + "alert_clear_title": "Izbriši API ključ", + "alert_clear_msg": "Ali ste prepričani, da želite odstraniti shranjeni API ključ?", + "success_saved": "API ključ je bil uspešno shranjen.", + "error_empty": "API ključ ne more biti prazen.", + "error_save": "Med shranjevanjem je prišlo do napake. Poskusite znova.", + "api_key_empty_error": "API ključ ne more biti prazen.", + "success_cleared": "API ključ uspešno izbrisan", + "error_clear": "API ključa ni bilo mogoče izbrisati" + }, + "notification": { + "title": "Nastavitve obvestil", + "section_general": "Splošno", + "enable_notifications": "Omogoči obvestila", + "section_types": "Vrste obvestil", + "new_episodes": "Nove epizode", + "upcoming_shows": "Prihajajoče oddaje", + "reminders": "Opomniki", + "section_timing": "Čas obvestil", + "timing_desc": "Kdaj želite biti obveščeni pred predvajanjem epizode?", + "hours_1": "1 ura", + "hours_suffix": "ure/ur", + "section_status": "Stanje obvestil", + "stats_upcoming": "Prihajajoče", + "stats_this_week": "Ta teden", + "stats_total": "Skupaj", + "sync_button": "Sinhroniziraj knjižnico in Trakt", + "syncing": "Sinhronizacija...", + "sync_desc": "Samodejno sinhronizira obvestila za vse oddaje v vaši knjižnici in na Trakt seznamih.", + "section_advanced": "Napredno", + "reset_button": "Ponastavi vsa obvestila", + "test_button": "Testno obvestilo (5 s)", + "test_notification_in": "Obvestilo čez {{seconds}} s...", + "test_notification_text": "Obvestilo se bo pojavilo čez {{seconds}} sekund", + "alert_reset_title": "Ponastavi obvestila", + "alert_reset_msg": "To bo preklicalo vsa načrtovana obvestila. Ste prepričani?", + "alert_reset_success": "Vsa obvestila so bila ponastavljena", + "alert_sync_complete": "Sinhronizacija končana", + "alert_sync_msg": "Uspešno sinhronizirana obvestila.\n\nNačrtovano: {{upcoming}} epizod\nTa teden: {{thisWeek}} epizod", + "alert_test_scheduled": "Testno obvestilo je načrtovano" + }, + "backup": { + "title": "Varnostna kopija in obnovitev", + "options_title": "Možnosti varnostne kopije", + "options_desc": "Izberite, kaj želite vključiti v varnostno kopijo", + "section_core": "Jedrni podatki", + "section_addons": "Dodatki in integracije", + "section_settings": "Nastavitve in preference", + "library_label": "Knjižnica", + "library_desc": "Vaši shranjeni filmi in TV oddaje", + "watch_progress_label": "Napredek gledanja", + "watch_progress_desc": "Mesta, kjer ste končali gledanje", + "addons_label": "Dodatki", + "addons_desc": "Nameščeni Stremio dodatki", + "plugins_label": "Vtičniki", + "plugins_desc": "Konfiguracije scraperjev po meri", + "trakt_label": "Trakt integracija", + "trakt_desc": "Podatki o sinhronizaciji in žetoni za avtentikaciju", + "app_settings_label": "Nastavitve aplikacije", + "app_settings_desc": "Tema, preference in konfiguracije", + "user_prefs_label": "Uporabniške preference", + "user_prefs_desc": "Vrstni red dodatkov in nastavitve vmesnika", + "catalog_settings_label": "Nastavitve katalogov", + "catalog_settings_desc": "Filtri katalogov in preference", + "api_keys_label": "API ključi", + "api_keys_desc": "MDBList in OpenRouter ključi", + "action_create": "Ustvari varnostno kopijo", + "action_restore": "Obnovi iz varnostne kopije", + "section_info": "O varnostnih kopijah", + "info_text": "• Prilagodite vsebino kopije s stikali zgoraj\n• Datoteke se shranijo lokalno na vašo napravo\n• Delite datoteko za prenos podatkov med napravami\n• Obnovitev bo prepisala trenutne podatke", + "alert_create_title": "Ustvari varnostno kopijo", + "alert_no_content": "Nobena vsebina ni izbrana. Omogočite vsaj eno možnost.", + "alert_backup_created_title": "Varnostna kopija ustvarjena", + "alert_backup_created_msg": "Vaša varnostna kopija je pripravljena na deljenje.", + "alert_backup_failed_title": "Napaka pri ustvarjanju kopije", + "alert_restore_confirm_title": "Potrdi obnovitev", + "alert_restore_confirm_msg": "To bo obnovilo podatke iz kopije, ustvarjene dne {{date}}.\n\nTo bo prepisalo trenutne podatke. Želite nadaljevati?", + "alert_restore_complete_title": "Obnovitev končana", + "alert_restore_complete_msg": "Podatki so bili uspešno obnovljeni. Ponovno zaženite aplikacijo.", + "alert_restore_failed_title": "Obnovitev ni uspela", + "restart_app": "Ponovni zagon", + "alert_restart_failed_title": "Napaka pri zagonu", + "alert_restart_failed_msg": "Aplikacije ni bilo mogoče samodejno zagnati. Ročno jo zaprite in odprite." + }, + "updates": { + "title": "Posodobitve aplikacije", + "status_checking": "Preverjanje posodobitev...", + "status_available": "Posodobitev je na voljo!", + "status_downloading": "Prenos posodobitve...", + "status_installing": "Nameščanje posodobitve...", + "status_success": "Posodobitev uspešno nameščena!", + "status_error": "Posodobitev ni uspela", + "status_ready": "Pripravljeno na preverjanje", + "action_check": "Preveri posodobitve", + "action_install": "Namesti posodobitev", + "release_notes": "Zapisi o izdaji:", + "version": "Različica:", + "last_checked": "Zadnjič preverjeno:", + "current_version": "Trenutna različica:", + "current_release_notes": "Trenutni zapisi o izdaji:", + "github_release": "GITHUB IZDAJA", + "current": "Trenutna:", + "latest": "Najnovejša:", + "notes": "Opombe:", + "view_release": "Prikaži izdajo", + "notification_settings": "NASTAVITVE OBVESTIL", + "ota_alerts_label": "OTA opozorila o posodobitvah", + "ota_alerts_desc": "Prikaži obvestila za posodobitve prek spleta", + "major_alerts_label": "Opozorila o večjih posodobitvah", + "major_alerts_desc": "Prikaži obvestila za nove različice na GitHubu", + "alert_disable_ota_title": "Onemogočim OTA opozorila?", + "alert_disable_ota_msg": "Ne boste več prejemali samodejnih obvestil za OTA posodobitve. To je pomembno za popravke napak in stabilnost.", + "alert_disable_major_title": "Onemogočim opozorila o večjih posodobitvah?", + "alert_disable_major_msg": "Ne boste več obveščeni o večjih različicah, ki zahtevajo ponovno namestitev.", + "warning_note": "Omogočena opozorila zagotavljajo, da pravočasno prejmete popravke napak.", + "disable": "Onemogoči", + "alert_no_update_to_install": "Ni posodobitev za namestitev", + "alert_install_failed": "Namestitev posodobitve ni uspela", + "alert_no_update_title": "Ni posodobitev", + "alert_update_applied_msg": "Posodobitev bo uveljavljena ob naslednjem zagonu" + }, + "player": { + "title": "Video predvajalnik", + "section_selection": "IZBIRA PREDVAJALNIKA", + "internal_title": "Vgrajen predvajalnik", + "internal_desc": "Uporabi privzeti predvajalnik aplikacije", + "vlc_title": "VLC", + "vlc_desc": "Odpri v VLC medijskem predvajalniku", + "infuse_title": "Infuse", + "infuse_desc": "Odpri v Infuse predvajalniku", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Odpri v OutPlayerju", + "vidhub_title": "VidHub", + "vidhub_desc": "Odpri v VidHub predvajalniku", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Odpri v Infuse LiveContainerju", + "external_title": "Zunanji predvajalnik", + "external_desc": "Odpri v svojem najljubšem zunanjem predvajalniku", + "section_playback": "MOŽNOSTI PREDVAJANJA", + "skip_intro_settings_title": "Preskoči uvod", + "powered_by_introdb": "Poganja IntroDB", + "autoplay_title": "Samodejno predvajaj prvi vir", + "autoplay_desc": "Samodejno zaženi prvi vir s seznama.", + "resume_title": "Vedno nadaljuj", + "resume_desc": "Preskoči vprašanje o nadaljevanju in samodejno nadaljuj (če je ogledano manj kot 85 %).", + "engine_title": "Motor video predvajalnika", + "engine_desc": "Auto uporablja ExoPlayer z MPV rezervo. Nekateri formati, kot sta Dolby Vision in HDR, morda niso podprti v MPV.", + "decoder_title": "Način dekodiranja", + "decoder_desc": "Kako se video dekodira. Priporočeno: Auto.", + "gpu_title": "GPU upodabljanje", + "gpu_desc": "GPU-Next ponuja boljši HDR in upravljanje barv.", + "external_downloads_title": "Zunanji predvajalnik za prenose", + "external_downloads_desc": "Predvajaj preneseno vsebino v izbranem zunanjem predvajalniku.", + "restart_required": "Potreben ponovni zagon", + "restart_msg_decoder": "Ponovno zaženite aplikacijo, da sprememba dekodiranja stopi v veljavo.", + "restart_msg_gpu": "Ponovno zaženite aplikacijo, da sprememba GPU načina stopi v veljavo.", + "option_auto": "Samodejno", + "option_auto_desc_engine": "ExoPlayer + MPV rezerva", + "option_mpv": "MPV", + "option_mpv_desc": "Samo MPV", + "option_auto_desc_decoder": "Najboljše ravnovesje", + "option_sw": "SW", + "option_sw_desc": "Programsko (Software)", + "option_hw": "HW", + "option_hw_desc": "Strojno (Hardware)", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Polno strojno", + "option_gpu_desc": "Standardno", + "option_gpu_next_desc": "Napredno" + }, + "plugins": { + "title": "Vtičniki", + "enable_title": "Omogoči vtičnike", + "enable_desc": "Omogoči motor vtičnikov za razreševanje zunanjih medijskih virov", + "repo_config_title": "Konfiguracija repozitorija", + "repo_config_desc": "Upravljajte zunanje repozitorije vtičnikov.", + "your_repos": "Repozitoriji", + "your_repos_desc": "Konfigurirajte zunanje vire za vtičnike.", + "add_repo_button": "Dodaj repozitorij", + "refresh": "Osveži", + "remove": "Odstrani", + "enabled": "Omogočeno", + "disabled": "Onemogočeno", + "updating": "Posodabljanje...", + "success": "Uspešno", + "error": "Napaka", + "alert_repo_added": "Repozitorij dodan in vtičniki uspešno naloženi", + "alert_repo_saved": "URL repozitorija uspešno shranjen", + "alert_repo_refreshed": "Repozitorij uspešno osvežen", + "alert_invalid_url": "Neveljaven format URL-ja", + "alert_plugins_cleared": "Vsi vtičniki so bili odstranjeni", + "alert_cache_cleared": "Predpomnilnik repozitorija uspešno počiščen", + "unknown": "Neznano", + "active": "Aktivno", + "available": "Na voljo", + "platform_disabled": "Platforma onemogočena", + "limited": "Omejeno", + "clear_all": "Odstrani vse vtičnike", + "clear_all_desc": "Ali ste prepričani, da želite odstraniti vse nameščene vtičnike? Tega dejanja ni mogoče razveljaviti.", + "clear_cache": "Počisti predpomnilnik repozitorija", + "clear_cache_desc": "To bo odstranilo URL repozitorija in vse podatke. Ponovno boste morali vnesti URL.", + "add_new_repo": "Dodaj nov repozitorij", + "available_plugins": "Vtičniki na voljo ({{count}})", + "placeholder": "Išči vtičnike...", + "all": "Vsi", + "filter_all": "Vse vrste", + "filter_movies": "Filmi", + "filter_tv": "TV oddaje", + "enable_all": "Omogoči vse", + "disable_all": "Onemogoči vse", + "no_plugins_found": "Ni najdenih vtičnikov", + "no_plugins_available": "Ni razpoložljivih vtičnikov", + "no_match_desc": "Noben vtičnik ne ustreza iskanju \"{{query}}\".", + "configure_repo_desc": "Konfigurirajte repozitorij zgoraj za ogled vtičnikov.", + "clear_search": "Počisti iskanje", + "no_external_player": "Brez zunanjega predvajalnika", + "showbox_token": "ShowBox UI žeton", + "showbox_placeholder": "Prilepite svoj ShowBox UI žeton", + "save": "Shrani", + "clear": "Počisti", + "additional_settings": "Dodatne nastavitve", + "enable_url_validation": "Omogoči preverjanje URL-jev", + "url_validation_desc": "Preveri medijske URL-je pred prikazom (izboljša zanesljivost, a upočasni rezultate)", + "group_streams": "Združi vire vtičnikov", + "group_streams_desc": "Viri bodo združeni po repozitorijih.", + "sort_quality": "Najprej razvrsti po kakovosti", + "sort_quality_desc": "Viri bodo najprej razvrščeni po kakovosti (samo ob vklopljenem združevanju).", + "show_logos": "Prikaži logotipe vtičnikov", + "show_logos_desc": "Prikaži logotipe vtičnikov poleg povezav na zaslonu z viri.", + "quality_filtering": "Filtriranje kakovosti", + "quality_filtering_desc": "Tapnite na kakovost, da jo izključite iz rezultatov iskanja.", + "excluded_qualities": "Izključene kakovosti:", + "language_filtering": "Filtriranje jezikov", + "language_filtering_desc": "Izključite določene jezike iz rezultatov.", + "note": "Opomba:", + "language_filtering_note": "Ta filter velja le za ponudnike, ki posredujejo podatke o jeziku.", + "excluded_languages": "Izključeni jeziki:", + "about_title": "O vtičnikih", + "about_desc_1": "Vtičniki so modularne komponente, ki prilagajajo vsebino iz zunanjih protokolov. Tečejo lokalno na vaši napravi.", + "about_desc_2": "Vtičniki z oznako \"Omejeno\" lahko zahtevajo specifične zunanje konfiguracije.", + "help_title": "Nastavitev vtičnikov", + "help_step_1": "1. **Omogoči vtičnike** - Vklopite glavno stikalo", + "help_step_2": "2. **Dodaj repozitorij** - Dodajte veljaven URL repozitorija", + "help_step_3": "3. **Osveži repozitorij** - Pridobite seznam vtičnikov", + "help_step_4": "4. **Aktiviraj** - Omogočite želene vtičnike", + "got_it": "Razumem!", + "repo_format_hint": "Format: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "Prekliči", + "add": "Dodaj" + }, + "theme": { + "title": "Teme aplikacije", + "select_theme": "IZBERI TEMO", + "create_custom": "Ustvari temo po meri", + "options": "MOŽNOSTI", + "use_dominant_color": "Uporabi prevladujočo barvo iz slike", + "categories": { + "all": "Vse teme", + "dark": "Temne teme", + "colorful": "Barvite", + "custom": "Moje teme" + }, + "editor": { + "theme_name_placeholder": "Ime teme", + "save": "Shrani", + "primary": "Primarna", + "secondary": "Sekundarna", + "background": "Ozadje", + "invalid_name_title": "Neveljavno ime", + "invalid_name_msg": "Vnesite veljavno ime teme" + }, + "alerts": { + "delete_title": "Izbriši temo", + "delete_msg": "Ali ste prepričani, da želite izbrisati temo \"{{name}}\"?", + "ok": "V redu", + "delete": "Izbriši", + "cancel": "Prekliči", + "back": "Nastavitve" + } + }, + "legal": { + "title": "Pravne informacije", + "intro_title": "Narava aplikacije", + "intro_text": "Nuvio je predvajalnik medijev in upravitelj metapodatkov. Deluje izključno kot vmesnik na strani odjemalca za brskanje po javno dostopnih podatkih. Nuvio sam ne gosti, ne shranjuje in ne distribuira nobene vsebine.", + "extensions_title": "Vtičniki tretjih oseb", + "extensions_text": "Nuvio omogoča namestitev vtičnikov tretjih oseb, ki jih vzdržujejo neodvisni razvijalci. Nimamo nadzora nad njihovo zakonitostjo ali vsebino.", + "user_resp_title": "Odgovornost uporabnika", + "user_resp_text": "Uporabniki so sami odgovorni za vtičnike, ki jih namestijo. Z uporabo se strinjate, da imate pravico do dostopa do vsebine, ki jo gledate.", + "dmca_title": "Avtorske pravice in DMCA", + "dmca_text": "Spoštujemo intelektualno lastnino. Ker Nuvio ne gosti vsebine, je ne moremo odstraniti z interneta. Če menite, da vmesnik sam krši vaše pravice, nas kontaktirajte.", + "warranty_title": "Brez garancije", + "warranty_text": "Programska oprema je na voljo \"takšna, kot je\", brez kakršne koli garancije." + }, + "plugin_tester": { + "title": "Tester vtičnikov", + "subtitle": "Zaženite scraperje in spremljajte dnevnike v realnem času", + "tabs": { + "individual": "Posamično", + "repo": "Tester repozitorija", + "code": "Koda", + "logs": "Dnevniki", + "results": "Rezultati" + }, + "common": { + "error": "Napaka", + "success": "Uspešno", + "movie": "Film", + "tv": "TV", + "tmdb_id": "TMDB ID", + "season": "Sezona", + "episode": "Epizoda", + "running": "Teče...", + "run_test": "Zaženi test", + "play": "Predvajaj", + "done": "Končano", + "test": "Test", + "testing": "Testiranje..." + }, + "individual": { + "load_from_url": "Naloži iz URL-ja", + "load_from_url_desc": "Prilepite GitHub URL ali lokalni IP.", + "enter_url_error": "Vnesite URL", + "code_loaded": "Koda naložena iz URL-ja", + "fetch_error": "Napaka pri pridobivanju: {{message}}", + "no_code_error": "Ni kode za zagon", + "plugin_code": "Koda vtičnika", + "focus_editor": "Fokus na urejevalnik", + "code_placeholder": "// Tukaj prilepite kodo vtičnika...", + "test_parameters": "Testni parametri", + "no_logs": "Ni dnevnikov. Zaženite test za izpis.", + "no_streams": "Ni najdenih tokov.", + "streams_found": "Najden {{count}} tok", + "streams_found_plural": "Najdenih {{count}} tokov", + "tap_play_hint": "Tapnite Predvajaj za testiranje toka v predvajalniku.", + "unnamed_stream": "Neimenovan tok", + "quality": "Kakovost: {{quality}}", + "size": "Velikost: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Glave: {{count}} po meri", + "find_placeholder": "Najdi v kodi...", + "edit_code_title": "Uredi kodo", + "no_url_stream_error": "Za ta tok ni bil najden noben URL" + }, + "repo": { + "title": "Tester repozitorija", + "description": "Pridobite repozitorij in testirajte vsakega ponudnika.", + "enter_repo_url_error": "Vnesite URL repozitorija", + "invalid_url_title": "Neveljaven URL", + "invalid_url_msg": "Uporabite GitHub raw URL ali lokalni http(s) URL.", + "manifest_build_error": "Ni bilo mogoče zgraditi URL-ja manifesta.", + "manifest_fetch_error": "Napaka pri pridobivanju manifesta.", + "repo_manifest_fetch_error": "Napaka pri pridobivanju manifesta repozitorija.", + "missing_filename": "V manifestu manjka ime datoteke.", + "scraper_build_error": "Ni bilo mogoče zgraditi URL-ja scraperja.", + "download_scraper_error": "Napaka pri prenosu scraperja.", + "test_failed": "Test ni uspel", + "test_parameters": "Parametri testa repozitorija", + "test_parameters_desc": "Uporabljeno samo za Tester repozitorija.", + "using_info": "Uporaba: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Uporaba: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Ponudniki", + "repository_default": "Repozitorij", + "providers_count": "{{count}} ponudnikov", + "fetch_hint": "Pridobite repozitorij za seznam ponudnikov.", + "test_all": "Testiraj vse", + "status_running": "TEČE", + "status_ok": "V REDU ({{count}})", + "status_ok_empty": "V REDU (0)", + "status_failed": "NAPAKA", + "status_idle": "MIROVANJE", + "tried_url": "Poskus: {{url}}", + "provider_logs": "Dnevniki ponudnika", + "no_logs_captured": "Ni zajetih dnevnikov." + } + } +} From db1dc0c2167788b6761dc2a02f6d073d73a78f38 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:26:12 +0100 Subject: [PATCH 094/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index b07271ef..2a65bea0 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -16,6 +16,7 @@ import bg from './locales/bg.json'; import pl from './locales/pl.json'; import cs from './locales/cs.json'; import tr from './locales/tr.json'; +import sl from './locales/sl.json'; export const resources = { en: { translation: en }, @@ -35,4 +36,5 @@ export const resources = { pl: { translation: pl }, cs: { translation: cs }, tr: { translation: tr }, + sl: { translation: sl }, }; From 39de93e509a878d7724f2bb415ba68565a3db395 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:27:04 +0100 Subject: [PATCH 095/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 9ea68c32..f957af0c 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -16,4 +16,5 @@ export const LOCALES = [ { code: 'pl', key: 'polish' } { code: 'cs', key: 'czech' } { code: 'tr', key: 'turkish' } + { code: 'sl', key: 'slovenian' } ]; From 97e35442b2040a549b14f963b63eb134cf4c584f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:29:33 +0100 Subject: [PATCH 096/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 3d2e2d5e..166b123d 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -641,6 +641,7 @@ "polish": "بولندي", "czech": "التشيكية", "turkish": "التركية", + "slovenian": "السلوفينية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From fafa9d924d71629e4ac558ab98dc5edc9c7f3d35 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:33:40 +0100 Subject: [PATCH 097/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index fd4abe81..c085a311 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -646,6 +646,7 @@ "polish": "Полски", "czech": "Чешки", "turkish": "Турски", + "slovenian": "Словенски", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1424,3 +1425,4 @@ + From 007559a3cf0e354957f767c92839437f5d4ba87a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:34:43 +0100 Subject: [PATCH 098/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 9ad3e66c..bfad67e2 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -636,6 +636,7 @@ "polish": "Polština", "czech": "Čeština", "turkish": "Turečtina", + "slovenian": "Slovinština", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1412,3 +1413,4 @@ } } + From b72143ca4cd99e6e99af0a283c1c1a045c7d437c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:35:35 +0100 Subject: [PATCH 099/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 4d678dc0..d78f18de 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -641,6 +641,7 @@ "polish": "Polnisch", "czech": "Tschechisch", "turkish": "Türkisch", + "slovenian": "Slowenisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From 465cd8c7260b6012e98a6b121f6dbf98c9a4f8d1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:36:19 +0100 Subject: [PATCH 100/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index c25cc88b..ec1e9f4a 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -646,6 +646,7 @@ "polish": "Polish", "czech": "Czech", "turkish": "Turkish", + "slovenian": "Slovenian", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From e5b53fe278c3b5091dec7e2a44b3032635b07969 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:37:07 +0100 Subject: [PATCH 101/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 97931223..33391949 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -641,6 +641,7 @@ "polish": "Polaco", "czech": "Checo", "turkish": "Turco", + "slovenian": "Esloveno", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 095992a1fe1171bed14d5d46b39a6848d24cc72f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:37:54 +0100 Subject: [PATCH 102/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index a8c9d942..40dfc63d 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -641,6 +641,7 @@ "polish": "Polonais", "czech": "Tchèque", "turkish": "Turc", + "slovenian": "Slovène", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From c70bcacd39ba8c056b5f430e21308fb83e963308 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:39:34 +0100 Subject: [PATCH 103/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 4245f4a8..be833604 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -646,6 +646,7 @@ "polish": "פולנית", "czech": "צ'כית", "turkish": "טורקית", + "slovenian": "סلوفينية", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1425,3 +1426,4 @@ + From 8aade987bd0fda0d85a3fcab2407029e590512b2 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:40:50 +0100 Subject: [PATCH 104/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 2598cc29..23a831c0 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -641,6 +641,7 @@ "polish": "पोलिश", "czech": "चेक", "turkish": "तुर्की", + "slovenian": "स्लोवेनियाई", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 05c5e8f8f5294418b0058a8a24fd3525536ae5c5 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:41:52 +0100 Subject: [PATCH 105/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 936def81..28a5db1e 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -641,6 +641,7 @@ "polish": "Polacco", "czech": "Ceco", "turkish": "Turco", + "slovenian": "Sloveno", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From afa3ac76aaedf21f3249afac3d6f24ac31c2c09b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:42:45 +0100 Subject: [PATCH 106/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index ab0f5d7d..80ba0f8d 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -646,6 +646,7 @@ "polish": "Polski", "czech": "Czeski", "turkish": "Turecki", + "slovenian": "Słoweński", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1424,3 +1425,4 @@ + From 5e7ac9cc2caf01431cc61ffe5736a3af3640c13e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:43:35 +0100 Subject: [PATCH 107/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 230cd72b..cdc8f51b 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -655,6 +655,7 @@ "polish": "Polonês", "czech": "Theco", "turkish": "Turco", + "slovenian": "Esloveno", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 7e343b6e3a2d5b8cc48c66930c1ef511e6a20536 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:44:09 +0100 Subject: [PATCH 108/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 167fa955..c55968dc 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -653,6 +653,7 @@ "polish": "Polonês", "czech": "Theco", "turkish": "Turco", + "slovenian": "Esloveno", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 59e3454dc8ae2556f37b138e2e1c735f8d43d31b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:45:50 +0100 Subject: [PATCH 109/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index c09a8d20..47a10bef 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -640,6 +640,7 @@ "polish": "Пољски", "czech": "Чешки", "turkish": "Турски", + "slovenian": "Словеначки", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1422,3 +1423,4 @@ + From b4bbd1b933d5d04868caf48e75ef5d48b2d95ef2 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:46:38 +0100 Subject: [PATCH 110/285] Update tr.json --- src/i18n/locales/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 9e453618..1733a888 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -646,6 +646,7 @@ "polish": "Polonyaca", "czech": "Çekçe", "turkish": "Türkçe", + "slovenian": "Slovence", "account": "Hesap", "content_discovery": "İçerik ve Keşif", "appearance": "Görünüm", @@ -1421,3 +1422,4 @@ } } } + From bb229fd959e7e2b430a04965422e77c830acaf2c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 5 Feb 2026 22:47:42 +0100 Subject: [PATCH 111/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 490578ee..65bc1d86 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -641,6 +641,7 @@ "polish": "波兰语", "czech": "捷克语", "turkish": "土耳其语", + "slovenian": "斯洛文尼亚语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From c121a0bd30cdca977e124e63bf193437c205e8be Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:16:06 +0100 Subject: [PATCH 112/285] Added Macedonian lang --- src/i18n/locales/mk.json | 1424 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1424 insertions(+) create mode 100644 src/i18n/locales/mk.json diff --git a/src/i18n/locales/mk.json b/src/i18n/locales/mk.json new file mode 100644 index 00000000..ddba1346 --- /dev/null +++ b/src/i18n/locales/mk.json @@ -0,0 +1,1424 @@ +{ + "common": { + "loading": "Се вчитува...", + "cancel": "Откажи", + "save": "Зачувај", + "delete": "Избриши", + "edit": "Уреди", + "search": "Пребарај", + "error": "Грешка", + "success": "Успешно", + "ok": "Во ред", + "unknown": "Непознато", + "retry": "Обиди се повторно", + "try_again": "Обиди се пак", + "go_back": "Оди назад", + "settings": "Поставки", + "close": "Затвори", + "enable": "Овозможи", + "disable": "Оневозможи", + "show_more": "Прикажи повеќе", + "show_less": "Прикажи помалку", + "load_more": "Вчитај повеќе", + "unknown_date": "Непознат датум", + "anonymous_user": "Анонимен корисник", + "time": { + "now": "Штотуку", + "minutes_ago": "Пред {{count}}м", + "hours_ago": "Пред {{count}}ч", + "days_ago": "Пред {{count}}д" + }, + "days_short": { + "sun": "Нед", + "mon": "Пон", + "tue": "Вто", + "wed": "Сре", + "thu": "Чет", + "fri": "Пет", + "sat": "Саб" + }, + "email": "Е-пошта", + "status": "Статус" + }, + "home": { + "categories": { + "movies": "Филмови", + "series": "Серии", + "channels": "Канали" + }, + "movies": "Филмови", + "tv_shows": "ТВ Емисии", + "load_more_catalogs": "Вчитај повеќе каталози", + "no_content": "Нема достапна содржина", + "add_catalogs": "Додај каталози", + "sign_in_available": "Достапна е најава", + "sign_in_desc": "Можете да се најавите во секое време преку Поставки → Сметка", + "view_all": "Види ги сите", + "this_week": "Оваа недела", + "upcoming": "Наскоро", + "recently_released": "Неодамна објавено", + "no_scheduled_episodes": "Серии без закажани епизоди", + "check_back_later": "Проверете подоцна", + "continue_watching": "Продолжи со гледање", + "up_next": "Следно за гледање", + "up_next_caps": "СЛЕДНО", + "released": "Објавено", + "new": "Ново", + "tba": "Наскоро", + "new_episodes": "{{count}} нови епизоди", + "season_short": "С{{season}}", + "episode_short": "Е{{episode}}", + "season": "Сезона {{season}}", + "episode": "Епизода {{episode}}", + "movie": "Филм", + "series": "Серија", + "tv_show": "ТВ Емисија", + "percent_watched": "{{percent}}% изгледано", + "view_details": "Види детали", + "remove": "Отстрани", + "play": "Пушти", + "play_now": "Пушти сега", + "resume": "Продолжи", + "info": "Инфо", + "more_info": "Повеќе инфо", + "my_list": "Моја листа", + "save": "Зачувај", + "saved": "Зачувано", + "retry": "Обиди се повторно", + "install_addons": "Инсталирај додатоци", + "settings": "Поставки", + "no_featured_content": "Нема истакната содржина", + "couldnt_load_featured": "Не можеше да се вчита истакнатата содржина", + "no_featured_desc": "Инсталирајте додатоци со каталози или променете го изворот на содржина во поставките.", + "load_error_desc": "Настана проблем при преземање на истакнатата содржина. Проверете ја врската и обидете се повторно.", + "no_featured_available": "Нема достапна истакната содржина", + "no_description": "Нема достапен опис" + }, + "navigation": { + "home": "Почетна", + "library": "Библиотека", + "search": "Пребарај", + "downloads": "Преземања", + "settings": "Поставки" + }, + "search": { + "title": "Пребарај", + "recent_searches": "Неодамнешни пребарувања", + "discover": "Откриј", + "movies": "Филмови", + "tv_shows": "ТВ Емисии", + "select_catalog": "Избери каталог", + "all_genres": "Сите жанрови", + "discovering": "Откривање содржина...", + "show_more": "Прикажи повеќе ({{count}})", + "no_content_found": "Не е пронајдена содржина", + "try_different": "Обидете се со друг жанр или каталог", + "select_catalog_desc": "Изберете каталог за истражување", + "tap_catalog_desc": "Допрете на копчето за каталог погоре за да започнете", + "placeholder": "Пребарај филмови, серии...", + "keep_typing": "Продолжете со пишување...", + "type_characters": "Впишете барем 2 карактери за пребарување", + "no_results": "Нема резултати", + "try_keywords": "Обидете се со други клучни зборови или проверете го правописот", + "select_type": "Избери тип", + "browse_movies": "Прелистувај каталози со филмови", + "browse_tv": "Прелистувај каталози со ТВ серии", + "select_genre": "Избери жанр", + "show_all_content": "Прикажи ја целата содржина", + "genres_count": "{{count}} жанрови" + }, + "library": { + "title": "Библиотека", + "watched": "Гледано", + "continue": "Продолжи", + "watchlist": "Листа за гледање", + "collection": "Колекција", + "rated": "Оценето", + "items": "ставки", + "trakt_collections": "Trakt колекции", + "trakt_collection": "Trakt колекција", + "no_trakt": "Нема Trakt колекции", + "no_trakt_desc": "Вашите Trakt колекции ќе се појават тука откако ќе почнете да користите Trakt", + "load_collections": "Вчитај колекции", + "empty_folder": "Нема содржина во {{folder}}", + "empty_folder_desc": "Оваа колекција е празна", + "refresh": "Освежи", + "no_movies": "Сè уште нема филмови", + "no_series": "Сè уште нема ТВ серии", + "no_content": "Сè уште нема содржина", + "add_content_desc": "Додајте содржина во вашата библиотека за да ја видите тука", + "find_something": "Најди нешто за гледање", + "removed_from_library": "Отстрането од библиотека", + "item_removed": "Ставката е отстранета од вашата библиотека", + "failed_update_library": "Неуспешно ажурирање на библиотеката", + "unable_remove": "Не може да се отстрани ставката од библиотеката", + "marked_watched": "Означено како гледано", + "marked_unwatched": "Означено како негледано", + "item_marked_watched": "Ставката е означена како гледана", + "item_marked_unwatched": "Ставката е означена како негледана", + "failed_update_watched": "Неуспешно ажурирање на статусот на гледање", + "unable_update_watched": "Не може да се ажурира статусот на гледање", + "added_to_library": "Додадено во библиотека", + "item_added": "Додадено во вашата локална библиотека", + "add_to_library": "Додај во библиотека", + "remove_from_library": "Отстрани од библиотека", + "mark_watched": "Означи како гледано", + "mark_unwatched": "Означи како негледано", + "share": "Сподели", + "add_to_watchlist": "Додај во Trakt листа за гледање", + "remove_from_watchlist": "Отстрани од Trakt листа за гледање", + "added_to_watchlist": "Додадено во листа за гледање", + "added_to_watchlist_desc": "Додадено во вашата Trakt листа за гледање", + "removed_from_watchlist": "Отстрането од листа за гледање", + "removed_from_watchlist_desc": "Отстрането од вашата Trakt листа за гледање", + "add_to_collection": "Додај во Trakt колекција", + "remove_from_collection": "Отстрани од Trakt колекција", + "added_to_collection": "Додадено во колекција", + "added_to_collection_desc": "Додадено во вашата Trakt колекција", + "removed_from_collection": "Отстрането од колекција", + "removed_from_collection_desc": "Отстрането од вашата Trakt колекција" + }, + "metadata": { + "unable_to_load": "Не може да се вчита содржината", + "error_code": "Код на грешка: {{code}}", + "content_not_found": "Содржината не е пронајдена", + "content_not_found_desc": "Оваа содржина не постои или е можеби отстранета.", + "server_error": "Грешка на серверот", + "server_error_desc": "Серверот е привремено недостапен. Ве молиме обидете се подоцна.", + "bad_gateway": "Лош влез (Bad gateway)", + "bad_gateway_desc": "Серверот се соочува со проблеми. Ве молиме обидете се подоцна.", + "service_unavailable": "Услугата е недостапна", + "service_unavailable_desc": "Услугата е моментално во прекин поради одржување. Ве молиме обидете се подоцна.", + "too_many_requests": "Премногу барања", + "too_many_requests_desc": "Правите премногу барања. Почекајте малку и обидете се повторно.", + "request_timeout": "Барањето истече", + "request_timeout_desc": "Барањето траеше предолго. Ве молиме обидете се повторно.", + "network_error": "Мрежна грешка", + "network_error_desc": "Проверете ја интернет врската и обидете се повторно.", + "auth_error": "Грешка при автентикација", + "auth_error_desc": "Проверете ги поставките на вашата сметка и обидете се повторно.", + "access_denied": "Пристапот е одбиен", + "access_denied_desc": "Немате дозвола за пристап до оваа содржина.", + "connection_error": "Грешка во врската", + "streams_unavailable": "Стримовите се недостапни", + "streams_unavailable_desc": "Изворите за стриминг се моментално недостапни. Обидете се подоцна.", + "unknown_error": "Непозната грешка", + "something_went_wrong": "Нешто тргна наопаку. Ве молиме обидете се повторно.", + "cast": "Актерска екипа", + "more_like_this": "Слично на ова", + "collection": "Колекција", + "episodes": "Епизоди", + "seasons": "Сезони", + "posters": "Постери", + "banners": "Банери", + "specials": "Специјали", + "season_number": "Сезона {{number}}", + "episode_count": "{{count}} епизода", + "episode_count_plural": "{{count}} епизоди", + "no_episodes": "Нема достапни епизоди", + "no_episodes_for_season": "Нема достапни епизоди за Сезона {{season}}", + "episodes_not_released": "Епизодите можеби сè уште не се објавени", + "no_description": "Нема достапен опис", + "episode_label": "ЕПИЗОДА {{number}}", + "watch_again": "Гледај повторно", + "completed": "Завршено", + "play_episode": "Пушти С{{season}}Е{{episode}}", + "play": "Пушти", + "watched": "Гледано", + "watched_on_trakt": "Гледано на Trakt", + "synced_with_trakt": "Синхронизирано со Trakt", + "saved": "Зачувано", + "director": "Режисер", + "directors": "Режисери", + "creator": "Креатор", + "creators": "Креатори", + "production": "Продукција", + "network": "Мрежа", + "mark_watched": "Означи како гледано", + "mark_unwatched": "Означи како негледано", + "marking": "Означување...", + "removing": "Отстранување...", + "unmark_season": "Одозначи ја Сезона {{season}}", + "mark_season": "Означи ја Сезона {{season}}", + "resume": "Продолжи", + "spoiler_warning": "Предупредување за спојлери", + "spoiler_warning_desc": "Овој коментар содржи спојлери. Дали сте сигурни дека сакате да го откриете?", + "cancel": "Откажи", + "reveal_spoilers": "Откриј спојлери", + "movie_details": "Детали за филмот", + "show_details": "Детали за емисијата", + "tagline": "Слоган", + "status": "Статус", + "release_date": "Датум на објавување", + "runtime": "Времетраење", + "budget": "Буџет", + "revenue": "Заработка", + "origin_country": "Земја на потекло", + "original_language": "Оригинален јазик", + "first_air_date": "Прво емитување", + "last_air_date": "Последно емитување", + "total_episodes": "Вкупно епизоди", + "episode_runtime": "Времетраење на епизода", + "created_by": "Креирано од", + "backdrop_gallery": "Галерија на позадини", + "loading_episodes": "Се вчитуваат епизоди...", + "no_episodes_available": "Нема достапни епизоди", + "play_next": "Пушти С{{season}}Е{{episode}}", + "play_next_episode": "Пушти следна епизода", + "save": "Зачувај", + "percent_watched": "{{percent}}% изгледано", + "percent_watched_trakt": "{{percent}}% изгледано ({{traktPercent}}% на Trakt)", + "synced_with_trakt_progress": "Синхронизирано со Trakt", + "using_trakt_progress": "Се користи напредокот од Trakt", + "added_to_collection_hero": "Додадено во колекција", + "added_to_collection_desc_hero": "Додадено во вашата Trakt колекција", + "removed_from_collection_hero": "Отстрането од колекција", + "removed_from_collection_desc_hero": "Отстрането од вашата Trakt колекција", + "mark_as_watched": "Означи како гледано", + "mark_as_unwatched": "Означи како негледано" + }, + "cast": { + "biography": "Биографија", + "known_for": "Познат по", + "personal_info": "Лични информации", + "born_in": "Роден во {{place}}", + "filmography": "Филмографија", + "also_known_as": "Познат и како", + "no_info_available": "Нема достапни дополнителни информации", + "as_character": "како {{character}}", + "loading_details": "Се вчитуваат детали...", + "years_old": "{{age}} години", + "view_filmography": "Види филмографија", + "filter": "Филтер", + "sort_by": "Сортирај по", + "sort_popular": "Популарност", + "sort_latest": "Најново", + "sort_upcoming": "Идно", + "upcoming_badge": "ВО ПОДГОТОВКА", + "coming_soon": "Наскоро", + "filmography_count": "Филмографија • {{count}} наслови", + "loading_filmography": "Се вчитува филмографијата...", + "load_more_remaining": "Вчитај повеќе (преостанати {{count}})", + "alert_error_title": "Грешка", + "alert_error_message": "Не може да се вчита „{{title}}“. Обидете се подоцна.", + "alert_ok": "Во ред", + "no_upcoming": "Нема идно објавени дела за овој актер", + "no_content": "Нема достапна содржина за овој актер", + "no_movies": "Нема достапни филмови за овој актер", + "no_tv": "Нема достапни ТВ серии за овој актер" + }, + "comments": { + "title": "Trakt коментари", + "spoiler_warning": "⚠️ Овој коментар содржи спојлери. Допрете за откривање.", + "spoiler": "Спојлер", + "contains_spoilers": "Содржи спојлери", + "reveal": "Откриј", + "vip": "VIP", + "unavailable": "Коментарите се недостапни", + "no_comments": "Сè уште нема коментари на Trakt", + "not_in_database": "Оваа содржина можеби сè уште не е во базата на Trakt", + "check_trakt": "Провери на Trakt" + }, + "trailers": { + "title": "Трејлери", + "official_trailers": "Официјални трејлери", + "official_trailer": "Официјален трејлер", + "teasers": "Тизери", + "teaser": "Тизер", + "clips_scenes": "Клипови и сцени", + "clip": "Клип", + "featurettes": "Кратки документарци", + "featurette": "Краток документарец", + "behind_the_scenes": "Зад сцената", + "no_trailers": "Нема достапни трејлери", + "unavailable": "Трејлерот е недостапен", + "unavailable_desc": "Овој трејлер не може да се вчита моментално. Ве молиме обидете се подоцна.", + "unable_to_play": "Не може да се пушти трејлерот. Обидете се повторно.", + "watch_on_youtube": "Гледај на YouTube" + }, + "catalog": { + "no_content_found": "Не е пронајдена содржина", + "no_content_filters": "Нема содржина за избраните филтри", + "loading_content": "Се вчитува содржина...", + "back": "Назад", + "in_theaters": "Во кината", + "all": "Сите", + "failed_tmdb": "Неуспешно вчитување на содржина од TMDB", + "movies": "Филмови", + "tv_shows": "ТВ Емисии", + "channels": "Канали" + }, + "streams": { + "back_to_episodes": "Назад кон епизоди", + "back_to_info": "Назад кон инфо", + "fetching_from": "Преземање од:", + "no_sources_available": "Нема достапни извори за стриминг", + "add_sources_desc": "Додајте извори за стриминг во поставките", + "add_sources": "Додај извори", + "finding_streams": "Пронаоѓање достапни стримови...", + "finding_best_stream": "Пронаоѓање на најдобар стрим за автоматско пуштање...", + "still_fetching": "Сè уште се преземаат стримови...", + "no_streams_available": "Нема достапни стримови", + "starting_best_stream": "Стартување на најдобриот стрим...", + "loading_more_sources": "Се вчитуваат повеќе извори..." + }, + "player_ui": { + "via": "преку {{name}}", + "audio_tracks": "Аудио записи", + "no_audio_tracks": "Нема достапни аудио записи", + "playback_speed": "Брзина на репродукција", + "on_hold": "На чекање", + "playback_error": "Грешка при репродукција", + "unknown_error": "Настана непозната грешка при репродукцијата.", + "copy_error": "Копирај детали за грешката", + "copied_to_clipboard": "Копирано во меморија", + "dismiss": "Отфрли", + "continue_watching": "Продолжи со гледање", + "start_over": "Почни од почеток", + "resume": "Продолжи", + "change_source": "Промени извор", + "switching_source": "Префрлање на извор...", + "no_sources_found": "Не се пронајдени извори", + "sources": "Извори", + "finding_sources": "Пронаоѓање извори...", + "unknown_source": "Непознат извор", + "sources_limited": "Изворите може да бидат ограничени поради грешки кај провајдерот.", + "episodes": "Епизоди", + "specials": "Специјали", + "season": "Сезона {{season}}", + "stream": "Стрим {{number}}", + "subtitles": "Превод", + "built_in": "Вградено", + "addons": "Додатоци", + "style": "Стил", + "none": "Ништо", + "search_online_subtitles": "Пребарај преводи онлајн", + "preview": "Преглед", + "quick_presets": "Брзи поставки", + "default": "Стандардно", + "yellow": "Жолто", + "high_contrast": "Висок контраст", + "large": "Големо", + "core": "Основно", + "font_size": "Големина на фонт", + "show_background": "Прикажи позадина", + "advanced": "Напредно", + "position": "Позиција", + "text_color": "Боја на текст", + "align": "Порамнување", + "bottom_offset": "Оддалеченост од дното", + "background_opacity": "Проѕирност на позадина", + "text_shadow": "Сенка на текст", + "on": "Вклучено", + "off": "Исклучено", + "outline_color": "Боја на контура", + "outline": "Контура", + "outline_width": "Ширина на контура", + "letter_spacing": "Проред помеѓу букви", + "line_height": "Висина на ред", + "timing_offset": "Временско отстапување (с)", + "visual_sync": "Визуелна синхронизација", + "timing_hint": "Поместете го преводот порано (-) или подоцна (+) за синхронизација.", + "reset_defaults": "Врати на стандардно", + "mark_intro_start": "Означи почеток на увод", + "mark_intro_end": "Означи крај на увод", + "intro_start_marked": "Почетокот на уводот е означен", + "intro_submitted": "Уводот е успешно испратен", + "intro_submit_failed": "Неуспешно испраќање на увод" + }, + "downloads": { + "title": "Преземања", + "no_downloads": "Сè уште нема преземања", + "no_downloads_desc": "Преземената содржина ќе се појави тука за гледање офлајн", + "explore": "Истражи содржина", + "path_copied": "Патеката е копирана", + "path_copied_desc": "Локалната патека до датотеката е копирана", + "copied": "Копирано", + "incomplete": "Преземањето е нецелосно", + "incomplete_desc": "Преземањето сè уште не е завршено", + "not_available": "Не е достапно", + "not_available_desc": "Локалната патека е достапна само откако преземањето ќе заврши.", + "status_downloading": "Се презема", + "status_completed": "Завршено", + "status_paused": "Паузирано", + "status_error": "Грешка", + "status_queued": "Во ред за чекање", + "status_unknown": "Непознато", + "provider": "Провајдер", + "streaming_playlist_warning": "Може да не се репродуцира - стриминг листа", + "remaining": "преостануваат", + "not_ready": "Преземањето не е подготвено", + "not_ready_desc": "Ве молиме почекајте додека преземањето не заврши.", + "filter_all": "Сите", + "filter_active": "Активни", + "filter_done": "Завршени", + "filter_paused": "Паузирани", + "no_filter_results": "Нема {{filter}} преземања", + "try_different_filter": "Обидете се со друг филтер", + "limitations_title": "Ограничувања при преземање", + "limitations_msg": "• Датотеките помали од 1MB се обично M3U8 листи и не можат да се преземат за гледање офлајн. Тие работат само онлајн.", + "remove_title": "Отстрани преземање", + "remove_confirm": "Да се отстрани „{{title}}“{{season_episode}}?", + "cancel": "Откажи", + "remove": "Отстрани" + }, + "addons": { + "title": "Додатоци", + "reorder_mode": "Режим за преуредување", + "reorder_info": "Додатоците на врвот имаат приоритет при вчитување содржина", + "add_addon_placeholder": "URL на додаток", + "add_button": "Додај додаток", + "my_addons": "Мои додатоци", + "community_addons": "Додатоци од заедницата", + "no_addons": "Нема инсталирани додатоци", + "uninstall_title": "Деинсталирај додаток", + "uninstall_message": "Дали сте сигурни дека сакате да го деинсталирате {{name}}?", + "uninstall_button": "Деинсталирај", + "install_success": "Додатокот е успешно инсталиран", + "install_error": "Неуспешна инсталација на додаток", + "load_error": "Неуспешно вчитување на додатоци", + "fetch_error": "Неуспешно преземање детали за додатокот", + "invalid_url": "Внесете важечки URL на додатокот", + "configure": "Конфигурирај", + "version": "Верзија: {{version}}", + "installed_addons": "ИНСТАЛИРАНИ ДОДАТОЦИ", + "reorder_drag_title": "ВЛЕЧЕТЕ ЗА ПРЕУРЕДУВАЊЕ", + "install": "Инсталирај", + "config_unavailable_title": "Конфигурацијата е недостапна", + "config_unavailable_msg": "Не може да се одреди URL-то за конфигурација на овој додаток.", + "cannot_open_config_title": "Не може да се отвори конфигурацијата", + "cannot_open_config_msg": "URL-то за конфигурација ({{url}}) не може да се отвори.", + "description": "Опис", + "supported_types": "Поддржани типови", + "catalogs": "Каталози", + "no_description": "Нема достапен опис", + "overview": "ПРЕГЛЕД", + "no_categories": "Нема категории", + "pre_installed": "ПРЕТХОДНО ИНСТАЛИРАНО" + }, + "trakt": { + "title": "Trakt поставки", + "settings_title": "Trakt поставки", + "connect_title": "Поврзи се со Trakt", + "connect_desc": "Синхронизирајте ја историјата на гледање, листата и колекцијата со Trakt.tv", + "sign_in": "Најави се со Trakt", + "sign_out": "Одјави се", + "sign_out_confirm": "Дали сте сигурни дека сакате да се одјавите од Trakt?", + "joined": "Се придружи на {{date}}", + "sync_settings_title": "Поставки за синхронизација", + "sync_info": "Кога сте поврзани со Trakt, целата историја се синхронизира директно од API-то.", + "auto_sync_label": "Автоматска синхронизација", + "auto_sync_desc": "Автоматски синхронизирај го напредокот со Trakt", + "import_history_label": "Увези историја на гледање", + "import_history_desc": "Користи „Синхронизирај сега“ за увоз на историјата од Trakt", + "sync_now_button": "Синхронизирај сега", + "display_settings_title": "Поставки за приказ", + "show_comments_label": "Прикажи Trakt коментари", + "show_comments_desc": "Прикажувај коментари во екранот со детали кога се достапни", + "maintenance_title": "Во фаза на одржување", + "maintenance_unavailable": "Trakt е недостапен", + "maintenance_desc": "Интеграцијата со Trakt е привремено во прекин поради одржување.", + "maintenance_button": "Сервисот е под одржување", + "auth_success_title": "Успешно поврзување", + "auth_success_msg": "Вашата Trakt сметка е успешно поврзана.", + "auth_error_title": "Грешка при автентикација", + "auth_error_msg": "Неуспешна автентикација со Trakt.", + "auth_error_generic": "Настана грешка при автентикацијата.", + "sign_out_error": "Неуспешна одјава од Trakt.", + "sync_complete_title": "Синхронизацијата е завршена", + "sync_success_msg": "Успешно синхронизиран напредок со Trakt.", + "sync_error_msg": "Синхронизацијата не успеа. Обидете се повторно." + }, + "simkl": { + "title": "Simkl поставки", + "settings_title": "Simkl поставки", + "connect_title": "Поврзи се со Simkl", + "connect_desc": "Синхронизирајте ја историјата и следете што гледате", + "sign_in": "Најави се со Simkl", + "sign_out": "Исклучи се", + "sign_out_confirm": "Дали сте сигурни дека сакате да се исклучите од Simkl?", + "syncing_desc": "Вашите изгледани ставки се синхронизираат со Simkl.", + "auth_success_title": "Успешно поврзување", + "auth_success_msg": "Вашата Simkl сметка е успешно поврзана.", + "auth_error_title": "Грешка при автентикација", + "auth_error_msg": "Неуспешна автентикација со Simkl.", + "auth_error_generic": "Настана грешка при автентикацијата.", + "sign_out_error": "Неуспешно исклучување од Simkl.", + "config_error_title": "Грешка во конфигурација", + "config_error_msg": "Simkl Client ID недостига во системските променливи.", + "conflict_title": "Конфликт", + "conflict_msg": "Не можете да се поврзете со Simkl додека Trakt е поврзан.", + "disclaimer": "Nuvio не е поврзан со Simkl." + }, + "tmdb_settings": { + "title": "TMDb поставки", + "metadata_enrichment": "Збогатување на метаподатоци", + "metadata_enrichment_desc": "Подобрете ги метаподатоците со податоци од TMDb за повеќе детали.", + "enable_enrichment": "Овозможи збогатување", + "enable_enrichment_desc": "Ги надополнува метаподатоците со актери, сертификати, лога и постери.", + "localized_text": "Локализиран текст", + "localized_text_desc": "Преземај наслови и описи на вашиот претпочитан јазик од TMDb.", + "language": "Јазик", + "change": "Промени", + "logo_preview": "Преглед на лого", + "logo_preview_desc": "Преглед како ќе изгледаат локализираните лога.", + "example": "Пример:", + "no_logo": "Нема достапно лого", + "enrichment_options": "Опции за збогатување", + "enrichment_options_desc": "Контролирајте кои податоци се преземаат од TMDb.", + "cast_crew": "Актери и екипа", + "cast_crew_desc": "Актери, режисери, сценаристи со фотографии", + "title_description": "Наслов и опис", + "title_description_desc": "Користи локализиран наслов и опис од TMDb", + "title_logos": "Лога на наслови", + "title_logos_desc": "Висококвалитетни слики за насловите", + "banners_backdrops": "Банери и позадини", + "banners_backdrops_desc": "Слики со висока резолуција за позадина", + "certification": "Сертификација на содржина", + "certification_desc": "Рјтинзи за возраст (PG-13, R, итн.)", + "recommendations": "Препораки", + "recommendations_desc": "Предлози за слична содржина", + "episode_data": "Податоци за епизоди", + "episode_data_desc": "Слики, информации и резервни податоци за епизоди", + "season_posters": "Постери за сезони", + "season_posters_desc": "Специфични постери за секоја сезона", + "production_info": "Информации за продукција", + "production_info_desc": "Мрежи и продукции со нивни лога", + "movie_details": "Детали за филм", + "movie_details_desc": "Буџет, заработка, времетраење", + "tv_details": "Детали за ТВ емисија", + "tv_details_desc": "Статус, број на сезони, креатори", + "movie_collections": "Филмски колекции", + "movie_collections_desc": "Филмски франшизи (Marvel, Star Wars, итн.)", + "api_configuration": "API конфигурација", + "api_configuration_desc": "Конфигурирајте го вашиот TMDb API пристап.", + "custom_api_key": "Сопствен API клуч", + "custom_api_key_desc": "Користете сопствен клуч за подобри перформанси.", + "custom_key_active": "Сопствениот API клуч е активен", + "api_key_required": "Потребен е API клуч", + "api_key_placeholder": "Залепете го вашиот TMDb API клуч (v3)", + "how_to_get_key": "Како да добијам TMDb API клуч?", + "built_in_key_msg": "Моментално се користи вградениот API клуч.", + "cache_size": "Големина на кеш", + "clear_cache": "Исчисти кеш", + "cache_days": "Одговорите од TMDB се чуваат 7 дена", + "choose_language": "Избери јазик", + "choose_language_desc": "Изберете јазик за TMDb содржината", + "popular": "Популарно", + "all_languages": "Сите јазици", + "search_results": "Резултати од пребарување", + "no_languages_found": "Не се пронајдени јазици за „{{query}}“", + "clear_search": "Исчисти пребарување", + "clear_cache_title": "Исчисти TMDB кеш", + "clear_cache_msg": "Ова ќе ги избрише сите зачувани податоци од TMDB ({{size}}).", + "clear_cache_success": "TMDB кешот е успешно исчистен.", + "clear_cache_error": "Неуспешно чистење на кешот.", + "clear_api_key_title": "Избриши API клуч", + "clear_api_key_msg": "Дали сте сигурни дека сакате да го отстраните сопствениот API клуч?", + "clear_api_key_success": "API клучот е успешно избришан", + "clear_api_key_error": "Неуспешно бришење на API клучот", + "empty_api_key": "API клучот не може да биде празен.", + "invalid_api_key": "Неважечки API клуч. Проверете и обидете се повторно.", + "save_error": "Настана грешка при зачувување.", + "using_builtin_key": "Сега се користи вградениот TMDb API клуч.", + "using_custom_key": "Сега се користи вашиот сопствен TMDb API клуч.", + "enter_custom_key": "Внесете и зачувајте сопствен TMDb API клуч.", + "key_verified": "API клучот е верификуван и успешно зачуван." + }, + "settings": { + "language": "Јазик", + "select_language": "Избери јазик", + "english": "Англиски", + "portuguese": "Португалски", + "portuguese_br": "Португалски (Бразил)", + "portuguese_pt": "Португалски (Португалија)", + "german": "Германски", + "arabic": "Арапски", + "spanish": "Шпански", + "french": "Француски", + "italian": "Италијански", + "croatian": "Хрватски", + "chinese": "Кинески (поедноставен)", + "hindi": "Хинди", + "serbian": "Српски", + "hebrew": "Хебрејски", + "bulgarian": "Бугарски", + "polish": "Полски", + "czech": "Чешки", + "turkish": "Турски", + "slovenian": "Словенечки", + "macedonian": "Македонски", + "account": "Сметка", + "content_discovery": "Содржина и откривање", + "appearance": "Изглед", + "integrations": "Интеграции", + "playback": "Репродукција", + "backup_restore": "Резервна копија и враќање", + "updates": "Ажурирања", + "about": "За апликацијата", + "developer": "Програмер", + "cache": "Кеш", + "title": "Поставки", + "settings_title": "Поставки", + "sign_in_sync": "Најави се за синхронизација", + "add_catalogs_sources": "Додатоци, каталози и извори", + "player_trailers_downloads": "Плеер, трејлери, преземања", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Провери за ажурирања", + "clear_mdblist_cache": "Исчисти MDBList кеш", + "cache_management": "УПРАВУВАЊЕ СО КЕШ", + "downloads_counter": "преземања и продолжува", + "made_with_love": "Направено со ❤️ од Tapframe и пријателите", + "sections": { + "information": "ИНФОРМАЦИИ", + "account": "СМЕТКА", + "theme": "ТЕМА", + "layout": "РАСПОРЕД", + "sources": "ИЗВОРИ", + "catalogs": "КАТАЛОЗИ", + "discovery": "ОТКРИВАЊЕ", + "metadata": "МЕТАПОДАТОЦИ", + "ai_assistant": "AI АСИСТЕНТ", + "video_player": "ВИДЕО ПЛЕЕР", + "audio_subtitles": "АУДИО И ПРЕВОД", + "media": "МЕДИУМИ", + "notifications": "ИЗВЕСТУВАЊА", + "testing": "ТЕСТИРАЊЕ", + "danger_zone": "ОПАСНА ЗОНА" + }, + "items": { + "legal": "Правни информации и одрекување", + "privacy_policy": "Политика за приватност", + "report_issue": "Пријави проблем", + "version": "Верзија", + "contributors": "Соработници", + "view_contributors": "Види ги сите соработници", + "theme": "Тема", + "episode_layout": "Распоред на епизоди", + "streams_backdrop": "Позадина за стримови", + "streams_backdrop_desc": "Прикажи заматена позадина кај стримовите на мобилен", + "addons": "Додатоци", + "installed": "инсталирано", + "debrid_integration": "Debrid интеграција", + "debrid_desc": "Поврзи Torbox", + "plugins": "Приклучоци", + "plugins_desc": "Управувај со приклучоци и складишта", + "catalogs": "Каталози", + "active": "активно", + "home_screen": "Почетен екран", + "home_screen_desc": "Распоред и содржина", + "continue_watching": "Продолжи со гледање", + "continue_watching_desc": "Кеш и однесување при репродукција", + "show_discover": "Прикажи секција „Откриј“", + "show_discover_desc": "Прикажи содржини за откривање во Пребарување", + "mdblist": "MDBList", + "mdblist_connected": "Поврзано", + "mdblist_desc": "Овозможи за додавање рејтинзи и рецензии", + "simkl": "Simkl", + "simkl_connected": "Поврзано", + "simkl_desc": "Следете го она што го гледате", + "tmdb": "TMDB", + "tmdb_desc": "Извор на метаподатоци и лога", + "openrouter": "OpenRouter API", + "openrouter_connected": "Поврзано", + "openrouter_desc": "Додајте API клуч за AI разговор", + "video_player": "Видео плеер", + "built_in": "Вграден", + "external": "Надворешен", + "preferred_audio": "Претпочитан јазик на аудио", + "preferred_subtitle": "Претпочитан јазик на превод", + "subtitle_source": "Приоритет на извор за превод", + "auto_select_subs": "Автоматски избор на превод", + "auto_select_subs_desc": "Автоматски избери превод според вашите претпочитања", + "show_trailers": "Прикажи трејлери", + "show_trailers_desc": "Прикажувај трејлери во истакнатата секција", + "enable_downloads": "Овозможи преземања", + "enable_downloads_desc": "Прикажи го табот за преземања и овозможи снимање стримови", + "notifications": "Известувања", + "notifications_desc": "Потсетници за епизоди", + "developer_tools": "Алатки за програмери", + "developer_tools_desc": "Опции за тестирање и дебагирање", + "test_onboarding": "Тестирај воведно упатство", + "reset_onboarding": "Ресетирај воведно упатство", + "test_announcement": "Тестирај соопштение", + "test_announcement_desc": "Прикажи го преклопот за новини", + "reset_campaigns": "Ресетирај кампањи", + "reset_campaigns_desc": "Исчисти ги импресиите од кампањите", + "clear_all_data": "Избриши ги сите податоци", + "clear_all_data_desc": "Ресетирај ги сите поставки и кеширани податоци" + }, + "options": { + "horizontal": "Хоризонтално", + "vertical": "Вертикално", + "internal_first": "Прво внатрешни", + "internal_first_desc": "Претпочитај вградени преводи, па надворешни", + "external_first": "Прво надворешни", + "external_first_desc": "Претпочитај преводи од додатоци, па вградени", + "any_available": "Било кој достапен", + "any_available_desc": "Користи го првиот достапен превод" + }, + "clear_data_desc": "Ова ќе ги ресетира сите поставки и ќе ги избрише сите кеширани податоци. Дали сте сигурни?", + "app_updates": "Ажурирања на апликацијата", + "about_nuvio": "За Nuvio", + "privacy": { + "title": "Приватност и податоци", + "settings_desc": "Контролирајте ја телеметријата и прибирањето податоци", + "info_title": "Вашата приватност е важна", + "info_description": "Контролирајте кои податоци се собираат и споделуваат. Аналитиката е стандардно исклучена, а извештаите за падови се анонимни.", + "analytics_enabled_title": "Аналитиката е овозможена", + "analytics_enabled_message": "Податоците за користење ќе бидат собирани за подобрување на апликацијата. Можете да го исклучите ова во секое време.", + "disable_error_reporting_title": "Исклучи известување за грешки?", + "disable_error_reporting_message": "Со исклучување на оваа опција, нема да бидеме известени за падови или проблеми со кои се соочувате. Ова може да ја ограничи нашата способност да ги поправиме баговите.", + "enable_session_replay_title": "Овозможи снимање сесија?", + "enable_session_replay_message": "Снимањето сесија го снима вашиот екран кога ќе се појават грешки за да ни помогне да разбереме што се случило. Ова може да ја сними видливата содржина на вашиот екран.", + "enable_pii_title": "Овозможи собирање лични податоци (PII)?", + "enable_pii_message": "Ова овозможува собирање на информации како IP адреса и детали за уредот. Овие податоци помагаат во дијагностицирање на проблеми, но ја зголемуваат изложеноста на приватноста.", + "disable_all_title": "Исклучи ја целата телеметрија?", + "disable_all_message": "Ова ќе ги оневозможи сите аналитики, известувања за грешки и снимање сесии. Нема да добиваме никакви податоци за користењето на апликацијата.", + "disable_all_button": "Исклучи сè", + "all_disabled_title": "Целата телеметрија е исклучена", + "all_disabled_message": "Прибирањето податоци е исклучено. Промените ќе стапат на сила при следното стартување на апликацијата.", + "reset_title": "Врати на препорачано", + "reset_message": "Поставките за приватност се вратени на препорачаните вредности (известување за грешки вклучено, аналитика исклучена).", + "section_analytics": "АНАЛИТИКА", + "analytics_title": "Аналитика на користење", + "analytics_description": "Собирај анонимни шеми на користење и прегледи на екрани", + "section_error_reporting": "ИЗВЕСТУВАЊЕ ЗА ГРЕШКИ", + "error_reporting_title": "Извештаи за падови", + "error_reporting_description": "Испраќај анонимни извештаи за падови за подобра стабилност", + "session_replay_title": "Снимање сесија", + "session_replay_description": "Сними го екранот кога ќе се појават грешки", + "pii_title": "Вклучи информации за уредот", + "pii_description": "Испраќај IP адреса и детали за уредот со извештаите", + "section_quick_actions": "БРЗИ АКЦИИ", + "disable_all": "Исклучи ја целата телеметрија", + "disable_all_desc": "Исклучи го целото прибирање податоци", + "reset_recommended": "Врати на препорачано", + "reset_recommended_desc": "Поставки со фокус на приватност и известување за грешки", + "section_learn_more": "ДОЗНАЈ ПОВЕЌЕ", + "current_settings": "Преглед на моменталните поставки", + "summary_analytics": "Аналитика", + "summary_errors": "Извештаи за грешки", + "summary_replay": "Снимање сесија", + "summary_pii": "Инфо за уред", + "restart_note_detailed": "* Промените за аналитика и грешки стапуваат на сила веднаш. Снимањето сесија и PII бараат рестартирање на апликацијата." + }, + "ai_settings": { + "title": "AI Асистент", + "info_title": "AI Разговор", + "info_desc": "Поставувајте прашања за било кој филм или епизода користејќи напредна вештачка интелигенција. Добијте информации за дејството, ликовите, темите и интересни факти - сè базирано на TMDB податоци.", + "feature_1": "Контекст и анализа специфични за епизодата", + "feature_2": "Објаснувања на дејството и увид во ликовите", + "feature_3": "Интересни факти зад сцената", + "feature_4": "Ваш сопствен бесплатен OpenRouter API клуч", + "api_key_section": "OPENROUTER API КЛУЧ", + "api_key_label": "API Клуч", + "api_key_desc": "Внесете го вашиот OpenRouter API клуч за овозможување на AI опциите", + "save_api_key": "Зачувај API клуч", + "saving": "Се зачувува...", + "update": "Ажурирај", + "remove": "Отстрани", + "get_free_key": "Земи бесплатен API клуч од OpenRouter", + "enable_chat": "Овозможи AI разговор", + "enable_chat_desc": "Кога е овозможено, копчето „Прашај AI“ ќе се појави на страниците со содржина.", + "chat_enabled": "AI разговорот е овозможен", + "chat_enabled_desc": "Сега можете да поставувате прашања. Побарајте го копчето „Прашај AI“!", + "how_it_works": "Како функционира", + "how_it_works_desc": "• OpenRouter нуди пристап до повеќе AI модели\n• Вашиот API клуч останува приватен и безбеден\n• Бесплатниот план вклучува дарежливи лимити за користење\n• Разговарајте со контекст за конкретни епизоди/филмови\n• Добијте детални анализи и објаснувања", + "error_invalid_key": "Ве молиме внесете важечки API клуч", + "error_key_format": "OpenRouter API клучевите треба да започнуваат со „sk-or-“", + "success_saved": "API клучот е успешно зачуван!", + "error_save": "Неуспешно зачувување на API клучот", + "confirm_remove_title": "Отстрани API клуч", + "confirm_remove_msg": "Дали сте сигурни дека сакате да го отстраните клучот? Ова ќе го оневозможи AI асистентот.", + "success_removed": "API клучот е успешно отстранет", + "error_remove": "Неуспешно отстранување на API клучот" + }, + "catalog_settings": { + "title": "Каталози", + "layout_phone": "РАСПОРЕД НА КАТАЛОГ (ТЕЛЕФОН)", + "posters_per_row": "Постери во ред", + "auto": "Автоматски", + "show_titles": "Прикажи наслови на постери", + "show_titles_desc": "Прикажи го насловот под секој постер", + "phone_only_hint": "Важи само за телефони. Таблетите го задржуваат адаптивниот распоред.", + "catalogs_group": "Каталози", + "enabled_count": "{{enabled}} од {{total}} овозможени", + "rename_hint": "Држете долго на каталог за да го преименувате", + "rename_modal_title": "Преименувај каталог", + "rename_placeholder": "Внесете ново име на каталогот", + "error_save_name": "Името не можеше да се зачува." + }, + "continue_watching_settings": { + "title": "Продолжи со гледање", + "playback_behavior": "ОДНЕСУВАЊЕ ПРИ РЕПРОДУКЦИЈА", + "use_cached": "Користи кеширани стримови", + "use_cached_desc": "Кога е овозможено, кликнувањето на ставките ќе го отвори плеерот директно со претходните стримови. Кога е исклучено, отвора екран со содржина.", + "open_metadata": "Отвори екран со детали", + "open_metadata_desc": "Кога кешираните стримови се исклучени, отвори го екранот со детали наместо екранот со стримови.", + "card_appearance": "ИЗГЛЕД НА КАРТИЧКА", + "card_style": "Стил на картичка", + "card_style_desc": "Изберете како ќе изгледаат ставките на почетниот екран", + "wide": "Широко", + "poster": "Постер", + "cache_settings": "ПОСТАВКИ ЗА КЕШ", + "cache_duration": "Времетраење на кешот за стримови", + "cache_duration_desc": "Колку долго да се чуваат линковите пред да истечат", + "important_note": "Важна напомена", + "important_note_text": "Не сите стримови остануваат активни до крајот на кешот. Подолго време може да доведе до нефункционални линкови.", + "how_it_works_cached": "• Стримовите се кешираат по гледањето\n• Кешот се проверува пред употреба\n• Ако кешот е неважечки, се отвора екранот со содржина\n• „Користи кеширани стримови“ контролира директна навигација", + "how_it_works_uncached": "• Кога кешот е исклучен, се отвораат екрани со содржина\n• Опцијата за детали контролира кој екран ќе се отвори\n• Екранот со детали овозможува рачен избор на стрим", + "changes_saved": "Промените се зачувани", + "min": "мин", + "hour": "час", + "hours": "часови" + }, + "contributors": { + "title": "Соработници", + "special_mentions": "Посебни признанија", + "tab_contributors": "Соработници", + "tab_special": "Специјално", + "tab_donors": "Донатори", + "manager_role": "Менаџер на заедница", + "manager_desc": "Управува со Discord и Reddit заедниците за Nuvio", + "sponsor_role": "Спонзор на сервер", + "sponsor_desc": "Ја спонзорираше серверската инфраструктура за Nuvio", + "mod_role": "Discord Модератор", + "mod_desc": "Помага во модерирање на Nuvio Discord заедницата", + "loading": "Се вчитува...", + "discord_user": "Discord Корисник", + "contributions": "придонеси", + "gratitude_title": "Благодарни сме за секој придонес", + "gratitude_desc": "Секоја линија код и предлог помага Nuvio да биде подобар за сите", + "special_thanks_title": "Посебна благодарност", + "special_thanks_desc": "Овие луѓе помагаат заедницата да опстои и серверите да бидат онлајн", + "donors_desc": "Ви благодариме што верувате во нас. Вашата поддршка го одржува Nuvio бесплатен.", + "latest_donations": "Најнови", + "leaderboard": "Ранг листа", + "loading_donors": "Се вчитуваат донатори...", + "no_donors": "Сè уште нема донатори", + "error_rate_limit": "Лимитот на GitHub API е надминат. Обидете се подоцна.", + "error_failed": "Неуспешно вчитување на соработници. Проверете ја врската.", + "retry": "Обиди се повторно", + "no_contributors": "Не се пронајдени соработници", + "loading_contributors": "Се вчитуваат соработници..." + }, + "debrid": { + "title": "Debrid интеграција", + "description_torbox": "Отклучете 4K квалитет и големи брзини со Torbox. Внесете го вашиот API клуч за премиум искуство.", + "description_torrentio": "Конфигурирајте Torrentio за торент стримови. Потребен е debrid сервис за гледање.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Поврзано", + "status_disconnected": "Исклучено", + "enable_addon": "Овозможи додаток", + "disconnect_button": "Исклучи и отстрани", + "disconnect_loading": "Се исклучува...", + "account_info": "Информации за сметка", + "plan": "План", + "plan_free": "Бесплатен", + "plan_essential": "Essential ($3/мес)", + "plan_pro": "Pro ($10/мес)", + "plan_standard": "Standard ($5/мес)", + "plan_unknown": "Непознато", + "expires": "Истекува", + "downloaded": "Преземено", + "status_active": "Активно", + "connected_title": "✓ Поврзано со TorBox", + "connected_desc": "Вашиот TorBox додаток е активен.", + "configure_title": "Конфигурирај додаток", + "configure_desc": "Прилагодете го стримингот: сортирајте по квалитет, филтрирајте големини на фајлови.", + "open_settings": "Отвори поставки", + "what_is_debrid": "Што е Debrid сервис?", + "enter_api_key": "Внесете го вашиот API клуч", + "connect_button": "Поврзи и инсталирај", + "connecting": "Се поврзува...", + "unlock_speeds_title": "Отклучете премиум брзини", + "unlock_speeds_desc": "Земете Torbox претплата за пристап до кеширани стримови без баферирање.", + "get_subscription": "Земи претплата", + "powered_by": "Овозможено од", + "disclaimer_torbox": "Nuvio не е поврзан со Torbox на никаков начин.", + "disclaimer_torrentio": "Nuvio не е поврзан со Torrentio на никаков начин.", + "installed_badge": "✓ ИНСТАЛИРАНО", + "promo_title": "⚡ Ви треба Debrid сервис?", + "promo_desc": "Земете TorBox за молскавично брз 4K стриминг.", + "promo_button": "Земи TorBox претплата", + "service_label": "Debrid сервис *", + "api_key_label": "API Клуч *", + "sorting_label": "Сортирање", + "exclude_qualities": "Исклучи квалитети", + "priority_languages": "Приоритетни јазици", + "max_results": "Макс. резултати", + "additional_options": "Дополнителни опции", + "no_download_links": "Не прикажувај линкови за преземање", + "no_debrid_catalog": "Не прикажувај debrid каталог", + "install_button": "Инсталирај Torrentio", + "installing": "Се инсталира...", + "update_button": "Ажурирај конфигурација", + "updating": "Се ажурира...", + "remove_button": "Отстрани Torrentio", + "error_api_required": "Потребен е API клуч", + "error_api_required_desc": "Внесете го клучот за да инсталирате Torrentio.", + "success_installed": "Torrentio е успешно инсталиран!", + "success_removed": "Torrentio е успешно отстранет", + "alert_disconnect_title": "Исклучи Torbox", + "alert_disconnect_msg": "Дали сте сигурни? Ова ќе го избрише клучот и додатокот." + }, + "home_screen": { + "title": "Поставки за почетен екран", + "changes_applied": "Промените се применети", + "display_options": "ОПЦИИ ЗА ПРИКАЗ", + "show_hero": "Прикажи истакната секција", + "show_hero_desc": "Најпопуларна содржина најгоре", + "show_this_week": "Прикажи „Оваа недела“", + "show_this_week_desc": "Нови епизоди од тековната недела", + "select_catalogs": "Избери каталози", + "all_catalogs": "Сите каталози", + "selected": "избрано", + "hero_layout": "Распоред на истакнато", + "layout_legacy": "Класично", + "layout_carousel": "Вртелешка", + "layout_appletv": "Apple TV", + "layout_desc": "Банер во полна ширина, картички за лизгање или Apple TV стил", + "featured_source": "Извор на истакнато", + "using_catalogs": "Се користат каталози", + "manage_selected_catalogs": "Управувај со избрани каталози", + "dynamic_bg": "Динамична позадина", + "dynamic_bg_desc": "Заматен банер зад вртелешката", + "performance_note": "Може да влијае на перформансите кај послаби уреди.", + "posters": "Постери", + "show_titles": "Прикажи наслови", + "poster_size": "Големина на постер", + "poster_corners": "Агли на постерот", + "size_small": "Мал", + "size_medium": "Среден", + "size_large": "Голем", + "corners_square": "Квадратни", + "corners_rounded": "Заоблени", + "corners_pill": "Елипсовидни", + "about_these_settings": "ЗА ОВИЕ ПОСТАВКИ", + "about_desc": "Контролирајте го приказот на Почетната страна. Промените се применуваат веднаш.", + "hero_catalogs": { + "title": "Каталози за истакната секција", + "select_all": "Избери сите", + "clear_all": "Исчисти сите", + "info": "Изберете кои каталози да се појавуваат најгоре. Ако не изберете ништо, ќе се користат сите.", + "settings_saved": "Поставките се зачувани", + "error_load": "Грешка при вчитување", + "movies": "Филмови", + "tv_shows": "ТВ Емисии" + } + }, + "calendar": { + "title": "Календар", + "loading": "Се вчитува календар...", + "no_scheduled_episodes": "Нема закажани епизоди", + "check_back_later": "Проверете подоцна", + "showing_episodes_for": "Епизоди за {{date}}", + "show_all_episodes": "Прикажи ги сите епизоди", + "no_episodes_for": "Нема епизоди за {{date}}", + "no_upcoming_found": "Нема нови епизоди во најава", + "add_series_desc": "Додајте серии во библиотеката за да ги видите нивните нови епизоди тука" + }, + "mdblist": { + "title": "Извори на рејтинзи", + "status_disabled": "MDBList е исклучен", + "status_active": "API клучот е активен", + "status_required": "Потребен е API клуч", + "status_disabled_desc": "Функционалноста на MDBList моментално е оневозможена.", + "status_active_desc": "Рејтинзите од MDBList се овозможени.", + "status_required_desc": "Додајте го вашиот клуч подолу за да овозможите рејтинзи.", + "enable_toggle": "Овозможи MDBList", + "enable_toggle_desc": "Вклучи/исклучи ја целата MDBList функционалност", + "api_section": "API Клуч", + "placeholder": "Залепете го вашиот MDBList API клуч", + "save": "Зачувај", + "clear": "Избриши клуч", + "rating_providers": "Провајдери на рејтинзи", + "rating_providers_desc": "Изберете кои рејтинзи да се прикажуваат во апликацијата", + "how_to": "Како да добиете API клуч", + "step_1": "Најавете се на", + "step_1_link": "веб-страницата на MDBList", + "step_2": "Одете во секцијата", + "step_2_settings": "Settings", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Генерирајте нов клуч и копирајте го.", + "go_to_website": "Оди на MDBList", + "alert_clear_title": "Избриши API клуч", + "alert_clear_msg": "Дали сте сигурни дека сакате да го отстраните зачуваниот API клуч?", + "success_saved": "API клучот е успешно зачуван.", + "error_empty": "API клучот не може да биде празен.", + "error_save": "Се појави грешка при зачувувањето. Обидете се повторно.", + "api_key_empty_error": "API клучот не може да биде празен.", + "success_cleared": "API клучот е успешно избришан", + "error_clear": "Неуспешно бришење на API клучот" + }, + "notification": { + "title": "Поставки за известувања", + "section_general": "Општо", + "enable_notifications": "Овозможи известувања", + "section_types": "Типови на известувања", + "new_episodes": "Нови епизоди", + "upcoming_shows": "Претстојни серии", + "reminders": "Потсетници", + "section_timing": "Време на известување", + "timing_desc": "Кога сакате да бидете известени пред емитување на епизода?", + "hours_1": "1 час", + "hours_suffix": "часови", + "section_status": "Статус на известувања", + "stats_upcoming": "Претстојни", + "stats_this_week": "Оваа недела", + "stats_total": "Вкупно", + "sync_button": "Синхронизирај Библиотека и Trakt", + "syncing": "Се синхронизира...", + "sync_desc": "Автоматски ги синхронизира известувањата за сите серии во вашата библиотека и Trakt листа за гледање.", + "section_advanced": "Напредно", + "reset_button": "Ресетирај ги сите известувања", + "test_button": "Тестирај известување (5 сек)", + "test_notification_in": "Известување за {{seconds}}с...", + "test_notification_text": "Известувањето ќе се појави по {{seconds}} секунди", + "alert_reset_title": "Ресетирај известувања", + "alert_reset_msg": "Ова ќе ги откаже сите закажани известувања, но нема да избрише ништо од вашата библиотека. Дали сте сигурни?", + "alert_reset_success": "Сите известувања се ресетирани", + "alert_sync_complete": "Синхронизацијата е завршена", + "alert_sync_msg": "Успешно синхронизирани известувања за вашата библиотека и Trakt ставки.\n\nЗакажани: {{upcoming}} претстојни епизоди\nОваа недела: {{thisWeek}} епизоди", + "alert_test_scheduled": "Тест известувањето е закажано" + }, + "backup": { + "title": "Резервна копија и враќање", + "options_title": "Опции за резервна копија", + "options_desc": "Изберете што да вклучите во вашата резервна копија", + "section_core": "Основни податоци", + "section_addons": "Додатоци и интеграции", + "section_settings": "Поставки и преференции", + "library_label": "Библиотека", + "library_desc": "Вашите зачувани филмови и серии", + "watch_progress_label": "Напредок во гледање", + "watch_progress_desc": "Позиции на продолжување со гледање", + "addons_label": "Додатоци", + "addons_desc": "Инсталирани Stremio додатоци", + "plugins_label": "Приклучоци", + "plugins_desc": "Конфигурации на сопствени скрипти", + "trakt_label": "Trakt интеграција", + "trakt_desc": "Синхронизација на податоци и автентикација", + "app_settings_label": "Поставки на апликацијата", + "app_settings_desc": "Тема, преференции и конфигурации", + "user_prefs_label": "Кориснички преференции", + "user_prefs_desc": "Редослед на додатоци и UI поставки", + "catalog_settings_label": "Поставки на каталогот", + "catalog_settings_desc": "Филтри и преференции за каталози", + "api_keys_label": "API Клучеви", + "api_keys_desc": "MDBList и OpenRouter клучеви", + "action_create": "Создади резервна копија", + "action_restore": "Врати од резервна копија", + "section_info": "За резервните копии", + "info_text": "• Прилагодете ја содржината со прекинувачите погоре\n• Фајловите се чуваат локално на вашиот уред\n• Споделете го фајлот за пренос помеѓу уреди\n• Враќањето ќе ги пребрише вашите моментални податоци", + "alert_create_title": "Создади резервна копија", + "alert_no_content": "Нема избрано содржина.\n\nВе молиме овозможете барем една опција погоре.", + "alert_backup_created_title": "Копијата е создадена", + "alert_backup_created_msg": "Вашата резервна копија е подготвена за споделување.", + "alert_backup_failed_title": "Неуспешна резервна копија", + "alert_restore_confirm_title": "Потврди враќање", + "alert_restore_confirm_msg": "Ова ќе ги врати податоците од копијата создадена на {{date}}.\n\nОваа акција ќе ги пребрише тековните податоци. Дали продолжувате?", + "alert_restore_complete_title": "Враќањето е завршено", + "alert_restore_complete_msg": "Податоците се успешно вратени. Ве молиме рестартирајте ја апликацијата.", + "alert_restore_failed_title": "Враќањето не успеа", + "restart_app": "Рестартирај ја апликацијата", + "alert_restart_failed_title": "Неуспешно рестартирање", + "alert_restart_failed_msg": "Неуспешно рестартирање. Ве молиме рачно затворете ја и отворете ја апликацијата." + }, + "updates": { + "title": "Ажурирања", + "status_checking": "Проверка за ажурирања...", + "status_available": "Достапно е ажурирање!", + "status_downloading": "Преземање на ажурирањето...", + "status_installing": "Инсталирање на ажурирањето...", + "status_success": "Ажурирањето е успешно инсталирано!", + "status_error": "Неуспешно ажурирање", + "status_ready": "Подготвено за проверка", + "action_check": "Провери за ажурирања", + "action_install": "Инсталирај ажурирање", + "release_notes": "Белешки за верзијата:", + "version": "Верзија:", + "last_checked": "Последна проверка:", + "current_version": "Моментална верзија:", + "current_release_notes": "Белешки за тековната верзија:", + "github_release": "GITHUB ИЗДАНИЕ", + "current": "Тековна:", + "latest": "Најнова:", + "notes": "Белешки:", + "view_release": "Види издание", + "notification_settings": "ПОСТАВКИ ЗА ИЗВЕСТУВАЊА", + "ota_alerts_label": "OTA известувања", + "ota_alerts_desc": "Прикажи известувања за преку-воздух (OTA) ажурирања", + "major_alerts_label": "Главни ажурирања", + "major_alerts_desc": "Прикажи известувања за нови верзии на GitHub", + "alert_disable_ota_title": "Исклучи OTA известувања?", + "alert_disable_ota_msg": "Повеќе нема да добивате автоматски известувања.\n\n⚠️ Предупредување: Најновата верзија е важна за:\n• Поправка на грешки и стабилност\n• Нови функции\n• Точни извештаи за падови", + "alert_disable_major_title": "Исклучи известувања за главни верзии?", + "alert_disable_major_msg": "Повеќе нема да добивате инфо за верзии кои бараат реинсталација.\n\n⚠️ Предупредување: Овие ажурирања често содржат критични безбедносни поправки.", + "warning_note": "Останувањето на најнова верзија ви гарантира стабилна работа.", + "disable": "Исклучи", + "alert_no_update_to_install": "Нема достапно ажурирање за инсталација", + "alert_install_failed": "Неуспешна инсталација на ажурирањето", + "alert_no_update_title": "Нема ажурирање", + "alert_update_applied_msg": "Ажурирањето ќе биде применето при следното стартување" + }, + "player": { + "title": "Видео плеер", + "section_selection": "ИЗБОР НА ПЛЕЕР", + "internal_title": "Вграден плеер", + "internal_desc": "Користи го стандардниот плеер на апликацијата", + "vlc_title": "VLC", + "vlc_desc": "Отвори го стримот во VLC", + "infuse_title": "Infuse", + "infuse_desc": "Отвори го стримот во Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Отвори го стримот во OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Отвори го стримот во VidHub", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Отвори го стримот во Infuse LiveContainer", + "external_title": "Надворешен плеер", + "external_desc": "Отвори во вашиот претпочитан надворешен плеер", + "section_playback": "ОПЦИИ ЗА РЕПРОДУКЦИЈА", + "skip_intro_settings_title": "Прескокни вовед", + "powered_by_introdb": "Овозможено од IntroDB", + "autoplay_title": "Автоматски пушти прв стрим", + "autoplay_desc": "Автоматски стартувај го првиот стрим од листата.", + "resume_title": "Секогаш продолжи", + "resume_desc": "Прескокни го прашањето и продолжи каде што застанавте (ако е изгледано помалку од 85%).", + "engine_title": "Енџин на плеер", + "engine_desc": "Auto користи ExoPlayer со MPV резерва. Auto се препорачува за најдобра компатибилност со HDR и Dolby Vision.", + "decoder_title": "Режим на декодер", + "decoder_desc": "Како се декодира видеото. Auto се препорачува за најдобар баланс.", + "gpu_title": "GPU Рендерирање", + "gpu_desc": "GPU-Next нуди подобро управување со HDR и бои.", + "external_downloads_title": "Надворешен плеер за преземања", + "external_downloads_desc": "Пуштајте ја преземената содржина во надворешен плеер.", + "restart_required": "Потребно е рестартирање", + "restart_msg_decoder": "Рестартирајте ја апликацијата за промената на декодерот да стапи на сила.", + "restart_msg_gpu": "Рестартирајте ја апликацијата за промената на GPU режимот да стапи на сила.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV резерва", + "option_mpv": "MPV", + "option_mpv_desc": "Само MPV", + "option_auto_desc_decoder": "Најдобар баланс", + "option_sw": "SW", + "option_sw_desc": "Софтверски", + "option_hw": "HW", + "option_hw_desc": "Хардверски", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Целосен HW", + "option_gpu_desc": "Стандардно", + "option_gpu_next_desc": "Напредно" + }, + "plugins": { + "title": "Приклучоци", + "enable_title": "Овозможи приклучоци", + "enable_desc": "Овозможи го енџинот за надворешни извори на медиуми", + "repo_config_title": "Конфигурација на складишта", + "repo_config_desc": "Управувајте со надворешни складишта (Repositories).", + "your_repos": "Складишта", + "your_repos_desc": "Конфигурирајте надворешни извори.", + "add_repo_button": "Додај складиште", + "refresh": "Освежи", + "remove": "Отстрани", + "enabled": "Овозможено", + "disabled": "Оневозможено", + "updating": "Се ажурира...", + "success": "Успех", + "error": "Грешка", + "alert_repo_added": "Складиштето е додадено и приклучоците се вчитани", + "alert_repo_saved": "URL адресата е успешно зачувана", + "alert_repo_refreshed": "Складиштето е освежено", + "alert_invalid_url": "Невалиден формат на URL", + "alert_plugins_cleared": "Сите приклучоци се отстранети", + "alert_cache_cleared": "Кеш меморијата е исчистена", + "unknown": "Непознато", + "active": "Активно", + "available": "Достапно", + "platform_disabled": "Платформата е исклучена", + "limited": "Ограничено", + "clear_all": "Избриши ги сите приклучоци", + "clear_all_desc": "Дали сте сигурни дека сакате да ги избришете сите приклучоци?", + "clear_cache": "Исчисти кеш на складишта", + "clear_cache_desc": "Ова ќе ги избрише зачуваните URL адреси и податоци.", + "add_new_repo": "Додај ново складиште", + "available_plugins": "Достапни приклучоци ({{count}})", + "placeholder": "Пребарај приклучоци...", + "all": "Сите", + "filter_all": "Сите типови", + "filter_movies": "Филмови", + "filter_tv": "ТВ Серии", + "enable_all": "Овозможи ги сите", + "disable_all": "Оневозможи ги сите", + "no_plugins_found": "Не се пронајдени приклучоци", + "no_plugins_available": "Нема достапни приклучоци", + "no_match_desc": "Ништо не одговара на „{{query}}“.", + "configure_repo_desc": "Конфигурирајте складиште погоре за да видите приклучоци.", + "clear_search": "Исчисти пребарување", + "no_external_player": "Нема надворешен плеер", + "showbox_token": "ShowBox UI Токен", + "showbox_placeholder": "Залепете го вашиот ShowBox UI токен", + "save": "Зачувај", + "clear": "Исчисти", + "additional_settings": "Дополнителни поставки", + "enable_url_validation": "Овозможи валидација на URL", + "url_validation_desc": "Провери ги линковите пред прикажување (подобрува сигурност, но може да биде побавно)", + "group_streams": "Групирај извори од приклучоци", + "group_streams_desc": "Групирај ги изворите според складиштето.", + "sort_quality": "Сортирај прво по квалитет", + "sort_quality_desc": "Достапно само кога групирањето е вклучено.", + "show_logos": "Прикажи логоа на приклучоци", + "show_logos_desc": "Прикажи лого покрај линковите за стриминг.", + "quality_filtering": "Филтрирање по квалитет", + "quality_filtering_desc": "Исклучете одредени резолуции од резултатите.", + "excluded_qualities": "Исклучени квалитети:", + "language_filtering": "Филтрирање по јазик", + "language_filtering_desc": "Исклучете одредени јазици од резултатите.", + "note": "Забелешка:", + "language_filtering_note": "Овој филтер важи само за провајдери кои нудат информации за јазик.", + "excluded_languages": "Исклучени јазици:", + "about_title": "За приклучоците", + "about_desc_1": "Приклучоците се модуларни компоненти кои повлекуваат содржина од надворешни протоколи. Тие работат локално на вашиот уред.", + "about_desc_2": "Приклучоците означени како „Ограничени“ може да бараат дополнителна конфигурација.", + "help_title": "Поставување приклучоци", + "help_step_1": "1. **Овозможи приклучоци** - Вклучи го главниот прекинувач", + "help_step_2": "2. **Додај складиште** - Внеси валидна URL адреса", + "help_step_3": "3. **Освежи** - Повлечи ги достапните приклучоци", + "help_step_4": "4. **Активирај** - Овозможи ги приклучоците што сакаш да ги користиш", + "got_it": "Разбрав!", + "repo_format_hint": "Формат: https://raw.githubusercontent.com/корисник/складиште/гранка", + "cancel": "Откажи", + "add": "Додај" + }, + "theme": { + "title": "Теми", + "select_theme": "ИЗБЕРИ ТЕМА", + "create_custom": "Создади сопствена тема", + "options": "ОПЦИИ", + "use_dominant_color": "Користи доминантна боја од постерот", + "categories": { + "all": "Сите теми", + "dark": "Темни теми", + "colorful": "Во боја", + "custom": "Мои теми" + }, + "editor": { + "theme_name_placeholder": "Име на тема", + "save": "Зачувај", + "primary": "Примарна", + "secondary": "Секундарна", + "background": "Позадина", + "invalid_name_title": "Невалидно име", + "invalid_name_msg": "Ве молиме внесете валидно име за темата" + }, + "alerts": { + "delete_title": "Избриши тема", + "delete_msg": "Дали сте сигурни дека сакате да ја избришете „{{name}}“?", + "ok": "Во ред", + "delete": "Избриши", + "cancel": "Откажи", + "back": "Поставки" + } + }, + "legal": { + "title": "Правни информации", + "intro_title": "Природа на апликацијата", + "intro_text": "Nuvio е медиумски плеер и апликација за управување со метаподатоци. Делува исклучиво како интерфејс за прелистување на јавно достапни информации и пуштање на фајлови обезбедени од корисникот. Nuvio не хостира ниту дистрибуира никаква содржина.", + "extensions_title": "Приклучоци од трети страни", + "extensions_text": "Приклучоците се развиени од независни програмери. Ние немаме контрола врз легалноста или функционалноста на тие приклучоци.", + "user_resp_title": "Одговорност на корисникот", + "user_resp_text": "Корисниците се одговорни за приклучоците што ги инсталираат. Програмерите на Nuvio не поддржуваат кршење на авторски права.", + "dmca_title": "Авторски права и DMCA", + "dmca_text": "Бидејќи не хостираме содржина, не можеме да ја отстраниме од интернет. Доколку верувате дека интерфејсот ги крши вашите права, контактирајте нè.", + "warranty_title": "Без гаранција", + "warranty_text": "Софтверот се нуди „како што е“, без никаква гаранција." + }, + "plugin_tester": { + "title": "Тестер на приклучоци", + "subtitle": "Стартувајте скрипти и следете ги логовите во реално време", + "tabs": { + "individual": "Индивидуално", + "repo": "Тестер на складиште", + "code": "Код", + "logs": "Логови", + "results": "Резултати" + }, + "common": { + "error": "Грешка", + "success": "Успех", + "movie": "Филм", + "tv": "ТВ", + "tmdb_id": "TMDB ID", + "season": "Сезона", + "episode": "Епизода", + "running": "Се извршува...", + "run_test": "Пушти тест", + "play": "Пушти", + "done": "Завршено", + "test": "Тест", + "testing": "Се тестира..." + }, + "individual": { + "load_from_url": "Вчитај од URL", + "load_from_url_desc": "Залепете GitHub URL или локална IP адреса.", + "enter_url_error": "Внесете URL адреса", + "code_loaded": "Кодот е вчитан", + "fetch_error": "Неуспешно вчитување: {{message}}", + "no_code_error": "Нема код за извршување", + "plugin_code": "Код на приклучокот", + "focus_editor": "Фокусирај го уредникот", + "code_placeholder": "// Залепете го кодот тука...", + "test_parameters": "Параметри за тест", + "no_logs": "Нема логови. Пуштете тест.", + "no_streams": "Не се пронајдени стримови.", + "streams_found": "Пронајден {{count}} стрим", + "streams_found_plural": "Пронајдени {{count}} стримови", + "tap_play_hint": "Притиснете Пушти за тест во плеер.", + "unnamed_stream": "Неименуван стрим", + "quality": "Квалитет: {{quality}}", + "size": "Големина: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Headers: {{count}}", + "find_placeholder": "Најди во кодот...", + "edit_code_title": "Уреди код", + "no_url_stream_error": "Не е пронајдена URL за овој стрим" + }, + "repo": { + "title": "Тестер на складиште", + "description": "Тестирајте ги сите провајдери од едно складиште.", + "enter_repo_url_error": "Внесете URL на складиште", + "invalid_url_title": "Невалидна URL", + "invalid_url_msg": "Користете GitHub raw линк или локален http(s) линк.", + "manifest_build_error": "Не може да се креира manifest URL", + "manifest_fetch_error": "Неуспешно вчитување на manifest", + "repo_manifest_fetch_error": "Неуспешно вчитување на manifest на складиштето", + "missing_filename": "Недостасува име на фајл", + "scraper_build_error": "Не може да се креира линк за скриптата", + "download_scraper_error": "Неуспешно преземање на скриптата", + "test_failed": "Тестот не успеа", + "test_parameters": "Параметри", + "test_parameters_desc": "Овие параметри важат само за тестерот.", + "using_info": "Користи: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Користи: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Провајдери", + "repository_default": "Складиште", + "providers_count": "{{count}} провајдери", + "fetch_hint": "Вчитајте складиште за листа.", + "test_all": "Тестирај ги сите", + "status_running": "СЕ ИЗВРШУВА", + "status_ok": "ВО РЕД ({{count}})", + "status_ok_empty": "ВО РЕД (0)", + "status_failed": "НЕ УСПЕА", + "status_idle": "ВО МИРУВАЊЕ", + "tried_url": "Обид со: {{url}}", + "provider_logs": "Логови на провајдерот", + "no_logs_captured": "Нема снимено логови." + } + } +} + + From 984aac52d502a4cbae6d5c2c8cf62cc735b20194 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:18:21 +0100 Subject: [PATCH 113/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 2a65bea0..33e29f37 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -17,6 +17,7 @@ import pl from './locales/pl.json'; import cs from './locales/cs.json'; import tr from './locales/tr.json'; import sl from './locales/sl.json'; +import mk from './locales/mk.json'; export const resources = { en: { translation: en }, @@ -37,4 +38,5 @@ export const resources = { cs: { translation: cs }, tr: { translation: tr }, sl: { translation: sl }, + mk: { translation: mk }, }; From c013a8b05700d8a3a15dbc3dc6175cb0f945f5c1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:19:39 +0100 Subject: [PATCH 114/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index f957af0c..060bbdbe 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -17,4 +17,5 @@ export const LOCALES = [ { code: 'cs', key: 'czech' } { code: 'tr', key: 'turkish' } { code: 'sl', key: 'slovenian' } + { code: 'mk', key: 'macedonian' } ]; From 6607d5d5142d24948a5c23e9464591f08c4ee415 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:21:53 +0100 Subject: [PATCH 115/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 166b123d..8c0033f5 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -642,6 +642,7 @@ "czech": "التشيكية", "turkish": "التركية", "slovenian": "السلوفينية", + "macedonian": "مقدوني", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 8c4ae9ab6365c850fe9ae6f2d547336259ebc685 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:24:36 +0100 Subject: [PATCH 116/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index c085a311..e25aa7ff 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -647,6 +647,7 @@ "czech": "Чешки", "turkish": "Турски", "slovenian": "Словенски", + "macedonian": "Македонски", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1426,3 +1427,4 @@ + From d1514b9a44f96d493742f2961d98417a68567be8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:25:31 +0100 Subject: [PATCH 117/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index bfad67e2..4a8b4eb8 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -637,6 +637,7 @@ "czech": "Čeština", "turkish": "Turečtina", "slovenian": "Slovinština", + "macedonian": "Makedonský", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1414,3 +1415,4 @@ } + From 7415d1bf151b2ce847798b8dbd4cb18de792fba6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:26:17 +0100 Subject: [PATCH 118/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index d78f18de..16db8e53 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -642,6 +642,7 @@ "czech": "Tschechisch", "turkish": "Türkisch", "slovenian": "Slowenisch", + "macedonian": "Makedonisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From 144acbcf0c42912d6732e1fc09ed340c49a01158 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:26:59 +0100 Subject: [PATCH 119/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index ec1e9f4a..b8ef0d24 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -647,6 +647,7 @@ "czech": "Czech", "turkish": "Turkish", "slovenian": "Slovenian", + "macedonian": "Macedonian", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From f6b637bc3ef834d82d8d913c88e86983ab5a1a2d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:28:42 +0100 Subject: [PATCH 120/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 33391949..5b6e7107 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -642,6 +642,7 @@ "czech": "Checo", "turkish": "Turco", "slovenian": "Esloveno", + "macedonian": "Macedonio", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 681f5580a9eb87c4972d64f46201f4d3242921ee Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:29:40 +0100 Subject: [PATCH 121/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 40dfc63d..1c3e3567 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -642,6 +642,7 @@ "czech": "Tchèque", "turkish": "Turc", "slovenian": "Slovène", + "macedonian": "Macédonien", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From 6991c233a174b33d19f01e12f587e937264ef514 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:31:12 +0100 Subject: [PATCH 122/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index be833604..593d8759 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -647,6 +647,7 @@ "czech": "צ'כית", "turkish": "טורקית", "slovenian": "סلوفينية", + "macedonian": "מקדונית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1427,3 +1428,4 @@ + From b871cd095416a1e8df9ecb4fc919b4a07e3c1b5a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:32:07 +0100 Subject: [PATCH 123/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 23a831c0..1b5b1cea 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -642,6 +642,7 @@ "czech": "चेक", "turkish": "तुर्की", "slovenian": "स्लोवेनियाई", + "macedonian": "मकदूनियाई", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 3a2999003d73cfc852f45ebaf2084af2cad598be Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:33:18 +0100 Subject: [PATCH 124/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 28a5db1e..1def27aa 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -642,6 +642,7 @@ "czech": "Ceco", "turkish": "Turco", "slovenian": "Sloveno", + "macedonian": "Macedone", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 3c368a63db6d3d19935f069260543122bd3e4d49 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:34:18 +0100 Subject: [PATCH 125/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 80ba0f8d..44bbe2d6 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -647,6 +647,7 @@ "czech": "Czeski", "turkish": "Turecki", "slovenian": "Słoweński", + "macedonian": "Macedoński", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1426,3 +1427,4 @@ + From 3ebf18873d7522137ce4be23dee01a6b389118e1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:35:02 +0100 Subject: [PATCH 126/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index cdc8f51b..64746059 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -656,6 +656,7 @@ "czech": "Theco", "turkish": "Turco", "slovenian": "Esloveno", + "macedonian": "Macedônio", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From a621ba938054e12da0aac74c90f8fb41d59ef960 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:35:43 +0100 Subject: [PATCH 127/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index c55968dc..d1607cc2 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -654,6 +654,7 @@ "czech": "Theco", "turkish": "Turco", "slovenian": "Esloveno", + "macedonian": "Macedônio", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 9c0f462081ad2fc6f12983ba1e1e233b98f8aec6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:36:48 +0100 Subject: [PATCH 128/285] Update sl.json --- src/i18n/locales/sl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 9ba9a1be..e0303e15 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -647,6 +647,7 @@ "czech": "Češčina", "turkish": "Turščina", "slovenian": "Slovenščina", + "macedonian": "Makedonski", "account": "Račun", "content_discovery": "Vsebina in odkrivanje", "appearance": "Videz", @@ -1422,3 +1423,4 @@ } } } + From aa9f009f9cfaa6becc04313b2ede13c00dc46830 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:38:46 +0100 Subject: [PATCH 129/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 47a10bef..54b55f07 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -641,6 +641,7 @@ "czech": "Чешки", "turkish": "Турски", "slovenian": "Словеначки", + "macedonian": "Македонски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1424,3 +1425,4 @@ + From 1131ad61fd36a77baff3e14e98c9a1501c242350 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:39:46 +0100 Subject: [PATCH 130/285] Update tr.json --- src/i18n/locales/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 1733a888..7cad0f4e 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -647,6 +647,7 @@ "czech": "Çekçe", "turkish": "Türkçe", "slovenian": "Slovence", + "macedonian": "Makedonca", "account": "Hesap", "content_discovery": "İçerik ve Keşif", "appearance": "Görünüm", @@ -1423,3 +1424,4 @@ } } + From 4c4c58ad3e346a1a4a37c47c10bbaa22dad244f8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 00:40:38 +0100 Subject: [PATCH 131/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 65bc1d86..39a50113 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -642,6 +642,7 @@ "czech": "捷克语", "turkish": "土耳其语", "slovenian": "斯洛文尼亚语", + "macedonian": "马其顿语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From b3c25915c6bb8270d93d9477b68d241e44572bce Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:23:21 +0100 Subject: [PATCH 132/285] Added Russian lang --- src/i18n/locales/ru.json | 1427 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1427 insertions(+) create mode 100644 src/i18n/locales/ru.json diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json new file mode 100644 index 00000000..f4a8228d --- /dev/null +++ b/src/i18n/locales/ru.json @@ -0,0 +1,1427 @@ +{ + "common": { + "loading": "Загрузка...", + "cancel": "Отмена", + "save": "Сохранить", + "delete": "Удалить", + "edit": "Изменить", + "search": "Поиск", + "error": "Ошибка", + "success": "Успешно", + "ok": "ОК", + "unknown": "Неизвестно", + "retry": "Повторить", + "try_again": "Попробовать еще раз", + "go_back": "Назад", + "settings": "Настройки", + "close": "Закрыть", + "enable": "Включить", + "disable": "Выключить", + "show_more": "Показать больше", + "show_less": "Показать меньше", + "load_more": "Загрузить еще", + "unknown_date": "Дата неизвестна", + "anonymous_user": "Анонимный пользователь", + "time": { + "now": "Только что", + "minutes_ago": "{{count}} мин. назад", + "hours_ago": "{{count}} ч. назад", + "days_ago": "{{count}} дн. назад" + }, + "days_short": { + "sun": "Вс", + "mon": "Пн", + "tue": "Вт", + "wed": "Ср", + "thu": "Чт", + "fri": "Пт", + "sat": "Сб" + }, + "email": "Email", + "status": "Статус" + }, + "home": { + "categories": { + "movies": "Фильмы", + "series": "Сериалы", + "channels": "Каналы" + }, + "movies": "Фильмы", + "tv_shows": "ТВ-Шоу", + "load_more_catalogs": "Загрузить другие каталоги", + "no_content": "Контент недоступен", + "add_catalogs": "Добавить каталоги", + "sign_in_available": "Доступен вход", + "sign_in_desc": "Вы можете войти в любое время в меню Настройки → Аккаунт", + "view_all": "Смотреть все", + "this_week": "На этой неделе", + "upcoming": "Ожидаемые", + "recently_released": "Недавние релизы", + "no_scheduled_episodes": "Сериалы без расписания серий", + "check_back_later": "Зайдите позже", + "continue_watching": "Продолжить просмотр", + "up_next": "Далее", + "up_next_caps": "ДАЛЕЕ", + "released": "Выпущено", + "new": "Новое", + "tba": "Будет объявлено", + "new_episodes": "{{count}} новых серий", + "season_short": "С{{season}}", + "episode_short": "Э{{episode}}", + "season": "Сезон {{season}}", + "episode": "Серия {{episode}}", + "movie": "Фильм", + "series": "Сериал", + "tv_show": "ТВ-Шоу", + "percent_watched": "{{percent}}% просмотрено", + "view_details": "Подробнее", + "remove": "Удалить", + "play": "Смотреть", + "play_now": "Смотреть сейчас", + "resume": "Продолжить", + "info": "Инфо", + "more_info": "Больше информации", + "my_list": "Мой список", + "save": "Сохранить", + "saved": "Сохранено", + "retry": "Повторить", + "install_addons": "Установить дополнения", + "settings": "Настройки", + "no_featured_content": "Нет рекомендуемого контента", + "couldnt_load_featured": "Не удалось загрузить рекомендации", + "no_featured_desc": "Установите дополнения с каталогами или измените источник контента в настройках.", + "load_error_desc": "Произошла ошибка при загрузке рекомендаций. Проверьте соединение и попробуйте снова.", + "no_featured_available": "Рекомендации отсутствуют", + "no_description": "Описание отсутствует" + }, + "navigation": { + "home": "Главная", + "library": "Библиотека", + "search": "Поиск", + "downloads": "Загрузки", + "settings": "Настройки" + }, + "search": { + "title": "Поиск", + "recent_searches": "История поиска", + "discover": "Обзор", + "movies": "Фильмы", + "tv_shows": "ТВ-Шоу", + "select_catalog": "Выберите каталог", + "all_genres": "Все жанры", + "discovering": "Поиск контента...", + "show_more": "Показать больше ({{count}})", + "no_content_found": "Контент не найден", + "try_different": "Попробуйте другой жанр или каталог", + "select_catalog_desc": "Выберите каталог для поиска", + "tap_catalog_desc": "Нажмите на кнопку каталога выше, чтобы начать", + "placeholder": "Фильмы, сериалы...", + "keep_typing": "Продолжайте ввод...", + "type_characters": "Введите минимум 2 символа для поиска", + "no_results": "Результатов не найдено", + "try_keywords": "Попробуйте другие ключевые слова или проверьте опечатки", + "select_type": "Выберите тип", + "browse_movies": "Просмотр каталогов фильмов", + "browse_tv": "Просмотр каталогов сериалов", + "select_genre": "Выберите жанр", + "show_all_content": "Показать весь контент", + "genres_count": "Жанров: {{count}}" + }, + "library": { + "title": "Библиотека", + "watched": "Просмотрено", + "continue": "Продолжить", + "watchlist": "Список желаемого", + "collection": "Коллекция", + "rated": "С оценкой", + "items": "объектов", + "trakt_collections": "Коллекции Trakt", + "trakt_collection": "Коллекция Trakt", + "no_trakt": "Нет коллекций Trakt", + "no_trakt_desc": "Ваши коллекции Trakt появятся здесь после авторизации", + "load_collections": "Загрузить коллекции", + "empty_folder": "Нет контента в {{folder}}", + "empty_folder_desc": "Эта коллекция пуста", + "refresh": "Обновить", + "no_movies": "Фильмов пока нет", + "no_series": "Сериалов пока нет", + "no_content": "Контента пока нет", + "add_content_desc": "Добавьте контент в библиотеку, чтобы увидеть его здесь", + "find_something": "Найти что-нибудь интересное", + "removed_from_library": "Удалено из библиотеки", + "item_removed": "Объект удален из вашей библиотеки", + "failed_update_library": "Не удалось обновить библиотеку", + "unable_remove": "Не удалось удалить объект из библиотеки", + "marked_watched": "Отмечено как просмотренное", + "marked_unwatched": "Отмечено как непросмотренное", + "item_marked_watched": "Объект отмечен как просмотренный", + "item_marked_unwatched": "Объект отмечен как непросмотренный", + "failed_update_watched": "Не удалось обновить статус просмотра", + "unable_update_watched": "Не удалось обновить статус просмотра", + "added_to_library": "Добавлено в библиотеку", + "item_added": "Добавлено в локальную библиотеку", + "add_to_library": "Добавить в библиотеку", + "remove_from_library": "Удалить из библиотеки", + "mark_watched": "Отметить как просмотренное", + "mark_unwatched": "Отметить как непросмотренное", + "share": "Поделиться", + "add_to_watchlist": "Добавить в список желаемого Trakt", + "remove_from_watchlist": "Удалить из списка желаемого Trakt", + "added_to_watchlist": "Добавлено в список желаемого", + "added_to_watchlist_desc": "Объект добавлен в ваш список желаемого Trakt", + "removed_from_watchlist": "Удалено из списка желаемого", + "removed_from_watchlist_desc": "Объект удален из вашего списка желаемого Trakt", + "add_to_collection": "Добавить в коллекцию Trakt", + "remove_from_collection": "Удалить из коллекции Trakt", + "added_to_collection": "Добавлено в коллекцию", + "added_to_collection_desc": "Объект добавлен в вашу коллекцию Trakt", + "removed_from_collection": "Удалено из коллекции", + "removed_from_collection_desc": "Объект удален из вашей коллекции Trakt" + }, + "metadata": { + "unable_to_load": "Не удалось загрузить контент", + "error_code": "Код ошибки: {{code}}", + "content_not_found": "Контент не найден", + "content_not_found_desc": "Этот контент не существует или был удален.", + "server_error": "Ошибка сервера", + "server_error_desc": "Сервер временно недоступен. Попробуйте позже.", + "bad_gateway": "Плохой шлюз", + "bad_gateway_desc": "На сервере возникли проблемы. Попробуйте позже.", + "service_unavailable": "Сервис недоступен", + "service_unavailable_desc": "Сервис на техническом обслуживании. Попробуйте позже.", + "too_many_requests": "Слишком много запросов", + "too_many_requests_desc": "Вы делаете слишком много запросов. Пожалуйста, подождите.", + "request_timeout": "Время ожидания истекло", + "request_timeout_desc": "Запрос занял слишком много времени. Попробуйте снова.", + "network_error": "Ошибка сети", + "network_error_desc": "Проверьте интернет-соединение и попробуйте снова.", + "auth_error": "Ошибка аутентификации", + "auth_error_desc": "Проверьте настройки аккаунта и попробуйте снова.", + "access_denied": "Доступ запрещен", + "access_denied_desc": "У вас нет прав для доступа к этому контенту.", + "connection_error": "Ошибка подключения", + "streams_unavailable": "Потоки недоступны", + "streams_unavailable_desc": "Источники трансляции сейчас недоступны. Попробуйте позже.", + "unknown_error": "Неизвестная ошибка", + "something_went_wrong": "Что-то пошло не так. Попробуйте снова.", + "cast": "Актеры", + "more_like_this": "Похожее", + "collection": "Коллекция", + "episodes": "Серии", + "seasons": "Сезоны", + "posters": "Постеры", + "banners": "Баннеры", + "specials": "Спецвыпуски", + "season_number": "Сезон {{number}}", + "episode_count": "{{count}} серия", + "episode_count_plural": "{{count}} серий", + "no_episodes": "Серии недоступны", + "no_episodes_for_season": "Для сезона {{season}} нет доступных серий", + "episodes_not_released": "Серии еще не вышли", + "no_description": "Описание отсутствует", + "episode_label": "СЕРИЯ {{number}}", + "watch_again": "Смотреть снова", + "completed": "Завершено", + "play_episode": "Смотреть С{{season}}Э{{episode}}", + "play": "Смотреть", + "watched": "Просмотрено", + "watched_on_trakt": "Просмотрено на Trakt", + "synced_with_trakt": "Синхронизировано с Trakt", + "saved": "Сохранено", + "director": "Режиссер", + "directors": "Режиссеры", + "creator": "Создатель", + "creators": "Создатели", + "production": "Производство", + "network": "Сеть", + "mark_watched": "Отметить как просмотренное", + "mark_unwatched": "Отметить как непросмотренное", + "marking": "Отметка...", + "removing": "Удаление...", + "unmark_season": "Снять отметку с сезона {{season}}", + "mark_season": "Отметить сезон {{season}}", + "resume": "Продолжить", + "spoiler_warning": "Предупреждение о спойлерах", + "spoiler_warning_desc": "Этот комментарий содержит спойлеры. Вы уверены, что хотите его прочитать?", + "cancel": "Отмена", + "reveal_spoilers": "Показать спойлеры", + "movie_details": "Детали фильма", + "show_details": "Детали шоу", + "tagline": "Слоган", + "status": "Статус", + "release_date": "Дата выхода", + "runtime": "Длительность", + "budget": "Бюджет", + "revenue": "Сборы", + "origin_country": "Страна", + "original_language": "Оригинальный язык", + "first_air_date": "Первый выход", + "last_air_date": "Последний выход", + "total_episodes": "Всего серий", + "episode_runtime": "Длительность серии", + "created_by": "Авторы", + "backdrop_gallery": "Галерея фонов", + "loading_episodes": "Загрузка серий...", + "no_episodes_available": "Нет доступных серий", + "play_next": "Смотреть С{{season}}Э{{episode}}", + "play_next_episode": "Следующая серия", + "save": "Сохранить", + "percent_watched": "{{percent}}% просмотрено", + "percent_watched_trakt": "{{percent}}% просмотрено ({{traktPercent}}% на Trakt)", + "synced_with_trakt_progress": "Прогресс синхронизирован с Trakt", + "using_trakt_progress": "Используется прогресс Trakt", + "added_to_collection_hero": "В коллекции", + "added_to_collection_desc_hero": "Добавлено в вашу коллекцию Trakt", + "removed_from_collection_hero": "Удалено из коллекции", + "removed_from_collection_desc_hero": "Удалено из вашей коллекции Trakt", + "mark_as_watched": "Отметить как просмотренное", + "mark_as_unwatched": "Отметить как непросмотренное" + }, + "cast": { + "biography": "Биография", + "known_for": "Известность за", + "personal_info": "Личная информация", + "born_in": "Место рождения: {{place}}", + "filmography": "Фильмография", + "also_known_as": "Также известен как", + "no_info_available": "Дополнительная информация отсутствует", + "as_character": "в роли {{character}}", + "loading_details": "Загрузка деталей...", + "years_old": "{{age}} лет", + "view_filmography": "Смотреть фильмографию", + "filter": "Фильтр", + "sort_by": "Сортировать по", + "sort_popular": "Популярности", + "sort_latest": "Новизне", + "sort_upcoming": "Ожидаемым", + "upcoming_badge": "ОЖИДАЕТСЯ", + "coming_soon": "Скоро", + "filmography_count": "Фильмография • {{count}} работ", + "loading_filmography": "Загрузка фильмографии...", + "load_more_remaining": "Загрузить еще (осталось {{count}})", + "alert_error_title": "Ошибка", + "alert_error_message": "Не удалось загрузить \"{{title}}\". Попробуйте позже.", + "alert_ok": "ОК", + "no_upcoming": "У этого актера нет предстоящих релизов", + "no_content": "Контент с этим актером отсутствует", + "no_movies": "Фильмы с этим актером отсутствуют", + "no_tv": "ТВ-шоу с этим актером отсутствуют" + }, + "comments": { + "title": "Комментарии Trakt", + "spoiler_warning": "⚠️ Комментарий содержит спойлеры. Нажмите, чтобы открыть.", + "spoiler": "Спойлер", + "contains_spoilers": "Содержит спойлеры", + "reveal": "Открыть", + "vip": "VIP", + "unavailable": "Комментарии недоступны", + "no_comments": "Комментариев на Trakt пока нет", + "not_in_database": "Этого контента еще может не быть в базе Trakt", + "check_trakt": "Проверить на Trakt" + }, + "trailers": { + "title": "Трейлеры", + "official_trailers": "Официальные трейлеры", + "official_trailer": "Официальный трейлер", + "teasers": "Тизеры", + "teaser": "Тизер", + "clips_scenes": "Клипы и сцены", + "clip": "Клип", + "featurettes": "О создании", + "featurette": "Ролик", + "behind_the_scenes": "За кулисами", + "no_trailers": "Трейлеры недоступны", + "unavailable": "Трейлер недоступен", + "unavailable_desc": "Не удалось загрузить трейлер. Попробуйте позже.", + "unable_to_play": "Не удалось воспроизвести трейлер. Попробуйте еще раз.", + "watch_on_youtube": "Смотреть на YouTube" + }, + "catalog": { + "no_content_found": "Контент не найден", + "no_content_filters": "По выбранным фильтрам ничего не найдено", + "loading_content": "Загрузка контента...", + "back": "Назад", + "in_theaters": "В кинотеатрах", + "all": "Все", + "failed_tmdb": "Не удалось загрузить данные из TMDB", + "movies": "Фильмы", + "tv_shows": "ТВ-Шоу", + "channels": "Каналы" + }, + "streams": { + "back_to_episodes": "Назад к сериям", + "back_to_info": "Назад к инфо", + "fetching_from": "Загрузка из:", + "no_sources_available": "Источники трансляции не найдены", + "add_sources_desc": "Пожалуйста, добавьте источники в настройках", + "add_sources": "Добавить источники", + "finding_streams": "Поиск доступных потоков...", + "finding_best_stream": "Поиск лучшего потока для автовоспроизведения...", + "still_fetching": "Все еще ищем потоки…", + "no_streams_available": "Потоки не найдены", + "starting_best_stream": "Запуск лучшего потока...", + "loading_more_sources": "Загрузка дополнительных источников..." + }, + "player_ui": { + "via": "через {{name}}", + "audio_tracks": "Аудиодорожки", + "no_audio_tracks": "Аудиодорожки недоступны", + "playback_speed": "Скорость воспроизведения", + "on_hold": "Удержание", + "playback_error": "Ошибка воспроизведения", + "unknown_error": "Произошла неизвестная ошибка при воспроизведении.", + "copy_error": "Копировать детали ошибки", + "copied_to_clipboard": "Скопировано в буфер обмена", + "dismiss": "Закрыть", + "continue_watching": "Продолжить просмотр", + "start_over": "Начать заново", + "resume": "Продолжить", + "change_source": "Сменить источник", + "switching_source": "Переключение источника...", + "no_sources_found": "Источники не найдены", + "sources": "Источники", + "finding_sources": "Поиск источников...", + "unknown_source": "Неизвестный источник", + "sources_limited": "Список источников может быть неполным из-за ошибок провайдера.", + "episodes": "Серии", + "specials": "Спецвыпуски", + "season": "Сезон {{season}}", + "stream": "Поток {{number}}", + "subtitles": "Субтитры", + "built_in": "Встроенные", + "addons": "Дополнения", + "style": "Стиль", + "none": "Нет", + "search_online_subtitles": "Поиск субтитров онлайн", + "preview": "Предпросмотр", + "quick_presets": "Быстрые пресеты", + "default": "По умолчанию", + "yellow": "Желтый", + "high_contrast": "Высокий контраст", + "large": "Крупный", + "core": "Основные", + "font_size": "Размер шрифта", + "show_background": "Показывать фон", + "advanced": "Дополнительно", + "position": "Позиция", + "text_color": "Цвет текста", + "align": "Выравнивание", + "bottom_offset": "Отступ снизу", + "background_opacity": "Прозрачность фона", + "text_shadow": "Тень текста", + "on": "Вкл", + "off": "Выкл", + "outline_color": "Цвет контура", + "outline": "Контур", + "outline_width": "Ширина контура", + "letter_spacing": "Межсимвольный интервал", + "line_height": "Высота строки", + "timing_offset": "Смещение времени (с)", + "visual_sync": "Визуальная синхронизация", + "timing_hint": "Используйте (-), чтобы субтитры появились раньше, или (+), чтобы позже.", + "reset_defaults": "Сбросить настройки", + "mark_intro_start": "Отметить начало интро", + "mark_intro_end": "Отметить конец интро", + "intro_start_marked": "Начало интро отмечено", + "intro_submitted": "Данные об интро отправлены", + "intro_submit_failed": "Не удалось отправить данные об интро" + }, + "downloads": { + "title": "Загрузки", + "no_downloads": "Загрузок пока нет", + "no_downloads_desc": "Загруженный контент появится здесь для офлайн-просмотра", + "explore": "Обзор контента", + "path_copied": "Путь скопирован", + "path_copied_desc": "Путь к локальному файлу скопирован", + "copied": "Скопировано", + "incomplete": "Загрузка не завершена", + "incomplete_desc": "Файл еще загружается", + "not_available": "Недоступно", + "not_available_desc": "Путь к файлу доступен только после завершения загрузки.", + "status_downloading": "Загрузка", + "status_completed": "Завершено", + "status_paused": "На паузе", + "status_error": "Ошибка", + "status_queued": "В очереди", + "status_unknown": "Неизвестно", + "provider": "Провайдер", + "streaming_playlist_warning": "Может не воспроизводиться (стриминг-плейлист)", + "remaining": "осталось", + "not_ready": "Загрузка не готова", + "not_ready_desc": "Пожалуйста, дождитесь завершения загрузки.", + "filter_all": "Все", + "filter_active": "Активные", + "filter_done": "Готовые", + "filter_paused": "На паузе", + "no_filter_results": "Нет {{filter}} загрузок", + "try_different_filter": "Попробуйте другой фильтр", + "limitations_title": "Ограничения загрузки", + "limitations_msg": "• Файлы меньше 1 МБ обычно являются плейлистами M3U8 и не могут быть загружены для офлайн-просмотра. Они работают только онлайн.", + "remove_title": "Удалить загрузку", + "remove_confirm": "Удалить \"{{title}}\"{{season_episode}}?", + "cancel": "Отмена", + "remove": "Удалить" + }, + "addons": { + "title": "Дополнения", + "reorder_mode": "Режим сортировки", + "reorder_info": "Дополнения сверху имеют приоритет при загрузке контента", + "add_addon_placeholder": "URL дополнения", + "add_button": "Добавить дополнение", + "my_addons": "Мои дополнения", + "community_addons": "Дополнения сообщества", + "no_addons": "Нет установленных дополнений", + "uninstall_title": "Удалить дополнение", + "uninstall_message": "Вы уверены, что хотите удалить {{name}}?", + "uninstall_button": "Удалить", + "install_success": "Дополнение успешно установлено", + "install_error": "Ошибка установки дополнения", + "load_error": "Ошибка загрузки дополнений", + "fetch_error": "Ошибка получения данных о дополнении", + "invalid_url": "Пожалуйста, введите корректный URL", + "configure": "Настроить", + "version": "Версия: {{version}}", + "installed_addons": "УСТАНОВЛЕННЫЕ ДОПОЛНЕНИЯ", + "reorder_drag_title": "ПЕРЕТАЩИТЕ ДЛЯ СОРТИРОВКИ", + "install": "Установить", + "config_unavailable_title": "Настройка недоступна", + "config_unavailable_msg": "Не удалось определить URL конфигурации для этого дополнения.", + "cannot_open_config_title": "Не удалось открыть настройки", + "cannot_open_config_msg": "URL ({{url}}) не открывается. Возможно, у дополнения нет страницы настроек.", + "description": "Описание", + "supported_types": "Поддерживаемые типы", + "catalogs": "Каталоги", + "no_description": "Описание отсутствует", + "overview": "ОБЗОР", + "no_categories": "Нет категорий", + "pre_installed": "ПРЕДУСТАНОВЛЕНО" + }, + "trakt": { + "title": "Настройки Trakt", + "settings_title": "Настройки Trakt", + "connect_title": "Подключить Trakt", + "connect_desc": "Синхронизируйте историю, список желаемого и коллекцию с Trakt.tv", + "sign_in": "Войти в Trakt", + "sign_out": "Выйти", + "sign_out_confirm": "Вы уверены, что хотите выйти из аккаунта Trakt?", + "joined": "Вместе с нами с {{date}}", + "sync_settings_title": "Настройки синхронизации", + "sync_info": "При подключении к Trakt история синхронизируется напрямую через API и не хранится локально. Список «Продолжить просмотр» отражает ваш глобальный прогресс Trakt.", + "auto_sync_label": "Автосинхронизация прогресса", + "auto_sync_desc": "Автоматически сохранять прогресс просмотра на Trakt", + "import_history_label": "Импорт истории просмотров", + "import_history_desc": "Используйте «Синхронизировать сейчас», чтобы загрузить историю с Trakt", + "sync_now_button": "Синхронизировать сейчас", + "display_settings_title": "Настройки отображения", + "show_comments_label": "Показывать комментарии Trakt", + "show_comments_desc": "Отображать отзывы пользователей на экранах описания контента", + "maintenance_title": "Техническое обслуживание", + "maintenance_unavailable": "Trakt недоступен", + "maintenance_desc": "Интеграция с Trakt временно приостановлена для обслуживания. Синхронизация и вход отключены.", + "maintenance_button": "Сервис на обслуживании", + "auth_success_title": "Подключено успешно", + "auth_success_msg": "Ваш аккаунт Trakt успешно подключен.", + "auth_error_title": "Ошибка авторизации", + "auth_error_msg": "Не удалось выполнить авторизацию в Trakt.", + "auth_error_generic": "Произошла ошибка во время авторизации.", + "sign_out_error": "Не удалось выйти из Trakt.", + "sync_complete_title": "Синхронизация завершена", + "sync_success_msg": "Прогресс просмотра успешно синхронизирован с Trakt.", + "sync_error_msg": "Ошибка синхронизации. Попробуйте снова." + }, + "simkl": { + "title": "Настройки Simkl", + "settings_title": "Настройки Simkl", + "connect_title": "Подключить Simkl", + "connect_desc": "Синхронизируйте историю и отслеживайте свои просмотры", + "sign_in": "Войти в Simkl", + "sign_out": "Отключить", + "sign_out_confirm": "Вы уверены, что хотите отключиться от Simkl?", + "syncing_desc": "Ваши просмотры синхронизируются с Simkl.", + "auth_success_title": "Подключено успешно", + "auth_success_msg": "Ваш аккаунт Simkl успешно подключен.", + "auth_error_title": "Ошибка авторизации", + "auth_error_msg": "Не удалось выполнить авторизацию в Simkl.", + "auth_error_generic": "Произошла ошибка во время авторизации.", + "sign_out_error": "Не удалось отключиться от Simkl.", + "config_error_title": "Ошибка конфигурации", + "config_error_msg": "Simkl Client ID отсутствует в переменных окружения.", + "conflict_title": "Конфликт", + "conflict_msg": "Вы не можете подключить Simkl, пока подключен Trakt. Сначала отключите Trakt.", + "disclaimer": "Nuvio не является аффилированным лицом Simkl." + }, + "tmdb_settings": { + "title": "Настройки TMDb", + "metadata_enrichment": "Обогащение метаданных", + "metadata_enrichment_desc": "Улучшите описание контента данными из TMDb для получения подробной информации.", + "enable_enrichment": "Включить обогащение", + "enable_enrichment_desc": "Дополняет метаданные данными об актерах, рейтингах, логотипах и студиях.", + "localized_text": "Локализованный текст", + "localized_text_desc": "Загружать названия и описания на вашем языке из TMDb.", + "language": "Язык", + "change": "Изменить", + "logo_preview": "Предпросмотр логотипа", + "logo_preview_desc": "Показывает, как будут выглядеть локализованные логотипы.", + "example": "Пример:", + "no_logo": "Логотип отсутствует", + "enrichment_options": "Опции обогащения", + "enrichment_options_desc": "Выберите, какие данные запрашивать. Отключенные опции будут использовать данные дополнений.", + "cast_crew": "Актеры и команда", + "cast_crew_desc": "Актеры, режиссеры, сценаристы с фото", + "title_description": "Заголовки и описания", + "title_description_desc": "Использовать локализованные тексты из TMDb", + "title_logos": "Логотипы названий", + "title_logos_desc": "Качественные изображения названий", + "banners_backdrops": "Баннеры и фоны", + "banners_backdrops_desc": "Изображения фона в высоком разрешении", + "certification": "Возрастные рейтинги", + "certification_desc": "Рейтинги (PG-13, R, и др.)", + "recommendations": "Рекомендации", + "recommendations_desc": "Предложения похожего контента", + "episode_data": "Данные о сериях", + "episode_data_desc": "Превью серий, информация и заглушки", + "season_posters": "Постеры сезонов", + "season_posters_desc": "Изображения для конкретных сезонов", + "production_info": "Информация о производстве", + "production_info_desc": "Сети и студии с логотипами", + "movie_details": "Детали фильма", + "movie_details_desc": "Бюджет, сборы, длительность, слоган", + "tv_details": "Детали сериала", + "tv_details_desc": "Статус, количество сезонов, авторы", + "movie_collections": "Кинофраншизы", + "movie_collections_desc": "Списки связанных фильмов (Marvel, Звездные войны и т.д.)", + "api_configuration": "Настройка API", + "api_configuration_desc": "Настройте доступ к TMDb API для повышения производительности.", + "custom_api_key": "Персональный API ключ", + "custom_api_key_desc": "Используйте собственный ключ для стабильной работы и личных лимитов.", + "custom_key_active": "Персональный ключ активен", + "api_key_required": "Требуется API ключ", + "api_key_placeholder": "Вставьте ваш TMDb API ключ (v3)", + "how_to_get_key": "Как получить API ключ TMDb?", + "built_in_key_msg": "Используется встроенный ключ. Рекомендуем использовать свой.", + "cache_size": "Размер кэша", + "clear_cache": "Очистить кэш", + "cache_days": "Данные TMDB кэшируются на 7 дней для быстрой работы", + "choose_language": "Выберите язык", + "choose_language_desc": "Выберите предпочтительный язык для контента TMDb", + "popular": "Популярные", + "all_languages": "Все языки", + "search_results": "Результаты поиска", + "no_languages_found": "Языки для «{{query}}» не найдены", + "clear_search": "Очистить поиск", + "clear_cache_title": "Очистить кэш TMDB", + "clear_cache_msg": "Это удалит все кэшированные данные ({{size}}). Загрузка может временно замедлиться.", + "clear_cache_success": "Кэш TMDB успешно очищен.", + "clear_cache_error": "Ошибка при очистке кэша.", + "clear_api_key_title": "Удалить API ключ", + "clear_api_key_msg": "Вы уверены, что хотите удалить свой ключ и вернуться к стандартному?", + "clear_api_key_success": "API ключ удален", + "clear_api_key_error": "Ошибка при удалении ключа", + "empty_api_key": "Ключ не может быть пустым.", + "invalid_api_key": "Некорректный ключ. Проверьте данные.", + "save_error": "Ошибка при сохранении. Попробуйте еще раз.", + "using_builtin_key": "Используется встроенный ключ TMDb.", + "using_custom_key": "Используется ваш персональный ключ TMDb.", + "enter_custom_key": "Пожалуйста, введите и сохраните ваш ключ TMDb.", + "key_verified": "API ключ проверен и сохранен." + }, + "settings": { + "language": "Язык", + "select_language": "Выберите язык", + "english": "Английский", + "portuguese": "Португальский", + "portuguese_br": "Португальский (Бразилия)", + "portuguese_pt": "Португальский (Португалия)", + "german": "Немецкий", + "arabic": "Арабский", + "spanish": "Испанский", + "french": "Французский", + "italian": "Итальянский", + "croatian": "Хорватский", + "chinese": "Китайский (упрощенный)", + "hindi": "Хинди", + "serbian": "Сербский", + "hebrew": "Иврит", + "bulgarian": "Болгарский", + "polish": "Польский", + "czech": "Чешский", + "turkish": "Турецкий", + "slovenian": "Словенский", + "macedonian": "Македонский", + "russian": "Русский", + "account": "Аккаунт", + "content_discovery": "Контент и поиск", + "appearance": "Внешний вид", + "integrations": "Интеграции", + "playback": "Воспроизведение", + "backup_restore": "Резервное копирование", + "updates": "Обновления", + "about": "О приложении", + "developer": "Разработчик", + "cache": "Кэш", + "title": "Настройки", + "settings_title": "Настройки", + "sign_in_sync": "Войдите для синхронизации", + "add_catalogs_sources": "Дополнения, каталоги и источники", + "player_trailers_downloads": "Плеер, трейлеры, загрузки", + "mdblist_tmdb_ai": "MDBList, TMDB, ИИ", + "check_updates": "Проверить обновления", + "clear_mdblist_cache": "Очистить кэш MDBList", + "cache_management": "УПРАВЛЕНИЕ КЭШЕМ", + "downloads_counter": "загрузок и считаем дальше", + "made_with_love": "Сделано с ❤️ Tapframe и друзьями", + "sections": { + "information": "ИНФОРМАЦИЯ", + "account": "АККАУНТ", + "theme": "ТЕМА", + "layout": "РАЗМЕТКА", + "sources": "ИСТОЧНИКИ", + "catalogs": "КАТАЛОГИ", + "discovery": "ОБЗОР", + "metadata": "МЕТАДАННЫЕ", + "ai_assistant": "ИИ-ПОМОЩНИК", + "video_player": "ВИДЕОПЛЕЕР", + "audio_subtitles": "АУДИО И СУБТИТРЫ", + "media": "МЕДИА", + "notifications": "УВЕДОМЛЕНИЯ", + "testing": "ТЕСТИРОВАНИЕ", + "danger_zone": "ОПАСНАЯ ЗОНА" + }, + "items": { + "legal": "Юридическая информация", + "privacy_policy": "Политика конфиденциальности", + "report_issue": "Сообщить о проблеме", + "version": "Версия", + "contributors": "Участники проекта", + "view_contributors": "Посмотреть всех участников", + "theme": "Тема", + "episode_layout": "Вид списка серий", + "streams_backdrop": "Фон потоков", + "streams_backdrop_desc": "Размытый фон при просмотре потоков на мобильных", + "addons": "Дополнения", + "installed": "установлено", + "debrid_integration": "Интеграция Debrid", + "debrid_desc": "Подключить Torbox", + "plugins": "Плагины", + "plugins_desc": "Управление плагинами и репозиториями", + "catalogs": "Каталоги", + "active": "активно", + "home_screen": "Главный экран", + "home_screen_desc": "Разметка и контент", + "continue_watching": "Продолжить просмотр", + "continue_watching_desc": "Кэш и поведение плеера", + "show_discover": "Раздел «Обзор»", + "show_discover_desc": "Показывать рекомендации в Поиске", + "mdblist": "MDBList", + "mdblist_connected": "Подключено", + "mdblist_desc": "Включите для рейтингов и отзывов", + "simkl": "Simkl", + "simkl_connected": "Подключено", + "simkl_desc": "Отслеживайте ваши просмотры", + "tmdb": "TMDB", + "tmdb_desc": "Источник метаданных и логотипов", + "openrouter": "OpenRouter API", + "openrouter_connected": "Подключено", + "openrouter_desc": "Добавьте API ключ для ИИ-чата", + "video_player": "Видеоплеер", + "built_in": "Встроенный", + "external": "Внешний", + "preferred_audio": "Предпочитаемый язык аудио", + "preferred_subtitle": "Предпочитаемый язык субтитров", + "subtitle_source": "Приоритет источников субтитров", + "auto_select_subs": "Автовыбор субтитров", + "auto_select_subs_desc": "Автоматически выбирать субтитры по вашим предпочтениям", + "show_trailers": "Показывать трейлеры", + "show_trailers_desc": "Отображать трейлеры в главном блоке", + "enable_downloads": "Включить загрузки", + "enable_downloads_desc": "Показывать вкладку загрузок и сохранять потоки", + "notifications": "Уведомления", + "notifications_desc": "Напоминания о новых сериях", + "developer_tools": "Инструменты разработчика", + "developer_tools_desc": "Опции для тестирования и отладки", + "test_onboarding": "Тест приветствия", + "reset_onboarding": "Сбросить приветствие", + "test_announcement": "Тест объявлений", + "test_announcement_desc": "Показать окно «Что нового»", + "reset_campaigns": "Сбросить кампании", + "reset_campaigns_desc": "Очистить показы кампаний", + "clear_all_data": "Удалить все данные", + "clear_all_data_desc": "Сбросить все настройки и кэш" + }, + "options": { + "horizontal": "Горизонтально", + "vertical": "Вертикально", + "internal_first": "Сначала встроенные", + "internal_first_desc": "Приоритет встроенных субтитров, затем внешних", + "external_first": "Сначала внешние", + "external_first_desc": "Приоритет субтитров из дополнений, затем встроенных", + "any_available": "Любые доступные", + "any_available_desc": "Использовать первую найденную дорожку" + }, + "clear_data_desc": "Это сбросит все настройки и очистит кэш. Вы уверены?", + "app_updates": "Обновления приложения", + "about_nuvio": "О Nuvio" + }, + "privacy": { + "title": "Конфиденциальность", + "settings_desc": "Управление телеметрией и сбором данных", + "info_title": "Ваша приватность важна", + "info_description": "Контролируйте, какие данные собираются. Аналитика отключена по умолчанию, а отчеты об ошибках анонимны.", + "analytics_enabled_title": "Аналитика включена", + "analytics_enabled_message": "Данные об использовании будут собираться для улучшения приложения. Вы можете отключить это в любое время.", + "disable_error_reporting_title": "Отключить отчеты об ошибках?", + "disable_error_reporting_message": "Мы не сможем узнать о сбоях, с которыми вы столкнулись. Это затруднит исправление ошибок.", + "enable_session_replay_title": "Включить запись сессии?", + "enable_session_replay_message": "Записывает экран в момент ошибки, чтобы мы поняли, что пошло не так. Может захватить видимый контент.", + "enable_pii_title": "Включить сбор личных данных?", + "enable_pii_message": "Разрешает сбор IP-адреса и данных устройства. Помогает в диагностике, но снижает приватность.", + "disable_all_title": "Отключить всю телеметрию?", + "disable_all_message": "Это отключит аналитику, отчеты об ошибках и запись сессий. Мы не получим никаких данных об использовании.", + "disable_all_button": "Отключить всё", + "all_disabled_title": "Вся телеметрия отключена", + "all_disabled_message": "Сбор данных отключен. Изменения вступят в силу после перезапуска приложения.", + "reset_title": "Сброс к рекомендуемым", + "reset_message": "Настройки сброшены к значениям по умолчанию (отчеты включены, аналитика выключена).", + "section_analytics": "АНАЛИТИКА", + "analytics_title": "Аналитика использования", + "analytics_description": "Анонимный сбор паттернов использования и просмотров экранов", + "section_error_reporting": "ОТЧЕТЫ ОБ ОШИБКАХ", + "error_reporting_title": "Отчеты о сбоях", + "error_reporting_description": "Отправка анонимных отчетов для улучшения стабильности", + "session_replay_title": "Запись сессии", + "session_replay_description": "Запись экрана при возникновении ошибок", + "pii_title": "Инфо об устройстве", + "pii_description": "Отправлять IP и данные устройства вместе с отчетами", + "section_quick_actions": "БЫСТРЫЕ ДЕЙСТВИЯ", + "disable_all": "Отключить всю телеметрию", + "disable_all_desc": "Выключить любой сбор данных", + "reset_recommended": "Сбросить к рекомендуемым", + "reset_recommended_desc": "Приватность прежде всего с отчетами об ошибках", + "section_learn_more": "УЗНАТЬ БОЛЬШЕ", + "privacy_policy": "Политика конфиденциальности", + "current_settings": "Текущие настройки", + "summary_analytics": "Аналитика", + "summary_errors": "Отчеты об ошибках", + "summary_replay": "Запись сессии", + "summary_pii": "Инфо об устройстве", + "restart_note_detailed": "* Изменения аналитики и ошибок применяются сразу. Запись сессий и инфо об устройстве требуют перезапуска." + }, + "ai_settings": { + "title": "ИИ-помощник", + "info_title": "Чат на базе ИИ", + "info_desc": "Задавайте вопросы о фильмах и сериях продвинутому ИИ. Сюжет, персонажи, факты — всё на основе данных TMDB.", + "feature_1": "Контекст и анализ конкретных серий", + "feature_2": "Объяснение сюжета и разбор персонажей", + "feature_3": "Закулисные факты и мелочи", + "feature_4": "Ваш собственный бесплатный ключ OpenRouter API", + "api_key_section": "API КЛЮЧ OPENROUTER", + "api_key_label": "API Ключ", + "api_key_desc": "Введите ваш ключ OpenRouter для активации ИИ-чата", + "save_api_key": "Сохранить API Ключ", + "saving": "Сохранение...", + "update": "Обновить", + "remove": "Удалить", + "get_free_key": "Получить бесплатный ключ на OpenRouter", + "enable_chat": "Включить ИИ-чат", + "enable_chat_desc": "Если включено, кнопка «Спросить ИИ» появится на страницах контента.", + "chat_enabled": "ИИ-чат включен", + "chat_enabled_desc": "Теперь вы можете задавать вопросы! Ищите кнопку «Спросить ИИ» на страницах фильмов и шоу.", + "how_it_works": "Как это работает", + "how_it_works_desc": "• OpenRouter дает доступ к разным моделям ИИ\n• Ваш ключ остается приватным и защищенным\n• Бесплатный тариф имеет щедрые лимиты\n• Чат понимает контекст фильма или серии\n• Получайте детальный анализ и объяснения", + "error_invalid_key": "Введите корректный API ключ", + "error_key_format": "Ключи OpenRouter должны начинаться с «sk-or-»", + "success_saved": "API ключ OpenRouter успешно сохранен!", + "error_save": "Не удалось сохранить API ключ", + "confirm_remove_title": "Удалить API Ключ", + "confirm_remove_msg": "Вы уверены? Это отключит все функции ИИ-чата.", + "success_removed": "API ключ успешно удален", + "error_remove": "Не удалось удалить API ключ" + }, + "catalog_settings": { + "title": "Каталоги", + "layout_phone": "РАЗМЕТКА КАТАЛОГА (ТЕЛЕФОН)", + "posters_per_row": "Постеров в ряду", + "auto": "Авто", + "show_titles": "Показывать названия", + "show_titles_desc": "Отображать текст названия под каждым постером", + "phone_only_hint": "Применяется только к телефонам. На планшетах — адаптивная разметка.", + "catalogs_group": "Каталоги", + "enabled_count": "{{enabled}} из {{total}} включено", + "rename_hint": "Удерживайте каталог, чтобы переименовать его", + "rename_modal_title": "Переименовать каталог", + "rename_placeholder": "Введите новое название", + "error_save_name": "Не удалось сохранить название." + }, + "continue_watching_settings": { + "title": "Продолжить просмотр", + "playback_behavior": "ПОВЕДЕНИЕ ПРИ ВОСПРОИЗВЕДЕНИИ", + "use_cached": "Использовать кэшированные потоки", + "use_cached_desc": "При нажатии на «Продолжить просмотр» плеер откроется сразу с ранее выбранным потоком. Если выключено — откроется страница контента.", + "open_metadata": "Открыть страницу описания", + "open_metadata_desc": "Если кэш потоков выключен, открывать детали контента вместо списка потоков.", + "card_appearance": "ВНЕШНИЙ ВИД КАРТОЧКИ", + "card_style": "Стиль карточки", + "card_style_desc": "Как объекты будут выглядеть на главном экране", + "wide": "Широкая", + "poster": "Постер", + "cache_settings": "НАСТРОЙКИ КЭША", + "cache_duration": "Срок хранения кэша потоков", + "cache_duration_desc": "Как долго хранить ссылки на потоки до их обновления", + "important_note": "Важное замечание", + "important_note_text": "Не все ссылки остаются активными долго. При долгом хранении ссылка может протухнуть. Если кэш не сработает, приложение найдет новые потоки.", + "how_it_works": "Как это работает", + "how_it_works_cached": "• Потоки кэшируются после просмотра на выбранный срок\n• Кэш проверяется перед использованием\n• Если кэш невалиден, открывается страница контента\n• Настройка управляет переходом в плеер или на экран\n• Выбор экрана доступен только при выключенном кэше", + "how_it_works_uncached": "• Если кэш выключен, нажатие открывает страницы контента\n• Вы можете выбрать, какой экран открывать (инфо или потоки)\n• Экран инфо показывает детали и ручной выбор\n• Экран потоков сразу ищет источники для запуска", + "changes_saved": "Изменения сохранены", + "min": "мин", + "hour": "час", + "hours": "ч." + }, + "contributors": { + "title": "Участники", + "special_mentions": "Особые благодарности", + "tab_contributors": "Участники", + "tab_special": "Особые", + "tab_donors": "Доны", + "manager_role": "Комьюнити-менеджер", + "manager_desc": "Управляет сообществами Discord и Reddit", + "sponsor_role": "Спонсор сервера", + "sponsor_desc": "Оплачивает серверную инфраструктуру Nuvio", + "mod_role": "Модератор Discord", + "mod_desc": "Помогает модерировать сообщество Nuvio", + "loading": "Загрузка...", + "discord_user": "Пользователь Discord", + "contributions": "вкладов", + "gratitude_title": "Мы благодарны за любой вклад", + "gratitude_desc": "Каждая строка кода, отчет об ошибке или предложение делают Nuvio лучше", + "special_thanks_title": "Особая благодарность", + "special_thanks_desc": "Эти люди помогают поддерживать работу сообщества и серверов", + "donors_desc": "Спасибо за веру в проект. Ваша поддержка позволяет Nuvio оставаться бесплатным.", + "latest_donations": "Последние", + "leaderboard": "Таблица лидеров", + "loading_donors": "Загрузка донов...", + "no_donors": "Донов пока нет", + "error_rate_limit": "Лимит GitHub API исчерпан. Попробуйте позже.", + "error_failed": "Ошибка загрузки. Проверьте соединение.", + "retry": "Повторить", + "no_contributors": "Участники не найдены", + "loading_contributors": "Загрузка участников..." + }, + "debrid": { + "title": "Интеграция Debrid", + "description_torbox": "Разблокируйте 4K потоки и высокую скорость через Torbox. Введите API ключ для мгновенного апгрейда.", + "description_torrentio": "Настройте Torrentio для получения торрент-потоков. Для работы требуется Debrid-сервис.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Подключено", + "status_disconnected": "Отключено", + "enable_addon": "Включить дополнение", + "disconnect_button": "Отключить и удалить", + "disconnect_loading": "Отключение...", + "account_info": "Информация об аккаунте", + "plan": "Тариф", + "plan_free": "Бесплатный", + "plan_essential": "Essential ($3/мес)", + "plan_pro": "Pro ($10/мес)", + "plan_standard": "Standard ($5/мес)", + "plan_unknown": "Неизвестно", + "expires": "Истекает", + "downloaded": "Загружено", + "status_active": "Активен", + "connected_title": "✓ Подключено к TorBox", + "connected_desc": "Ваше дополнение TorBox активно и предоставляет премиум-потоки.", + "configure_title": "Настроить дополнение", + "configure_desc": "Настройте сортировку по качеству, фильтрацию размеров и другие параметры.", + "open_settings": "Открыть настройки", + "what_is_debrid": "Что такое Debrid-сервис?", + "enter_api_key": "Введите ваш API ключ", + "connect_button": "Подключить и установить", + "connecting": "Подключение...", + "unlock_speeds_title": "Премиум скорость", + "unlock_speeds_desc": "Подпишитесь на Torbox для доступа к 4K потокам без буферизации.", + "get_subscription": "Получить подписку", + "powered_by": "Работает на", + "disclaimer_torbox": "Nuvio никак не связан с Torbox.", + "disclaimer_torrentio": "Nuvio никак не связан с Torrentio.", + "installed_badge": "✓ УСТАНОВЛЕНО", + "promo_title": "⚡ Нужен Debrid?", + "promo_desc": "TorBox обеспечит 4K стриминг без тормозов. Моментальные загрузки и кэшированные торренты.", + "promo_button": "Подписаться на TorBox", + "service_label": "Сервис Debrid *", + "api_key_label": "API Ключ *", + "sorting_label": "Сортировка", + "exclude_qualities": "Исключить качество", + "priority_languages": "Приоритетные языки", + "max_results": "Макс. результатов", + "additional_options": "Доп. опции", + "no_download_links": "Не показывать ссылки на загрузку", + "no_debrid_catalog": "Не показывать каталог Debrid", + "install_button": "Установить Torrentio", + "installing": "Установка...", + "update_button": "Обновить конфигурацию", + "updating": "Обновление...", + "remove_button": "Удалить Torrentio", + "error_api_required": "Требуется API Ключ", + "error_api_required_desc": "Введите API ключ вашего debrid-сервиса для установки Torrentio.", + "success_installed": "Torrentio успешно установлен!", + "success_removed": "Torrentio успешно удален", + "alert_disconnect_title": "Отключить Torbox", + "alert_disconnect_msg": "Вы уверены? Это удалит дополнение и ваш API ключ." + }, + "home_screen": { + "title": "Настройки главного экрана", + "changes_applied": "Изменения применены", + "display_options": "ОПЦИИ ОТОБРАЖЕНИЯ", + "show_hero": "Показывать главный блок", + "show_hero_desc": "Рекомендуемый контент сверху", + "show_this_week": "Раздел «На этой неделе»", + "show_this_week_desc": "Новые серии текущей недели", + "select_catalogs": "Выбрать каталоги", + "all_catalogs": "Все каталоги", + "selected": "выбрано", + "hero_layout": "Вид главного блока", + "layout_legacy": "Классический", + "layout_carousel": "Карусель", + "layout_appletv": "Apple TV", + "layout_desc": "Баннер на всю ширину, карточки или стиль Apple TV", + "featured_source": "Источник рекомендаций", + "using_catalogs": "Используются каталоги", + "manage_selected_catalogs": "Управление выбранными каталогами", + "dynamic_bg": "Динамический фон", + "dynamic_bg_desc": "Размытый баннер за каруселью", + "performance_note": "Может снизить скорость на слабых устройствах.", + "posters": "Постеры", + "show_titles": "Показывать названия", + "poster_size": "Размер постера", + "poster_corners": "Углы постера", + "size_small": "Маленький", + "size_medium": "Средний", + "size_large": "Большой", + "corners_square": "Квадратные", + "corners_rounded": "Закругленные", + "corners_pill": "Скругленные (Pill)", + "about_these_settings": "ОБ ЭТИХ НАСТРОЙКАХ", + "about_desc": "Настройки управляют контентом на главной. Изменения применяются мгновенно.", + "hero_catalogs": { + "title": "Каталоги главного блока", + "select_all": "Выбрать все", + "clear_all": "Сбросить все", + "info": "Выберите каталоги для показа в главном блоке. Если ничего не выбрано, будут показаны все. Не забудьте нажать «Сохранить».", + "settings_saved": "Настройки сохранены", + "error_load": "Не удалось загрузить каталоги", + "movies": "Фильмы", + "tv_shows": "ТВ-Шоу" + } + }, + "calendar": { + "title": "Календарь", + "loading": "Загрузка календаря...", + "no_scheduled_episodes": "Нет запланированных серий", + "check_back_later": "Зайдите позже", + "showing_episodes_for": "Серии на {{date}}", + "show_all_episodes": "Показать все серии", + "no_episodes_for": "Нет серий на {{date}}", + "no_upcoming_found": "Предстоящих серий не найдено", + "add_series_desc": "Добавьте сериалы в библиотеку, чтобы видеть их расписание здесь" + }, + "mdblist": { + "title": "Источники рейтингов", + "status_disabled": "MDBList отключен", + "status_active": "API-ключ активен", + "status_required": "Требуется API-ключ", + "status_disabled_desc": "Функционал MDBList в данный момент отключен.", + "status_active_desc": "Рейтинги MDBList включены.", + "status_required_desc": "Добавьте ключ ниже, чтобы включить отображение рейтингов.", + "enable_toggle": "Включить MDBList", + "enable_toggle_desc": "Включить/выключить все функции MDBList", + "api_section": "API-ключ", + "placeholder": "Вставьте ваш API-ключ MDBList", + "save": "Сохранить", + "clear": "Удалить ключ", + "rating_providers": "Провайдеры рейтингов", + "rating_providers_desc": "Выберите, какие рейтинги отображать в приложении", + "how_to": "Как получить API-ключ", + "step_1": "Войдите на", + "step_1_link": "сайт MDBList", + "step_2": "Перейдите в раздел", + "step_2_settings": "Settings", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Создайте новый ключ и скопируйте его.", + "go_to_website": "Перейти на MDBList", + "alert_clear_title": "Удалить API-ключ", + "alert_clear_msg": "Вы уверены, что хотите удалить сохраненный API-ключ?", + "success_saved": "API-ключ успешно сохранен.", + "error_empty": "API-ключ не может быть пустым.", + "error_save": "Произошла ошибка при сохранении. Попробуйте еще раз.", + "api_key_empty_error": "API-ключ не может быть пустым.", + "success_cleared": "API-ключ успешно удален", + "error_clear": "Не удалось удалить API-ключ" + }, + "notification": { + "title": "Настройки уведомлений", + "section_general": "Общие", + "enable_notifications": "Включить уведомления", + "section_types": "Типы уведомлений", + "new_episodes": "Новые серии", + "upcoming_shows": "Предстоящие шоу", + "reminders": "Напоминания", + "section_timing": "Время уведомления", + "timing_desc": "За сколько до выхода серии присылать уведомление?", + "hours_1": "1 час", + "hours_suffix": "час(ов)", + "section_status": "Статус уведомлений", + "stats_upcoming": "Ожидаются", + "stats_this_week": "На этой неделе", + "stats_total": "Всего", + "sync_button": "Синхронизировать библиотеку и Trakt", + "syncing": "Синхронизация...", + "sync_desc": "Автоматически настраивает уведомления для всех шоу в вашей библиотеке и списках Trakt.", + "section_advanced": "Дополнительно", + "reset_button": "Сбросить все уведомления", + "test_button": "Тест уведомления (5 сек)", + "test_notification_in": "Уведомление через {{seconds}}с...", + "test_notification_text": "Уведомление появится через {{seconds}} секунд", + "alert_reset_title": "Сброс уведомлений", + "alert_reset_msg": "Это отменит все запланированные уведомления, но не удалит данные из вашей библиотеки. Продолжить?", + "alert_reset_success": "Все уведомления были сброшены", + "alert_sync_complete": "Синхронизация завершена", + "alert_sync_msg": "Уведомления для библиотеки и Trakt синхронизированы.\n\nЗапланировано: {{upcoming}} серий\nНа этой неделе: {{thisWeek}} серий", + "alert_test_scheduled": "Тестовое уведомление запланировано" + }, + "backup": { + "title": "Резервное копирование", + "options_title": "Опции копирования", + "options_desc": "Выберите, что включить в бэкап", + "section_core": "Основные данные", + "section_addons": "Дополнения и интеграции", + "section_settings": "Настройки и предпочтения", + "library_label": "Библиотека", + "library_desc": "Ваши сохраненные фильмы и сериалы", + "watch_progress_label": "Прогресс просмотра", + "watch_progress_desc": "Позиции воспроизведения", + "addons_label": "Дополнения", + "addons_desc": "Установленные дополнения Stremio", + "plugins_label": "Плагины", + "plugins_desc": "Конфигурации пользовательских скреперов", + "trakt_label": "Интеграция Trakt", + "trakt_desc": "Данные синхронизации и токены авторизации", + "app_settings_label": "Настройки приложения", + "app_settings_desc": "Тема, предпочтения и конфигурации", + "user_prefs_label": "Пользовательские предпочтения", + "user_prefs_desc": "Порядок дополнений и настройки интерфейса", + "catalog_settings_label": "Настройки каталога", + "catalog_settings_desc": "Фильтры и предпочтения каталогов", + "api_keys_label": "API-ключи", + "api_keys_desc": "Ключи MDBList и OpenRouter", + "action_create": "Создать бэкап", + "action_restore": "Восстановить из бэкапа", + "section_info": "О резервных копиях", + "info_text": "• Выберите нужные пункты с помощью переключателей выше\n• Файлы бэкапа сохраняются локально на устройстве\n• Вы можете передать файл на другое устройство для переноса данных\n• Восстановление перезапишет текущие данные", + "alert_create_title": "Создание бэкапа", + "alert_no_content": "Не выбрано данных для копирования.\n\nПожалуйста, включите хотя бы одну опцию выше.", + "alert_backup_created_title": "Бэкап создан", + "alert_backup_created_msg": "Резервная копия создана и готова к отправке.", + "alert_backup_failed_title": "Ошибка бэкапа", + "alert_restore_confirm_title": "Подтвердите восстановление", + "alert_restore_confirm_msg": "Данные будут восстановлены из копии от {{date}}.\n\nЭто действие полностью заменит ваши текущие данные. Вы уверены?", + "alert_restore_complete_title": "Восстановление завершено", + "alert_restore_complete_msg": "Данные успешно восстановлены. Пожалуйста, перезапустите приложение.", + "alert_restore_failed_title": "Ошибка восстановления", + "restart_app": "Перезапустить", + "alert_restart_failed_title": "Ошибка перезапуска", + "alert_restart_failed_msg": "Не удалось перезапустить приложение автоматически. Пожалуйста, закройте и откройте его вручную." + }, + "updates": { + "title": "Обновления", + "status_checking": "Поиск обновлений...", + "status_available": "Доступно обновление!", + "status_downloading": "Загрузка обновления...", + "status_installing": "Установка обновления...", + "status_success": "Обновление успешно установлено!", + "status_error": "Ошибка обновления", + "status_ready": "Готов к проверке", + "action_check": "Проверить наличие обновлений", + "action_install": "Установить обновление", + "release_notes": "Список изменений:", + "version": "Версия:", + "last_checked": "Последняя проверка:", + "current_version": "Текущая версия:", + "current_release_notes": "Текущий список изменений:", + "github_release": "РЕЛИЗ НА GITHUB", + "current": "Текущая:", + "latest": "Последняя:", + "notes": "Заметки:", + "view_release": "Просмотреть релиз", + "notification_settings": "НАСТРОЙКИ УВЕДОМЛЕНИЙ", + "ota_alerts_label": "Оповещения OTA-обновлений", + "ota_alerts_desc": "Уведомления о быстрых исправлениях (по воздуху)", + "major_alerts_label": "Оповещения о мажорных обновлениях", + "major_alerts_desc": "Уведомления о новых версиях приложения на GitHub", + "alert_disable_ota_title": "Отключить OTA-оповещения?", + "alert_disable_ota_msg": "Вы больше не будете получать автоматические уведомления об исправлениях.\n\n⚠️ Внимание: Последние версии важны для:\n• Стабильности и исправления багов\n• Новых функций\n• Корректной отправки отчетов о сбоях\n\nВы сможете проверять обновления вручную на этом экране.", + "alert_disable_major_title": "Отключить оповещения о новых версиях?", + "alert_disable_major_msg": "Вы перестанете получать уведомления о крупных обновлениях, требующих переустановки.\n\n⚠️ Важно: Мажорные обновления включают:\n• Критические патчи безопасности\n• Важные изменения в работе приложения\n• Исправления совместимости", + "warning_note": "Включенные оповещения гарантируют получение исправлений и актуальную поддержку.", + "disable": "Отключить", + "alert_no_update_to_install": "Нет доступных обновлений для установки", + "alert_install_failed": "Не удалось установить обновление", + "alert_no_update_title": "Нет обновлений", + "alert_update_applied_msg": "Обновление будет применено при следующем запуске" + }, + "player": { + "title": "Видеоплеер", + "section_selection": "ВЫБОР ПЛЕЕРА", + "internal_title": "Встроенный плеер", + "internal_desc": "Использовать стандартный плеер приложения", + "vlc_title": "VLC", + "vlc_desc": "Открыть поток в VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Открыть поток в плеере Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Открыть поток в OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Открыть поток в VidHub", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Открыть поток в Infuse (LiveContainer)", + "external_title": "Внешний плеер", + "external_desc": "Открыть поток в любом другом установленном плеере", + "section_playback": "ОПЦИИ ВОСПРОИЗВЕДЕНИЯ", + "skip_intro_settings_title": "Пропуск вступления", + "powered_by_introdb": "На базе IntroDB", + "autoplay_title": "Автозапуск первого потока", + "autoplay_desc": "Автоматически начинать воспроизведение первого найденного источника.", + "resume_title": "Всегда продолжать", + "resume_desc": "Пропускать вопрос о возобновлении и сразу включать с места остановки (если просмотрено менее 85%).", + "engine_title": "Движок видеоплеера", + "engine_desc": "«Авто» использует ExoPlayer с переключением на MPV при необходимости. Рекомендуется для лучшей поддержки форматов вроде Dolby Vision.", + "decoder_title": "Режим декодера", + "decoder_desc": "Способ декодирования видео. «Авто» — лучший баланс.", + "gpu_title": "GPU-рендеринг", + "gpu_desc": "GPU-Next обеспечивает лучшую работу с HDR и цветом.", + "external_downloads_title": "Внешний плеер для загрузок", + "external_downloads_desc": "Воспроизводить загруженный контент во внешнем плеере.", + "restart_required": "Требуется перезапуск", + "restart_msg_decoder": "Пожалуйста, перезапустите приложение для смены режима декодера.", + "restart_msg_gpu": "Пожалуйста, перезапустите приложение для смены режима GPU.", + "option_auto": "Авто", + "option_auto_desc_engine": "ExoPlayer + MPV", + "option_mpv": "MPV", + "option_mpv_desc": "Только MPV", + "option_auto_desc_decoder": "Оптимально", + "option_sw": "Программный (SW)", + "option_sw_desc": "Software", + "option_hw": "Аппаратный (HW)", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Full Hardware", + "option_gpu_desc": "Стандартный", + "option_gpu_next_desc": "Продвинутый" + }, + "plugins": { + "title": "Плагины", + "enable_title": "Включить плагины", + "enable_desc": "Включить движок плагинов для поиска внешних источников", + "repo_config_title": "Конфигурация репозитория", + "repo_config_desc": "Управление внешними репозиториями плагинов.", + "your_repos": "Репозитории", + "your_repos_desc": "Настройте внешние источники для плагинов.", + "add_repo_button": "Добавить репозиторий", + "refresh": "Обновить", + "remove": "Удалить", + "enabled": "Включено", + "disabled": "Выключено", + "updating": "Обновление...", + "success": "Успешно", + "error": "Ошибка", + "alert_repo_added": "Репозиторий добавлен, плагины загружены", + "alert_repo_saved": "URL репозитория сохранен", + "alert_repo_refreshed": "Репозиторий успешно обновлен", + "alert_invalid_url": "Неверный формат URL", + "alert_plugins_cleared": "Все плагины удалены", + "alert_cache_cleared": "Кэш репозитория очищен", + "unknown": "Неизвестно", + "active": "Активен", + "available": "Доступен", + "platform_disabled": "Платформа отключена", + "limited": "Ограничен", + "clear_all": "Удалить все плагины", + "clear_all_desc": "Вы уверены, что хотите удалить все установленные плагины? Это действие нельзя отменить.", + "clear_cache": "Очистить кэш репозитория", + "clear_cache_desc": "Это удалит URL репозитория и все кэшированные данные. Вам нужно будет ввести URL заново.", + "add_new_repo": "Добавить новый репозиторий", + "available_plugins": "Доступно плагинов ({{count}})", + "placeholder": "Поиск плагинов...", + "all": "Все", + "filter_all": "Все типы", + "filter_movies": "Фильмы", + "filter_tv": "Сериалы", + "enable_all": "Включить все", + "disable_all": "Выключить все", + "no_plugins_found": "Плагины не найдены", + "no_plugins_available": "Нет доступных плагинов", + "no_match_desc": "Ни один плагин не соответствует запросу \"{{query}}\".", + "configure_repo_desc": "Настройте репозиторий выше, чтобы увидеть список плагинов.", + "clear_search": "Очистить поиск", + "no_external_player": "Нет внешнего плеера", + "showbox_token": "Токен ShowBox UI", + "showbox_placeholder": "Вставьте ваш токен ShowBox UI", + "save": "Сохранить", + "clear": "Очистить", + "additional_settings": "Дополнительные настройки", + "enable_url_validation": "Валидация URL", + "url_validation_desc": "Проверять ссылки перед показом (может замедлить поиск, но повышает надежность)", + "group_streams": "Группировать источники", + "group_streams_desc": "Источники будут сгруппированы по репозиториям.", + "sort_quality": "Сначала по качеству", + "sort_quality_desc": "Сортировать результаты в первую очередь по качеству (только при включенной группировке).", + "show_logos": "Показывать логотипы", + "show_logos_desc": "Отображать логотипы плагинов рядом со ссылками на источники.", + "quality_filtering": "Фильтр качества", + "quality_filtering_desc": "Исключить определенные разрешения. Нажмите, чтобы скрыть из результатов.", + "excluded_qualities": "Исключенное качество:", + "language_filtering": "Фильтр языков", + "language_filtering_desc": "Исключить определенные языки из результатов поиска.", + "note": "Примечание:", + "language_filtering_note": "Этот фильтр работает только для провайдеров, которые передают информацию о языке.", + "excluded_languages": "Исключенные языки:", + "about_title": "О плагинах", + "about_desc_1": "Плагины — это модули для адаптации контента из внешних протоколов. Они работают локально и могут быть установлены из доверенных репозиториев.", + "about_desc_2": "Плагины с меткой «Ограничен» могут требовать дополнительной внешней настройки.", + "help_title": "Настройка плагинов", + "help_step_1": "1. **Включите плагины** — используйте главный переключатель", + "help_step_2": "2. **Добавьте репозиторий** — введите рабочий URL", + "help_step_3": "3. **Обновите** — получите список доступных плагинов", + "help_step_4": "4. **Активируйте** — включите нужные плагины", + "got_it": "Понятно!", + "repo_format_hint": "Формат: https://raw.githubusercontent.com/username/repo/branch", + "cancel": "Отмена", + "add": "Добавить" + }, + "theme": { + "title": "Темы оформления", + "select_theme": "ВЫБЕРИТЕ ТЕМУ", + "create_custom": "Создать свою тему", + "options": "ОПЦИИ", + "use_dominant_color": "Цвет на основе обложки", + "categories": { + "all": "Все темы", + "dark": "Темные", + "colorful": "Цветные", + "custom": "Мои темы" + }, + "editor": { + "theme_name_placeholder": "Название темы", + "save": "Сохранить", + "primary": "Основной", + "secondary": "Вторичный", + "background": "Фон", + "invalid_name_title": "Неверное имя", + "invalid_name_msg": "Пожалуйста, введите корректное название темы" + }, + "alerts": { + "delete_title": "Удалить тему", + "delete_msg": "Вы уверены, что хотите удалить тему «{{name}}»?", + "ok": "ОК", + "delete": "Удалить", + "cancel": "Отмена", + "back": "Настройки" + } + }, + "legal": { + "title": "Юридическая информация", + "intro_title": "Природа приложения", + "intro_text": "Nuvio — это медиаплеер и менеджер метаданных. Он выступает исключительно как клиентский интерфейс для просмотра общедоступных данных и воспроизведения файлов, предоставленных пользователем или сторонними расширениями. Nuvio не хостит, не хранит и не распространяет медиаконтент.", + "extensions_title": "Сторонние плагины", + "extensions_text": "Nuvio позволяет устанавливать сторонние плагины, которые создаются независимыми разработчиками. Мы не несем ответственности за их содержание, легальность или работоспособность.", + "user_resp_title": "Ответственность пользователя", + "user_resp_text": "Пользователи несут полную ответственность за устанавливаемые плагины. Используя приложение, вы подтверждаете, что имеете законное право на просмотр контента. Разработчики Nuvio не поощряют нарушение авторских прав.", + "dmca_title": "Авторское право (DMCA)", + "dmca_text": "Мы уважаем интеллектуальную собственность. Так как Nuvio не хранит контент, мы не можем удалить его из сети. Если вы считаете, что интерфейс приложения нарушает ваши права, свяжитесь с нами.", + "warranty_title": "Отказ от гарантий", + "warranty_text": "ПО предоставляется «как есть» без каких-либо гарантий. Авторы не несут ответственности за любые претензии или ущерб, возникшие в результате использования данного ПО." + }, + "plugin_tester": { + "title": "Тестер плагинов", + "subtitle": "Запуск скреперов и просмотр логов в реальном времени", + "tabs": { + "individual": "Индивидуальный", + "repo": "Тестер репозитория", + "code": "Код", + "logs": "Логи", + "results": "Результаты" + }, + "common": { + "error": "Ошибка", + "success": "Успех", + "movie": "Фильм", + "tv": "ТВ", + "tmdb_id": "TMDB ID", + "season": "Сезон", + "episode": "Серия", + "running": "Запуск...", + "run_test": "Начать тест", + "play": "Играть", + "done": "Готово", + "test": "Тест", + "testing": "Тестирование..." + }, + "individual": { + "load_from_url": "Загрузить по URL", + "load_from_url_desc": "Вставьте прямую ссылку (raw GitHub) или локальный IP.", + "enter_url_error": "Пожалуйста, введите URL", + "code_loaded": "Код загружен из URL", + "fetch_error": "Ошибка загрузки: {{message}}", + "no_code_error": "Нет кода для запуска", + "plugin_code": "Код плагина", + "focus_editor": "Фокус на редакторе", + "code_placeholder": "// Вставьте код плагина здесь...", + "test_parameters": "Параметры теста", + "no_logs": "Логи отсутствуют. Запустите тест.", + "no_streams": "Потоки не найдены.", + "streams_found": "Найден {{count}} поток", + "streams_found_plural": "Найдено потоков: {{count}}", + "tap_play_hint": "Нажмите «Играть», чтобы проверить поток в плеере.", + "unnamed_stream": "Безымянный поток", + "quality": "Качество: {{quality}}", + "size": "Размер: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Заголовки: {{count}} шт.", + "find_placeholder": "Найти в коде...", + "edit_code_title": "Редактировать код", + "no_url_stream_error": "URL для этого потока не найден" + }, + "repo": { + "title": "Тестер репозитория", + "description": "Загрузите репозиторий и проверьте каждого провайдера.", + "enter_repo_url_error": "Введите URL репозитория", + "invalid_url_title": "Неверный URL", + "invalid_url_msg": "Используйте прямую ссылку GitHub (raw) или локальный http(s).", + "manifest_build_error": "Не удалось создать URL манифеста", + "manifest_fetch_error": "Ошибка загрузки манифеста", + "repo_manifest_fetch_error": "Ошибка загрузки манифеста репозитория", + "missing_filename": "В манифесте отсутствует имя файла", + "scraper_build_error": "Не удалось создать URL скрепера", + "download_scraper_error": "Ошибка загрузки скрепера", + "test_failed": "Тест провален", + "test_parameters": "Параметры теста репозитория", + "test_parameters_desc": "Эти параметры используются только для тестера репозитория.", + "using_info": "Используем: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Используем: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Провайдеры", + "repository_default": "Репозиторий", + "providers_count": "Провайдеров: {{count}}", + "fetch_hint": "Загрузите репо, чтобы увидеть список.", + "test_all": "Тестировать все", + "status_running": "В ПРОЦЕССЕ", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "ОШИБКА", + "status_idle": "ОЖИДАНИЕ", + "tried_url": "Попытка URL: {{url}}", + "provider_logs": "Логи провайдера", + "no_logs_captured": "Логи не перехвачены." + } + } +} + From d2e628f174bdc6e58e75ed384ba9b3471d268bba Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:25:10 +0100 Subject: [PATCH 133/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 33e29f37..214328a3 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -18,6 +18,7 @@ import cs from './locales/cs.json'; import tr from './locales/tr.json'; import sl from './locales/sl.json'; import mk from './locales/mk.json'; +import ru from './locales/ru.json'; export const resources = { en: { translation: en }, @@ -39,4 +40,5 @@ export const resources = { tr: { translation: tr }, sl: { translation: sl }, mk: { translation: mk }, + ru: { translation: ru }, }; From 759a8cd557e6cb3f44acb813b24f010770e56a21 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:26:18 +0100 Subject: [PATCH 134/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 060bbdbe..0337920c 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -18,4 +18,5 @@ export const LOCALES = [ { code: 'tr', key: 'turkish' } { code: 'sl', key: 'slovenian' } { code: 'mk', key: 'macedonian' } + { code: 'ru', key: 'russian' } ]; From c3667e71a4ae0c1c808160e9285f2885e3ac4342 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:27:50 +0100 Subject: [PATCH 135/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 8c0033f5..22cf2e32 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -643,6 +643,7 @@ "turkish": "التركية", "slovenian": "السلوفينية", "macedonian": "مقدوني", + "russian": "الروسية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 6dff3833c4de18d382cd06cfc5b55e0a1788078d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:30:04 +0100 Subject: [PATCH 136/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index e25aa7ff..d1adaade 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -648,6 +648,7 @@ "turkish": "Турски", "slovenian": "Словенски", "macedonian": "Македонски", + "russian": "Руски", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1428,3 +1429,4 @@ + From 79d820bc8d23a14f83e1fe949a894ed7aff4f7c8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:31:57 +0100 Subject: [PATCH 137/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 4a8b4eb8..ba82f7a3 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -638,6 +638,7 @@ "turkish": "Turečtina", "slovenian": "Slovinština", "macedonian": "Makedonský", + "russian": "Ruština", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1416,3 +1417,4 @@ + From 69fef74d61f8c30d8de348753b6b2a749b5fc491 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:32:51 +0100 Subject: [PATCH 138/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 16db8e53..52a82480 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -643,6 +643,7 @@ "turkish": "Türkisch", "slovenian": "Slowenisch", "macedonian": "Makedonisch", + "russian": "Russisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From ba30666e16f99b85c89553433d630478e23b0ebc Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:33:35 +0100 Subject: [PATCH 139/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index b8ef0d24..01578b21 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -648,6 +648,7 @@ "turkish": "Turkish", "slovenian": "Slovenian", "macedonian": "Macedonian", + "russian": "Russian", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From d7b0e4f9aec9fdc18e40230160d2391dae37c577 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:34:30 +0100 Subject: [PATCH 140/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 5b6e7107..3e1d2b9f 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -643,6 +643,7 @@ "turkish": "Turco", "slovenian": "Esloveno", "macedonian": "Macedonio", + "russian": "Ruso", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 5c3f38588ed16a730f962db89e397d0c2c6973b0 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:35:18 +0100 Subject: [PATCH 141/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 1c3e3567..dc196255 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -643,6 +643,7 @@ "turkish": "Turc", "slovenian": "Slovène", "macedonian": "Macédonien", + "russian": "Russe", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From a51e426779ecb1347e59bbb12831ed9f7e317952 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:36:25 +0100 Subject: [PATCH 142/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 593d8759..c7fbb6b4 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -648,6 +648,7 @@ "turkish": "טורקית", "slovenian": "סلوفينية", "macedonian": "מקדונית", + "russian": "רוסית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1429,3 +1430,4 @@ + From 2f26d54f7614b5519dfcf1013dcb95783a7d9e4f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:37:31 +0100 Subject: [PATCH 143/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 1b5b1cea..e2d0a2c0 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -643,6 +643,7 @@ "turkish": "तुर्की", "slovenian": "स्लोवेनियाई", "macedonian": "मकदूनियाई", + "russian": "रूसी", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 4111aa4b3931d096a73481c3bbcb3e6d24b9f132 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:38:17 +0100 Subject: [PATCH 144/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 1def27aa..dee8cb8c 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -643,6 +643,7 @@ "turkish": "Turco", "slovenian": "Sloveno", "macedonian": "Macedone", + "russian": "Russo", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 748b002a47a8e22e4b75bf494007abc126925b5c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:39:59 +0100 Subject: [PATCH 145/285] Update mk.json --- src/i18n/locales/mk.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/mk.json b/src/i18n/locales/mk.json index ddba1346..9cc829bd 100644 --- a/src/i18n/locales/mk.json +++ b/src/i18n/locales/mk.json @@ -648,6 +648,7 @@ "turkish": "Турски", "slovenian": "Словенечки", "macedonian": "Македонски", + "russian": "Руски", "account": "Сметка", "content_discovery": "Содржина и откривање", "appearance": "Изглед", @@ -1422,3 +1423,4 @@ } + From fb4f1f84cce5999fd127c82f5b94c8b8ad4f9869 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:41:13 +0100 Subject: [PATCH 146/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 44bbe2d6..88f3c1e6 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -648,6 +648,7 @@ "turkish": "Turecki", "slovenian": "Słoweński", "macedonian": "Macedoński", + "russian": "Rosyjski", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1428,3 +1429,4 @@ + From c90b84836ab9bb2d941199079f7327e2e84f9976 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:42:02 +0100 Subject: [PATCH 147/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 64746059..b1d6ab5e 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -657,6 +657,7 @@ "turkish": "Turco", "slovenian": "Esloveno", "macedonian": "Macedônio", + "russian": "Russo", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 58a263dc964ea38a141fb1b65043e4275fcdd27d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:42:42 +0100 Subject: [PATCH 148/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index d1607cc2..4da19269 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -655,6 +655,7 @@ "turkish": "Turco", "slovenian": "Esloveno", "macedonian": "Macedônio", + "russian": "Russo", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 5464aa57e3156302841ac73dbf648dcb4bf19361 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:43:55 +0100 Subject: [PATCH 149/285] Update sl.json --- src/i18n/locales/sl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index e0303e15..8229b633 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -648,6 +648,7 @@ "turkish": "Turščina", "slovenian": "Slovenščina", "macedonian": "Makedonski", + "russian": "Ruščina", "account": "Račun", "content_discovery": "Vsebina in odkrivanje", "appearance": "Videz", @@ -1424,3 +1425,4 @@ } } + From 14d4e52c8c99f1e8c905cac9cff27480d1ef14e1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:45:52 +0100 Subject: [PATCH 150/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 54b55f07..862feb53 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -642,6 +642,7 @@ "turkish": "Турски", "slovenian": "Словеначки", "macedonian": "Македонски", + "russian": "Руски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1426,3 +1427,4 @@ + From f56eab6a2364d4f61064ba2785fc2bc8a653a09e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:46:48 +0100 Subject: [PATCH 151/285] Update tr.json --- src/i18n/locales/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 7cad0f4e..28a15988 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -648,6 +648,7 @@ "turkish": "Türkçe", "slovenian": "Slovence", "macedonian": "Makedonca", + "russian": "Rusça", "account": "Hesap", "content_discovery": "İçerik ve Keşif", "appearance": "Görünüm", @@ -1425,3 +1426,4 @@ } + From fb2bde53048259e459b7a5023c7536c203f49fcd Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 15:48:03 +0100 Subject: [PATCH 152/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 39a50113..8e7512c5 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -643,6 +643,7 @@ "turkish": "土耳其语", "slovenian": "斯洛文尼亚语", "macedonian": "马其顿语", + "russian": "俄语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From cc9e35596c98524c9a15aa22b46d80d630f4a4e6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 21:05:43 +0100 Subject: [PATCH 153/285] Update TMDBSettingsScreen.tsx Added new languages --- src/screens/TMDBSettingsScreen.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/screens/TMDBSettingsScreen.tsx b/src/screens/TMDBSettingsScreen.tsx index 029ae8af..9abd2d91 100644 --- a/src/screens/TMDBSettingsScreen.tsx +++ b/src/screens/TMDBSettingsScreen.tsx @@ -1177,6 +1177,14 @@ const TMDBSettingsScreen = () => { { code: 'th', label: 'ไทย', native: 'Thai' }, { code: 'hr', label: 'Hrvatski', native: 'Croatian' }, + { code: 'sr', +label: 'Српски', native: 'Serbian' }, + { code: 'bg', +label: 'български', native: 'Bulgarian' }, + {code: 'sl', +label: 'Slovenščina', native: 'Slovenian' }, + {code: 'mk', +label: 'Македонски', native: 'Macedonian' }, ]; const filteredLanguages = languages.filter(({ label, code, native }) => From 5aa90afde135e0b26de88d8854c26f633d6912ad Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 21:22:44 +0100 Subject: [PATCH 154/285] Update TMDBSettingsScreen.tsx Mistake fixed --- src/screens/TMDBSettingsScreen.tsx | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/screens/TMDBSettingsScreen.tsx b/src/screens/TMDBSettingsScreen.tsx index 9abd2d91..76d2420f 100644 --- a/src/screens/TMDBSettingsScreen.tsx +++ b/src/screens/TMDBSettingsScreen.tsx @@ -1175,16 +1175,11 @@ const TMDBSettingsScreen = () => { { code: 'uk', label: 'Українська', native: 'Ukrainian' }, { code: 'vi', label: 'Tiếng Việt', native: 'Vietnamese' }, { code: 'th', label: 'ไทย', native: 'Thai' }, - { code: 'hr', -label: 'Hrvatski', native: 'Croatian' }, - { code: 'sr', -label: 'Српски', native: 'Serbian' }, - { code: 'bg', -label: 'български', native: 'Bulgarian' }, - {code: 'sl', -label: 'Slovenščina', native: 'Slovenian' }, - {code: 'mk', -label: 'Македонски', native: 'Macedonian' }, + { code: 'hr', label: 'Hrvatski', native: 'Croatian' }, + { code: 'sr', label: 'Српски', native: 'Serbian' }, + { code: 'bg', label: 'български', native: 'Bulgarian' }, + { code: 'sl', label: 'Slovenščina', native: 'Slovenian' }, + { code: 'mk', label: 'Македонски', native: 'Macedonian' }, ]; const filteredLanguages = languages.filter(({ label, code, native }) => From b8f661a47c884e859ae381fffe3460526841cbd9 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:43:48 +0100 Subject: [PATCH 155/285] Added Filipino lang --- src/i18n/locales/fil.json | 1428 +++++++++++++++++++++++++++++++++++++ 1 file changed, 1428 insertions(+) create mode 100644 src/i18n/locales/fil.json diff --git a/src/i18n/locales/fil.json b/src/i18n/locales/fil.json new file mode 100644 index 00000000..73db596e --- /dev/null +++ b/src/i18n/locales/fil.json @@ -0,0 +1,1428 @@ +{ + "common": { + "loading": "Naglo-loading...", + "cancel": "Kanselahin", + "save": "I-save", + "delete": "Burahin", + "edit": "I-edit", + "search": "Maghanap", + "error": "Error", + "success": "Tagumpay", + "ok": "OK", + "unknown": "Hindi Alam", + "retry": "Subukan muli", + "try_again": "Subukan muli", + "go_back": "Bumalik", + "settings": "Mga Setting", + "close": "Isara", + "enable": "I-enable", + "disable": "I-disable", + "show_more": "Ipakita ang higit pa", + "show_less": "Ipakita ang mas kaunti", + "load_more": "Mag-load ng higit pa", + "unknown_date": "Hindi alam na petsa", + "anonymous_user": "Anonymous na User", + "time": { + "now": "Ngayon lang", + "minutes_ago": "{{count}}m ang nakalipas", + "hours_ago": "{{count}}h ang nakalipas", + "days_ago": "{{count}}d ang nakalipas" + }, + "days_short": { + "sun": "Lin", + "mon": "Lun", + "tue": "Mar", + "wed": "Miy", + "thu": "Huw", + "fri": "Biy", + "sat": "Sab" + }, + "email": "Email", + "status": "Status" + }, + "home": { + "categories": { + "movies": "Mga Pelikula", + "series": "Mga Serye", + "channels": "Mga Channel" + }, + "movies": "Mga Pelikula", + "tv_shows": "Mga TV Show", + "load_more_catalogs": "Mag-load ng iba pang Catalog", + "no_content": "Walang available na nilalaman", + "add_catalogs": "Magdagdag ng mga Catalog", + "sign_in_available": "Puwede nang Mag-sign In", + "sign_in_desc": "Maaari kang mag-sign in anumang oras mula sa Settings → Account", + "view_all": "Tingnan Lahat", + "this_week": "Ngayong Linggo", + "upcoming": "Malapit Na", + "recently_released": "Kakalabas Lang", + "no_scheduled_episodes": "Serye na Walang Naka-iskedyul na Episode", + "check_back_later": "Bumalik na lang mamaya", + "continue_watching": "Ituloy ang Panonood", + "up_next": "Susunod", + "up_next_caps": "SUSUNOD", + "released": "Ipinalabas", + "new": "Bago", + "tba": "Iaanunsyo pa", + "new_episodes": "{{count}} Bagong Episode", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Season {{season}}", + "episode": "Episode {{episode}}", + "movie": "Pelikula", + "series": "Serye", + "tv_show": "TV Show", + "percent_watched": "{{percent}}% napanood na", + "view_details": "Tingnan ang Detalye", + "remove": "Alisin", + "play": "I-play", + "play_now": "I-play Na", + "resume": "Ituloy", + "info": "Info", + "more_info": "Higit pang Info", + "my_list": "Aking Listahan", + "save": "I-save", + "saved": "Na-save na", + "retry": "Subukan muli", + "install_addons": "Mag-install ng mga Addon", + "settings": "Mga Setting", + "no_featured_content": "Walang Itinatampok na Nilalaman", + "couldnt_load_featured": "Hindi ma-load ang itinatampok na nilalaman", + "no_featured_desc": "Mag-install ng mga addon na may mga catalog o baguhin ang source sa iyong settings.", + "load_error_desc": "Nagkaroon ng problema sa pagkuha ng content. Pakisuri ang iyong koneksyon at subukan muli.", + "no_featured_available": "Walang available na itinatampok na nilalaman", + "no_description": "Walang available na deskripsyon" + }, + "navigation": { + "home": "Home", + "library": "Library", + "search": "Maghanap", + "downloads": "Downloads", + "settings": "Mga Setting" + }, + "search": { + "title": "Maghanap", + "recent_searches": "Mga Nakaraang Hinanap", + "discover": "Tumuklas", + "movies": "Mga Pelikula", + "tv_shows": "Mga TV Show", + "select_catalog": "Pumili ng Catalog", + "all_genres": "Lahat ng Genre", + "discovering": "Naghahanap ng nilalaman...", + "show_more": "Ipakita ang higit pa ({{count}})", + "no_content_found": "Walang nahanap na nilalaman", + "try_different": "Subukan ang ibang genre o catalog", + "select_catalog_desc": "Pumili ng catalog para tumuklas", + "tap_catalog_desc": "I-tap ang catalog sa itaas para magsimula", + "placeholder": "Maghanap ng pelikula, show...", + "keep_typing": "Ipagpatuloy ang pag-type...", + "type_characters": "Mag-type ng hindi bababa sa 2 character", + "no_results": "Walang nahanap na resulta", + "try_keywords": "Subukan ang ibang keywords o suriin ang spelling", + "select_type": "Pumili ng Uri", + "browse_movies": "Mag-browse ng mga pelikula", + "browse_tv": "Mag-browse ng mga TV series", + "select_genre": "Pumili ng Genre", + "show_all_content": "Ipakita ang lahat ng nilalaman", + "genres_count": "{{count}} na genre" + }, + "library": { + "title": "Library", + "watched": "Napanood na", + "continue": "Ituloy", + "watchlist": "Watchlist", + "collection": "Koleksyon", + "rated": "Na-rate na", + "items": "items", + "trakt_collections": "Mga koleksyon sa Trakt", + "trakt_collection": "Koleksyon sa Trakt", + "no_trakt": "Walang mga koleksyon sa Trakt", + "no_trakt_desc": "Lilitaw dito ang iyong mga Trakt collection kapag ginamit mo na ang Trakt", + "load_collections": "Mag-load ng Koleksyon", + "empty_folder": "Walang laman ang {{folder}}", + "empty_folder_desc": "Walang laman ang koleksyong ito", + "refresh": "I-refresh", + "no_movies": "Wala pang mga pelikula", + "no_series": "Wala pang mga TV show", + "no_content": "Wala pang nilalaman", + "add_content_desc": "Magdagdag ng content sa iyong library para makita ito rito", + "find_something": "Maghanap ng mapapanood", + "removed_from_library": "Inalis sa Library", + "item_removed": "Ang item ay inalis na sa iyong library", + "failed_update_library": "Bigo sa pag-update ng Library", + "unable_remove": "Hindi maalis ang item sa library", + "marked_watched": "Minarkahan bilang Napanood na", + "marked_unwatched": "Minarkahan bilang Hindi pa Napanood", + "item_marked_watched": "Minarkahan ang item bilang napanood na", + "item_marked_unwatched": "Minarkahan ang item bilang hindi pa napanood", + "failed_update_watched": "Bigo sa pag-update ng watched status", + "unable_update_watched": "Hindi ma-update ang watched status", + "added_to_library": "Idinagdag sa Library", + "item_added": "Idinagdag sa iyong local library", + "add_to_library": "Idagdag sa Library", + "remove_from_library": "Alisin sa Library", + "mark_watched": "Markahan bilang Napanood", + "mark_unwatched": "Markahan bilang Hindi pa Napanood", + "share": "Ibahagi", + "add_to_watchlist": "Idagdag sa Trakt Watchlist", + "remove_from_watchlist": "Alisin sa Trakt Watchlist", + "added_to_watchlist": "Idinagdag sa Watchlist", + "added_to_watchlist_desc": "Idinagdag sa iyong Trakt watchlist", + "removed_from_watchlist": "Inalis sa Watchlist", + "removed_from_watchlist_desc": "Inalis sa iyong Trakt watchlist", + "add_to_collection": "Idagdag sa Trakt Collection", + "remove_from_collection": "Alisin sa Trakt Collection", + "added_to_collection": "Idinagdag sa Koleksyon", + "added_to_collection_desc": "Idinagdag sa iyong Trakt collection", + "removed_from_collection": "Inalis sa Koleksyon", + "removed_from_collection_desc": "Inalis sa iyong Trakt collection" + }, + "metadata": { + "unable_to_load": "Hindi ma-load ang nilalaman", + "error_code": "Error Code: {{code}}", + "content_not_found": "Hindi nahanap ang nilalaman", + "content_not_found_desc": "Ang nilalamang ito ay hindi umiiral o maaaring inalis na.", + "server_error": "Error sa server", + "server_error_desc": "Ang server ay pansamantalang hindi available. Pakisubukan muli mamaya.", + "bad_gateway": "Bad gateway", + "bad_gateway_desc": "Nagkakaproblema ang server. Pakisubukan muli mamaya.", + "service_unavailable": "Hindi available ang serbisyo", + "service_unavailable_desc": "Kasalukuyang inaayos ang serbisyo. Pakisubukan muli mamaya.", + "too_many_requests": "Masyadong maraming request", + "too_many_requests_desc": "Masyadong madalas ang iyong pag-request. Pakihintay muna at subukan muli.", + "request_timeout": "Nag-timeout ang request", + "request_timeout_desc": "Masyadong matagal ang request. Pakisubukan muli.", + "network_error": "Error sa network", + "network_error_desc": "Pakisuri ang iyong koneksyon sa internet at subukan muli.", + "auth_error": "Error sa authentication", + "auth_error_desc": "Pakisuri ang iyong account settings at subukan muli.", + "access_denied": "Denied ang access", + "access_denied_desc": "Wala kang permiso na i-access ang nilalamang ito.", + "connection_error": "Error sa koneksyon", + "streams_unavailable": "Hindi available ang mga stream", + "streams_unavailable_desc": "Ang mga streaming source ay kasalukuyang hindi available. Pakisubukan muli mamaya.", + "unknown_error": "Hindi alam na error", + "something_went_wrong": "May nagkamali. Pakisubukan muli.", + "cast": "Mga Artista", + "more_like_this": "Mga Katulad Nito", + "collection": "Koleksyon", + "episodes": "Mga Episode", + "seasons": "Mga Season", + "posters": "Mga Poster", + "banners": "Mga Banner", + "specials": "Mga Special", + "season_number": "Season {{number}}", + "episode_count": "{{count}} Episode", + "episode_count_plural": "{{count}} na mga Episode", + "no_episodes": "Walang available na mga episode", + "no_episodes_for_season": "Walang available na mga episode para sa Season {{season}}", + "episodes_not_released": "Maaaring hindi pa ipinapalabas ang mga episode", + "no_description": "Walang available na deskripsyon", + "episode_label": "EPISODE {{number}}", + "watch_again": "Panoorin muli", + "completed": "Tapos na", + "play_episode": "I-play ang S{{season}}E{{episode}}", + "play": "I-play", + "watched": "Napanood na", + "watched_on_trakt": "Napanood na sa Trakt", + "synced_with_trakt": "Naka-sync sa Trakt", + "saved": "Na-save na", + "director": "Direktor", + "directors": "Mga Direktor", + "creator": "Tagalikha", + "creators": "Mga Tagalikha", + "production": "Produksyon", + "network": "Network", + "mark_watched": "Markahan bilang Napanood", + "mark_unwatched": "Markahan bilang Hindi pa Napanood", + "marking": "Minamarkahan...", + "removing": "Inaalis...", + "unmark_season": "I-unmark ang Season {{season}}", + "mark_season": "Markahan ang Season {{season}}", + "resume": "Ituloy", + "spoiler_warning": "Spoiler Warning", + "spoiler_warning_desc": "Ang komento na ito ay may mga spoiler. Sigurado ka bang gusto mo itong makita?", + "cancel": "Kanselahin", + "reveal_spoilers": "Ipakita ang mga Spoiler", + "movie_details": "Mga Detalye ng Pelikula", + "show_details": "Mga Detalye ng Show", + "tagline": "Tagline", + "status": "Status", + "release_date": "Petsa ng Paglabas", + "runtime": "Runtime", + "budget": "Budget", + "revenue": "Kita", + "origin_country": "Bansang Pinagmulan", + "original_language": "Orihinal na Wika", + "first_air_date": "Unang Petsa ng Pag-ere", + "last_air_date": "Huling Petsa ng Pag-ere", + "total_episodes": "Kabuuang Episode", + "episode_runtime": "Runtime ng Episode", + "created_by": "Nilikha ni", + "backdrop_gallery": "Backdrop Gallery", + "loading_episodes": "Naglo-load ng mga episode...", + "no_episodes_available": "Walang available na mga episode", + "play_next": "I-play ang S{{season}}E{{episode}}", + "play_next_episode": "I-play ang Susunod na Episode", + "save": "I-save", + "percent_watched": "{{percent}}% napanood na", + "percent_watched_trakt": "{{percent}}% napanood na ({{traktPercent}}% sa Trakt)", + "synced_with_trakt_progress": "Naka-sync sa Trakt", + "using_trakt_progress": "Gamit ang Trakt progress", + "added_to_collection_hero": "Idinagdag sa Koleksyon", + "added_to_collection_desc_hero": "Idinagdag sa iyong Trakt collection", + "removed_from_collection_hero": "Inalis sa Koleksyon", + "removed_from_collection_desc_hero": "Inalis sa iyong Trakt collection", + "mark_as_watched": "Markahan bilang Napanood", + "mark_as_unwatched": "Markahan bilang Hindi pa Napanood" + }, + "cast": { + "biography": "Talambuhay", + "known_for": "Kilala sa", + "personal_info": "Personal na Impormasyon", + "born_in": "Ipinanganak sa {{place}}", + "filmography": "Pelikulang Kinabilangan", + "also_known_as": "Kilala rin bilang", + "no_info_available": "Walang karagdagang impormasyon", + "as_character": "bilang {{character}}", + "loading_details": "Naglo-load ng mga detalye...", + "years_old": "{{age}} taong gulang", + "view_filmography": "Tingnan ang Filmography", + "filter": "I-filter", + "sort_by": "I-sort ayon sa", + "sort_popular": "Sikat", + "sort_latest": "Pinakabago", + "sort_upcoming": "Paparating", + "upcoming_badge": "PAPARATING", + "coming_soon": "Malapit na", + "filmography_count": "Filmography • {{count}} na titulo", + "loading_filmography": "Naglo-load ng filmography...", + "load_more_remaining": "Mag-load pa ({{count}} ang natitira)", + "alert_error_title": "Error", + "alert_error_message": "Hindi ma-load ang \"{{title}}\". Pakisubukan muli mamaya.", + "alert_ok": "OK", + "no_upcoming": "Walang paparating na release para sa artist na ito", + "no_content": "Walang available na content para sa artist na ito", + "no_movies": "Walang mga pelikula para sa artist na ito", + "no_tv": "Walang mga TV show para sa artist na ito" + }, + "comments": { + "title": "Mga Komento sa Trakt", + "spoiler_warning": "⚠️ Ang komento na ito ay may spoiler. I-tap para makita.", + "spoiler": "Spoiler", + "contains_spoilers": "May mga spoiler", + "reveal": "Ipakita", + "vip": "VIP", + "unavailable": "Hindi available ang mga komento", + "no_comments": "Wala pang mga komento sa Trakt", + "not_in_database": "Maaaring wala pa ito sa database ng Trakt", + "check_trakt": "Suriin ang Trakt" + }, + "trailers": { + "title": "Mga Trailer", + "official_trailers": "Mga Opisyal na Trailer", + "official_trailer": "Opisyal na Trailer", + "teasers": "Mga Teaser", + "teaser": "Teaser", + "clips_scenes": "Mga Clip at Eksena", + "clip": "Clip", + "featurettes": "Mga Featurette", + "featurette": "Featurette", + "behind_the_scenes": "Behind the Scenes", + "no_trailers": "Walang available na mga trailer", + "unavailable": "Hindi Available ang Trailer", + "unavailable_desc": "Hindi ma-load ang trailer na ito ngayon. Pakisubukan muli mamaya.", + "unable_to_play": "Hindi ma-play ang trailer. Pakisubukan muli.", + "watch_on_youtube": "Panoorin sa YouTube" + }, + "catalog": { + "no_content_found": "Walang nahanap na nilalaman", + "no_content_filters": "Walang nahanap na nilalaman para sa napiling filters", + "loading_content": "Naglo-load ng nilalaman...", + "back": "Bumalik", + "in_theaters": "Nasa mga Sinehan", + "all": "Lahat", + "failed_tmdb": "Bigo sa pag-load ng content mula sa TMDB", + "movies": "Mga Pelikula", + "tv_shows": "Mga TV Show", + "channels": "Mga Channel" + }, + "streams": { + "back_to_episodes": "Bumalik sa mga Episode", + "back_to_info": "Bumalik sa Info", + "fetching_from": "Kinukuha mula sa:", + "no_sources_available": "Walang available na streaming sources", + "add_sources_desc": "Mangyaring magdagdag ng streaming sources sa settings", + "add_sources": "Magdagdag ng Source", + "finding_streams": "Naghahanap ng mga stream...", + "finding_best_stream": "Hinahanap ang pinakamagandang stream...", + "still_fetching": "Kumukuha pa ng mga stream...", + "no_streams_available": "Walang available na stream", + "starting_best_stream": "Sinisimulan ang pinakamagandang stream...", + "loading_more_sources": "Naglo-load ng higit pang source..." + }, + "player_ui": { + "via": "gamit ang {{name}}", + "audio_tracks": "Mga Audio Track", + "no_audio_tracks": "Walang available na audio track", + "playback_speed": "Bilis ng Playback", + "on_hold": "Naka-hold", + "playback_error": "Error sa Playback", + "unknown_error": "Nagkaroon ng hindi malamang error habang nagpe-play.", + "copy_error": "Kopyahin ang detalye ng error", + "copied_to_clipboard": "Nagawa nang kopyahin", + "dismiss": "I-dismiss", + "continue_watching": "Ituloy ang Panonood", + "start_over": "Ulitin sa Simula", + "resume": "Ituloy", + "change_source": "Palitan ang Source", + "switching_source": "Lumilipat ng source...", + "no_sources_found": "Walang nahanap na source", + "sources": "Mga Source", + "finding_sources": "Naghahanap ng mga source...", + "unknown_source": "Hindi Alam na Source", + "sources_limited": "Maaaring limitado ang mga source dahil sa error ng provider.", + "episodes": "Mga Episode", + "specials": "Mga Special", + "season": "Season {{season}}", + "stream": "Stream {{number}}", + "subtitles": "Mga Subtitle", + "built_in": "Built-in", + "addons": "Mga Addon", + "style": "Istilo", + "none": "Wala", + "search_online_subtitles": "Maghanap ng Online Subtitles", + "preview": "Preview", + "quick_presets": "Quick Presets", + "default": "Default", + "yellow": "Dilaw", + "high_contrast": "High Contrast", + "large": "Malaki", + "core": "Core", + "font_size": "Laki ng Font", + "show_background": "Ipakita ang Background", + "advanced": "Advanced", + "position": "Posisyon", + "text_color": "Kulay ng Text", + "align": "Alignment", + "bottom_offset": "Bottom Offset", + "background_opacity": "Background Opacity", + "text_shadow": "Text Shadow", + "on": "On", + "off": "Off", + "outline_color": "Kulay ng Outline", + "outline": "Outline", + "outline_width": "Lapad ng Outline", + "letter_spacing": "Letter Spacing", + "line_height": "Line Height", + "timing_offset": "Timing Offset (s)", + "visual_sync": "Visual Sync", + "timing_hint": "I-nudge ang subtitle nang mas maaga (-) o mamaya (+) para mag-sync.", + "reset_defaults": "I-reset sa default", + "mark_intro_start": "Markahan ang Simula ng Intro", + "mark_intro_end": "Markahan ang Tapos ng Intro", + "intro_start_marked": "Ang simula ng intro ay namarkahan na", + "intro_submitted": "Matagumpay na naisumite ang intro", + "intro_submit_failed": "Bigo sa pagsumite ng intro" + }, + "downloads": { + "title": "Mga Download", + "no_downloads": "Wala pang Downloads", + "no_downloads_desc": "Lilitaw dito ang mga dinownload na content para sa offline viewing", + "explore": "Mag-explore ng Content", + "path_copied": "Nakopya na ang Path", + "path_copied_desc": "Nakopya na sa clipboard ang local file path", + "copied": "Nakopya na", + "incomplete": "Hindi Tapos ang Download", + "incomplete_desc": "Hindi pa tapos ang pag-download", + "not_available": "Hindi Available", + "not_available_desc": "Magiging available lang ang file path kapag tapos na ang download.", + "status_downloading": "Nagda-download", + "status_completed": "Tapos na", + "status_paused": "Naka-pause", + "status_error": "Error", + "status_queued": "Naka-queue", + "status_unknown": "Hindi Alam", + "provider": "Provider", + "streaming_playlist_warning": "Maaaring hindi mag-play - streaming playlist", + "remaining": "natitira", + "not_ready": "Download ay hindi pa handa", + "not_ready_desc": "Mangyaring maghintay hanggang matapos ang pag-download.", + "filter_all": "Lahat", + "filter_active": "Aktibo", + "filter_done": "Tapos na", + "filter_paused": "Naka-pause", + "no_filter_results": "Walang {{filter}} na downloads", + "try_different_filter": "Subukan ang ibang filter", + "limitations_title": "Limitasyon sa Download", + "limitations_msg": "• Ang mga file na mas maliit sa 1MB ay karaniwang M3U8 streaming playlists at hindi maaaring i-download para sa offline viewing.", + "remove_title": "Alisin ang Download", + "remove_confirm": "Alisin ang \"{{title}}\"{{season_episode}}?", + "cancel": "Kanselahin", + "remove": "Alisin" + }, + "addons": { + "title": "Mga Addon", + "reorder_mode": "Reorder Mode", + "reorder_info": "Ang mga addon sa itaas ang may mas mataas na priyoridad", + "add_addon_placeholder": "Addon URL", + "add_button": "Magdagdag ng Addon", + "my_addons": "Aking mga Addon", + "community_addons": "Community Addons", + "no_addons": "Walang nakatalagang addon", + "uninstall_title": "I-uninstall ang Addon", + "uninstall_message": "Sigurado ka bang gusto mong i-uninstall ang {{name}}?", + "uninstall_button": "I-uninstall", + "install_success": "Matagumpay na na-install ang addon", + "install_error": "Bigo sa pag-install ng addon", + "load_error": "Bigo sa pag-load ng mga addon", + "fetch_error": "Bigo sa pagkuha ng detalye ng addon", + "invalid_url": "Mangyaring maglagay ng tamang addon URL", + "configure": "I-configure", + "version": "Bersyon: {{version}}", + "installed_addons": "MGA NAKA-INSTALL NA ADDON", + "reorder_drag_title": "I-DRAG ANG MGA ADDON PARA MAG-REORDER", + "install": "I-install", + "config_unavailable_title": "Hindi Available ang Configuration", + "config_unavailable_msg": "Hindi mahanap ang configuration URL para sa addon na ito.", + "cannot_open_config_title": "Hindi Mabuksan ang Configuration", + "cannot_open_config_msg": "Hindi mabuksan ang configuration URL ({{url}}).", + "description": "Deskripsyon", + "supported_types": "Mga Suportadong Uri", + "catalogs": "Mga Catalog", + "no_description": "Walang available na deskripsyon", + "overview": "OVERVIEW", + "no_categories": "Walang kategorya", + "pre_installed": "PRE-INSTALLED" + }, + "trakt": { + "title": "Mga Setting ng Trakt", + "settings_title": "Mga Setting ng Trakt", + "connect_title": "Kumonekta sa Trakt", + "connect_desc": "I-sync ang iyong history, watchlist, at koleksyon sa Trakt.tv", + "sign_in": "Mag-sign In gamit ang Trakt", + "sign_out": "Mag-sign Out", + "sign_out_confirm": "Sigurado ka bang gusto mong mag-sign out sa iyong Trakt account?", + "joined": "Sumali noong {{date}}", + "sync_settings_title": "Mga Setting ng Sync", + "sync_info": "Kapag nakakonekta sa Trakt, ang buong history ay direktang naka-sync mula sa API at hindi isinusulat sa local storage. Ang iyong Continue Watching list ay nagpapakita ng iyong global Trakt progress.", + "auto_sync_label": "Auto-sync ng playback progress", + "auto_sync_desc": "Awtomatikong i-sync ang watch progress sa Trakt", + "import_history_label": "I-import ang watched history", + "import_history_desc": "Gamitin ang \"Sync Now\" para i-import ang iyong watch history at progress mula sa Trakt", + "sync_now_button": "I-sync Na", + "display_settings_title": "Mga Setting ng Display", + "show_comments_label": "Ipakita ang mga Komento sa Trakt", + "show_comments_desc": "Ipakita ang mga komento sa Trakt sa metadata screen kapag available", + "maintenance_title": "Kasalukuyang Inaayos", + "maintenance_unavailable": "Hindi Available ang Trakt", + "maintenance_desc": "Pansamantalang itinigil ang Trakt integration para sa maintenance. Lahat ng syncing at authentication ay disabled muna.", + "maintenance_button": "Serbisyo ay nasa Maintenance", + "auth_success_title": "Matagumpay na Nakakonekta", + "auth_success_msg": "Matagumpay na naikonekta ang iyong Trakt account.", + "auth_error_title": "Error sa Authentication", + "auth_error_msg": "Bigo sa pag-authenticate sa Trakt.", + "auth_error_generic": "Nagkaroon ng error habang nag-a-authenticate.", + "sign_out_error": "Bigo sa pag-sign out sa Trakt.", + "sync_complete_title": "Tapos na ang Sync", + "sync_success_msg": "Matagumpay na na-sync ang iyong watch progress sa Trakt.", + "sync_error_msg": "Bigo ang pag-sync. Pakisubukan muli." + }, + "simkl": { + "title": "Mga Setting ng Simkl", + "settings_title": "Mga Setting ng Simkl", + "connect_title": "Kumonekta sa Simkl", + "connect_desc": "I-sync ang iyong watch history at i-track ang iyong mga pinapanood", + "sign_in": "Mag-sign In gamit ang Simkl", + "sign_out": "Idiskonekta", + "sign_out_confirm": "Sigurado ka bang gusto mong idiskonekta ang Simkl?", + "syncing_desc": "Ang iyong mga napanood ay nina-sync na sa Simkl.", + "auth_success_title": "Matagumpay na Nakakonekta", + "auth_success_msg": "Matagumpay na naikonekta ang iyong Simkl account.", + "auth_error_title": "Error sa Authentication", + "auth_error_msg": "Bigo sa pag-authenticate sa Simkl.", + "auth_error_generic": "Nagkaroon ng error habang nag-a-authenticate.", + "sign_out_error": "Bigo sa pagdisidkonekta sa Simkl.", + "config_error_title": "Error sa Configuration", + "config_error_msg": "Ang Simkl Client ID ay wala sa environment variables.", + "conflict_title": "Conflict", + "conflict_msg": "Hindi ka maaaring kumonekta sa Simkl habang nakakonekta ang Trakt. Pakidiskonekta muna ang Trakt.", + "disclaimer": "Ang Nuvio ay hindi kaanib ng Simkl." + }, + "tmdb_settings": { + "title": "Mga Setting ng TMDb", + "metadata_enrichment": "Metadata Enrichment", + "metadata_enrichment_desc": "Pagandahin ang metadata ng iyong content gamit ang TMDb data.", + "enable_enrichment": "I-enable ang Enrichment", + "enable_enrichment_desc": "Dinaragdagan ang addon metadata gamit ang TMDb para sa cast, certification, logos, at production info.", + "localized_text": "Localized na Text", + "localized_text_desc": "Kunin ang mga titulo at deskripsyon sa iyong gustong wika mula sa TMDb.", + "language": "Wika", + "change": "Baguhin", + "logo_preview": "Preview ng Logo", + "logo_preview_desc": "Ipinapakita nito kung paano lilitaw ang mga localized na logo sa napiling wika.", + "example": "Halimbawa:", + "no_logo": "Walang available na logo", + "enrichment_options": "Mga Option sa Enrichment", + "enrichment_options_desc": "Kontrolin kung anong data ang kukunin mula sa TMDb.", + "cast_crew": "Cast at Crew", + "cast_crew_desc": "Mga artista, direktor, at manunulat na may profile photos", + "title_description": "Titulo at Deskripsyon", + "title_description_desc": "Gamitin ang localized na titulo at overview mula sa TMDb", + "title_logos": "Mga Logo ng Titulo", + "title_logos_desc": "Mataas na kalidad na mga image ng titulo", + "banners_backdrops": "Mga Banner at Backdrop", + "banners_backdrops_desc": "Mataas na resolution na mga backdrop image", + "certification": "Certification ng Content", + "certification_desc": "Mga age rating (PG-13, R, TV-MA, atbp.)", + "recommendations": "Mga Rekomendasyon", + "recommendations_desc": "Mga mungkahi para sa katulad na content", + "episode_data": "Data ng Episode", + "episode_data_desc": "Mga thumbnail at impormasyon ng episode", + "season_posters": "Mga Poster ng Season", + "season_posters_desc": "Mga poster image na para sa bawat season", + "production_info": "Impormasyon ng Produksyon", + "production_info_desc": "Mga network at production company na may logo", + "movie_details": "Mga Detalye ng Pelikula", + "movie_details_desc": "Budget, kita, runtime, at tagline", + "tv_details": "Mga Detalye ng TV Show", + "tv_details_desc": "Status, bilang ng season, mga network, at tagalikha", + "movie_collections": "Koleksyon ng Pelikula", + "movie_collections_desc": "Mga franchise na pelikula (Marvel, Star Wars, atbp.)", + "api_configuration": "Configuration ng API", + "api_configuration_desc": "I-configure ang iyong TMDb API access.", + "custom_api_key": "Custom API Key", + "custom_api_key_desc": "Gamitin ang sarili mong TMDb API key para sa mas magandang performance.", + "custom_key_active": "Aktibo ang Custom API key", + "api_key_required": "Kailangan ng API key", + "api_key_placeholder": "I-paste ang iyong TMDb API key (v3)", + "how_to_get_key": "Paano kumuha ng TMDb API key?", + "built_in_key_msg": "Kasalukuyang gamit ang built-in API key.", + "cache_size": "Laki ng Cache", + "clear_cache": "I-clear ang Cache", + "cache_days": "Ang mga TMDb response ay naka-cache ng 7 araw.", + "choose_language": "Pumili ng Wika", + "choose_language_desc": "Pumili ng iyong gustong wika para sa TMDb content", + "popular": "Sikat", + "all_languages": "Lahat ng Wika", + "search_results": "Mga Resulta ng Paghahanap", + "no_languages_found": "Walang wikang nahanap para sa \"{{query}}\"", + "clear_search": "I-clear ang Paghahanap", + "clear_cache_title": "I-clear ang TMDB Cache", + "clear_cache_msg": "Buburahin nito ang lahat ng cached TMDB data ({{size}}). Maaaring bumagal ang pag-load pansamantala.", + "clear_cache_success": "Matagumpay na na-clear ang TMDB cache.", + "clear_cache_error": "Bigo sa pag-clear ng cache.", + "clear_api_key_title": "I-clear ang API Key", + "clear_api_key_msg": "Sigurado ka bang gusto mong alisin ang iyong custom API key?", + "clear_api_key_success": "Matagumpay na na-clear ang API key", + "clear_api_key_error": "Bigo sa pag-clear ng API key", + "empty_api_key": "Hindi maaaring walang laman ang API Key.", + "invalid_api_key": "Maling API key. Pakisuri at subukan muli.", + "save_error": "Nagkaroon ng error habang nag-i-save. Pakisubukan muli.", + "using_builtin_key": "Gamit na ngayon ang built-in TMDb API key.", + "using_custom_key": "Gamit na ngayon ang iyong custom TMDb API key.", + "enter_custom_key": "Mangyaring ilagay at i-save ang iyong custom TMDb API key.", + "key_verified": "API key ay na-verify at matagumpay na na-save." + }, + "settings": { + "language": "Wika", + "select_language": "Pumili ng Wika", + "english": "Ingles", + "portuguese": "Portuguese", + "portuguese_br": "Portuguese (Brazil)", + "portuguese_pt": "Portuguese (Portugal)", + "german": "German", + "arabic": "Arabic", + "spanish": "Spanish", + "french": "French", + "italian": "Italian", + "croatian": "Croatian", + "chinese": "Chinese (Simplified)", + "hindi": "Hindi", + "serbian": "Serbian", + "hebrew": "Hebreo", + "bulgarian": "Bulgaro", + "polish": "Polako", + "czech": "Tsek", + "turkish": "Turko", + "slovenian": "Eslobeno", + "macedonian": "Macedonio", + "russian": "Ruso", + "filipino": "Filipino", + "account": "Account", + "content_discovery": "Content at Discovery", + "appearance": "Appearance", + "integrations": "Integrations", + "playback": "Playback", + "backup_restore": "Backup at Restore", + "updates": "Mga Update", + "about": "Tungkol sa App", + "developer": "Developer", + "cache": "Cache", + "title": "Mga Setting", + "settings_title": "Mga Setting", + "sign_in_sync": "Mag-sign in para mag-sync", + "add_catalogs_sources": "Addons, catalog, at sources", + "player_trailers_downloads": "Player, trailer, downloads", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Mag-check ng mga update", + "clear_mdblist_cache": "I-clear ang MDBList Cache", + "cache_management": "PAMAMAHALA NG CACHE", + "downloads_counter": "downloads at nadaragdagan pa", + "made_with_love": "Gawa nang may ❤️ nina Tapframe at mga kaibigan", + "sections": { + "information": "IMPORMASYON", + "account": "ACCOUNT", + "theme": "TEMA", + "layout": "LAYOUT", + "sources": "SOURCES", + "catalogs": "MGA CATALOG", + "discovery": "DISCOVERY", + "metadata": "METADATA", + "ai_assistant": "AI ASSISTANT", + "video_player": "VIDEO PLAYER", + "audio_subtitles": "AUDIO AT MGA SUBTITLE", + "media": "MEDIA", + "notifications": "MGA NOTIFICATION", + "testing": "TESTING", + "danger_zone": "DANGER ZONE" + }, + "items": { + "legal": "Legal at Disclaimer", + "privacy_policy": "Privacy Policy", + "report_issue": "Mag-report ng Isyu", + "version": "Bersyon", + "contributors": "Mga Contributor", + "view_contributors": "Tingnan ang lahat ng contributor", + "theme": "Tema", + "episode_layout": "Layout ng Episode", + "streams_backdrop": "Backdrop ng mga Stream", + "streams_backdrop_desc": "Ipakita ang blurred backdrop sa mobile streams", + "addons": "Mga Addon", + "installed": "naka-install", + "debrid_integration": "Debrid Integration", + "debrid_desc": "Ikonekta ang Torbox", + "plugins": "Mga Plugin", + "plugins_desc": "Pamahalaan ang mga plugin at repository", + "catalogs": "Mga Catalog", + "active": "aktibo", + "home_screen": "Home Screen", + "home_screen_desc": "Layout at nilalaman", + "continue_watching": "Ituloy ang Panonood", + "continue_watching_desc": "Cache at gawi ng playback", + "show_discover": "Ipakita ang Discover Section", + "show_discover_desc": "Ipakita ang discover content sa Search", + "mdblist": "MDBList", + "mdblist_connected": "Nakakonekta", + "mdblist_desc": "I-enable para sa mga rating at review", + "simkl": "Simkl", + "simkl_connected": "Nakakonekta", + "simkl_desc": "I-track ang iyong mga pinapanood", + "tmdb": "TMDB", + "tmdb_desc": "Source provider ng metadata at logo", + "openrouter": "OpenRouter API", + "openrouter_connected": "Nakakonekta", + "openrouter_desc": "Ilagay ang API key para sa AI chat", + "video_player": "Video Player", + "built_in": "Built-in", + "external": "External", + "preferred_audio": "Gustong Wika ng Audio", + "preferred_subtitle": "Gustong Wika ng Subtitle", + "subtitle_source": "Priority ng Subtitle Source", + "auto_select_subs": "Auto-Select ng mga Subtitle", + "auto_select_subs_desc": "Awtomatikong pumili ng subtitle ayon sa preference", + "show_trailers": "Ipakita ang mga Trailer", + "show_trailers_desc": "Ipakita ang mga trailer sa hero section", + "enable_downloads": "I-enable ang mga Download", + "enable_downloads_desc": "Ipakita ang tab ng Downloads at i-save ang mga stream", + "notifications": "Mga Notification", + "notifications_desc": "Mga paalala para sa episode", + "developer_tools": "Developer Tools", + "developer_tools_desc": "Mga option para sa testing at debug", + "test_onboarding": "I-test ang Onboarding", + "reset_onboarding": "I-reset ang Onboarding", + "test_announcement": "I-test ang Announcement", + "test_announcement_desc": "Ipakita ang what's new overlay", + "reset_campaigns": "I-reset ang mga Campaign", + "reset_campaigns_desc": "I-clear ang mga campaign impression", + "clear_all_data": "I-clear ang Lahat ng Data", + "clear_all_data_desc": "I-reset ang lahat ng settings at cached data" + }, + "options": { + "horizontal": "Horizontal", + "vertical": "Vertical", + "internal_first": "Internal Muna", + "internal_first_desc": "Unahin ang embedded subtitles", + "external_first": "External Muna", + "external_first_desc": "Unahin ang addon subtitles", + "any_available": "Kahit Ano", + "any_available_desc": "Gamitin ang unang available na track" + }, + "clear_data_desc": "I-re-reset nito ang lahat ng settings at buburahin ang lahat ng cached data. Sigurado ka ba?", + "app_updates": "Mga Update ng App", + "about_nuvio": "Tungkol sa Nuvio" + }, + "privacy": { + "title": "Privacy at Data", + "settings_desc": "Kontrolin ang telemetry at pagkuha ng data", + "info_title": "Mahalaga ang Iyong Privacy", + "info_description": "Kontrolin kung anong data ang kinukuha at ibinabahagi.", + "analytics_enabled_title": "Naka-enable ang Analytics", + "analytics_enabled_message": "Kukuha ng usage data para mapaganda ang app.", + "disable_error_reporting_title": "I-disable ang Error Reporting?", + "disable_error_reporting_message": "Hindi kami manonotify sa mga crash o isyu na mararanasan mo.", + "enable_session_replay_title": "I-enable ang Session Replay?", + "enable_session_replay_message": "I-re-record ang iyong screen kapag may error para malaman ang nangyari.", + "enable_pii_title": "I-enable ang PII Collection?", + "enable_pii_message": "Pinapayagan nito ang pagkuha ng impormasyon gaya ng IP address para sa diagnosis.", + "disable_all_title": "I-disable ang Lahat ng Telemetry?", + "disable_all_message": "I-di-disable nito ang lahat ng analytics at error reporting.", + "disable_all_button": "I-disable Lahat", + "all_disabled_title": "Lahat ng Telemetry ay Disabled", + "all_disabled_message": "Lahat ng pagkuha ng data ay itinigil na.", + "reset_title": "I-reset sa Recommended", + "reset_message": "Na-reset na ang privacy settings sa recommended defaults.", + "section_analytics": "ANALYTICS", + "analytics_title": "Analytics ng Paggamit", + "analytics_description": "Kumuha ng anonymous na pattern ng paggamit", + "section_error_reporting": "REPORTING NG ERROR", + "error_reporting_title": "Mga Crash Report", + "error_reporting_description": "Magpadala ng anonymous crash reports", + "session_replay_title": "Session Replay", + "session_replay_description": "I-record ang screen kapag may error", + "pii_title": "Isama ang Device Info", + "pii_description": "Ipadala ang IP address at detalye ng device sa mga report", + "section_quick_actions": "MABILIS NA AKSYON", + "disable_all": "I-disable ang Lahat ng Telemetry", + "disable_all_desc": "I-off ang lahat ng pagkuha ng data", + "reset_recommended": "I-reset sa Recommended", + "reset_recommended_desc": "Privacy-first defaults na may error reporting", + "section_learn_more": "ALAMIN PA", + "privacy_policy": "Privacy Policy", + "current_settings": "Buod ng Kasalukuyang Settings", + "summary_analytics": "Analytics", + "summary_errors": "Mga Error Report", + "summary_replay": "Session Replay", + "summary_pii": "Impormasyon ng Device", + "restart_note_detailed": "* Ang mga pagbabago sa analytics at error reporting ay epektibo agad. Ang session replay at PII ay nangangailangan ng app restart." + }, + "ai_settings": { + "title": "AI Assistant", + "info_title": "Chat na Gamit ang AI", + "info_desc": "Magtanong tungkol sa kahit anong pelikula o TV show gamit ang advanced AI.", + "feature_1": "Konteksto at pagsusuri na para sa episode", + "feature_2": "Paliwanag sa plot at character insights", + "feature_3": "Trivia at mga katotohanan", + "feature_4": "Sarili mong libreng OpenRouter API key", + "api_key_section": "OPENROUTER API KEY", + "api_key_label": "API Key", + "api_key_desc": "Ilagay ang iyong OpenRouter API key para ma-enable ang AI chat", + "save_api_key": "I-save ang API Key", + "saving": "Inia-save...", + "update": "I-update", + "remove": "Alisin", + "get_free_key": "Kumuha ng Libreng API Key mula sa OpenRouter", + "enable_chat": "I-enable ang AI Chat", + "enable_chat_desc": "Lilitaw ang Ask AI button sa mga pahina ng content.", + "chat_enabled": "Naka-enable ang AI Chat", + "chat_enabled_desc": "Maaari ka nang magtanong tungkol sa mga pelikula at shows!", + "how_it_works": "Paano ito gumagana", + "how_it_works_desc": "• Ang OpenRouter ay nagbibigay ng access sa maraming AI models\n• Mananatiling private ang iyong API key\n• Ang libreng tier ay may sapat na limit sa paggamit", + "error_invalid_key": "Mangyaring maglagay ng tamang API key", + "error_key_format": "Ang OpenRouter API keys ay dapat magsimula sa \"sk-or-\"", + "success_saved": "Matagumpay na na-save ang OpenRouter API key!", + "error_save": "Bigo sa pag-save ng API key", + "confirm_remove_title": "Alisin ang API Key", + "confirm_remove_msg": "Sigurado ka bang gusto mong alisin ang iyong API key?", + "success_removed": "Matagumpay na naalis ang API key", + "error_remove": "Bigo sa pag-alis ng API key" + }, + "catalog_settings": { + "title": "Mga Catalog", + "layout_phone": "LAYOUT NG CATALOG SCREEN (PHONE)", + "posters_per_row": "Poster sa bawat row", + "auto": "Auto", + "show_titles": "Ipakita ang Titulo ng Poster", + "show_titles_desc": "Ipakita ang pangalan sa ibaba ng bawat poster", + "phone_only_hint": "Para sa mga phone lang ito.", + "catalogs_group": "Mga Catalog", + "enabled_count": "{{enabled}} sa {{total}} ay naka-enable", + "rename_hint": "I-long-press ang catalog para mapalitan ang pangalan", + "rename_modal_title": "Palitan ang Pangalan ng Catalog", + "rename_placeholder": "Ilagay ang bagong pangalan", + "error_save_name": "Hindi ma-save ang custom na pangalan." + }, + "continue_watching_settings": { + "title": "Ituloy ang Panonood", + "playback_behavior": "GAWI NG PLAYBACK", + "use_cached": "Gamitin ang Cached Streams", + "use_cached_desc": "Direktang bubuksan ang player gamit ang mga naunang stream.", + "open_metadata": "Buksan ang Metadata Screen", + "open_metadata_desc": "Buksan ang Metadata screen sa halip na Streams screen.", + "card_appearance": "ITSURA NG CARD", + "card_style": "Istilo ng Card", + "card_style_desc": "Pumili kung paano lilitaw ang mga item sa home screen", + "wide": "Malapad", + "poster": "Poster", + "cache_settings": "MGA SETTING NG CACHE", + "cache_duration": "Tagal ng Stream Cache", + "cache_duration_desc": "Gaano katagal itatago ang cached stream links bago mag-expire", + "important_note": "Mahalagang Paalala", + "important_note_text": "Maaaring mag-expire ang ilang links kahit hindi pa tapos ang cache duration.", + "how_it_works": "Paano ito gumagana", + "how_it_works_cached": "• Ang mga stream ay naka-cache sa napiling tagal pagkatapos i-play\n• Bine-verify ang mga stream bago gamitin\n• Kapag expired ang cache, babalik ito sa content screen", + "how_it_works_uncached": "• Kapag disabled ang cached streams, content screens ang bubuksan\n• Maaari mong piliin ang Metadata o Streams screen\n• Ang Metadata screen ay may kumpletong detalye", + "changes_saved": "Na-save na ang mga pagbabago", + "min": "min", + "hour": "oras", + "hours": "oras" + }, + "contributors": { + "title": "Mga Contributor", + "special_mentions": "Espesyal na Pagbanggit", + "tab_contributors": "Mga Contributor", + "tab_special": "Espesyal", + "tab_donors": "Mga Donor", + "manager_role": "Community Manager", + "manager_desc": "Nagpapatakbo ng Discord at Reddit communities para sa Nuvio", + "sponsor_role": "Sponsor ng Server", + "sponsor_desc": "Nag-sponsor ng server infrastructure para sa Nuvio", + "mod_role": "Discord Mod", + "mod_desc": "Tumutulong sa pag-moderate ng Nuvio Discord community", + "loading": "Naglo-load...", + "discord_user": "User sa Discord", + "contributions": "mga kontribusyon", + "gratitude_title": "Nagpapasalamat kami sa bawat kontribusyon", + "gratitude_desc": "Ang bawat linya ng code, bug report, at suhestyon ay nakakatulong para mas mapaganda ang Nuvio para sa lahat", + "special_thanks_title": "Espesyal na Pasasalamat", + "special_thanks_desc": "Ang mga kahanga-hangang taong ito ay tumutulong upang mapanatiling maayos ang Nuvio community at online ang mga server", + "donors_desc": "Salamat sa paniniwala sa aming ginagawa. Ang inyong suporta ang nagpapanatiling libre sa Nuvio at patuloy na nag-i-improve.", + "latest_donations": "Pinakabago", + "leaderboard": "Leaderboard", + "loading_donors": "Naglo-load ng mga donor...", + "no_donors": "Wala pang mga donor", + "error_rate_limit": "Lumampas na sa GitHub API rate limit. Pakisubukan muli mamaya.", + "error_failed": "Bigo sa pag-load ng mga contributor. Pakisuri ang iyong internet connection.", + "retry": "Subukan Uli", + "no_contributors": "Walang nahanap na contributor", + "loading_contributors": "Naglo-load ng mga contributor..." + }, + "debrid": { + "title": "Debrid Integration", + "description_torbox": "I-unlock ang 4K high-quality streams at mabilis na speed sa pamamagitan ng pag-integrate ng Torbox. Ilagay ang iyong API Key sa ibaba para sa instant upgrade.", + "description_torrentio": "I-configure ang Torrentio para makakuha ng torrent streams para sa mga pelikula at TV shows. Kailangan ng debrid service para makapag-stream.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Nakakonekta", + "status_disconnected": "Nadiskonekta", + "enable_addon": "I-enable ang Addon", + "disconnect_button": "Idiskonekta at Alisin", + "disconnect_loading": "Idididiskonekta...", + "account_info": "Impormasyon ng Account", + "plan": "Plan", + "plan_free": "Libre", + "plan_essential": "Essential ($3/mo)", + "plan_pro": "Pro ($10/mo)", + "plan_standard": "Standard ($5/mo)", + "plan_unknown": "Hindi Alam", + "expires": "Mapapaso sa", + "downloaded": "Na-download na", + "status_active": "Aktibo", + "connected_title": "✓ Nakakonekta sa TorBox", + "connected_desc": "Aktibo ang iyong TorBox addon at nagbibigay ng premium streams.", + "configure_title": "I-configure ang Addon", + "configure_desc": "I-customize ang iyong streaming. I-sort ayon sa quality, i-filter ang laki ng file, at iba pa.", + "open_settings": "Buksan ang Settings", + "what_is_debrid": "Ano ang Debrid Service?", + "enter_api_key": "Ilagay ang iyong API Key", + "connect_button": "Iikonekta at I-install", + "connecting": "Kumokonekta...", + "unlock_speeds_title": "I-unlock ang Premium Speeds", + "unlock_speeds_desc": "Kumuha ng Torbox subscription para sa high-quality streams na walang buffering.", + "get_subscription": "Kumuha ng Subscription", + "powered_by": "Powered by", + "disclaimer_torbox": "Ang Nuvio ay hindi kaanib ng Torbox sa anumang paraan.", + "disclaimer_torrentio": "Ang Nuvio ay hindi kaanib ng Torrentio sa anumang paraan.", + "installed_badge": "✓ NAKA-INSTALL", + "promo_title": "⚡ Kailangan ng Debrid Service?", + "promo_desc": "Kumuha ng TorBox para sa mabilis na 4K streaming na walang buffering.", + "promo_button": "Kumuha ng TorBox Subscription", + "service_label": "Debrid Service *", + "api_key_label": "API Key *", + "sorting_label": "Pag-sort", + "exclude_qualities": "I-exclude ang mga Quality", + "priority_languages": "Mga Priority na Wika", + "max_results": "Max Results", + "additional_options": "Iba pang Option", + "no_download_links": "Huwag ipakita ang download links", + "no_debrid_catalog": "Huwag ipakita ang debrid catalog", + "install_button": "I-install ang Torrentio", + "installing": "Inia-install...", + "update_button": "I-update ang Configuration", + "updating": "Inia-update...", + "remove_button": "Alisin ang Torrentio", + "error_api_required": "Kailangan ng API Key", + "error_api_required_desc": "Mangyaring ilagay ang iyong debrid API key para ma-install ang Torrentio.", + "success_installed": "Matagumpay na na-install ang Torrentio addon!", + "success_removed": "Matagumpay na naalis ang Torrentio addon", + "alert_disconnect_title": "Idiskonekta ang Torbox", + "alert_disconnect_msg": "Sigurado ka bang gusto mong idiskonekta ang Torbox? Maalis ang addon at ang iyong API key." + }, + "home_screen": { + "title": "Mga Setting ng Home Screen", + "changes_applied": "Nailapat na ang mga Pagbabago", + "display_options": "MGA OPTION SA DISPLAY", + "show_hero": "Ipakita ang Hero Section", + "show_hero_desc": "Tinatampok na content sa itaas", + "show_this_week": "Ipakita ang 'Ngayong Linggo'", + "show_this_week_desc": "Mga bagong episode ngayong linggo", + "select_catalogs": "Pumili ng mga Catalog", + "all_catalogs": "Lahat ng catalog", + "selected": "napili", + "hero_layout": "Hero Layout", + "layout_legacy": "Legacy", + "layout_carousel": "Carousel", + "layout_appletv": "Apple TV", + "layout_desc": "Full-width banner, swipeable cards, o Apple TV style", + "featured_source": "Featured Source", + "using_catalogs": "Gumagamit ng mga Catalog", + "manage_selected_catalogs": "Pamahalaan ang mga napiling catalog", + "dynamic_bg": "Dynamic Hero Background", + "dynamic_bg_desc": "Blurred na banner sa likod ng carousel", + "performance_note": "Maaaring makaapekto sa performance ng mga low-end na device.", + "posters": "Mga Poster", + "show_titles": "Ipakita ang mga Titulo", + "poster_size": "Laki ng Poster", + "poster_corners": "Kanto ng Poster", + "size_small": "Maliit", + "size_medium": "Katamtaman", + "size_large": "Malaki", + "corners_square": "Kanto (Square)", + "corners_rounded": "Rounded", + "corners_pill": "Pill", + "about_these_settings": "TUNGKOL SA MGA SETTING NA ITO", + "about_desc": "Kinokontrol nito kung paano ipinapakita ang content sa iyong Home screen. Mailalapat agad ang mga pagbabago.", + "hero_catalogs": { + "title": "Mga Catalog sa Hero Section", + "select_all": "Piliin Lahat", + "clear_all": "I-clear Lahat", + "info": "Pumili ng mga catalog na ipapakita sa hero section. Kung walang pipiliin, lahat ay gagamitin. Huwag kalimutang i-Save.", + "settings_saved": "Na-save na ang Settings", + "error_load": "Bigo sa pag-load ng mga catalog", + "movies": "Mga Pelikula", + "tv_shows": "Mga TV Show" + } + }, + "calendar": { + "title": "Kalendaryo", + "loading": "Naglo-load ng kalendaryo...", + "no_scheduled_episodes": "Walang nakatakdang episode", + "check_back_later": "Bumalik na lang mamaya", + "showing_episodes_for": "Ipinapakita ang mga episode para sa {{date}}", + "show_all_episodes": "Ipakita Lahat ng Episode", + "no_episodes_for": "Walang episode para sa {{date}}", + "no_upcoming_found": "Walang nahanap na paparating na episode", + "add_series_desc": "Magdagdag ng series sa iyong library para makita ang mga paparating na episode dito" + }, + "mdblist": { + "title": "Mga Source ng Rating", + "status_disabled": "MDBList ay Disabled", + "status_active": "Aktibo ang API Key", + "status_required": "Kailangan ng API Key", + "status_disabled_desc": "Ang MDBList functionality ay kasalukuyang disabled.", + "status_active_desc": "Naka-enable ang mga rating mula sa MDBList.", + "status_required_desc": "Ilagay ang iyong key sa ibaba para ma-enable ang mga rating.", + "enable_toggle": "I-enable ang MDBList", + "enable_toggle_desc": "I-on/off ang lahat ng MDBList functionality", + "api_section": "API Key", + "placeholder": "I-paste ang iyong MDBList API key", + "save": "I-save", + "clear": "I-clear ang Key", + "rating_providers": "Mga Provider ng Rating", + "rating_providers_desc": "Pumili kung aling mga rating ang ipapakita sa app", + "how_to": "Paano kumuha ng API key", + "step_1": "Mag-log in sa", + "step_1_link": "MDBList website", + "step_2": "Pumunta sa", + "step_2_settings": "Settings", + "step_2_api": "API", + "step_2_end": "section.", + "step_3": "Gumawa ng bagong key at i-copy ito.", + "go_to_website": "Pumunta sa MDBList", + "alert_clear_title": "I-clear ang API Key", + "alert_clear_msg": "Sigurado ka bang gusto mong alisin ang naka-save na API key?", + "success_saved": "Matagumpay na na-save ang API key.", + "error_empty": "Hindi maaaring walang laman ang API Key.", + "error_save": "Nagkaroon ng error habang nag-i-save. Pakisubukan muli.", + "api_key_empty_error": "Hindi maaaring walang laman ang API Key.", + "success_cleared": "Matagumpay na na-clear ang API key", + "error_clear": "Bigo sa pag-clear ng API key" + }, + "notification": { + "title": "Mga Setting ng Notification", + "section_general": "Pangkalahatan", + "enable_notifications": "I-enable ang mga Notification", + "section_types": "Mga Uri ng Notification", + "new_episodes": "Mga Bagong Episode", + "upcoming_shows": "Mga Paparating na Show", + "reminders": "Mga Paalala", + "section_timing": "Timing ng Notification", + "timing_desc": "Kailan ka dapat i-notify bago ipalabas ang isang episode?", + "hours_1": "1 oras", + "hours_suffix": "oras", + "section_status": "Status ng Notification", + "stats_upcoming": "Paparating", + "stats_this_week": "Ngayong Linggo", + "stats_total": "Kabuuan", + "sync_button": "I-sync ang Library at Trakt", + "syncing": "Sini-sync...", + "sync_desc": "Awtomatikong sini-sync ang notifications para sa lahat ng show sa iyong library at Trakt watchlist.", + "section_advanced": "Advanced", + "reset_button": "I-reset Lahat ng Notification", + "test_button": "I-test ang Notification (5 sec)", + "test_notification_in": "Notification sa loob ng {{seconds}}s...", + "test_notification_text": "Lilitaw ang notification sa loob ng {{seconds}} segundo", + "alert_reset_title": "I-reset ang mga Notification", + "alert_reset_msg": "Ika-cancel nito ang lahat ng nakatakdang notification. Sigurado ka ba?", + "alert_reset_success": "Lahat ng notification ay na-reset na", + "alert_sync_complete": "Tapos na ang Sync", + "alert_sync_msg": "Matagumpay na na-sync ang notifications.\n\nNakatakda: {{upcoming}} paparating na episode\nNgayong linggo: {{thisWeek}} episode", + "alert_test_scheduled": "Nakatakda na ang test notification" + }, + "backup": { + "title": "Backup at Restore", + "options_title": "Mga Option sa Backup", + "options_desc": "Pumili ng isasama sa iyong backup", + "section_core": "Core Data", + "section_addons": "Mga Addon at Integration", + "section_settings": "Settings at Preferences", + "library_label": "Library", + "library_desc": "Iyong mga na-save na pelikula at TV shows", + "watch_progress_label": "Watch Progress", + "watch_progress_desc": "Mga posisyon sa 'Ituloy ang Panonood'", + "addons_label": "Mga Addon", + "addons_desc": "Mga naka-install na Stremio addon", + "plugins_label": "Mga Plugin", + "plugins_desc": "Mga custom scraper configuration", + "trakt_label": "Trakt Integration", + "trakt_desc": "I-sync ang data at authentication tokens", + "app_settings_label": "App Settings", + "app_settings_desc": "Tema, preferences, at mga configuration", + "user_prefs_label": "User Preferences", + "user_prefs_desc": "Pagkakasunod-sunod ng addon at UI settings", + "catalog_settings_label": "Catalog Settings", + "catalog_settings_desc": "Mga filter at preference sa catalog", + "api_keys_label": "Mga API Key", + "api_keys_desc": "MDBList at OpenRouter keys", + "action_create": "Gumawa ng Backup", + "action_restore": "Mag-restore mula sa Backup", + "section_info": "Tungkol sa mga Backup", + "info_text": "• Ang backup files ay nakatago sa iyong device\n• I-share ang backup para maglipat ng data sa ibang device\n• Ang pag-restore ay magbubura sa iyong kasalukuyang data", + "alert_create_title": "Gumawa ng Backup", + "alert_no_content": "Walang napiling content para sa backup.", + "alert_backup_created_title": "Nagawa na ang Backup", + "alert_backup_created_msg": "Ang iyong backup ay handa na para i-share.", + "alert_backup_failed_title": "Bigo ang Backup", + "alert_restore_confirm_title": "Kumpirmahin ang Pag-restore", + "alert_restore_confirm_msg": "I-re-restore nito ang iyong data mula sa backup noong {{date}}. Mabubura ang iyong kasalukuyang data. Ituloy?", + "alert_restore_complete_title": "Tapos na ang Pag-restore", + "alert_restore_complete_msg": "Matagumpay na na-restore ang data. Mangyaring i-restart ang app.", + "alert_restore_failed_title": "Bigo ang Pag-restore", + "restart_app": "I-restart ang App", + "alert_restart_failed_title": "Bigo ang Pag-restart", + "alert_restart_failed_msg": "Bigo sa pag-restart ng app. Pakisara at buksan ang app nang manual." + }, + "updates": { + "title": "Mga Update ng App", + "status_checking": "Nag-che-check ng mga update...", + "status_available": "May available na update!", + "status_downloading": "Dina-download ang update...", + "status_installing": "Inia-install ang update...", + "status_success": "Matagumpay na na-install ang update!", + "status_error": "Bigo ang update", + "status_ready": "Handa nang mag-check ng update", + "action_check": "Mag-check ng Update", + "action_install": "I-install ang Update", + "release_notes": "Release notes:", + "version": "Bersyon:", + "last_checked": "Huling check:", + "current_version": "Kasalukuyang bersyon:", + "current_release_notes": "Kasalukuyang release notes:", + "github_release": "GITHUB RELEASE", + "current": "Kasalukuyan:", + "latest": "Pinakabago:", + "notes": "Mga Tala:", + "view_release": "Tingnan ang Release", + "notification_settings": "MGA SETTING NG NOTIFICATION", + "ota_alerts_label": "OTA Update Alerts", + "ota_alerts_desc": "Magpakita ng notifications para sa over-the-air updates", + "major_alerts_label": "Major Update Alerts", + "major_alerts_desc": "Magpakita ng notifications para sa bagong bersyon sa GitHub", + "alert_disable_ota_title": "I-disable ang OTA Update Alerts?", + "alert_disable_ota_msg": "Hindi ka na makakatanggap ng awtomatikong notification para sa OTA updates.", + "alert_disable_major_title": "I-disable ang Major Update Alerts?", + "alert_disable_major_msg": "Hindi ka na makakatanggap ng notification para sa mga major app update.", + "warning_note": "Ang pag-iiwan sa alerts na naka-enable ay naniniguradong makakatanggap ka ng mga bug fix.", + "disable": "I-disable", + "alert_no_update_to_install": "Walang update na available para i-install", + "alert_install_failed": "Bigo sa pag-install ng update", + "alert_no_update_title": "Walang Update", + "alert_update_applied_msg": "Ilalapat ang update sa susunod na pag-restart ng app" + }, + "player": { + "title": "Video Player", + "section_selection": "PAGPILI NG PLAYER", + "internal_title": "Built-in Player", + "internal_desc": "Gamitin ang default player ng app", + "vlc_title": "VLC", + "vlc_desc": "Buksan ang streams sa VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Buksan ang streams sa Infuse player", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Buksan ang streams sa OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Buksan ang streams sa VidHub player", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Buksan ang streams sa Infuse player LiveContainer", + "external_title": "External Player", + "external_desc": "Buksan ang streams sa iyong napiling video player", + "section_playback": "MGA OPTION SA PLAYBACK", + "skip_intro_settings_title": "Laktawan ang Intro", + "powered_by_introdb": "Powered by IntroDB", + "autoplay_title": "Auto-play ng Unang Stream", + "autoplay_desc": "Awtomatikong simulan ang unang stream sa listahan.", + "resume_title": "Laging I-resume", + "resume_desc": "Laktawan ang resume prompt at ituloy kung saan huminto.", + "engine_title": "Video Player Engine", + "engine_desc": "Ang 'Auto' ay gumagamit ng ExoPlayer na may MPV fallback.", + "decoder_title": "Decoder Mode", + "decoder_desc": "Paano idine-decode ang video. Inirerekomenda ang 'Auto'.", + "gpu_title": "GPU Rendering", + "gpu_desc": "Ang GPU-Next ay may mas magandang HDR at color management.", + "external_downloads_title": "External Player para sa Downloads", + "external_downloads_desc": "I-play ang downloaded content sa external player.", + "restart_required": "Kailangan ng Restart", + "restart_msg_decoder": "I-restart ang app para sa decoder change.", + "restart_msg_gpu": "I-restart ang app para sa GPU mode change.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV fallback", + "option_mpv": "MPV", + "option_mpv_desc": "MPV lang", + "option_auto_desc_decoder": "Pinaka-balanse", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Full HW", + "option_gpu_desc": "Standard", + "option_gpu_next_desc": "Advanced" + }, + "plugins": { + "title": "Mga Plugin", + "enable_title": "I-enable ang mga Plugin", + "enable_desc": "I-enable ang plugin engine para sa external media sources", + "repo_config_title": "Configuration ng Repository", + "repo_config_desc": "Pamahalaan ang mga external plugin repository.", + "your_repos": "Mga Repository", + "your_repos_desc": "I-configure ang external sources para sa mga plugin.", + "add_repo_button": "Magdagdag ng Repository", + "refresh": "I-refresh", + "remove": "Alisin", + "enabled": "Naka-enable", + "disabled": "Disabled", + "updating": "Inia-update...", + "success": "Tagumpay", + "error": "Error", + "alert_repo_added": "Matagumpay na naidagdag ang repository", + "alert_repo_saved": "Matagumpay na na-save ang Repository URL", + "alert_repo_refreshed": "Matagumpay na na-refresh ang repository", + "alert_invalid_url": "Maling Format ng URL", + "alert_plugins_cleared": "Lahat ng plugin ay naalis na", + "alert_cache_cleared": "Matagumpay na na-clear ang repository cache", + "unknown": "Hindi Alam", + "active": "Aktibo", + "available": "Available", + "platform_disabled": "Platform Disabled", + "limited": "Limitado", + "clear_all": "I-clear Lahat ng Plugin", + "clear_all_desc": "Sigurado ka bang gusto mong alisin lahat ng naka-install na plugin?", + "clear_cache": "I-clear ang Repository Cache", + "clear_cache_desc": "Mabubura ang URL at lahat ng cached plugin data.", + "add_new_repo": "Magdagdag ng Bagong Repository", + "available_plugins": "Available na Plugin ({{count}})", + "placeholder": "Maghanap ng mga plugin...", + "all": "Lahat", + "filter_all": "Lahat ng Uri", + "filter_movies": "Mga Pelikula", + "filter_tv": "Mga TV Show", + "enable_all": "I-enable Lahat", + "disable_all": "I-disable Lahat", + "no_plugins_found": "Walang Nahanap na Plugin", + "no_plugins_available": "Walang Available na Plugin", + "no_match_desc": "Walang tumutugmang plugin para sa \"{{query}}\".", + "configure_repo_desc": "Mag-configure ng repository sa itaas.", + "clear_search": "I-clear ang Search", + "no_external_player": "Walang external player", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "I-paste ang iyong ShowBox UI token", + "save": "I-save", + "clear": "I-clear", + "additional_settings": "Karagdagang Settings", + "enable_url_validation": "I-enable ang URL Validation", + "url_validation_desc": "I-validate ang media URLs bago ipakita", + "group_streams": "I-grupo ang Plugin Sources", + "group_streams_desc": "Kapag enabled, naka-grupo ang sources ayon sa repository.", + "sort_quality": "I-sort ayon sa Quality Una", + "sort_quality_desc": "I-sort ang sources base sa kalidad ng video.", + "show_logos": "Ipakita ang mga Plugin Logo", + "show_logos_desc": "Ipakita ang logos ng plugin sa tabi ng media links.", + "quality_filtering": "Filtering ng Quality", + "quality_filtering_desc": "I-exclude ang mga partikular na resolution.", + "excluded_qualities": "Mga excluded na quality:", + "language_filtering": "Filtering ng Wika", + "language_filtering_desc": "I-exclude ang mga partikular na wika.", + "note": "Tandaan:", + "language_filtering_note": "Ang filter na ito ay para lang sa providers na may impormasyon ng wika.", + "excluded_languages": "Mga excluded na wika:", + "about_title": "Tungkol sa mga Plugin", + "about_desc_1": "Ang mga plugin ay modular components na kumukuha ng content mula sa iba't ibang protocol.", + "about_desc_2": "Ang mga plugin na \"Limited\" ay maaaring mangailangan ng external configurations.", + "help_title": "Setup ng Plugin", + "help_step_1": "1. **I-enable ang Plugins** - I-on ang main switch", + "help_step_2": "2. **Magdagdag ng Repository** - Maglagay ng valid na repo URL", + "help_step_3": "3. **I-refresh ang Repository** - Kunin ang available na plugins", + "help_step_4": "4. **I-activate** - I-enable ang mga gusto mong gamitin", + "got_it": "Nakuha ko na!", + "repo_format_hint": "Format: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "Kanselahin", + "add": "Idagdag" + }, + "theme": { + "title": "Mga Tema ng App", + "select_theme": "PUMILI NG TEMA", + "create_custom": "Gumawa ng Custom na Tema", + "options": "MGA OPTION", + "use_dominant_color": "Gamitin ang Dominant Color mula sa Artwork", + "categories": { + "all": "Lahat ng Tema", + "dark": "Dark Themes", + "colorful": "Makulay", + "custom": "Aking mga Tema" + }, + "editor": { + "theme_name_placeholder": "Pangalan ng tema", + "save": "I-save", + "primary": "Primary", + "secondary": "Secondary", + "background": "Background", + "invalid_name_title": "Maling Pangalan", + "invalid_name_msg": "Mangyaring maglagay ng valid na pangalan ng tema" + }, + "alerts": { + "delete_title": "Burahin ang Tema", + "delete_msg": "Sigurado ka bang gusto mong burahin ang \"{{name}}\"?", + "ok": "OK", + "delete": "Burahin", + "cancel": "Kanselahin", + "back": "Mga Setting" + } + }, + "legal": { + "title": "Legal at Disclaimer", + "intro_title": "Kalikasan ng Application", + "intro_text": "Ang Nuvio ay isang media player at metadata management application. Ito ay nagsisilbi lamang bilang interface para sa pag-browse ng metadata at pag-play ng media files mula sa user o third-party extensions.", + "extensions_title": "Third-Party Plugins", + "extensions_text": "Pinapayagan ng Nuvio ang pag-install ng third-party plugins. Ang mga ito ay binuo ng mga independent developers at walang kinalaman sa Nuvio.", + "user_resp_title": "Responsibilidad ng User", + "user_resp_text": "Ang mga user ay tanging responsable para sa plugins na kanilang inilalagay. Sa paggamit nito, sumasang-ayon ka na may legal na karapatan ka sa content na pinapanood mo.", + "dmca_title": "Copyright at DMCA", + "dmca_text": "Iginagalang namin ang intellectual property rights. Dahil ang Nuvio ay hindi nag-ho-host ng content, hindi kami makakapagtanggal ng content sa internet.", + "warranty_title": "Walang Warranty", + "warranty_text": "Ang software na ito ay ibinibigay nang \"as is\", nang walang anumang warranty." + }, + "plugin_tester": { + "title": "Plugin Tester", + "subtitle": "Patakbuhin ang mga scraper i-inspect ang logs", + "tabs": { + "individual": "Individual", + "repo": "Repo Tester", + "code": "Code", + "logs": "Logs", + "results": "Mga Resulta" + }, + "common": { + "error": "Error", + "success": "Tagumpay", + "movie": "Pelikula", + "tv": "TV", + "tmdb_id": "TMDB ID", + "season": "Season", + "episode": "Episode", + "running": "Tumatakbo...", + "run_test": "Patakbuhin ang Test", + "play": "I-play", + "done": "Tapos na", + "test": "Test", + "testing": "Sini-suri..." + }, + "individual": { + "load_from_url": "I-load mula sa URL", + "load_from_url_desc": "I-paste ang raw GitHub URL.", + "enter_url_error": "Mangyaring maglagay ng URL", + "code_loaded": "Code ay na-load mula sa URL", + "fetch_error": "Bigo sa pag-fetch: {{message}}", + "no_code_error": "Walang code na tatakbo", + "plugin_code": "Code ng Plugin", + "focus_editor": "Focus sa code editor", + "code_placeholder": "// I-paste ang code ng plugin dito...", + "test_parameters": "Mga Parameter ng Test", + "no_logs": "Wala pang logs. Patakbuhin ang test.", + "no_streams": "Walang nahanap na streams.", + "streams_found": "{{count}} Stream ang Nahanap", + "streams_found_plural": "{{count}} na Stream ang Nahanap", + "tap_play_hint": "I-tap ang Play para i-test ang stream.", + "unnamed_stream": "Walang Pangalang Stream", + "quality": "Quality: {{quality}}", + "size": "Laki: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Headers: {{count}} custom header(s)", + "find_placeholder": "Hanapin sa code...", + "edit_code_title": "I-edit ang Code", + "no_url_stream_error": "Walang URL para sa stream na ito" + }, + "repo": { + "title": "Repo Tester", + "description": "Mag-fetch ng repository at i-test ang bawat provider.", + "enter_repo_url_error": "Maglagay ng repository URL", + "invalid_url_title": "Maling URL", + "invalid_url_msg": "Gumamit ng GitHub raw URL.", + "manifest_build_error": "Hindi makabuo ng manifest URL", + "manifest_fetch_error": "Bigo sa pag-fetch ng manifest", + "repo_manifest_fetch_error": "Bigo sa pag-fetch ng repository manifest", + "missing_filename": "Nawawalang filename sa manifest", + "scraper_build_error": "Hindi makabuo ng scraper URL", + "download_scraper_error": "Bigo sa pag-download ng scraper", + "test_failed": "Bigo ang test", + "test_parameters": "Repo Test Parameters", + "test_parameters_desc": "Gagamitin lang para sa Repo Tester.", + "using_info": "Gamit: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Gamit: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Mga Provider", + "repository_default": "Repository", + "providers_count": "{{count}} providers", + "fetch_hint": "Mag-fetch ng repo para makita ang providers.", + "test_all": "I-test Lahat", + "status_running": "TUMATAKBO", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "BIGO", + "status_idle": "IDLE", + "tried_url": "Sinubukan: {{url}}", + "provider_logs": "Logs ng Provider", + "no_logs_captured": "Walang logs na nakuha." + } + } +} + From 67169771ec1ab797669e3a685daf3c2b07ebc3b9 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:45:15 +0100 Subject: [PATCH 156/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 214328a3..7270eecb 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -19,6 +19,7 @@ import tr from './locales/tr.json'; import sl from './locales/sl.json'; import mk from './locales/mk.json'; import ru from './locales/ru.json'; +import fil from './locales/fil.json'; export const resources = { en: { translation: en }, @@ -41,4 +42,5 @@ export const resources = { sl: { translation: sl }, mk: { translation: mk }, ru: { translation: ru }, + fil: { translation: fil }, }; From 6de94e813a574f50cacfdc788ac7a49f2ab90c82 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:46:54 +0100 Subject: [PATCH 157/285] Update locales.ts --- src/constants/locales.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 0337920c..91278da2 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -10,13 +10,14 @@ export const LOCALES = [ { code: 'hr', key: 'croatian' }, { code: 'zh-CN', key: 'chinese' }, { code: 'hi', key: 'hindi' }, - { code: 'sr', key: 'serbian' } - { code: 'he', key: 'hebrew' } - { code: 'bg', key: 'bulgarian' } - { code: 'pl', key: 'polish' } - { code: 'cs', key: 'czech' } - { code: 'tr', key: 'turkish' } - { code: 'sl', key: 'slovenian' } - { code: 'mk', key: 'macedonian' } - { code: 'ru', key: 'russian' } + { code: 'sr', key: 'serbian' }, + { code: 'he', key: 'hebrew' }, + { code: 'bg', key: 'bulgarian' }, + { code: 'pl', key: 'polish' }, + { code: 'cs', key: 'czech' }, + { code: 'tr', key: 'turkish' }, + { code: 'sl', key: 'slovenian' }, + { code: 'mk', key: 'macedonian' }, + { code: 'ru', key: 'russian' }, + { code: 'fil', key: 'filipino' }, ]; From e1f813fc8fe4f837f2d4e569e6172d0a1565c608 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:48:41 +0100 Subject: [PATCH 158/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 22cf2e32..b5dfe05d 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -644,6 +644,7 @@ "slovenian": "السلوفينية", "macedonian": "مقدوني", "russian": "الروسية", + "filipino": "الفلبينية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 1132fc3e1e0afa0e71b55350907566a8a4dcd09d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:49:44 +0100 Subject: [PATCH 159/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index d1adaade..14b79823 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -649,6 +649,7 @@ "slovenian": "Словенски", "macedonian": "Македонски", "russian": "Руски", + "filipino": "Филипински", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1430,3 +1431,4 @@ + From 4222a44df2b94a4856776a330a5314057e001e0d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:51:35 +0100 Subject: [PATCH 160/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index ba82f7a3..6348e3e6 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -639,6 +639,7 @@ "slovenian": "Slovinština", "macedonian": "Makedonský", "russian": "Ruština", + "filipino": "Filipínština", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1418,3 +1419,4 @@ + From a34fa5f73e38879a2f57667879e330064d7d4386 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:52:30 +0100 Subject: [PATCH 161/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 52a82480..dc92d9b0 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -644,6 +644,7 @@ "slovenian": "Slowenisch", "macedonian": "Makedonisch", "russian": "Russisch", + "filipino": "Philippinisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From e8b237714c04eb478bfb649f1dd5db24d71b7af4 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:52:57 +0100 Subject: [PATCH 162/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 01578b21..7586ed53 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -649,6 +649,7 @@ "slovenian": "Slovenian", "macedonian": "Macedonian", "russian": "Russian", + "filipino": "Filipino", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 140e4e05adabe85e7b62c9d5b349148ab09fed29 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:54:28 +0100 Subject: [PATCH 163/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 3e1d2b9f..2d95debb 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -644,6 +644,7 @@ "slovenian": "Esloveno", "macedonian": "Macedonio", "russian": "Ruso", + "filipino": "Filipino", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 20c24abac03ed924b2722ae72a71e4d9d9725f47 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:55:48 +0100 Subject: [PATCH 164/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index dc196255..bb59b935 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -644,6 +644,7 @@ "slovenian": "Slovène", "macedonian": "Macédonien", "russian": "Russe", + "filipino": "Philippin", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From 489d63e4de08aab8b721fab96acf2ef9ec9f3fa4 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:57:40 +0100 Subject: [PATCH 165/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index c7fbb6b4..22116a74 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -649,6 +649,7 @@ "slovenian": "סلوفينية", "macedonian": "מקדונית", "russian": "רוסית", + "filipino": "פיליפינית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1431,3 +1432,4 @@ + From 1dd9345bd0ad44039507fa8056f192f4b3db765d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 22:59:00 +0100 Subject: [PATCH 166/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index e2d0a2c0..040b9a9b 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -644,6 +644,7 @@ "slovenian": "स्लोवेनियाई", "macedonian": "मकदूनियाई", "russian": "रूसी", + "filipino": "फ़िलिपिनो", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From fed0c47b6d25f58142a27f4073de221f4d52cace Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:00:04 +0100 Subject: [PATCH 167/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index dee8cb8c..4486db22 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -644,6 +644,7 @@ "slovenian": "Sloveno", "macedonian": "Macedone", "russian": "Russo", + "filipino": "Filippino", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 149c523a68204428897135f08da5d5954007bc0e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:01:00 +0100 Subject: [PATCH 168/285] Update mk.json --- src/i18n/locales/mk.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/mk.json b/src/i18n/locales/mk.json index 9cc829bd..27d08fd3 100644 --- a/src/i18n/locales/mk.json +++ b/src/i18n/locales/mk.json @@ -649,6 +649,7 @@ "slovenian": "Словенечки", "macedonian": "Македонски", "russian": "Руски", + "filipino": "Филипински", "account": "Сметка", "content_discovery": "Содржина и откривање", "appearance": "Изглед", @@ -1424,3 +1425,4 @@ + From 40bf847c58b4211b07cb14f5ddcfb21609ce53cc Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:02:07 +0100 Subject: [PATCH 169/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 88f3c1e6..4fa966ca 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -649,6 +649,7 @@ "slovenian": "Słoweński", "macedonian": "Macedoński", "russian": "Rosyjski", + "filipino": "Filipiński", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1430,3 +1431,4 @@ + From c28099eccf9f73478cdd7eb663087df44cad5297 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:03:00 +0100 Subject: [PATCH 170/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index b1d6ab5e..564a66e6 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -658,6 +658,7 @@ "slovenian": "Esloveno", "macedonian": "Macedônio", "russian": "Russo", + "filipino": "Filipino", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 7e14caca92af20e7d4893eb187715d0e491218a5 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:03:38 +0100 Subject: [PATCH 171/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 4da19269..66ad8f58 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -656,6 +656,7 @@ "slovenian": "Esloveno", "macedonian": "Macedônio", "russian": "Russo", + "filipino": "Filipino", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 8530e9fc296e7a824dc575e6e4f0e6a70f19a8bb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:05:08 +0100 Subject: [PATCH 172/285] Update ru.json --- src/i18n/locales/ru.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index f4a8228d..59da1f8a 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -649,6 +649,7 @@ "slovenian": "Словенский", "macedonian": "Македонский", "russian": "Русский", + "filipino": "Филиппинский", "account": "Аккаунт", "content_discovery": "Контент и поиск", "appearance": "Внешний вид", @@ -1425,3 +1426,4 @@ } } + From 14a73ecab3f15d1524a1312044b681216da9901c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:06:02 +0100 Subject: [PATCH 173/285] Update sl.json --- src/i18n/locales/sl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 8229b633..2743d589 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -649,6 +649,7 @@ "slovenian": "Slovenščina", "macedonian": "Makedonski", "russian": "Ruščina", + "filipino": "Filipinščina", "account": "Račun", "content_discovery": "Vsebina in odkrivanje", "appearance": "Videz", @@ -1426,3 +1427,4 @@ } + From 63ea389fd7174e42f4a83e5dc1bf643813040ec7 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:06:59 +0100 Subject: [PATCH 174/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 862feb53..495624cc 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -643,6 +643,7 @@ "slovenian": "Словеначки", "macedonian": "Македонски", "russian": "Руски", + "filipino": "Филипински", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1428,3 +1429,4 @@ + From af4a345fe5e40afff399d5a2801a3c07c235e97d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:07:43 +0100 Subject: [PATCH 175/285] Update tr.json --- src/i18n/locales/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 28a15988..38ac6369 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -649,6 +649,7 @@ "slovenian": "Slovence", "macedonian": "Makedonca", "russian": "Rusça", + "filipino": "Filipince", "account": "Hesap", "content_discovery": "İçerik ve Keşif", "appearance": "Görünüm", @@ -1427,3 +1428,4 @@ + From cea31cb5af6d3d1b816de718619e2a023d1a7065 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:09:27 +0100 Subject: [PATCH 176/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 8e7512c5..21f88514 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -644,6 +644,7 @@ "slovenian": "斯洛文尼亚语", "macedonian": "马其顿语", "russian": "俄语", + "filipino": "菲律宾语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From e978c14da6d10f89698e6ef5566d8b35048d1013 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Fri, 6 Feb 2026 23:19:44 +0100 Subject: [PATCH 177/285] Update TMDBSettingsScreen.tsx --- src/screens/TMDBSettingsScreen.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/screens/TMDBSettingsScreen.tsx b/src/screens/TMDBSettingsScreen.tsx index 76d2420f..c51a7743 100644 --- a/src/screens/TMDBSettingsScreen.tsx +++ b/src/screens/TMDBSettingsScreen.tsx @@ -1179,7 +1179,8 @@ const TMDBSettingsScreen = () => { { code: 'sr', label: 'Српски', native: 'Serbian' }, { code: 'bg', label: 'български', native: 'Bulgarian' }, { code: 'sl', label: 'Slovenščina', native: 'Slovenian' }, - { code: 'mk', label: 'Македонски', native: 'Macedonian' }, + { code: 'mk', label: 'Македонски', native: 'Macedonian' }, + {code: 'fil', label: 'Filipino', native: 'Filipino' }, ]; const filteredLanguages = languages.filter(({ label, code, native }) => From b857256916f7cfce54b5d54d25e12c1d04bfe138 Mon Sep 17 00:00:00 2001 From: paregi12 Date: Sat, 7 Feb 2026 11:51:12 +0530 Subject: [PATCH 178/285] feat: update IntroDB integration to support recap and outro segments --- .../player/modals/SubmitIntroModal.tsx | 101 +++++++++++++----- src/services/introService.ts | 97 ++++++++++++----- 2 files changed, 144 insertions(+), 54 deletions(-) diff --git a/src/components/player/modals/SubmitIntroModal.tsx b/src/components/player/modals/SubmitIntroModal.tsx index 42873ba0..11afaa7c 100644 --- a/src/components/player/modals/SubmitIntroModal.tsx +++ b/src/components/player/modals/SubmitIntroModal.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { View, Text, TouchableOpacity, useWindowDimensions, StyleSheet, TextInput, ActivityIndicator } from 'react-native'; +import { View, Text, TouchableOpacity, useWindowDimensions, StyleSheet, TextInput, ActivityIndicator, ScrollView } from 'react-native'; import { Ionicons, MaterialIcons } from '@expo/vector-icons'; import { useTranslation } from 'react-i18next'; import Animated, { @@ -9,7 +9,7 @@ import Animated, { SlideOutDown, } from 'react-native-reanimated'; import { useSettings } from '../../../hooks/useSettings'; -import { introService } from '../../../services/introService'; +import { introService, SkipType } from '../../../services/introService'; import { toastService } from '../../../services/toastService'; interface SubmitIntroModalProps { @@ -67,6 +67,7 @@ export const SubmitIntroModal: React.FC = ({ const [startTimeStr, setStartTimeStr] = useState('00:00'); const [endTimeStr, setEndTimeStr] = useState(formatSecondsToMMSS(currentTime)); + const [segmentType, setSegmentType] = useState('intro'); const [isSubmitting, setIsSubmitting] = useState(false); useEffect(() => { @@ -107,14 +108,15 @@ export const SubmitIntroModal: React.FC = ({ season, episode, startSec, - endSec + endSec, + segmentType ); if (success) { - toastService.success(t('player_ui.intro_submitted', { defaultValue: 'Intro submitted successfully' })); + toastService.success(t('player_ui.intro_submitted', { defaultValue: 'Segment submitted successfully' })); onClose(); } else { - toastService.error(t('player_ui.intro_submit_failed', { defaultValue: 'Failed to submit intro' })); + toastService.error(t('player_ui.intro_submit_failed', { defaultValue: 'Failed to submit segment' })); } } catch (error) { toastService.error('Error', 'An unexpected error occurred'); @@ -123,9 +125,11 @@ export const SubmitIntroModal: React.FC = ({ } }; - const startVal = parseTimeToSeconds(startTimeStr); - const endVal = parseTimeToSeconds(endTimeStr); - const durationSec = (startVal !== null && endVal !== null) ? endVal - startVal : 0; + const segmentTypes: { label: string; value: SkipType; icon: any }[] = [ + { label: 'Intro', value: 'intro', icon: 'play-circle-outline' }, + { label: 'Recap', value: 'recap', icon: 'replay' }, + { label: 'Outro', value: 'outro', icon: 'stop-circle' }, + ]; return ( @@ -144,13 +148,42 @@ export const SubmitIntroModal: React.FC = ({ style={[localStyles.modalContainer, { width: Math.min(width * 0.85, 380) }]} > - Submit Intro Timestamp + Submit Timestamps - + + {/* Segment Type Selector */} + + Segment Type + + {segmentTypes.map((type) => ( + setSegmentType(type.value)} + style={[ + localStyles.typeButton, + segmentType === type.value && localStyles.typeButtonActive + ]} + > + + + {type.label} + + + ))} + + + {/* Start Time Input */} @@ -214,7 +247,7 @@ export const SubmitIntroModal: React.FC = ({ )} - + @@ -239,6 +272,7 @@ const localStyles = StyleSheet.create({ shadowOpacity: 0.5, shadowRadius: 15, elevation: 20, + maxHeight: '80%', }, header: { flexDirection: 'row', @@ -257,6 +291,34 @@ const localStyles = StyleSheet.create({ content: { gap: 20, }, + typeRow: { + flexDirection: 'row', + gap: 8, + }, + typeButton: { + flex: 1, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + gap: 6, + backgroundColor: 'rgba(255,255,255,0.05)', + borderRadius: 12, + paddingVertical: 10, + borderWidth: 1, + borderColor: 'rgba(255,255,255,0.1)', + }, + typeButtonActive: { + backgroundColor: 'white', + borderColor: 'white', + }, + typeButtonText: { + color: 'rgba(255,255,255,0.6)', + fontSize: 13, + fontWeight: '600', + }, + typeButtonTextActive: { + color: 'black', + }, inputRow: { flexDirection: 'row', alignItems: 'flex-end', @@ -295,22 +357,6 @@ const localStyles = StyleSheet.create({ fontSize: 13, fontWeight: '600', }, - summaryBox: { - backgroundColor: 'rgba(255,255,255,0.03)', - borderRadius: 16, - padding: 16, - marginTop: 8, - }, - summaryText: { - color: 'rgba(255,255,255,0.5)', - fontSize: 14, - marginBottom: 4, - }, - hintText: { - color: 'rgba(255,255,255,0.3)', - fontSize: 12, - fontStyle: 'italic', - }, buttonRow: { flexDirection: 'row', gap: 12, @@ -345,3 +391,4 @@ const localStyles = StyleSheet.create({ fontWeight: '700', }, }); + diff --git a/src/services/introService.ts b/src/services/introService.ts index de9a1c78..9d96b43c 100644 --- a/src/services/introService.ts +++ b/src/services/introService.ts @@ -26,11 +26,21 @@ export interface IntroTimestamps { imdb_id: string; season: number; episode: number; - start_sec: number; - end_sec: number; - start_ms: number; - end_ms: number; - confidence: number; + intro?: { + start_sec: number; + end_sec: number; + confidence: number; + }; + recap?: { + start_sec: number; + end_sec: number; + confidence: number; + }; + outro?: { + start_sec: number; + end_sec: number; + confidence: number; + }; } async function getMalIdFromArm(imdbId: string): Promise { @@ -154,7 +164,7 @@ async function fetchFromAniSkip(malId: string, episode: number): Promise { try { - const response = await axios.get(`${INTRODB_API_URL}/intro`, { + const response = await axios.get(`${INTRODB_API_URL}/segments`, { params: { imdb_id: imdbId, season, @@ -163,26 +173,48 @@ async function fetchFromIntroDb(imdbId: string, season: number, episode: number) timeout: 5000, }); - logger.log(`[IntroService] Found intro for ${imdbId} S${season}E${episode}:`, { - start: response.data.start_sec, - end: response.data.end_sec, - confidence: response.data.confidence, - }); + const intervals: SkipInterval[] = []; - return [{ - startTime: response.data.start_sec, - endTime: response.data.end_sec, - type: 'intro', - provider: 'introdb' - }]; + if (response.data.intro) { + intervals.push({ + startTime: response.data.intro.start_sec, + endTime: response.data.intro.end_sec, + type: 'intro', + provider: 'introdb' + }); + } + + if (response.data.recap) { + intervals.push({ + startTime: response.data.recap.start_sec, + endTime: response.data.recap.end_sec, + type: 'recap', + provider: 'introdb' + }); + } + + if (response.data.outro) { + intervals.push({ + startTime: response.data.outro.start_sec, + endTime: response.data.outro.end_sec, + type: 'outro', + provider: 'introdb' + }); + } + + if (intervals.length > 0) { + logger.log(`[IntroService] Found ${intervals.length} segments for ${imdbId} S${season}E${episode}`); + } + + return intervals; } catch (error: any) { if (axios.isAxiosError(error) && error.response?.status === 404) { // No intro data available for this episode - this is expected - logger.log(`[IntroService] No intro data for ${imdbId} S${season}E${episode}`); + logger.log(`[IntroService] No segment data for ${imdbId} S${season}E${episode}`); return []; } - logger.error('[IntroService] Error fetching intro timestamps:', error?.message || error); + logger.error('[IntroService] Error fetching segments from IntroDB:', error?.message || error); return []; } } @@ -230,7 +262,8 @@ export async function submitIntro( season: number, episode: number, startTime: number, // in seconds - endTime: number // in seconds + endTime: number, // in seconds + segmentType: SkipType = 'intro' ): Promise { try { if (!apiKey) { @@ -240,8 +273,12 @@ export async function submitIntro( const response = await axios.post(`${INTRODB_API_URL}/submit`, { imdb_id: imdbId, + segment_type: segmentType === 'op' ? 'intro' : (segmentType === 'ed' ? 'outro' : segmentType), season, episode, + start_sec: startTime, + end_sec: endTime, + // Keep start_ms/end_ms for backward compatibility if the server still expects it start_ms: Math.round(startTime * 1000), end_ms: Math.round(endTime * 1000), }, { @@ -319,18 +356,24 @@ export async function getIntroTimestamps( imdbId: string, season: number, episode: number -): Promise { +): Promise { const intervals = await fetchFromIntroDb(imdbId, season, episode); - if (intervals.length > 0) { + const intro = intervals.find(i => i.type === 'intro'); + if (intro) { return { imdb_id: imdbId, season, episode, - start_sec: intervals[0].startTime, - end_sec: intervals[0].endTime, - start_ms: intervals[0].startTime * 1000, - end_ms: intervals[0].endTime * 1000, - confidence: 1.0 + start_sec: intro.startTime, + end_sec: intro.endTime, + start_ms: intro.startTime * 1000, + end_ms: intro.endTime * 1000, + confidence: 1.0, + intro: { + start_sec: intro.startTime, + end_sec: intro.endTime, + confidence: 1.0 + } }; } return null; From da07db4098fc96568d70dd1de672924067256efc Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sat, 7 Feb 2026 18:22:43 +0100 Subject: [PATCH 179/285] Update PlaybackSettingsScreen.tsx --- src/screens/settings/PlaybackSettingsScreen.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/screens/settings/PlaybackSettingsScreen.tsx b/src/screens/settings/PlaybackSettingsScreen.tsx index c3559e3c..a43af4ca 100644 --- a/src/screens/settings/PlaybackSettingsScreen.tsx +++ b/src/screens/settings/PlaybackSettingsScreen.tsx @@ -54,6 +54,12 @@ const AVAILABLE_LANGUAGES = [ { code: 'uk', name: 'Ukrainian' }, { code: 'he', name: 'Hebrew' }, { code: 'fa', name: 'Persian' }, + { code: 'hr', name: 'Croatian' }, + { code: 'sr', name: 'Serbian' }, + { code: 'bg', name: 'Bulgarian' }, + { code: 'sl', name: 'Slovenian' }, + { code: 'mk', name: 'Macedonian' }, + { code: 'fil', name: 'Filipino' }, ]; const SUBTITLE_SOURCE_OPTIONS = [ From 9fa2f0b2b4e4f79e6572a840574ce9a5b9491fb7 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sat, 7 Feb 2026 22:33:19 +0100 Subject: [PATCH 180/285] Update TMDBSettingsScreen.tsx Mistake fixed --- src/screens/TMDBSettingsScreen.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/TMDBSettingsScreen.tsx b/src/screens/TMDBSettingsScreen.tsx index c51a7743..010c5a19 100644 --- a/src/screens/TMDBSettingsScreen.tsx +++ b/src/screens/TMDBSettingsScreen.tsx @@ -1180,7 +1180,7 @@ const TMDBSettingsScreen = () => { { code: 'bg', label: 'български', native: 'Bulgarian' }, { code: 'sl', label: 'Slovenščina', native: 'Slovenian' }, { code: 'mk', label: 'Македонски', native: 'Macedonian' }, - {code: 'fil', label: 'Filipino', native: 'Filipino' }, + { code: 'fil', label: 'Filipino', native: 'Filipino' }, ]; const filteredLanguages = languages.filter(({ label, code, native }) => From bff4374f1aad3d729e4726f2b6b77c68c675e0db Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 19:55:15 +0100 Subject: [PATCH 181/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 7270eecb..0d489da8 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -20,6 +20,7 @@ import sl from './locales/sl.json'; import mk from './locales/mk.json'; import ru from './locales/ru.json'; import fil from './locales/fil.json'; +import nlNL from './locales/nl-NL.json'; export const resources = { en: { translation: en }, @@ -43,4 +44,5 @@ export const resources = { mk: { translation: mk }, ru: { translation: ru }, fil: { translation: fil }, + 'nl-NL': { translation: nlNL }, }; From 4f93d08ea8878f842e2a561059ceeb88a612cabf Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 19:56:57 +0100 Subject: [PATCH 182/285] Added Dutch (Netherlands) lang --- src/i18n/locales/nl-NL.json | 1431 +++++++++++++++++++++++++++++++++++ 1 file changed, 1431 insertions(+) create mode 100644 src/i18n/locales/nl-NL.json diff --git a/src/i18n/locales/nl-NL.json b/src/i18n/locales/nl-NL.json new file mode 100644 index 00000000..ced261f4 --- /dev/null +++ b/src/i18n/locales/nl-NL.json @@ -0,0 +1,1431 @@ +{ + "common": { + "loading": "Laden...", + "cancel": "Annuleren", + "save": "Opslaan", + "delete": "Verwijderen", + "edit": "Bewerken", + "search": "Zoeken", + "error": "Fout", + "success": "Succes", + "ok": "OK", + "unknown": "Onbekend", + "retry": "Opnieuw proberen", + "try_again": "Probeer het opnieuw", + "go_back": "Ga terug", + "settings": "Instellingen", + "close": "Sluiten", + "enable": "Inschakelen", + "disable": "Uitschakelen", + "show_more": "Meer tonen", + "show_less": "Minder tonen", + "load_more": "Meer laden", + "unknown_date": "Onbekende datum", + "anonymous_user": "Anonieme gebruiker", + "time": { + "now": "Zojuist", + "minutes_ago": "{{count}}m geleden", + "hours_ago": "{{count}}u geleden", + "days_ago": "{{count}}d geleden" + }, + "days_short": { + "sun": "Zo", + "mon": "Ma", + "tue": "Di", + "wed": "Wo", + "thu": "Do", + "fri": "Vr", + "sat": "Za" + }, + "email": "E-mail", + "status": "Status" + }, + "home": { + "categories": { + "movies": "Films", + "series": "Series", + "channels": "Zenders" + }, + "movies": "Films", + "tv_shows": "TV-programma's", + "load_more_catalogs": "Meer catalogi laden", + "no_content": "Geen inhoud beschikbaar", + "add_catalogs": "Catalogi toevoegen", + "sign_in_available": "Inloggen beschikbaar", + "sign_in_desc": "Je kunt op elk moment inloggen via Instellingen → Account", + "view_all": "Alles bekijken", + "this_week": "Deze week", + "upcoming": "Binnenkort", + "recently_released": "Onlangs uitgebracht", + "no_scheduled_episodes": "Series zonder geplande afleveringen", + "check_back_later": "Kom later terug", + "continue_watching": "Verderkijken", + "up_next": "Volgende", + "up_next_caps": "VOLGENDE", + "released": "Uitgebracht", + "new": "Nieuw", + "tba": "Nader te bepalen", + "new_episodes": "{{count}} nieuwe afleveringen", + "season_short": "S{{season}}", + "episode_short": "A{{episode}}", + "season": "Seizoen {{season}}", + "episode": "Aflevering {{episode}}", + "movie": "Film", + "series": "Serie", + "tv_show": "TV-show", + "percent_watched": "{{percent}}% bekeken", + "view_details": "Details bekijken", + "remove": "Verwijderen", + "play": "Afspelen", + "play_now": "Nu afspelen", + "resume": "Hervatten", + "info": "Info", + "more_info": "Meer info", + "my_list": "Mijn lijst", + "save": "Opslaan", + "saved": "Opgeslagen", + "retry": "Opnieuw proberen", + "install_addons": "Add-ons installeren", + "settings": "Instellingen", + "no_featured_content": "Geen uitgelichte inhoud", + "couldnt_load_featured": "Kon uitgelichte inhoud niet laden", + "no_featured_desc": "Installeer add-ons met catalogi of wijzig de bron in de instellingen.", + "load_error_desc": "Er is een probleem opgetreden bij het ophalen van de uitgelichte inhoud. Controleer je verbinding.", + "no_featured_available": "Geen uitgelichte inhoud beschikbaar", + "no_description": "Geen beschrijving beschikbaar" + }, + "navigation": { + "home": "Home", + "library": "Bibliotheek", + "search": "Zoeken", + "downloads": "Downloads", + "settings": "Instellingen" + }, + "search": { + "title": "Zoeken", + "recent_searches": "Recente zoekopdrachten", + "discover": "Ontdekken", + "movies": "Films", + "tv_shows": "TV-programma's", + "select_catalog": "Selecteer catalogus", + "all_genres": "Alle genres", + "discovering": "Inhoud ontdekken...", + "show_more": "Toon meer ({{count}})", + "no_content_found": "Geen inhoud gevonden", + "try_different": "Probeer een ander genre of catalogus", + "select_catalog_desc": "Selecteer een catalogus om te ontdekken", + "tap_catalog_desc": "Tik op een catalogus hierboven om te beginnen", + "placeholder": "Zoek films, series...", + "keep_typing": "Blijf typen...", + "type_characters": "Typ ten minste 2 tekens om te zoeken", + "no_results": "Geen resultaten gevonden", + "try_keywords": "Probeer andere trefwoorden of controleer de spelling", + "select_type": "Selecteer type", + "browse_movies": "Blader door filmcatalogi", + "browse_tv": "Blader door seriecatalogi", + "select_genre": "Selecteer genre", + "show_all_content": "Toon alle inhoud", + "genres_count": "{{count}} genres" + }, + "library": { + "title": "Bibliotheek", + "watched": "Bekeken", + "continue": "Verdergaan", + "watchlist": "Watchlist", + "collection": "Collectie", + "rated": "Beoordeeld", + "items": "items", + "trakt_collections": "Trakt collecties", + "trakt_collection": "Trakt collectie", + "no_trakt": "Geen Trakt collecties", + "no_trakt_desc": "Je Trakt collecties verschijnen hier zodra je Trakt gebruikt", + "load_collections": "Collecties laden", + "empty_folder": "Geen inhoud in {{folder}}", + "empty_folder_desc": "Deze collectie is leeg", + "refresh": "Vernieuwen", + "no_movies": "Nog geen films", + "no_series": "Nog geen TV-series", + "no_content": "Nog geen inhoud", + "add_content_desc": "Voeg inhoud toe aan je bibliotheek om deze hier te zien", + "find_something": "Zoek iets om te kijken", + "removed_from_library": "Verwijderd uit bibliotheek", + "item_removed": "Item verwijderd uit je bibliotheek", + "failed_update_library": "Bijwerken bibliotheek mislukt", + "unable_remove": "Kan item niet verwijderen uit bibliotheek", + "marked_watched": "Gemarkeerd als bekeken", + "marked_unwatched": "Gemarkeerd als niet bekeken", + "item_marked_watched": "Item gemarkeerd als bekeken", + "item_marked_unwatched": "Item gemarkeerd als niet bekeken", + "failed_update_watched": "Status bekeken bijwerken mislukt", + "unable_update_watched": "Kan status bekeken niet bijwerken", + "added_to_library": "Toegevoegd aan bibliotheek", + "item_added": "Toegevoegd aan je lokale bibliotheek", + "add_to_library": "Toevoegen aan bibliotheek", + "remove_from_library": "Verwijderen uit bibliotheek", + "mark_watched": "Markeren als bekeken", + "mark_unwatched": "Markeren als niet bekeken", + "share": "Delen", + "add_to_watchlist": "Toevoegen aan Trakt Watchlist", + "remove_from_watchlist": "Verwijderen uit Trakt Watchlist", + "added_to_watchlist": "Toegevoegd aan Watchlist", + "added_to_watchlist_desc": "Toegevoegd aan je Trakt watchlist", + "removed_from_watchlist": "Verwijderd uit Watchlist", + "removed_from_watchlist_desc": "Verwijderd uit je Trakt watchlist", + "add_to_collection": "Toevoegen aan Trakt Collectie", + "remove_from_collection": "Verwijderen uit Trakt Collectie", + "added_to_collection": "Toegevoegd aan collectie", + "added_to_collection_desc": "Toegevoegd aan je Trakt collectie", + "removed_from_collection": "Verwijderd uit collectie", + "removed_from_collection_desc": "Verwijderd uit je Trakt collectie" + }, + "metadata": { + "unable_to_load": "Kan inhoud niet laden", + "error_code": "Foutcode: {{code}}", + "content_not_found": "Inhoud niet gevonden", + "content_not_found_desc": "Deze inhoud bestaat niet of is mogelijk verwijderd.", + "server_error": "Serverfout", + "server_error_desc": "De server is tijdelijk onbereikbaar. Probeer het later opnieuw.", + "bad_gateway": "Bad Gateway", + "bad_gateway_desc": "De server ervaart problemen. Probeer het later opnieuw.", + "service_unavailable": "Dienst niet beschikbaar", + "service_unavailable_desc": "De dienst is momenteel offline voor onderhoud.", + "too_many_requests": "Te veel verzoeken", + "too_many_requests_desc": "Je doet te veel verzoeken. Wacht even en probeer het opnieuw.", + "request_timeout": "Time-out van verzoek", + "request_timeout_desc": "Het verzoek duurde te lang. Probeer het opnieuw.", + "network_error": "Netwerkfout", + "network_error_desc": "Controleer je internetverbinding en probeer het opnieuw.", + "auth_error": "Authenticatiefout", + "auth_error_desc": "Controleer je accountinstellingen en probeer het opnieuw.", + "access_denied": "Toegang geweigerd", + "access_denied_desc": "Je hebt geen toestemming om deze inhoud te bekijken.", + "connection_error": "Verbindingsfout", + "streams_unavailable": "Streams niet beschikbaar", + "streams_unavailable_desc": "Streamingbronnen zijn momenteel niet beschikbaar.", + "unknown_error": "Onbekende fout", + "something_went_wrong": "Er is iets misgegaan. Probeer het opnieuw.", + "cast": "Cast", + "more_like_this": "Vergelijkbaar met dit", + "collection": "Collectie", + "episodes": "Afleveringen", + "seasons": "Seizoenen", + "posters": "Posters", + "banners": "Banners", + "specials": "Specials", + "season_number": "Seizoen {{number}}", + "episode_count": "{{count}} aflevering", + "episode_count_plural": "{{count}} afleveringen", + "no_episodes": "Geen afleveringen beschikbaar", + "no_episodes_for_season": "Geen afleveringen beschikbaar voor Seizoen {{season}}", + "episodes_not_released": "Afleveringen zijn mogelijk nog niet uitgebracht", + "no_description": "Geen beschrijving beschikbaar", + "episode_label": "AFLEVERING {{number}}", + "watch_again": "Opnieuw kijken", + "completed": "Voltooid", + "play_episode": "S{{season}}E{{episode}} afspelen", + "play": "Afspelen", + "watched": "Bekeken", + "watched_on_trakt": "Bekeken op Trakt", + "synced_with_trakt": "Gesynchroniseerd met Trakt", + "saved": "Opgeslagen", + "director": "Regisseur", + "directors": "Regisseurs", + "creator": "Maker", + "creators": "Makers", + "production": "Productie", + "network": "Netwerk", + "mark_watched": "Markeren als bekeken", + "mark_unwatched": "Markeren als niet bekeken", + "marking": "Markeren...", + "removing": "Verwijderen...", + "unmark_season": "Seizoen {{season}} als niet bekeken markeren", + "mark_season": "Seizoen {{season}} als bekeken markeren", + "resume": "Hervatten", + "spoiler_warning": "Spoiler waarschuwing", + "spoiler_warning_desc": "Deze reactie bevat spoilers. Weet je zeker dat je deze wilt zien?", + "cancel": "Annuleren", + "reveal_spoilers": "Spoilers tonen", + "movie_details": "Filmdetails", + "show_details": "Serie-details", + "tagline": "Tagline", + "status": "Status", + "release_date": "Releasedatum", + "runtime": "Speelduur", + "budget": "Budget", + "revenue": "Opbrengst", + "origin_country": "Land van herkomst", + "original_language": "Originele taal", + "first_air_date": "Eerste uitzenddatum", + "last_air_date": "Laatste uitzenddatum", + "total_episodes": "Totaal aantal afleveringen", + "episode_runtime": "Duur per aflevering", + "created_by": "Gemaakt door", + "backdrop_gallery": "Achtergrondgalerij", + "loading_episodes": "Afleveringen laden...", + "no_episodes_available": "Geen afleveringen beschikbaar", + "play_next": "S{{season}}E{{episode}} afspelen", + "play_next_episode": "Volgende aflevering afspelen", + "save": "Opslaan", + "percent_watched": "{{percent}}% bekeken", + "percent_watched_trakt": "{{percent}}% bekeken ({{traktPercent}}% op Trakt)", + "synced_with_trakt_progress": "Gesynchroniseerd met Trakt", + "using_trakt_progress": "Trakt voortgang gebruiken", + "added_to_collection_hero": "Toegevoegd aan collectie", + "added_to_collection_desc_hero": "Toegevoegd aan je Trakt collectie", + "removed_from_collection_hero": "Verwijderd uit collectie", + "removed_from_collection_desc_hero": "Verwijderd uit je Trakt collectie", + "mark_as_watched": "Markeren als bekeken", + "mark_as_unwatched": "Markeren als niet bekeken" + }, + "cast": { + "biography": "Biografie", + "known_for": "Bekend van", + "personal_info": "Persoonlijke info", + "born_in": "Geboren in {{place}}", + "filmography": "Filmografie", + "also_known_as": "Ook bekend als", + "no_info_available": "Geen aanvullende informatie beschikbaar", + "as_character": "als {{character}}", + "loading_details": "Details laden...", + "years_old": "{{age}} jaar oud", + "view_filmography": "Filmografie bekijken", + "filter": "Filter", + "sort_by": "Sorteren op", + "sort_popular": "Populair", + "sort_latest": "Nieuwste", + "sort_upcoming": "Binnenkort", + "upcoming_badge": "BINNENKORT", + "coming_soon": "Binnenkort verwacht", + "filmography_count": "Filmografie • {{count}} titels", + "loading_filmography": "Filmografie laden...", + "load_more_remaining": "Meer laden ({{count}} resterend)", + "alert_error_title": "Fout", + "alert_error_message": "Kan \"{{title}}\" niet laden. Probeer het later opnieuw.", + "alert_ok": "OK", + "no_upcoming": "Geen aankomende releases voor deze acteur", + "no_content": "Geen inhoud beschikbaar voor deze acteur", + "no_movies": "Geen films beschikbaar voor deze acteur", + "no_tv": "Geen TV-programma's beschikbaar voor deze acteur" + }, + "comments": { + "title": "Trakt Reacties", + "spoiler_warning": "⚠️ Deze reactie bevat spoilers. Tik om te tonen.", + "spoiler": "Spoiler", + "contains_spoilers": "Bevat spoilers", + "reveal": "Tonen", + "vip": "VIP", + "unavailable": "Reacties niet beschikbaar", + "no_comments": "Nog geen reacties op Trakt", + "not_in_database": "Deze inhoud staat mogelijk nog niet in de Trakt-database", + "check_trakt": "Check Trakt" + }, + "trailers": { + "title": "Trailers", + "official_trailers": "Officiële trailers", + "official_trailer": "Officiële trailer", + "teasers": "Teasers", + "teaser": "Teaser", + "clips_scenes": "Clips & Scènes", + "clip": "Clip", + "featurettes": "Featurettes", + "featurette": "Featurette", + "behind_the_scenes": "Achter de schermen", + "no_trailers": "Geen trailers beschikbaar", + "unavailable": "Trailer niet beschikbaar", + "unavailable_desc": "Deze trailer kon niet worden geladen. Probeer het later opnieuw.", + "unable_to_play": "Kan trailer niet afspelen. Probeer het opnieuw.", + "watch_on_youtube": "Bekijken op YouTube" + }, + "catalog": { + "no_content_found": "Geen inhoud gevonden", + "no_content_filters": "Geen inhoud gevonden voor de geselecteerde filters", + "loading_content": "Inhoud laden...", + "back": "Terug", + "in_theaters": "In de bioscoop", + "all": "Alle", + "failed_tmdb": "Laden van inhoud van TMDB mislukt", + "movies": "Films", + "tv_shows": "TV-programma's", + "channels": "Zenders" + }, + "streams": { + "back_to_episodes": "Terug naar afleveringen", + "back_to_info": "Terug naar info", + "fetching_from": "Ophalen van:", + "no_sources_available": "Geen streamingbronnen beschikbaar", + "add_sources_desc": "Voeg streamingbronnen toe in de instellingen", + "add_sources": "Bronnen toevoegen", + "finding_streams": "Beschikbare streams zoeken...", + "finding_best_stream": "Beste stream zoeken voor automatisch afspelen...", + "still_fetching": "Nog steeds streams aan het ophalen...", + "no_streams_available": "Geen streams beschikbaar", + "starting_best_stream": "Beste stream starten...", + "loading_more_sources": "Meer bronnen laden..." + }, + "player_ui": { + "via": "via {{name}}", + "audio_tracks": "Audiotracks", + "no_audio_tracks": "Geen audiotracks beschikbaar", + "playback_speed": "Afspeelsnelheid", + "on_hold": "Gepauzeerd", + "playback_error": "Afspeelfout", + "unknown_error": "Er is een onbekende fout opgetreden tijdens het afspelen.", + "copy_error": "Foutdetails kopiëren", + "copied_to_clipboard": "Gekopieerd naar klembord", + "dismiss": "Sluiten", + "continue_watching": "Verderkijken", + "start_over": "Opnieuw beginnen", + "resume": "Hervatten", + "change_source": "Bron wijzigen", + "switching_source": "Van bron wisselen...", + "no_sources_found": "Geen bronnen gevonden", + "sources": "Bronnen", + "finding_sources": "Bronnen zoeken...", + "unknown_source": "Onbekende bron", + "sources_limited": "Bronnen kunnen beperkt zijn door providerfouten.", + "episodes": "Afleveringen", + "specials": "Specials", + "season": "Seizoen {{season}}", + "stream": "Stream {{number}}", + "subtitles": "Ondertiteling", + "built_in": "Ingebouwd", + "addons": "Add-ons", + "style": "Stijl", + "none": "Geen", + "search_online_subtitles": "Online ondertiteling zoeken", + "preview": "Voorvertoning", + "quick_presets": "Snelinstellingen", + "default": "Standaard", + "yellow": "Geel", + "high_contrast": "Hoog contrast", + "large": "Groot", + "core": "Basis", + "font_size": "Lettergrootte", + "show_background": "Achtergrond tonen", + "advanced": "Geavanceerd", + "position": "Positie", + "text_color": "Tekstkleur", + "align": "Uitlijning", + "bottom_offset": "Afstand van onderkant", + "background_opacity": "Achtergrond transparantie", + "text_shadow": "Tekstschaduw", + "on": "Aan", + "off": "Uit", + "outline_color": "Contourkleur", + "outline": "Contour", + "outline_width": "Contourbreedte", + "letter_spacing": "Letterafstand", + "line_height": "Regelhoogte", + "timing_offset": "Tijdsverschil (s)", + "visual_sync": "Visuele synchronisatie", + "timing_hint": "Verschuif ondertiteling eerder (-) of later (+) om te synchroniseren.", + "reset_defaults": "Standaardinstellingen herstellen", + "mark_intro_start": "Begin intro markeren", + "mark_intro_end": "Einde intro markeren", + "intro_start_marked": "Begin intro gemarkeerd", + "intro_submitted": "Intro succesvol ingediend", + "intro_submit_failed": "Indienen van intro mislukt" + }, + "downloads": { + "title": "Downloads", + "no_downloads": "Nog geen downloads", + "no_downloads_desc": "Gedownloade inhoud verschijnt hier voor offline gebruik", + "explore": "Inhoud ontdekken", + "path_copied": "Pad gekopieerd", + "path_copied_desc": "Lokaal bestandspad gekopieerd naar klembord", + "copied": "Gekopieerd", + "incomplete": "Download onvoltooid", + "incomplete_desc": "Download is nog niet klaar", + "not_available": "Niet beschikbaar", + "not_available_desc": "Lokaal bestandspad is pas beschikbaar na voltooien download.", + "status_downloading": "Downloaden", + "status_completed": "Voltooid", + "status_paused": "Gepauzeerd", + "status_error": "Fout", + "status_queued": "In wachtrij", + "status_unknown": "Onbekend", + "provider": "Provider", + "streaming_playlist_warning": "Kan mogelijk niet afspelen - streaming playlist", + "remaining": "resterend", + "not_ready": "Download niet gereed", + "not_ready_desc": "Wacht tot de download is voltooid.", + "filter_all": "Alle", + "filter_active": "Actief", + "filter_done": "Klaar", + "filter_paused": "Gepauzeerd", + "no_filter_results": "Geen {{filter}} downloads", + "try_different_filter": "Probeer een ander filter", + "limitations_title": "Downloadbeperkingen", + "limitations_msg": "• Bestanden kleiner dan 1MB zijn meestal M3U8-streamingplaylists en kunnen niet worden gedownload voor offline gebruik. Deze werken alleen online.", + "remove_title": "Download verwijderen", + "remove_confirm": "Verwijder \"{{title}}\"{{season_episode}}?", + "cancel": "Annuleren", + "remove": "Verwijderen" + }, + "addons": { + "title": "Add-ons", + "reorder_mode": "Sorteermodus", + "reorder_info": "Add-ons bovenaan hebben prioriteit bij het laden", + "add_addon_placeholder": "Add-on URL", + "add_button": "Add-on toevoegen", + "my_addons": "Mijn add-ons", + "community_addons": "Community add-ons", + "no_addons": "Geen add-ons geïnstalleerd", + "uninstall_title": "Add-on verwijderen", + "uninstall_message": "Weet je zeker dat je {{name}} wilt verwijderen?", + "uninstall_button": "Verwijderen", + "install_success": "Add-on succesvol geïnstalleerd", + "install_error": "Installeren van add-on mislukt", + "load_error": "Laden van add-ons mislukt", + "fetch_error": "Ophalen van add-on details mislukt", + "invalid_url": "Voer een geldige add-on URL in", + "configure": "Configureren", + "version": "Versie: {{version}}", + "installed_addons": "GEÏNSTALLEERDE ADD-ONS", + "reorder_drag_title": "SLEEP ADD-ONS OM TE SORTEREN", + "install": "Installeren", + "config_unavailable_title": "Configuratie niet beschikbaar", + "config_unavailable_msg": "Kon configuratie-URL voor deze add-on niet vinden.", + "cannot_open_config_title": "Kan configuratie niet openen", + "cannot_open_config_msg": "De configuratie-URL ({{url}}) kan niet worden geopend.", + "description": "Beschrijving", + "supported_types": "Ondersteunde types", + "catalogs": "Catalogi", + "no_description": "Geen beschrijving beschikbaar", + "overview": "OVERZICHT", + "no_categories": "Geen categorieën", + "pre_installed": "VOORAF GEÏNSTALLEERD" + }, + "trakt": { + "title": "Trakt Instellingen", + "settings_title": "Trakt Instellingen", + "connect_title": "Verbinden met Trakt", + "connect_desc": "Synchroniseer je kijkgeschiedenis, watchlist en collectie met Trakt.tv", + "sign_in": "Inloggen bij Trakt", + "sign_out": "Uitloggen", + "sign_out_confirm": "Weet je zeker dat je wilt uitloggen bij Trakt?", + "joined": "Lid sinds {{date}}", + "sync_settings_title": "Sync Instellingen", + "sync_info": "Wanneer verbonden met Trakt, wordt de volledige geschiedenis direct via de API gesynchroniseerd.", + "auto_sync_label": "Kijkvoortgang automatisch syncen", + "auto_sync_desc": "Voortgang automatisch naar Trakt sturen", + "import_history_label": "Kijkgeschiedenis importeren", + "import_history_desc": "Gebruik \"Nu syncen\" om je geschiedenis van Trakt te halen", + "sync_now_button": "Nu syncen", + "display_settings_title": "Weergave Instellingen", + "show_comments_label": "Trakt Reacties tonen", + "show_comments_desc": "Toon Trakt reacties in de metadata-schermen", + "maintenance_title": "In Onderhoud", + "maintenance_unavailable": "Trakt niet beschikbaar", + "maintenance_desc": "De Trakt-integratie is tijdelijk onderbroken voor onderhoud.", + "maintenance_button": "Dienst in onderhoud", + "auth_success_title": "Succesvol verbonden", + "auth_success_msg": "Je Trakt-account is succesvol verbonden.", + "auth_error_title": "Authenticatiefout", + "auth_error_msg": "Koppelen met Trakt mislukt.", + "auth_error_generic": "Er is een fout opgetreden tijdens de authenticatie.", + "sign_out_error": "Uitloggen bij Trakt mislukt.", + "sync_complete_title": "Sync Voltooid", + "sync_success_msg": "Kijkvoortgang succesvol gesynchroniseerd met Trakt.", + "sync_error_msg": "Sync mislukt. Probeer het opnieuw." + }, + "simkl": { + "title": "Simkl Instellingen", + "settings_title": "Simkl Instellingen", + "connect_title": "Verbinden met Simkl", + "connect_desc": "Synchroniseer je kijkgeschiedenis en houd bij wat je kijkt", + "sign_in": "Inloggen bij Simkl", + "sign_out": "Verbinding verbreken", + "sign_out_confirm": "Weet je zeker dat je de verbinding met Simkl wilt verbreken?", + "syncing_desc": "Je bekeken items worden gesynchroniseerd met Simkl.", + "auth_success_title": "Succesvol verbonden", + "auth_success_msg": "Je Simkl-account is succesvol verbonden.", + "auth_error_title": "Authenticatiefout", + "auth_error_msg": "Koppelen met Simkl mislukt.", + "auth_error_generic": "Er is een fout opgetreden tijdens de authenticatie.", + "sign_out_error": "Verbinding met Simkl verbreken mislukt.", + "config_error_title": "Configuratiefout", + "config_error_msg": "Simkl Client ID ontbreekt.", + "conflict_title": "Conflict", + "conflict_msg": "Je kunt Simkl niet verbinden terwijl Trakt verbonden is. Ontkoppel eerst Trakt.", + "disclaimer": "Nuvio is niet gelieerd aan Simkl." + }, + "tmdb_settings": { + "title": "TMDb Instellingen", + "metadata_enrichment": "Metadata Verrijking", + "metadata_enrichment_desc": "Verbeter je inhoudsmetadata met TMDb-gegevens voor meer details.", + "enable_enrichment": "Verrijking inschakelen", + "enable_enrichment_desc": "Voegt TMDb-gegevens toe voor cast, certificering, logo's en productie-info.", + "localized_text": "Gelokaliseerde tekst", + "localized_text_desc": "Haal titels en beschrijvingen op in je voorkeurstaal van TMDb.", + "language": "Taal", + "change": "Wijzigen", + "logo_preview": "Logo Voorbeeld", + "logo_preview_desc": "Voorbeeld van hoe gelokaliseerde logo's eruit zien.", + "example": "Voorbeeld:", + "no_logo": "Geen logo beschikbaar", + "enrichment_options": "Verrijkingsopties", + "enrichment_options_desc": "Bepaal welke gegevens van TMDb worden opgehaald.", + "cast_crew": "Cast & Crew", + "cast_crew_desc": "Acteurs, regisseurs, schrijvers met profielfoto's", + "title_description": "Titel & Beschrijving", + "title_description_desc": "Gebruik gelokaliseerde TMDb-titels en samenvattingen", + "title_logos": "Titellogo's", + "title_logos_desc": "Hoogwaardige afbeeldingen van de titel", + "banners_backdrops": "Banners & Achtergronden", + "banners_backdrops_desc": "Hoge resolutie achtergrondafbeeldingen", + "certification": "Leeftijdsclassificatie", + "certification_desc": "Leeftijdskeuringen (PG-13, R, etc.)", + "recommendations": "Aanbevelingen", + "recommendations_desc": "Suggesties voor vergelijkbare inhoud", + "episode_data": "Afleveringsgegevens", + "episode_data_desc": "Miniaturen en info voor TV-afleveringen", + "season_posters": "Seizoensposters", + "season_posters_desc": "Posters specifiek per seizoen", + "production_info": "Productie-informatie", + "production_info_desc": "Netwerken en productiebedrijven met logo's", + "movie_details": "Filmdetails", + "movie_details_desc": "Budget, opbrengst, speelduur, tagline", + "tv_details": "TV Show details", + "tv_details_desc": "Status, aantal seizoenen, netwerken, makers", + "movie_collections": "Filmcollecties", + "movie_collections_desc": "Franchises (Marvel, Star Wars, etc.)", + "api_configuration": "API Configuratie", + "api_configuration_desc": "Configureer je TMDb API-toegang.", + "custom_api_key": "Eigen API Key", + "custom_api_key_desc": "Gebruik je eigen TMDb API key voor betere prestaties.", + "custom_key_active": "Eigen API key actief", + "api_key_required": "API key vereist", + "api_key_placeholder": "Plak je TMDb API key (v3)", + "how_to_get_key": "Hoe kom ik aan een TMDb API key?", + "built_in_key_msg": "Momenteel wordt de ingebouwde API key gebruikt.", + "cache_size": "Cache Grootte", + "clear_cache": "Cache Wissen", + "cache_days": "TMDb-gegevens worden 7 dagen bewaard voor snelheid", + "choose_language": "Taal Kiezen", + "choose_language_desc": "Selecteer je voorkeurstaal voor TMDb-inhoud", + "popular": "Populair", + "all_languages": "Alle talen", + "search_results": "Zoekresultaten", + "no_languages_found": "Geen talen gevonden voor \"{{query}}\"", + "clear_search": "Zoekopdracht wissen", + "clear_cache_title": "TMDb Cache Wissen", + "clear_cache_msg": "Dit wist alle gecachte TMDb-gegevens ({{size}}).", + "clear_cache_success": "TMDb cache succesvol gewist.", + "clear_cache_error": "Wissen van cache mislukt.", + "clear_api_key_title": "API Key Wissen", + "clear_api_key_msg": "Weet je zeker dat je je eigen API key wilt verwijderen?", + "clear_api_key_success": "API key succesvol gewist", + "clear_api_key_error": "Wissen van API key mislukt", + "empty_api_key": "API Key mag niet leeg zijn.", + "invalid_api_key": "Ongeldige API key. Controleer en probeer opnieuw.", + "save_error": "Er is een fout opgetreden bij het opslaan.", + "using_builtin_key": "Ingebouwde TMDb API key wordt nu gebruikt.", + "using_custom_key": "Eigen TMDb API key wordt nu gebruikt.", + "enter_custom_key": "Voer je eigen TMDb API key in en sla op.", + "key_verified": "API key geverifieerd en succesvol opgeslagen." + }, + { + "settings": { + "language": "Taal", + "select_language": "Selecteer taal", + "english": "Engels", + "portuguese": "Portugees", + "portuguese_br": "Portugees (Brazilië)", + "portuguese_pt": "Portugees (Portugal)", + "german": "Duits", + "arabic": "Arabisch", + "spanish": "Spaans", + "french": "Frans", + "italian": "Italiaans", + "croatian": "Kroatisch", + "chinese": "Chinees (Vereenvoudigd)", + "hindi": "Hindi", + "serbian": "Servisch", + "hebrew": "Hebreeuws", + "bulgarian": "Bulgaars", + "polish": "Pools", + "czech": "Tsjechisch", + "turkish": "Turks", + "slovenian": "Sloveens", + "macedonian": "Macedonisch", + "russian": "Russisch", + "filipino": "Filipijns" + "account": "Account", + "content_discovery": "Inhoud & Ontdekken", + "appearance": "Uiterlijk", + "integrations": "Integraties", + "playback": "Afspelen", + "backup_restore": "Backup & Herstel", + "updates": "Updates", + "about": "Over", + "developer": "Ontwikkelaar", + "cache": "Cache", + "title": "Instellingen", + "settings_title": "Instellingen", + "sign_in_sync": "Inloggen om te synchroniseren", + "add_catalogs_sources": "Add-ons, catalogi en bronnen", + "player_trailers_downloads": "Speler, trailers, downloads", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Controleren op updates", + "clear_mdblist_cache": "MDBList-cache wissen", + "cache_management": "CACHEBEHEER", + "downloads_counter": "downloads en tellende", + "made_with_love": "Gemaakt met ❤️ door Tapframe en vrienden", + "sections": { + "information": "INFORMATIE", + "account": "ACCOUNT", + "theme": "THEMA", + "layout": "LAYOUT", + "sources": "BRONNEN", + "catalogs": "CATALOGI", + "discovery": "ONTDEKKEN", + "metadata": "METADATA", + "ai_assistant": "AI-ASSISTENT", + "video_player": "VIDEOSPELER", + "audio_subtitles": "AUDIO & ONDERTITELING", + "media": "MEDIA", + "notifications": "MELDINGEN", + "testing": "TESTEN", + "danger_zone": "GEVARENZONE" + }, + "items": { + "legal": "Juridisch & Disclaimer", + "privacy_policy": "Privacybeleid", + "report_issue": "Probleem melden", + "version": "Versie", + "contributors": "Bijdragers", + "view_contributors": "Bekijk alle bijdragers", + "theme": "Thema", + "episode_layout": "Aflevering layout", + "streams_backdrop": "Stream-achtergrond", + "streams_backdrop_desc": "Toon vervaagde achtergrond bij mobiele streams", + "addons": "Add-ons", + "installed": "geïnstalleerd", + "debrid_integration": "Debrid Integratie", + "debrid_desc": "Verbind Torbox", + "plugins": "Plugins", + "plugins_desc": "Beheer plugins en repositories", + "catalogs": "Catalogi", + "active": "actief", + "home_screen": "Home-scherm", + "home_screen_desc": "Layout en inhoud", + "continue_watching": "Verderkijken", + "continue_watching_desc": "Cache en afspeelgedrag", + "show_discover": "Toon Ontdek-sectie", + "show_discover_desc": "Toon ontdek-inhoud in Zoeken", + "mdblist": "MDBList", + "mdblist_connected": "Verbonden", + "mdblist_desc": "Inschakelen om beoordelingen & recensies toe te voegen", + "simkl": "Simkl", + "simkl_connected": "Verbonden", + "simkl_desc": "Houd bij wat je kijkt", + "tmdb": "TMDB", + "tmdb_desc": "Bron voor metadata & logo's", + "openrouter": "OpenRouter API", + "openrouter_connected": "Verbonden", + "openrouter_desc": "Voeg je API-key toe voor AI-chat", + "video_player": "Videospeler", + "built_in": "Ingebouwd", + "external": "Extern", + "preferred_audio": "Voorkeurstaal audio", + "preferred_subtitle": "Voorkeurstaal ondertiteling", + "subtitle_source": "Prioriteit ondertitelbron", + "auto_select_subs": "Automatisch ondertitels selecteren", + "auto_select_subs_desc": "Selecteer automatisch ondertitels op basis van je voorkeuren", + "show_trailers": "Trailers tonen", + "show_trailers_desc": "Toon trailers in de uitgelichte sectie", + "enable_downloads": "Downloads inschakelen", + "enable_downloads_desc": "Toon tabblad Downloads en sta opslaan van streams toe", + "notifications": "Meldingen", + "notifications_desc": "Herinneringen voor afleveringen", + "developer_tools": "Ontwikkelaarstools", + "developer_tools_desc": "Opties voor testen en debuggen", + "test_onboarding": "Test Onboarding", + "reset_onboarding": "Onboarding resetten", + "test_announcement": "Test Aankondiging", + "test_announcement_desc": "Toon 'Wat is er nieuw' overlay", + "reset_campaigns": "Campagnes resetten", + "reset_campaigns_desc": "Wis campagne-impressies", + "clear_all_data": "Alle gegevens wissen", + "clear_all_data_desc": "Reset alle instellingen en gecachte gegevens" + }, + "options": { + "horizontal": "Horizontaal", + "vertical": "Verticaal", + "internal_first": "Intern eerst", + "internal_first_desc": "Voorkeur voor ingebouwde ondertitels, daarna extern", + "external_first": "Extern eerst", + "external_first_desc": "Voorkeur voor add-on ondertitels, daarna ingebouwd", + "any_available": "Elke beschikbare", + "any_available_desc": "Gebruik het eerste beschikbare ondertitelspoor" + }, + "clear_data_desc": "Dit zal alle instellingen resetten en alle gecachte gegevens wissen. Weet je het zeker?", + "app_updates": "App Updates", + "about_nuvio": "Over Nuvio" + }, + "privacy": { + "title": "Privacy & Gegevens", + "settings_desc": "Beheer telemetrie en gegevensverzameling", + "info_title": "Je privacy is belangrijk", + "info_description": "Beheer welke gegevens worden verzameld. Analyse staat standaard uit en crashrapporten zijn anoniem.", + "analytics_enabled_title": "Analyse ingeschakeld", + "analytics_enabled_message": "Gebruiksgegevens worden verzameld om de app te verbeteren. Je kunt dit op elk moment uitschakelen.", + "disable_error_reporting_title": "Foutrapportage uitschakelen?", + "disable_error_reporting_message": "Als je dit uitschakelt, worden we niet op de hoogte gesteld van crashes. Dit kan ons vermogen om bugs op te lossen beïnvloeden.", + "enable_session_replay_title": "Sessieherhaling inschakelen?", + "enable_session_replay_message": "Dit neemt je scherm op bij fouten om ons te helpen begrijpen wat er gebeurde. Dit kan zichtbare inhoud op je scherm vastleggen.", + "enable_pii_title": "PII-verzameling inschakelen?", + "enable_pii_message": "Hiermee kunnen persoonlijk identificeerbare gegevens zoals IP-adres en apparaatdetails worden verzameld.", + "disable_all_title": "Alle telemetrie uitschakelen?", + "disable_all_message": "Dit schakelt alle analyses, foutrapportages en sessieherhalingen uit.", + "disable_all_button": "Alles uitschakelen", + "all_disabled_title": "Alle telemetrie uitgeschakeld", + "all_disabled_message": "Alle gegevensverzameling is uitgeschakeld. Wijzigingen worden van kracht na herstart.", + "reset_title": "Herstellen naar aanbevolen", + "reset_message": "Privacy-instellingen zijn hersteld naar aanbevolen waarden.", + "section_analytics": "ANALYSE", + "analytics_title": "Gebruiksanalyse", + "analytics_description": "Verzamel anonieme gebruikspatronen en schermweergaven", + "section_error_reporting": "FOUTRAPPORTAGE", + "error_reporting_title": "Crashrapporten", + "error_reporting_description": "Verstuur anonieme crashrapporten om stabiliteit te verbeteren", + "session_replay_title": "Sessieherhaling", + "session_replay_description": "Neem scherm op wanneer er fouten optreden", + "pii_title": "Inclusief apparaatinfo", + "pii_description": "Stuur IP-adres en apparaatdetails mee met rapporten", + "section_quick_actions": "SNELLE ACTIES", + "disable_all": "Alle telemetrie uitschakelen", + "disable_all_desc": "Zet alle gegevensverzameling uit", + "reset_recommended": "Herstellen naar aanbevolen", + "reset_recommended_desc": "Privacy-first instellingen met foutrapportage", + "section_learn_more": "LEER MEER", + "privacy_policy": "Privacybeleid", + "current_settings": "Overzicht huidige instellingen", + "summary_analytics": "Analyse", + "summary_errors": "Foutrapporten", + "summary_replay": "Sessieherhaling", + "summary_pii": "Apparaatinfo", + "restart_note_detailed": "* Wijzigingen in analyse en foutrapportage zijn direct van kracht. Sessieherhaling en PII vereisen een herstart." + }, + "ai_settings": { + "title": "AI-assistent", + "info_title": "AI-gestuurde Chat", + "info_desc": "Stel vragen over elke film of aflevering met geavanceerde AI. Krijg inzicht in het verhaal, personages, thema's en meer.", + "feature_1": "Context en analyse specifiek per aflevering", + "feature_2": "Uitleg van het verhaal en personage-inzichten", + "feature_3": "Trivia en feiten van achter de schermen", + "feature_4": "Je eigen gratis OpenRouter API-key", + "api_key_section": "OPENROUTER API-KEY", + "api_key_label": "API-key", + "api_key_desc": "Voer je OpenRouter API-key in om AI-chatfuncties te activeren", + "save_api_key": "API-key opslaan", + "saving": "Opslaan...", + "update": "Bijwerken", + "remove": "Verwijderen", + "get_free_key": "Krijg een gratis API-key van OpenRouter", + "enable_chat": "AI-chat inschakelen", + "enable_chat_desc": "Indien ingeschakeld, verschijnt de 'Vraag AI'-knop bij de inhoud.", + "chat_enabled": "AI-chat ingeschakeld", + "chat_enabled_desc": "Je kunt nu vragen stellen over films en series!", + "how_it_works": "Hoe het werkt", + "how_it_works_desc": "• OpenRouter geeft toegang tot meerdere AI-modellen\n• Je API-key blijft privé en veilig\n• Chat met context over specifieke afleveringen/films", + "error_invalid_key": "Voer een geldige API-key in", + "error_key_format": "OpenRouter API-keys moeten beginnen met 'sk-or-'", + "success_saved": "OpenRouter API-key succesvol opgeslagen!", + "error_save": "Opslaan van API-key mislukt", + "confirm_remove_title": "API-key verwijderen", + "confirm_remove_msg": "Weet je zeker dat je de API-key wilt verwijderen? Hiermee schakel je de AI-chat uit.", + "success_removed": "API-key succesvol verwijderd", + "error_remove": "Verwijderen van API-key mislukt" + }, + "catalog_settings": { + "title": "Catalogi", + "layout_phone": "LAYOUT CATALOGUSSCHERM (TELEFOON)", + "posters_per_row": "Posters per rij", + "auto": "Auto", + "show_titles": "Toon titels op posters", + "show_titles_desc": "Toon de titel onder elke poster", + "phone_only_hint": "Alleen van toepassing op telefoons. Tablets behouden adaptive layout.", + "catalogs_group": "Catalogi", + "enabled_count": "{{enabled}} van {{total}} ingeschakeld", + "rename_hint": "Houd een catalogus lang ingedrukt om deze te hernoemen", + "rename_modal_title": "Catalogus hernoemen", + "rename_placeholder": "Voer nieuwe naam in", + "error_save_name": "Kon de aangepaste naam niet opslaan." + }, + "continue_watching_settings": { + "title": "Verderkijken", + "playback_behavior": "AFSPEELGEDRAG", + "use_cached": "Gebruik gecachte streams", + "use_cached_desc": "Indien ingeschakeld, opent Verderkijken direct de speler met de laatst gebruikte stream.", + "open_metadata": "Open metadatascherm", + "open_metadata_desc": "Open het infoscherm in plaats van de streams wanneer cache uit staat.", + "card_appearance": "UITERLIJK KAART", + "card_style": "Kaartstijl", + "card_style_desc": "Kies hoe items in Verderkijken op het home-scherm verschijnen", + "wide": "Breed", + "poster": "Poster", + "cache_settings": "CACHE-INSTELLINGEN", + "cache_duration": "Duur stream-cache", + "cache_duration_desc": "Hoe lang gecachte streams bewaard blijven", + "important_note": "Belangrijke opmerking", + "important_note_text": "Niet alle streams blijven de hele duur actief. Langere cachetijden kunnen leiden tot verlopen links.", + "how_it_works": "Hoe het werkt", + "how_it_works_cached": "• Streams worden gecacht na het afspelen\n• Gecachte streams worden gecontroleerd voor gebruik\n• Indien verlopen, wordt het gewone scherm geopend", + "how_it_works_uncached": "• Zonder cache opent Verderkijken de inhoudspagina's\n• Je kunt kiezen tussen het Metadata- of Streams-scherm", + "changes_saved": "Wijzigingen opgeslagen", + "min": "min", + "hour": "uur", + "hours": "uur" + }, + "contributors": { + "title": "Bijdragers", + "special_mentions": "Speciale vermeldingen", + "tab_contributors": "Bijdragers", + "tab_special": "Speciale vermeldingen", + "tab_donors": "Donateurs", + "manager_role": "Community Manager", + "manager_desc": "Beheert de Discord & Reddit communities voor Nuvio", + "sponsor_role": "Server Sponsor", + "sponsor_desc": "Sponsorde de serverinfrastructuur voor Nuvio", + "mod_role": "Discord Mod", + "mod_desc": "Helpt bij het modereren van de Discord", + "loading": "Laden...", + "discord_user": "Discord Gebruiker", + "contributions": "bijdragen", + "gratitude_title": "Dankbaar voor elke bijdrage", + "gratitude_desc": "Elke regel code en elk bugrapport helpt Nuvio beter te maken", + "special_thanks_title": "Speciale dank", + "special_thanks_desc": "Deze mensen houden de community en servers draaiende", + "donors_desc": "Bedankt voor je steun. Jullie hulp houdt Nuvio gratis.", + "latest_donations": "Nieuwste", + "leaderboard": "Ranglijst", + "loading_donors": "Donateurs laden...", + "no_donors": "Nog geen donateurs", + "error_rate_limit": "GitHub API limiet bereikt. Probeer het later opnieuw.", + "error_failed": "Laden bijdragers mislukt. Controleer je verbinding.", + "retry": "Opnieuw proberen", + "no_contributors": "Geen bijdragers gevonden", + "loading_contributors": "Bijdragers laden..." + }, + "debrid": { + "title": "Debrid Integratie", + "description_torbox": "Ontgrendel 4K-kwaliteit en hoge snelheden door Torbox te integreren. Voer je API-key in voor een premium ervaring.", + "description_torrentio": "Configureer Torrentio voor torrent-streams. Een debrid-service is vereist.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Verbonden", + "status_disconnected": "Niet verbonden", + "enable_addon": "Add-on inschakelen", + "disconnect_button": "Ontkoppelen & Verwijderen", + "disconnect_loading": "Ontkoppelen...", + "account_info": "Accountinformatie", + "plan": "Abonnement", + "plan_free": "Gratis", + "plan_essential": "Essential ($3/p.m.)", + "plan_pro": "Pro ($10/p.m.)", + "plan_standard": "Standard ($5/p.m.)", + "plan_unknown": "Onbekend", + "expires": "Verloopt op", + "downloaded": "Gedownload", + "status_active": "Actief", + "connected_title": "✓ Verbonden met TorBox", + "connected_desc": "Je TorBox add-on is actief en biedt premium streams.", + "configure_title": "Add-on configureren", + "configure_desc": "Sorteer op kwaliteit, filter bestandsgroottes en beheer instellingen.", + "open_settings": "Instellingen openen", + "what_is_debrid": "Wat is een Debrid-service?", + "enter_api_key": "Voer je API-key in", + "connect_button": "Verbinden & Installeren", + "connecting": "Verbinden...", + "unlock_speeds_title": "Ontgrendel premium snelheden", + "unlock_speeds_desc": "Neem een Torbox-abonnement voor 4K-streams zonder bufferen.", + "get_subscription": "Abonnement afsluiten", + "powered_by": "Mogelijk gemaakt door", + "disclaimer_torbox": "Nuvio is niet gelieerd aan Torbox.", + "disclaimer_torrentio": "Nuvio is niet gelieerd aan Torrentio.", + "installed_badge": "✓ GEÏNSTALLEERD", + "promo_title": "⚡ Debrid-service nodig?", + "promo_desc": "Krijg TorBox voor razendsnelle 4K-streaming zonder bufferen.", + "promo_button": "TorBox abonnement afsluiten", + "service_label": "Debrid-service *", + "api_key_label": "API-key *", + "sorting_label": "Sorteren", + "exclude_qualities": "Kwaliteiten uitsluiten", + "priority_languages": "Prioriteitstalen", + "max_results": "Max resultaten", + "additional_options": "Aanvullende opties", + "no_download_links": "Geen downloadlinks tonen", + "no_debrid_catalog": "Geen debrid-catalogus tonen", + "install_button": "Installeer Torrentio", + "installing": "Installeren...", + "update_button": "Configuratie bijwerken", + "updating": "Bijwerken...", + "remove_button": "Torrentio verwijderen", + "error_api_required": "API-key vereist", + "error_api_required_desc": "Voer je API-key in om Torrentio te installeren.", + "success_installed": "Torrentio add-on succesvol geïnstalleerd!", + "success_removed": "Torrentio add-on succesvol verwijderd", + "alert_disconnect_title": "Torbox ontkoppelen", + "alert_disconnect_msg": "Weet je zeker dat je Torbox wilt ontkoppelen?" + }, + "home_screen": { + "title": "Home-scherm instellingen", + "changes_applied": "Wijzigingen toegepast", + "display_options": "WEERGAVE-OPTIES", + "show_hero": "Toon uitgelichte sectie", + "show_hero_desc": "Belangrijke inhoud bovenaan", + "show_this_week": "Toon 'Deze Week' sectie", + "show_this_week_desc": "Nieuwe afleveringen van deze week", + "select_catalogs": "Selecteer catalogi", + "all_catalogs": "Alle catalogi", + "selected": "geselecteerd", + "hero_layout": "Layout uitgelicht", + "layout_legacy": "Klassiek", + "layout_carousel": "Carrousel", + "layout_appletv": "Apple TV", + "layout_desc": "Banner, kaarten of Apple TV-stijl", + "featured_source": "Bron voor uitgelicht", + "using_catalogs": "Gebruikt catalogi", + "manage_selected_catalogs": "Beheer geselecteerde catalogi", + "dynamic_bg": "Dynamische achtergrond", + "dynamic_bg_desc": "Vervaagde banner achter carrousel", + "performance_note": "Kan prestaties beïnvloeden op tragere apparaten.", + "posters": "Posters", + "show_titles": "Toon titels", + "poster_size": "Postergrootte", + "poster_corners": "Posterhoeken", + "size_small": "Klein", + "size_medium": "Gemiddeld", + "size_large": "Groot", + "corners_square": "Vierkant", + "corners_rounded": "Afgerond", + "corners_pill": "Pilaar", + "about_these_settings": "OVER DEZE INSTELLINGEN", + "about_desc": "Beheer hoe inhoud verschijnt op je home-scherm.", + "hero_catalogs": { + "title": "Catalogi uitgelichte sectie", + "select_all": "Alles selecteren", + "clear_all": "Alles wissen", + "info": "Kies welke catalogi in de uitgelichte sectie verschijnen. Indien geen, worden ze allemaal gebruikt.", + "settings_saved": "Instellingen opgeslagen", + "error_load": "Laden catalogi mislukt", + "movies": "Films", + "tv_shows": "TV-series" + } + }, + "calendar": { + "title": "Kalender", + "loading": "Kalender laden...", + "no_scheduled_episodes": "Geen geplande afleveringen", + "check_back_later": "Kom later terug", + "showing_episodes_for": "Afleveringen voor {{date}}", + "show_all_episodes": "Toon alle afleveringen", + "no_episodes_for": "Geen afleveringen voor {{date}}", + "no_upcoming_found": "Geen aankomende afleveringen gevonden", + "add_series_desc": "Voeg series toe aan je bibliotheek om ze hier te zien" + }, + { + "mdblist": { + "title": "Beoordelingsbronnen", + "status_disabled": "MDBList uitgeschakeld", + "status_active": "API-key actief", + "status_required": "API-key vereist", + "status_disabled_desc": "MDBList-functionaliteit is momenteel uitgeschakeld.", + "status_active_desc": "Beoordelingen van MDBList zijn ingeschakeld.", + "status_required_desc": "Voeg hieronder je key toe om beoordelingen te activeren.", + "enable_toggle": "MDBList inschakelen", + "enable_toggle_desc": "Zet alle MDBList-functionaliteit aan/uit", + "api_section": "API-key", + "placeholder": "Plak je MDBList API-key", + "save": "Opslaan", + "clear": "Key wissen", + "rating_providers": "Beoordelingsproviders", + "rating_providers_desc": "Kies welke beoordelingen in de app worden getoond", + "how_to": "Hoe krijg ik een API-key?", + "step_1": "Log in op de", + "step_1_link": "MDBList website", + "step_2": "Ga naar de", + "step_2_settings": "Instellingen", + "step_2_api": "API", + "step_2_end": "sectie.", + "step_3": "Genereer een nieuwe key en kopieer deze.", + "go_to_website": "Ga naar MDBList", + "alert_clear_title": "API-key wissen", + "alert_clear_msg": "Weet je zeker dat je de opgeslagen API-key wilt verwijderen?", + "success_saved": "API-key succesvol opgeslagen.", + "error_empty": "API-key mag niet leeg zijn.", + "error_save": "Er is een fout opgetreden bij het opslaan. Probeer het opnieuw.", + "api_key_empty_error": "API-key mag niet leeg zijn.", + "success_cleared": "API-key succesvol gewist", + "error_clear": "Wissen van API-key mislukt" + }, + "notification": { + "title": "Notificatie-instellingen", + "section_general": "Algemeen", + "enable_notifications": "Notificaties inschakelen", + "section_types": "Type notificaties", + "new_episodes": "Nieuwe afleveringen", + "upcoming_shows": "Aankomende series", + "reminders": "Herinneringen", + "section_timing": "Timing van notificaties", + "timing_desc": "Wanneer wil je een melding ontvangen voordat een aflevering begint?", + "hours_1": "1 uur", + "hours_suffix": "uur", + "section_status": "Status notificaties", + "stats_upcoming": "Aankomend", + "stats_this_week": "Deze week", + "stats_total": "Totaal", + "sync_button": "Synchroniseer Bibliotheek & Trakt", + "syncing": "Synchroniseren...", + "sync_desc": "Synchroniseert automatisch meldingen voor alle series in je bibliotheek en Trakt watchlist.", + "section_advanced": "Geavanceerd", + "reset_button": "Alle notificaties resetten", + "test_button": "Testnotificatie (5 sec)", + "test_notification_in": "Notificatie over {{seconds}}s...", + "test_notification_text": "Notificatie verschijnt over {{seconds}} seconden", + "alert_reset_title": "Notificaties resetten", + "alert_reset_msg": "Dit annuleert alle geplande notificaties, maar verwijdert niets uit je bibliotheek. Weet je het zeker?", + "alert_reset_success": "Alle notificaties zijn gereset", + "alert_sync_complete": "Synchronisatie voltooid", + "alert_sync_msg": "Notificaties succesvol gesynchroniseerd.\n\nGepland: {{upcoming}} afleveringen\nDeze week: {{thisWeek}} afleveringen", + "alert_test_scheduled": "Testnotificatie ingepland" + }, + "backup": { + "title": "Backup & Herstel", + "options_title": "Backup-opties", + "options_desc": "Kies wat je wilt opnemen in je backup", + "section_core": "Kerndata", + "section_addons": "Add-ons & Integraties", + "section_settings": "Instellingen & Voorkeuren", + "library_label": "Bibliotheek", + "library_desc": "Je opgeslagen films en series", + "watch_progress_label": "Kijkvoortgang", + "watch_progress_desc": "Posities van verderkijken", + "addons_label": "Add-ons", + "addons_desc": "Geïnstalleerde Stremio add-ons", + "plugins_label": "Plugins", + "plugins_desc": "Aangepaste scraper-configuraties", + "trakt_label": "Trakt-integratie", + "trakt_desc": "Synchronisatiegegevens en tokens", + "app_settings_label": "App-instellingen", + "app_settings_desc": "Thema, voorkeuren en configuraties", + "user_prefs_label": "Gebruikersvoorkeuren", + "user_prefs_desc": "Add-on volgorde en UI-instellingen", + "catalog_settings_label": "Catalogus-instellingen", + "catalog_settings_desc": "Catalogusfilters en voorkeuren", + "api_keys_label": "API-keys", + "api_keys_desc": "MDBList en OpenRouter keys", + "action_create": "Backup maken", + "action_restore": "Herstellen van backup", + "section_info": "Over backups", + "info_text": "• Pas je backup aan met de schakelaars hierboven\n• Backup-bestanden worden lokaal opgeslagen\n• Deel je backup om gegevens over te zetten naar andere apparaten\n• Herstellen zal je huidige gegevens overschrijven", + "alert_create_title": "Backup maken", + "alert_no_content": "Geen inhoud geselecteerd voor backup.\n\nSchakel minimaal één optie in.", + "alert_backup_created_title": "Backup voltooid", + "alert_backup_created_msg": "Je backup is gemaakt en klaar om te worden gedeeld.", + "alert_backup_failed_title": "Backup mislukt", + "alert_restore_confirm_title": "Herstel bevestigen", + "alert_restore_confirm_msg": "Dit herstelt je gegevens van een backup gemaakt op {{date}}.\n\nDit overschrijft je huidige gegevens. Weet je het zeker?", + "alert_restore_complete_title": "Herstel voltooid", + "alert_restore_complete_msg": "Je gegevens zijn succesvol hersteld. Start de app opnieuw op om de wijzigingen te zien.", + "alert_restore_failed_title": "Herstel mislukt", + "restart_app": "App herstarten", + "alert_restart_failed_title": "Herstart mislukt", + "alert_restart_failed_msg": "Kon de app niet automatisch herstarten. Sluit de app handmatig af en open deze opnieuw." + }, + "updates": { + "title": "App Updates", + "status_checking": "Controleren op updates...", + "status_available": "Update beschikbaar!", + "status_downloading": "Update downloaden...", + "status_installing": "Update installeren...", + "status_success": "Update succesvol geïnstalleerd!", + "status_error": "Update mislukt", + "status_ready": "Klaar om op updates te controleren", + "action_check": "Controleren op updates", + "action_install": "Update installeren", + "release_notes": "Release-notities:", + "version": "Versie:", + "last_checked": "Laatst gecontroleerd:", + "current_version": "Huidige versie:", + "current_release_notes": "Huidige release-notities:", + "github_release": "GITHUB RELEASE", + "current": "Huidig:", + "latest": "Nieuwste:", + "notes": "Notities:", + "view_release": "Bekijk release", + "notification_settings": "NOTIFICATIE-INSTELLINGEN", + "ota_alerts_label": "OTA Update-meldingen", + "ota_alerts_desc": "Toon meldingen voor over-the-air updates", + "major_alerts_label": "Grote update-meldingen", + "major_alerts_desc": "Toon meldingen voor nieuwe app-versies op GitHub", + "alert_disable_ota_title": "OTA-meldingen uitschakelen?", + "alert_disable_ota_msg": "Je ontvangt geen automatische meldingen meer voor OTA-updates.\n\n⚠️ Waarschuwing: Up-to-date blijven is belangrijk voor bugfixes en stabiliteit.", + "alert_disable_major_title": "Grote update-meldingen uitschakelen?", + "alert_disable_major_msg": "Je ontvangt geen meldingen meer voor grote updates die herinstallatie vereisen.", + "warning_note": "Het ingeschakeld laten van meldingen zorgt ervoor dat je belangrijke bugfixes ontvangt.", + "disable": "Uitschakelen", + "alert_no_update_to_install": "Geen update beschikbaar om te installeren", + "alert_install_failed": "Installatie van update mislukt", + "alert_no_update_title": "Geen update", + "alert_update_applied_msg": "Update wordt toegepast bij de volgende herstart" + }, + "player": { + "title": "Videospeler", + "section_selection": "SPELER SELECTIE", + "internal_title": "Ingebouwde speler", + "internal_desc": "Gebruik de standaard videospeler van de app", + "vlc_title": "VLC", + "vlc_desc": "Open streams in VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Open streams in Infuse speler", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Open streams in OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Open streams in VidHub speler", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Open streams in Infuse speler LiveContainer", + "external_title": "Externe speler", + "external_desc": "Open streams in je eigen voorkeursspeler", + "section_playback": "AFSPEELOPTIES", + "skip_intro_settings_title": "Intro overslaan", + "powered_by_introdb": "Mogelijk gemaakt door IntroDB", + "autoplay_title": "Eerste stream automatisch afspelen", + "autoplay_desc": "Start automatisch de eerste stream in de lijst.", + "resume_title": "Altijd hervatten", + "resume_desc": "Sla de vraag om te hervatten over en ga direct verder waar je gebleven was.", + "engine_title": "Videospeler Engine", + "engine_desc": "Auto gebruikt ExoPlayer met MPV als reserve. 'Auto' wordt aanbevolen voor de beste compatibiliteit.", + "decoder_title": "Decoder-modus", + "decoder_desc": "Hoe video wordt gedecodeerd. 'Auto' wordt aanbevolen.", + "gpu_title": "GPU Rendering", + "gpu_desc": "GPU-Next biedt beter HDR- en kleurbeheer.", + "external_downloads_title": "Externe speler voor downloads", + "external_downloads_desc": "Speel gedownloade inhoud af in je favoriete externe speler.", + "restart_required": "Herstart vereist", + "restart_msg_decoder": "Start de app opnieuw op om de decoder-wijziging toe te passen.", + "restart_msg_gpu": "Start de app opnieuw op om de GPU-modus te wijzigen.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV reserve", + "option_mpv": "MPV", + "option_mpv_desc": "Alleen MPV", + "option_auto_desc_decoder": "Beste balans", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Volledige hardware", + "option_gpu_desc": "Standaard", + "option_gpu_next_desc": "Geavanceerd" + }, + "plugins": { + "title": "Plugins", + "enable_title": "Plugins inschakelen", + "enable_desc": "Schakel de plugin-engine in om externe mediabronnen te vinden", + "repo_config_title": "Repository-configuratie", + "repo_config_desc": "Beheer externe plugin-repositories.", + "your_repos": "Repositories", + "your_repos_desc": "Configureer externe bronnen voor plugins.", + "add_repo_button": "Repository toevoegen", + "refresh": "Vernieuwen", + "remove": "Verwijderen", + "enabled": "Ingeschakeld", + "disabled": "Uitgeschakeld", + "updating": "Bijwerken...", + "success": "Succes", + "error": "Fout", + "alert_repo_added": "Repository toegevoegd en plugins geladen", + "alert_repo_saved": "Repository-URL succesvol opgeslagen", + "alert_repo_refreshed": "Repository succesvol vernieuwd", + "alert_invalid_url": "Ongeldig URL-formaat", + "alert_plugins_cleared": "Alle plugins zijn verwijderd", + "alert_cache_cleared": "Repository-cache succesvol gewist", + "unknown": "Onbekend", + "active": "Actief", + "available": "Beschikbaar", + "platform_disabled": "Platform uitgeschakeld", + "limited": "Beperkt", + "clear_all": "Wis alle plugins", + "clear_all_desc": "Weet je zeker dat je alle plugins wilt verwijderen? Dit kan niet ongedaan worden gemaakt.", + "clear_cache": "Wis repository-cache", + "clear_cache_desc": "Dit verwijdert de opgeslagen URL en gecachte gegevens.", + "add_new_repo": "Nieuwe repository toevoegen", + "available_plugins": "Beschikbare plugins ({{count}})", + "placeholder": "Zoek plugins...", + "all": "Alle", + "filter_all": "Alle types", + "filter_movies": "Films", + "filter_tv": "TV-series", + "enable_all": "Alles inschakelen", + "disable_all": "Alles uitschakelen", + "no_plugins_found": "Geen plugins gevonden", + "no_plugins_available": "Geen plugins beschikbaar", + "no_match_desc": "Geen plugins gevonden voor \"{{query}}\".", + "configure_repo_desc": "Configureer hierboven een repository om beschikbare plugins te zien.", + "clear_search": "Zoekopdracht wissen", + "no_external_player": "Geen externe speler", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "Plak je ShowBox UI token", + "save": "Opslaan", + "clear": "Wissen", + "additional_settings": "Aanvullende instellingen", + "enable_url_validation": "URL-validatie inschakelen", + "url_validation_desc": "Valideer links voor weergave (verbetert betrouwbaarheid, kan resultaten vertragen)", + "group_streams": "Groepeer plugin-bronnen", + "group_streams_desc": "Groepeer bronnen per repository.", + "sort_quality": "Sorteer eerst op kwaliteit", + "sort_quality_desc": "Sorteer resultaten eerst op resolutie (alleen bij groepering).", + "show_logos": "Toon plugin-logo's", + "show_logos_desc": "Toon logo's naast de medialinks.", + "quality_filtering": "Kwaliteitsfilter", + "quality_filtering_desc": "Sluit specifieke resoluties uit van zoekresultaten.", + "excluded_qualities": "Uitgesloten kwaliteiten:", + "language_filtering": "Taalfilter", + "language_filtering_desc": "Sluit specifieke talen uit van zoekresultaten.", + "note": "Let op:", + "language_filtering_note": "Dit filter werkt alleen bij providers die taalinformatie meesturen.", + "excluded_languages": "Uitgesloten talen:", + "about_title": "Over plugins", + "about_desc_1": "Plugins zijn modulaire componenten die inhoud van externe protocollen ophalen. Ze draaien lokaal op je apparaat.", + "about_desc_2": "Plugins gemarkeerd als 'Beperkt' vereisen mogelijk extra configuratie.", + "help_title": "Plugin Setup", + "help_step_1": "1. **Activeer Plugins** - Zet de hoofdschakelaar aan", + "help_step_2": "2. **Voeg Repository toe** - Voer een geldige URL in", + "help_step_3": "3. **Vernieuw** - Haal de lijst met plugins op", + "help_step_4": "4. **Activeer** - Schakel de gewenste plugins in", + "got_it": "Begrepen!", + "repo_format_hint": "Formaat: https://raw.githubusercontent.com/gebruiker/repo/branch", + "cancel": "Annuleren", + "add": "Toevoegen" + }, + "theme": { + "title": "App thema's", + "select_theme": "SELECTEER THEMA", + "create_custom": "Aangepast thema maken", + "options": "OPTIES", + "use_dominant_color": "Gebruik dominante kleur van artwork", + "categories": { + "all": "Alle thema's", + "dark": "Donkere thema's", + "colorful": "Kleurrijk", + "custom": "Mijn thema's" + }, + "editor": { + "theme_name_placeholder": "Naam thema", + "save": "Opslaan", + "primary": "Primair", + "secondary": "Secundair", + "background": "Achtergrond", + "invalid_name_title": "Ongeldige naam", + "invalid_name_msg": "Voer een geldige naam in" + }, + "alerts": { + "delete_title": "Thema verwijderen", + "delete_msg": "Weet je zeker dat je \"{{name}}\" wilt verwijderen?", + "ok": "OK", + "delete": "Verwijderen", + "cancel": "Annuleren", + "back": "Instellingen" + } + }, + "legal": { + "title": "Juridisch & Disclaimer", + "intro_title": "Aard van de applicatie", + "intro_text": "Nuvio is een mediaspeler en metadata-beheertoepassing. Het fungeert uitsluitend als interface voor het browsen van openbaar beschikbare metadata en het afspelen van mediabestanden verstrekt door de gebruiker of externe plugins. Nuvio host zelf geen media.", + "extensions_title": "Plugins van derden", + "extensions_text": "Nuvio staat toe dat gebruikers plugins van derden installeren. Wij zijn niet verantwoordelijk voor de inhoud, legaliteit of functionaliteit van deze plugins.", + "user_resp_title": "Verantwoordelijkheid van de gebruiker", + "user_resp_text": "Gebruikers zijn zelf verantwoordelijk voor de geïnstalleerde plugins en de inhoud die zij bekijken. Door deze app te gebruiken, stem je ermee in dat je het wettelijk recht hebt op de toegang tot de betreffende content.", + "dmca_title": "Auteursrecht & DMCA", + "dmca_text": "Wij respecteren intellectueel eigendom. Omdat Nuvio geen content host, kunnen we geen content van het internet verwijderen.", + "warranty_title": "Geen garantie", + "warranty_text": "Deze software wordt geleverd 'as is', zonder enige vorm van garantie." + }, + "plugin_tester": { + "title": "Plugin Tester", + "subtitle": "Voer scrapers uit en bekijk logs in real-time", + "tabs": { + "individual": "Individueel", + "repo": "Repo Tester", + "code": "Code", + "logs": "Logs", + "results": "Resultaten" + }, + "common": { + "error": "Fout", + "success": "Succes", + "movie": "Film", + "tv": "TV", + "tmdb_id": "TMDB ID", + "season": "Seizoen", + "episode": "Aflevering", + "running": "Bezig…", + "run_test": "Test uitvoeren", + "play": "Afspelen", + "done": "Klaar", + "test": "Test", + "testing": "Testen…" + }, + "individual": { + "load_from_url": "Laden van URL", + "load_from_url_desc": "Plak een raw GitHub URL of lokaal IP en tik op download.", + "enter_url_error": "Voer een URL in", + "code_loaded": "Code geladen van URL", + "fetch_error": "Ophalen mislukt: {{message}}", + "no_code_error": "Geen code om uit te voeren", + "plugin_code": "Plugin Code", + "focus_editor": "Focus editor", + "code_placeholder": "// Plak plugin code hier...", + "test_parameters": "Testparameters", + "no_logs": "Nog geen logs. Voer een test uit.", + "no_streams": "Nog geen streams gevonden.", + "streams_found": "{{count}} stream gevonden", + "streams_found_plural": "{{count}} streams gevonden", + "tap_play_hint": "Tik op afspelen om een stream te testen.", + "unnamed_stream": "Naamloze stream", + "quality": "Kwaliteit: {{quality}}", + "size": "Grootte: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Headers: {{count}} aangepaste header(s)", + "find_placeholder": "Zoek in code…", + "edit_code_title": "Code bewerken", + "no_url_stream_error": "Geen URL gevonden voor deze stream" + }, + "repo": { + "title": "Repo Tester", + "description": "Haal een repository op en test elke provider.", + "enter_repo_url_error": "Voer een repository-URL in", + "invalid_url_title": "Ongeldige URL", + "invalid_url_msg": "Gebruik een GitHub raw URL of een lokale URL.", + "manifest_build_error": "Kon geen manifest-URL bouwen", + "manifest_fetch_error": "Kon manifest niet ophalen", + "repo_manifest_fetch_error": "Kon repository-manifest niet ophalen", + "missing_filename": "Bestandsnaam ontbreekt in manifest", + "scraper_build_error": "Kon scraper-URL niet bouwen", + "download_scraper_error": "Downloaden scraper mislukt", + "test_failed": "Test mislukt", + "test_parameters": "Repo Testparameters", + "test_parameters_desc": "Deze parameters worden alleen gebruikt voor de Repo Tester.", + "using_info": "Gebruikt: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Gebruikt: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Providers", + "repository_default": "Repository", + "providers_count": "{{count}} providers", + "fetch_hint": "Haal een repo op om providers te tonen.", + "test_all": "Alles testen", + "status_running": "BEZIG", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "MISLUKT", + "status_idle": "WACHTEN", + "tried_url": "Geprobeerd: {{url}}", + "provider_logs": "Provider logs", + "no_logs_captured": "Geen logs vastgelegd." + } + } +} + + From 8fbb47852de938db8d6e351a5c5414ac4e8a12e7 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:00:50 +0100 Subject: [PATCH 183/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 91278da2..25bd4927 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -20,4 +20,5 @@ export const LOCALES = [ { code: 'mk', key: 'macedonian' }, { code: 'ru', key: 'russian' }, { code: 'fil', key: 'filipino' }, + { code: 'nl-NL', key: 'dutch_nl' }, ]; From 1b9e20c97cc0df632eb61c3dcca8c7fc82f9426b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:04:52 +0100 Subject: [PATCH 184/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index b5dfe05d..bb371710 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -645,6 +645,7 @@ "macedonian": "مقدوني", "russian": "الروسية", "filipino": "الفلبينية", + "dutch": "الهولندية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 651a14af600d0a0c28b74104ac83d1d3054759cc Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:06:28 +0100 Subject: [PATCH 185/285] Update locales.ts --- src/constants/locales.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 25bd4927..7b169bc8 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -20,5 +20,5 @@ export const LOCALES = [ { code: 'mk', key: 'macedonian' }, { code: 'ru', key: 'russian' }, { code: 'fil', key: 'filipino' }, - { code: 'nl-NL', key: 'dutch_nl' }, + { code: 'nl', key: 'dutch' }, ]; From 383540f64dbf13c1492183a2372692db29892c15 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:11:04 +0100 Subject: [PATCH 186/285] Update locales.ts --- src/constants/locales.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 7b169bc8..25bd4927 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -20,5 +20,5 @@ export const LOCALES = [ { code: 'mk', key: 'macedonian' }, { code: 'ru', key: 'russian' }, { code: 'fil', key: 'filipino' }, - { code: 'nl', key: 'dutch' }, + { code: 'nl-NL', key: 'dutch_nl' }, ]; From 720137c1ef925b01e102b07d1d21dc610241770d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:16:21 +0100 Subject: [PATCH 187/285] Update ar.json --- src/i18n/locales/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index bb371710..ef888413 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -645,7 +645,7 @@ "macedonian": "مقدوني", "russian": "الروسية", "filipino": "الفلبينية", - "dutch": "الهولندية", + "dutch_nl": "الهولندية (هولندا)", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From b4297a884878e8b0767edef58d1b6434aca53204 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:18:24 +0100 Subject: [PATCH 188/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index 14b79823..ccfad262 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -650,6 +650,7 @@ "macedonian": "Македонски", "russian": "Руски", "filipino": "Филипински", + "dutch_nl": "Нидерландски (Нидерландия)", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1432,3 +1433,4 @@ + From 7744549dc095e4042ea56821a85b7810545a58be Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:19:57 +0100 Subject: [PATCH 189/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 6348e3e6..a9d39fad 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -640,6 +640,7 @@ "macedonian": "Makedonský", "russian": "Ruština", "filipino": "Filipínština", + "dutch_nl": "Nizozemština (Nizozemsko)", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1420,3 +1421,4 @@ + From 364e5aa09dda62369fc8553f60f29969c2dc445f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:21:08 +0100 Subject: [PATCH 190/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index dc92d9b0..f112b591 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -645,6 +645,7 @@ "macedonian": "Makedonisch", "russian": "Russisch", "filipino": "Philippinisch", + "dutch_nl": "Niederländisch (Niederlande)", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From 2332e5e4a2466d0d4f4e2ba7a6b791f1eeb1e0a2 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:22:09 +0100 Subject: [PATCH 191/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 7586ed53..f597b6e4 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -650,6 +650,7 @@ "macedonian": "Macedonian", "russian": "Russian", "filipino": "Filipino", + "dutch_nl": "Dutch (Netherlands)", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 295622ad3d74749d22f8e401c9d6b901c1178280 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:29:28 +0100 Subject: [PATCH 192/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 2d95debb..d6cc309e 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -645,6 +645,7 @@ "macedonian": "Macedonio", "russian": "Ruso", "filipino": "Filipino", + "dutch_nl": "Holandés (Países Bajos)", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From b467a315e01c19ad93d11eb19eb7f036b59c7b99 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:32:24 +0100 Subject: [PATCH 193/285] Update fil.json --- src/i18n/locales/fil.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/fil.json b/src/i18n/locales/fil.json index 73db596e..d40ea57b 100644 --- a/src/i18n/locales/fil.json +++ b/src/i18n/locales/fil.json @@ -650,6 +650,7 @@ "macedonian": "Macedonio", "russian": "Ruso", "filipino": "Filipino", + "dutch_nl": "Dutch (Netherlands)", "account": "Account", "content_discovery": "Content at Discovery", "appearance": "Appearance", @@ -1426,3 +1427,4 @@ } } + From c94626bd6c50f5c5dfa10979a9d1c0e672f7c344 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:35:36 +0100 Subject: [PATCH 194/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index bb59b935..74f17159 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -645,6 +645,7 @@ "macedonian": "Macédonien", "russian": "Russe", "filipino": "Philippin", + "dutch_nl": "Néerlandais (Pays-Bas)", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From 1defc4357a915f6ce1224cf422c3a89b90036f0b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:37:49 +0100 Subject: [PATCH 195/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 22116a74..90efa63d 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -650,6 +650,7 @@ "macedonian": "מקדונית", "russian": "רוסית", "filipino": "פיליפינית", + "dutch_nl": "הולנדית (הולנד)", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1433,3 +1434,4 @@ + From 625855c0e99e557e7e38fb4e459ac1c6916eccfa Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:40:40 +0100 Subject: [PATCH 196/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 040b9a9b..ccc6877d 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -645,6 +645,7 @@ "macedonian": "मकदूनियाई", "russian": "रूसी", "filipino": "फ़िलिपिनो", + "dutch_nl": "डच (नीदरलैंड)", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 407282e0c9a7ad81c6f7d93a1be376725cb8ccf2 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:43:20 +0100 Subject: [PATCH 197/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 4486db22..e61d9fe5 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -645,6 +645,7 @@ "macedonian": "Macedone", "russian": "Russo", "filipino": "Filippino", + "dutch_nl": "Olandese (Paesi Bassi)", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 358459b9dd9d1e4975f087d42b46f37f2d989831 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:45:16 +0100 Subject: [PATCH 198/285] Update mk.json --- src/i18n/locales/mk.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/mk.json b/src/i18n/locales/mk.json index 27d08fd3..32834bfc 100644 --- a/src/i18n/locales/mk.json +++ b/src/i18n/locales/mk.json @@ -650,6 +650,7 @@ "macedonian": "Македонски", "russian": "Руски", "filipino": "Филипински", + "dutch_nl": "Холандски (Холандија)", "account": "Сметка", "content_discovery": "Содржина и откривање", "appearance": "Изглед", @@ -1426,3 +1427,4 @@ + From 9a15ef94cfbf104eaecfaf5d998263be7877d66a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:47:46 +0100 Subject: [PATCH 199/285] Update nl-NL.json --- src/i18n/locales/nl-NL.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/nl-NL.json b/src/i18n/locales/nl-NL.json index ced261f4..88a903e2 100644 --- a/src/i18n/locales/nl-NL.json +++ b/src/i18n/locales/nl-NL.json @@ -651,6 +651,7 @@ "macedonian": "Macedonisch", "russian": "Russisch", "filipino": "Filipijns" + "dutch_nl": "Nederlands (Nederland)", "account": "Account", "content_discovery": "Inhoud & Ontdekken", "appearance": "Uiterlijk", @@ -1429,3 +1430,4 @@ } + From 322a8a2f5f38f58b36e468e9ab9032504eff5016 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:49:28 +0100 Subject: [PATCH 200/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 4fa966ca..0b45f460 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -650,6 +650,7 @@ "macedonian": "Macedoński", "russian": "Rosyjski", "filipino": "Filipiński", + "dutch_nl": "Holenderski (Niderlandy)", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1432,3 +1433,4 @@ + From 2f6d271218ab121da483e3514bddfa1e1f739be0 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:51:39 +0100 Subject: [PATCH 201/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 564a66e6..0c316edf 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -659,6 +659,7 @@ "macedonian": "Macedônio", "russian": "Russo", "filipino": "Filipino", + "dutch_nl": "Holandês (Países Baixos)", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From d59727b26001b8420ed49c404efa3f2f1878527a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:52:48 +0100 Subject: [PATCH 202/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 66ad8f58..0bd6c6c5 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -657,6 +657,7 @@ "macedonian": "Macedônio", "russian": "Russo", "filipino": "Filipino", + "dutch_nl": "Holandês (Países Baixos)", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 3f893705780db9ff8d6793ceab62d3a046c5678b Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:53:48 +0100 Subject: [PATCH 203/285] Update ru.json --- src/i18n/locales/ru.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 59da1f8a..1235a467 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -650,6 +650,7 @@ "macedonian": "Македонский", "russian": "Русский", "filipino": "Филиппинский", + "dutch_nl": "Нидерландский (Нидерланды)", "account": "Аккаунт", "content_discovery": "Контент и поиск", "appearance": "Внешний вид", @@ -1427,3 +1428,4 @@ } + From d7d8e54831b671f5b29c458994d5a823fe2ac9c4 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:54:45 +0100 Subject: [PATCH 204/285] Update sl.json --- src/i18n/locales/sl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 2743d589..4b6cb73e 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -650,6 +650,7 @@ "macedonian": "Makedonski", "russian": "Ruščina", "filipino": "Filipinščina", + "dutch_nl": "Nizozemščina (Nizozemska)", "account": "Račun", "content_discovery": "Vsebina in odkrivanje", "appearance": "Videz", @@ -1428,3 +1429,4 @@ + From 63e8c5e5af7f92d418e3bfdf2741ffd2863fa61a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 20:59:57 +0100 Subject: [PATCH 205/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 495624cc..3fddcb6c 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -644,6 +644,7 @@ "macedonian": "Македонски", "russian": "Руски", "filipino": "Филипински", + "dutch_nl": "Холандски (Холандија)", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1430,3 +1431,4 @@ + From af4d6a6c163ec4d8f621932f87b52ec0443c31a7 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 21:00:56 +0100 Subject: [PATCH 206/285] Update tr.json --- src/i18n/locales/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 38ac6369..48955c62 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -650,6 +650,7 @@ "macedonian": "Makedonca", "russian": "Rusça", "filipino": "Filipince", + "dutch_nl": "Felemenkçe (Hollanda)", "account": "Hesap", "content_discovery": "İçerik ve Keşif", "appearance": "Görünüm", @@ -1429,3 +1430,4 @@ + From bfad186efb56809ad535779245335a5dbc1630c2 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Sun, 8 Feb 2026 21:02:19 +0100 Subject: [PATCH 207/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 21f88514..004bb78d 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -645,6 +645,7 @@ "macedonian": "马其顿语", "russian": "俄语", "filipino": "菲律宾语", + "dutch_nl": "荷兰语 (荷兰)", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From 275a75b61dd97930a62849e99902049f045465e7 Mon Sep 17 00:00:00 2001 From: paregi12 Date: Mon, 9 Feb 2026 10:21:43 +0530 Subject: [PATCH 208/285] feat(player): implement smart Up Next trigger based on IntroDB outro segments --- src/components/player/AndroidVideoPlayer.tsx | 14 +++- src/components/player/KSPlayerCore.tsx | 14 +++- src/components/player/common/UpNextButton.tsx | 20 ++++- src/components/player/hooks/index.ts | 1 + .../player/hooks/useSkipSegments.ts | 75 +++++++++++++++++++ .../player/overlays/SkipIntroButton.tsx | 70 +++++------------ 6 files changed, 136 insertions(+), 58 deletions(-) create mode 100644 src/components/player/hooks/useSkipSegments.ts diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index 12a843e3..f6336425 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -11,7 +11,8 @@ import { usePlayerModals, useSpeedControl, useOpeningAnimation, - useWatchProgress + useWatchProgress, + useSkipSegments } from './hooks'; // Android-specific hooks @@ -222,6 +223,16 @@ const AndroidVideoPlayer: React.FC = () => { const nextEpisodeHook = useNextEpisode(type, season, episode, groupedEpisodes, (metadataResult as any)?.groupedEpisodes, episodeId); + const { outroSegment } = useSkipSegments({ + imdbId: imdbId || (id?.startsWith('tt') ? id : undefined), + type, + season, + episode, + malId: (metadata as any)?.mal_id || (metadata as any)?.external_ids?.mal_id, + kitsuId: id?.startsWith('kitsu:') ? id.split(':')[1] : undefined, + enabled: settings.skipIntroEnabled + }); + const fadeAnim = useRef(new Animated.Value(1)).current; useEffect(() => { @@ -1002,6 +1013,7 @@ const AndroidVideoPlayer: React.FC = () => { metadata={metadataResult?.metadata ? { poster: metadataResult.metadata.poster, id: metadataResult.metadata.id } : undefined} controlsVisible={playerState.showControls} controlsFixedOffset={100} + outroSegment={outroSegment} /> diff --git a/src/components/player/KSPlayerCore.tsx b/src/components/player/KSPlayerCore.tsx index b6ca3d47..dc794c94 100644 --- a/src/components/player/KSPlayerCore.tsx +++ b/src/components/player/KSPlayerCore.tsx @@ -36,7 +36,8 @@ import { usePlayerControls, usePlayerSetup, useWatchProgress, - useNextEpisode + useNextEpisode, + useSkipSegments } from './hooks'; // Platform-specific hooks @@ -209,6 +210,16 @@ const KSPlayerCore: React.FC = () => { episodeId }); + const { outroSegment } = useSkipSegments({ + imdbId: imdbId || (id?.startsWith('tt') ? id : undefined), + type, + season, + episode, + malId: (metadata as any)?.mal_id || (metadata as any)?.external_ids?.mal_id, + kitsuId: id?.startsWith('kitsu:') ? id.split(':')[1] : undefined, + enabled: settings.skipIntroEnabled + }); + const controls = usePlayerControls({ playerRef: ksPlayerRef, paused, @@ -972,6 +983,7 @@ const KSPlayerCore: React.FC = () => { metadata={metadata ? { poster: metadata.poster, id: metadata.id } : undefined} controlsVisible={showControls} controlsFixedOffset={126} + outroSegment={outroSegment} /> {/* Modals */} diff --git a/src/components/player/common/UpNextButton.tsx b/src/components/player/common/UpNextButton.tsx index 9958e0c6..235ca6a2 100644 --- a/src/components/player/common/UpNextButton.tsx +++ b/src/components/player/common/UpNextButton.tsx @@ -4,6 +4,7 @@ import { Animated } from 'react-native'; import { MaterialIcons } from '@expo/vector-icons'; import { logger } from '../../../utils/logger'; import { LinearGradient } from 'expo-linear-gradient'; +import { SkipInterval } from '../../../services/introService'; export interface Insets { top: number; @@ -33,6 +34,7 @@ interface UpNextButtonProps { metadata?: { poster?: string; id?: string }; // Added metadata prop controlsVisible?: boolean; controlsFixedOffset?: number; + outroSegment?: SkipInterval | null; } const UpNextButton: React.FC = ({ @@ -49,6 +51,7 @@ const UpNextButton: React.FC = ({ metadata, controlsVisible = false, controlsFixedOffset = 100, + outroSegment, }) => { const [visible, setVisible] = useState(false); const opacity = useRef(new Animated.Value(0)).current; @@ -76,10 +79,21 @@ const UpNextButton: React.FC = ({ const shouldShow = useMemo(() => { if (!nextEpisode || duration <= 0) return false; + + // 1. Check for Outro-based trigger + if (outroSegment) { + const timeRemainingAtOutroEnd = duration - outroSegment.endTime; + // Only trigger if the outro ends within the last 5 minutes (300s) + // This prevents mid-episode "fake" outros from triggering it too early + if (timeRemainingAtOutroEnd < 300 && currentTime >= outroSegment.endTime) { + return true; + } + } + + // 2. Standard Fallback (60s remaining) const timeRemaining = duration - currentTime; - // Be tolerant to timer jitter: show when under ~1 minute and above 10s - return timeRemaining < 61 && timeRemaining > 10; - }, [nextEpisode, duration, currentTime]); + return timeRemaining < 61 && timeRemaining > 0; + }, [nextEpisode, duration, currentTime, outroSegment]); // Debug logging removed to reduce console noise // The state is computed in shouldShow useMemo above diff --git a/src/components/player/hooks/index.ts b/src/components/player/hooks/index.ts index 570d3de1..8041cb78 100644 --- a/src/components/player/hooks/index.ts +++ b/src/components/player/hooks/index.ts @@ -20,3 +20,4 @@ export { usePlayerSetup } from './usePlayerSetup'; // Content export { useNextEpisode } from './useNextEpisode'; export { useWatchProgress } from './useWatchProgress'; +export { useSkipSegments } from './useSkipSegments'; diff --git a/src/components/player/hooks/useSkipSegments.ts b/src/components/player/hooks/useSkipSegments.ts new file mode 100644 index 00000000..996fdf97 --- /dev/null +++ b/src/components/player/hooks/useSkipSegments.ts @@ -0,0 +1,75 @@ +import { useState, useEffect, useRef } from 'react'; +import { introService, SkipInterval } from '../../../services/introService'; +import { logger } from '../../../utils/logger'; + +interface UseSkipSegmentsProps { + imdbId?: string; + type?: string; + season?: number; + episode?: number; + malId?: string; + kitsuId?: string; + enabled: boolean; +} + +export const useSkipSegments = ({ + imdbId, + type, + season, + episode, + malId, + kitsuId, + enabled +}: UseSkipSegmentsProps) => { + const [segments, setSegments] = useState([]); + const [isLoading, setIsLoading] = useState(false); + const fetchedRef = useRef(false); + const lastKeyRef = useRef(''); + + useEffect(() => { + const key = `${imdbId}-${season}-${episode}-${malId}-${kitsuId}`; + + if (!enabled || type !== 'series' || (!imdbId && !malId && !kitsuId) || !season || !episode) { + setSegments([]); + fetchedRef.current = false; + return; + } + + if (lastKeyRef.current === key && fetchedRef.current) { + return; + } + + lastKeyRef.current = key; + fetchedRef.current = true; + setIsLoading(true); + + const fetchSegments = async () => { + try { + const intervals = await introService.getSkipTimes(imdbId, season, episode, malId, kitsuId); + setSegments(intervals); + } catch (error) { + logger.error('[useSkipSegments] Error fetching skip data:', error); + setSegments([]); + } finally { + setIsLoading(false); + } + }; + + fetchSegments(); + }, [imdbId, type, season, episode, malId, kitsuId, enabled]); + + const getActiveSegment = (currentTime: number) => { + return segments.find( + s => currentTime >= s.startTime && currentTime < (s.endTime - 0.5) + ); + }; + + const outroSegment = segments.find(s => ['ed', 'outro', 'mixed-ed'].includes(s.type)); + + return { + segments, + getActiveSegment, + outroSegment, + isLoading + }; +}; diff --git a/src/components/player/overlays/SkipIntroButton.tsx b/src/components/player/overlays/SkipIntroButton.tsx index b5329c6a..476b4d08 100644 --- a/src/components/player/overlays/SkipIntroButton.tsx +++ b/src/components/player/overlays/SkipIntroButton.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect, useRef, useCallback } from 'react'; -import { Text, TouchableOpacity, StyleSheet, Platform } from 'react-native'; +import { Text, TouchableOpacity, StyleSheet, Platform, View } from 'react-native'; import Animated, { useSharedValue, useAnimatedStyle, @@ -10,10 +10,11 @@ import Animated, { import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { MaterialIcons } from '@expo/vector-icons'; import { BlurView } from 'expo-blur'; -import { introService, SkipInterval, SkipType } from '../../../services/introService'; +import { SkipInterval } from '../../../services/introService'; import { useTheme } from '../../../contexts/ThemeContext'; import { logger } from '../../../utils/logger'; import { useSettings } from '../../../hooks/useSettings'; +import { useSkipSegments } from '../hooks/useSkipSegments'; interface SkipIntroButtonProps { imdbId: string | undefined; @@ -46,16 +47,23 @@ export const SkipIntroButton: React.FC = ({ const skipIntroEnabled = settings.skipIntroEnabled; + const { segments: skipIntervals } = useSkipSegments({ + imdbId, + type, + season, + episode, + malId, + kitsuId, + enabled: skipIntroEnabled + }); + // State - const [skipIntervals, setSkipIntervals] = useState([]); const [currentInterval, setCurrentInterval] = useState(null); const [isVisible, setIsVisible] = useState(false); const [hasSkippedCurrent, setHasSkippedCurrent] = useState(false); const [autoHidden, setAutoHidden] = useState(false); // Refs - const fetchedRef = useRef(false); - const lastEpisodeRef = useRef(''); const autoHideTimerRef = useRef(null); // Animation values @@ -63,55 +71,11 @@ export const SkipIntroButton: React.FC = ({ const scale = useSharedValue(0.8); const translateY = useSharedValue(0); - // Fetch skip data when episode changes + // Reset skipped state when episode changes useEffect(() => { - const episodeKey = `${imdbId}-${season}-${episode}-${malId}-${kitsuId}`; - - if (!skipIntroEnabled) { - setSkipIntervals([]); - setCurrentInterval(null); - setIsVisible(false); - fetchedRef.current = false; - return; - } - - // Skip if not a series or missing required data (though MAL/Kitsu ID might be enough for some cases, usually need season/ep) - if (type !== 'series' || (!imdbId && !malId && !kitsuId) || !season || !episode) { - setSkipIntervals([]); - fetchedRef.current = false; - return; - } - - // Skip if already fetched for this episode - if (lastEpisodeRef.current === episodeKey && fetchedRef.current) { - return; - } - - lastEpisodeRef.current = episodeKey; - fetchedRef.current = true; setHasSkippedCurrent(false); setAutoHidden(false); - setSkipIntervals([]); - - const fetchSkipData = async () => { - logger.log(`[SkipIntroButton] Fetching skip data for S${season}E${episode} (IMDB: ${imdbId}, MAL: ${malId}, Kitsu: ${kitsuId})...`); - try { - const intervals = await introService.getSkipTimes(imdbId, season, episode, malId, kitsuId); - setSkipIntervals(intervals); - - if (intervals.length > 0) { - logger.log(`[SkipIntroButton] ✓ Found ${intervals.length} skip intervals:`, intervals); - } else { - logger.log(`[SkipIntroButton] ✗ No skip data available for this episode`); - } - } catch (error) { - logger.error('[SkipIntroButton] Error fetching skip data:', error); - setSkipIntervals([]); - } - }; - - fetchSkipData(); - }, [imdbId, type, season, episode, malId, kitsuId, skipIntroEnabled]); + }, [imdbId, season, episode, malId, kitsuId]); // Determine active interval based on current playback position useEffect(() => { @@ -278,7 +242,7 @@ export const SkipIntroButton: React.FC = ({ style={styles.icon} /> {getButtonText()} - Date: Mon, 9 Feb 2026 19:22:58 +0530 Subject: [PATCH 209/285] fix(player): dedupe skip-segment fetches and harden segment hook --- src/components/player/AndroidVideoPlayer.tsx | 3 +- src/components/player/KSPlayerCore.tsx | 5 +-- .../player/hooks/useSkipSegments.ts | 31 +++++++++++++++++-- .../player/overlays/SkipIntroButton.tsx | 10 ++++-- 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index f6336425..331937f3 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -223,7 +223,7 @@ const AndroidVideoPlayer: React.FC = () => { const nextEpisodeHook = useNextEpisode(type, season, episode, groupedEpisodes, (metadataResult as any)?.groupedEpisodes, episodeId); - const { outroSegment } = useSkipSegments({ + const { segments: skipIntervals, outroSegment } = useSkipSegments({ imdbId: imdbId || (id?.startsWith('tt') ? id : undefined), type, season, @@ -986,6 +986,7 @@ const AndroidVideoPlayer: React.FC = () => { episode={episode} malId={(metadata as any)?.mal_id || (metadata as any)?.external_ids?.mal_id} kitsuId={id?.startsWith('kitsu:') ? id.split(':')[1] : undefined} + skipIntervals={skipIntervals} currentTime={playerState.currentTime} onSkip={(endTime) => controlsHook.seekToTime(endTime)} controlsVisible={playerState.showControls} diff --git a/src/components/player/KSPlayerCore.tsx b/src/components/player/KSPlayerCore.tsx index dc794c94..231d71d8 100644 --- a/src/components/player/KSPlayerCore.tsx +++ b/src/components/player/KSPlayerCore.tsx @@ -210,7 +210,7 @@ const KSPlayerCore: React.FC = () => { episodeId }); - const { outroSegment } = useSkipSegments({ + const { segments: skipIntervals, outroSegment } = useSkipSegments({ imdbId: imdbId || (id?.startsWith('tt') ? id : undefined), type, season, @@ -956,6 +956,7 @@ const KSPlayerCore: React.FC = () => { episode={episode} malId={(metadata as any)?.mal_id || (metadata as any)?.external_ids?.mal_id} kitsuId={id?.startsWith('kitsu:') ? id.split(':')[1] : undefined} + skipIntervals={skipIntervals} currentTime={currentTime} onSkip={(endTime) => controls.seekToTime(endTime)} controlsVisible={showControls} @@ -1114,4 +1115,4 @@ const KSPlayerCore: React.FC = () => { ); }; -export default KSPlayerCore; \ No newline at end of file +export default KSPlayerCore; diff --git a/src/components/player/hooks/useSkipSegments.ts b/src/components/player/hooks/useSkipSegments.ts index 996fdf97..3a81e86d 100644 --- a/src/components/player/hooks/useSkipSegments.ts +++ b/src/components/player/hooks/useSkipSegments.ts @@ -28,10 +28,12 @@ export const useSkipSegments = ({ useEffect(() => { const key = `${imdbId}-${season}-${episode}-${malId}-${kitsuId}`; - + if (!enabled || type !== 'series' || (!imdbId && !malId && !kitsuId) || !season || !episode) { setSegments([]); + setIsLoading(false); fetchedRef.current = false; + lastKeyRef.current = ''; return; } @@ -39,23 +41,41 @@ export const useSkipSegments = ({ return; } + // Clear stale intervals while resolving a new episode/key. + if (lastKeyRef.current !== key) { + setSegments([]); + fetchedRef.current = false; + } + lastKeyRef.current = key; - fetchedRef.current = true; setIsLoading(true); + let cancelled = false; const fetchSegments = async () => { try { const intervals = await introService.getSkipTimes(imdbId, season, episode, malId, kitsuId); + + // Ignore stale responses from old requests. + if (cancelled || lastKeyRef.current !== key) return; setSegments(intervals); + fetchedRef.current = true; } catch (error) { + if (cancelled || lastKeyRef.current !== key) return; logger.error('[useSkipSegments] Error fetching skip data:', error); setSegments([]); + // Keep this key retryable on transient failures. + fetchedRef.current = false; } finally { + if (cancelled || lastKeyRef.current !== key) return; setIsLoading(false); } }; fetchSegments(); + + return () => { + cancelled = true; + }; }, [imdbId, type, season, episode, malId, kitsuId, enabled]); const getActiveSegment = (currentTime: number) => { @@ -64,7 +84,12 @@ export const useSkipSegments = ({ ); }; - const outroSegment = segments.find(s => ['ed', 'outro', 'mixed-ed'].includes(s.type)); + const outroSegment = segments + .filter(s => ['ed', 'outro', 'mixed-ed'].includes(s.type)) + .reduce((latest, interval) => { + if (!latest || interval.endTime > latest.endTime) return interval; + return latest; + }, null); return { segments, diff --git a/src/components/player/overlays/SkipIntroButton.tsx b/src/components/player/overlays/SkipIntroButton.tsx index 476b4d08..67f72173 100644 --- a/src/components/player/overlays/SkipIntroButton.tsx +++ b/src/components/player/overlays/SkipIntroButton.tsx @@ -23,6 +23,7 @@ interface SkipIntroButtonProps { episode?: number; malId?: string; kitsuId?: string; + skipIntervals?: SkipInterval[] | null; currentTime: number; onSkip: (endTime: number) => void; controlsVisible?: boolean; @@ -36,6 +37,7 @@ export const SkipIntroButton: React.FC = ({ episode, malId, kitsuId, + skipIntervals: externalSkipIntervals, currentTime, onSkip, controlsVisible = false, @@ -47,15 +49,17 @@ export const SkipIntroButton: React.FC = ({ const skipIntroEnabled = settings.skipIntroEnabled; - const { segments: skipIntervals } = useSkipSegments({ + const { segments: fetchedSkipIntervals } = useSkipSegments({ imdbId, type, season, episode, malId, kitsuId, - enabled: skipIntroEnabled + // Allow parent components to provide pre-fetched intervals to avoid duplicate requests. + enabled: skipIntroEnabled && !externalSkipIntervals }); + const skipIntervals = externalSkipIntervals ?? fetchedSkipIntervals; // State const [currentInterval, setCurrentInterval] = useState(null); @@ -293,4 +297,4 @@ const styles = StyleSheet.create({ }, }); -export default SkipIntroButton; \ No newline at end of file +export default SkipIntroButton; From f90bbea1bbe9c2bda8c1bf1514f173bcf1b0d626 Mon Sep 17 00:00:00 2001 From: paregi12 Date: Mon, 9 Feb 2026 22:03:21 +0530 Subject: [PATCH 210/285] fix(player): prevent Up Next fallback from triggering early when outro exists --- src/components/player/common/UpNextButton.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/player/common/UpNextButton.tsx b/src/components/player/common/UpNextButton.tsx index 235ca6a2..77f44416 100644 --- a/src/components/player/common/UpNextButton.tsx +++ b/src/components/player/common/UpNextButton.tsx @@ -80,17 +80,16 @@ const UpNextButton: React.FC = ({ const shouldShow = useMemo(() => { if (!nextEpisode || duration <= 0) return false; - // 1. Check for Outro-based trigger - if (outroSegment) { - const timeRemainingAtOutroEnd = duration - outroSegment.endTime; - // Only trigger if the outro ends within the last 5 minutes (300s) - // This prevents mid-episode "fake" outros from triggering it too early - if (timeRemainingAtOutroEnd < 300 && currentTime >= outroSegment.endTime) { - return true; - } + // 1. Determine if we have a valid ending outro (within last 5 mins) + const hasValidEndingOutro = outroSegment && (duration - outroSegment.endTime < 300); + + if (hasValidEndingOutro) { + // If we have a valid outro, ONLY show after it finishes + // This prevents the 60s fallback from "jumping the gun" + return currentTime >= outroSegment.endTime; } - // 2. Standard Fallback (60s remaining) + // 2. Standard Fallback (only if no valid ending outro was found) const timeRemaining = duration - currentTime; return timeRemaining < 61 && timeRemaining > 0; }, [nextEpisode, duration, currentTime, outroSegment]); From 9ea8007bfcd8df2c2dfdf52e25d7ef33a00829b7 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:51:15 +0530 Subject: [PATCH 211/285] update lang strings --- index.html | 14 +- nuvio-source.json | 6 +- package-lock.json | 66 +- src/i18n/locales/ar.json | 12 +- src/i18n/locales/de.json | 12 +- src/i18n/locales/en.json | 16 +- src/i18n/locales/es.json | 12 +- src/i18n/locales/fr.json | 12 +- src/i18n/locales/hi.json | 12 +- src/i18n/locales/hr.json | 2827 ++++++++++++++++----------------- src/i18n/locales/it.json | 2822 ++++++++++++++++---------------- src/i18n/locales/pt-BR.json | 12 +- src/i18n/locales/pt-PT.json | 12 +- src/i18n/locales/sr.json | 2822 ++++++++++++++++---------------- src/i18n/locales/zh-CN.json | 12 +- src/screens/PluginsScreen.tsx | 11 +- 16 files changed, 4307 insertions(+), 4373 deletions(-) diff --git a/index.html b/index.html index 749e2f0a..fe298212 100644 --- a/index.html +++ b/index.html @@ -779,9 +779,9 @@
01
-

Stremio Addon Support

-

Full compatibility with Stremio addons. Access your favorite content - providers seamlessly.

+

Stremio Addon Integration

+

Supports user-installed Stremio addons for metadata and source + integration.

@@ -984,9 +984,9 @@

Copyright & DMCA

-

We respect the intellectual property rights of others. Since Nuvio does not host any content, we - cannot remove content from the internet. However, if you believe that the application interface - itself infringes on your rights, please contact us.

+

We respect the intellectual property rights of others. Nuvio does not host media content. + If you believe this project's code, assets, or interface infringes your rights, please submit + a notice through the official project contact channels listed on this site and repository.

@@ -1157,4 +1157,4 @@ - \ No newline at end of file + diff --git a/nuvio-source.json b/nuvio-source.json index c8919604..e2d48d42 100644 --- a/nuvio-source.json +++ b/nuvio-source.json @@ -13,8 +13,8 @@ "name": "Nuvio", "bundleIdentifier": "com.nuvio.app", "developerName": "Tapframe", - "subtitle": "Streaming app for movies and TV shows", - "localizedDescription": "Nuvio is a comprehensive streaming application that provides access to a vast library of movies and TV shows.", + "subtitle": "Media player and discovery app", + "localizedDescription": "Nuvio is a media player and metadata discovery application for user-provided and user-installed sources.", "iconURL": "https://github.com/tapframe/NuvioStreaming/blob/main/assets/android/playstore-icon.png?raw=true", "tintColor": "#04dcfc", "category": "entertainment", @@ -264,4 +264,4 @@ } ], "news": [] -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 4d76900f..d2fabb99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1541,7 +1541,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -2099,7 +2098,6 @@ "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-6.1.2.tgz", "integrity": "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==", "license": "MIT", - "peer": true, "dependencies": { "anser": "^1.4.9", "pretty-format": "^29.7.0", @@ -2588,7 +2586,6 @@ "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz", "integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/core": "^0.22.12" } @@ -2774,7 +2771,6 @@ "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.13.5.tgz", "integrity": "sha512-4U5okwjRqDPkjB572hfZtLXJ/LGfCo6vDwUB2KIPEUoSgqbIlw+UrbnaqVp3GS+dRvhMD27F2JObpHpYRlpF0Q==", "license": "MIT", - "peer": true, "dependencies": { "@lottiefiles/dotlottie-web": "0.44.0" }, @@ -3130,7 +3126,7 @@ "version": "0.72.8", "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.8.tgz", "integrity": "sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "invariant": "^2.2.4", @@ -3251,7 +3247,6 @@ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.25.tgz", "integrity": "sha512-zQeWK9txDePWbYfqTs0C6jeRdJTm/7VhQtW/1IbJNDi9/rFIRzZule8bdQPAnf8QWUsNujRmi1J9OG/hhfbalg==", "license": "MIT", - "peer": true, "dependencies": { "@react-navigation/core": "^7.13.6", "escape-string-regexp": "^4.0.0", @@ -3893,7 +3888,6 @@ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -4114,7 +4108,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -4124,9 +4117,8 @@ "version": "0.72.8", "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.72.8.tgz", "integrity": "sha512-St6xA7+EoHN5mEYfdWnfYt0e8u6k2FR0P9s2arYgakQGFgU1f9FlPrIEcj0X24pLCF5c5i3WVuLCUdiCYHmOoA==", - "devOptional": true, + "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@react-native/virtualized-lists": "^0.72.4", "@types/react": "*" @@ -4662,7 +4654,6 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -5066,7 +5057,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -6296,7 +6286,6 @@ "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.29.tgz", "integrity": "sha512-9C90gyOzV83y2S3XzCbRDCuKYNaiyCzuP9ketv46acHCEZn+QTamPK/DobdghoSiofCmlfoaiD6/SzfxDiHMnw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "54.0.19", @@ -6500,7 +6489,6 @@ "resolved": "https://registry.npmjs.org/expo-device/-/expo-device-8.0.10.tgz", "integrity": "sha512-jd5BxjaF7382JkDMaC+P04aXXknB2UhWaVx5WiQKA05ugm/8GH5uaz9P9ckWdMKZGQVVEOC8MHaUADoT26KmFA==", "license": "MIT", - "peer": true, "dependencies": { "ua-parser-js": "^0.7.33" }, @@ -6528,7 +6516,6 @@ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.21.tgz", "integrity": "sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==", "license": "MIT", - "peer": true, "peerDependencies": { "expo": "*", "react-native": "*" @@ -6539,7 +6526,6 @@ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-14.0.10.tgz", "integrity": "sha512-UqyNaaLKRpj4pKAP4HZSLnuDQqueaO5tB1c/NWu5vh1/LF9ulItyyg2kF/IpeOp0DeOLk0GY0HrIXaKUMrwB+Q==", "license": "MIT", - "peer": true, "dependencies": { "fontfaceobserver": "^2.1.0" }, @@ -6635,7 +6621,6 @@ "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-17.0.8.tgz", "integrity": "sha512-UrdwklZBDJ+t+ZszMMiE0SXZ2eJxcquCuQcl6EvGHM9K+e6YqKVRQ+w8qE+iIB3H75v2RJy6MHAaLK+Mqeo04g==", "license": "MIT", - "peer": true, "dependencies": { "rtl-detect": "^1.0.2" }, @@ -7695,7 +7680,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.28.4" }, @@ -10629,7 +10613,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -10670,7 +10653,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -10728,7 +10710,6 @@ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.81.4.tgz", "integrity": "sha512-bt5bz3A/+Cv46KcjV0VQa+fo7MKxs17RCcpzjftINlen4ZDUl0I6Ut+brQ2FToa5oD0IB0xvQHfmsg2EDqsZdQ==", "license": "MIT", - "peer": true, "dependencies": { "@jest/create-cache-key-function": "^29.7.0", "@react-native/assets-registry": "0.81.4", @@ -10817,7 +10798,6 @@ "resolved": "https://registry.npmjs.org/react-native-bottom-tabs/-/react-native-bottom-tabs-1.1.0.tgz", "integrity": "sha512-Uu1gvM3i1Hb4DjVvR/38J1QVQEs0RkPc7K6yon99HgvRWWOyLs7kjPDhUswtb8ije4pKW712skIXWJ0lgKzbyQ==", "license": "MIT", - "peer": true, "dependencies": { "react-freeze": "^1.0.0", "sf-symbols-typescript": "^2.0.0", @@ -10848,7 +10828,6 @@ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.29.1.tgz", "integrity": "sha512-du3qmv0e3Sm7qsd9SfmHps+AggLiylcBBQ8ztz7WUtd8ZjKs5V3kekAbi9R2W9bRLSg47Ntp4GGMYZOhikQdZA==", "license": "MIT", - "peer": true, "dependencies": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", @@ -10947,7 +10926,6 @@ "integrity": "sha512-hcvjTu9YJE9fMmnAUvhG8CxvYLpOuMQ/2eyi/S6GyrecezF6Rmk/uRQEL6v09BRFWA/xRVZNQVulQPS+2HS3mQ==", "hasInstallScript": true, "license": "MIT", - "peer": true, "peerDependencies": { "react": "*", "react-native": "*" @@ -11013,7 +10991,6 @@ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.2.0.tgz", "integrity": "sha512-frhu5b8/m/VvaMWz48V8RxcsXnE3hrlErQ5chr21MzAeDCpY4X14sQjvm+jvu3aOI+7Cz2atdRpyhhIuqxVaXg==", "license": "MIT", - "peer": true, "dependencies": { "react-native-is-edge-to-edge": "1.2.1", "semver": "7.7.3" @@ -11053,7 +11030,6 @@ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.2.tgz", "integrity": "sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==", "license": "MIT", - "peer": true, "peerDependencies": { "react": "*", "react-native": "*" @@ -11064,7 +11040,6 @@ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.18.0.tgz", "integrity": "sha512-mRTLWL7Uc1p/RFNveEIIrhP22oxHduC2ZnLr/2iHwBeYpGXR0rJZ7Bgc0ktxQSHRjWTPT70qc/7yd4r9960PBQ==", "license": "MIT", - "peer": true, "dependencies": { "react-freeze": "^1.0.0", "warn-once": "^0.1.0" @@ -11079,7 +11054,6 @@ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.15.1.tgz", "integrity": "sha512-ZUD1xwc3Hwo4cOmOLumjJVoc7lEf9oQFlHnLmgccLC19fNm6LVEdtB+Cnip6gEi0PG3wfvVzskViEtrySQP8Fw==", "license": "MIT", - "peer": true, "dependencies": { "css-select": "^5.1.0", "css-tree": "^1.1.3", @@ -11308,7 +11282,6 @@ "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.21.2.tgz", "integrity": "sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.6", "@react-native/normalize-colors": "^0.74.1", @@ -11565,7 +11538,6 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -13032,24 +13004,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tldts": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz", - "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==", - "license": "MIT", - "dependencies": { - "tldts-core": "^7.0.19" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", - "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", - "license": "MIT" - }, "node_modules/tmp": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", @@ -13104,19 +13058,6 @@ "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/tough-cookie": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", - "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -13191,9 +13132,8 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 47a0ad2f..77af9092 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -896,8 +896,8 @@ }, "debrid": { "title": "تكامل Debrid", - "description_torbox": "افتح بثوث 4K عالية الجودة وسرعات البرق من خلال دمج Torbox. أدخل مفتاح API الخاص بك أدناه لتطوير تجربة البث فوراً.", - "description_torrentio": "قم بتهيئة Torrentio للحصول على بثوث تورنت للأفلام والبرامج التلفزيونية. مطلوب خدمة debrid لبث المحتوى.", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "متصل", @@ -924,15 +924,15 @@ "enter_api_key": "أدخل مفتاح API الخاص بك", "connect_button": "اتصال وتثبيت", "connecting": "جاري الاتصال...", - "unlock_speeds_title": "افتح سرعات مميزة", - "unlock_speeds_desc": "احصل على اشتراك Torbox للوصول إلى بثوث عالية الجودة مخزنة مؤقتاً بدون تقطيع.", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "احصل على اشتراك", "powered_by": "مدعوم بواسطة", "disclaimer_torbox": "Nuvio ليس منتسباً لـ Torbox بأي شكل من الأشكال.", "disclaimer_torrentio": "Nuvio ليس منتسباً لـ Torrentio بأي شكل من الأشكال.", "installed_badge": "✓ تم التثبيت", "promo_title": "⚡ هل تحتاج إلى خدمة Debrid؟", - "promo_desc": "احصل على TorBox للبث السريع بدقة 4K بدون تقطيع. تورنت مميز مخزن مؤقتاً وتنزيلات فورية.", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "احصل على اشتراك TorBox", "service_label": "خدمة Debrid *", "api_key_label": "مفتاح API *", @@ -1324,7 +1324,7 @@ "user_resp_title": "مسؤولية المستخدم", "user_resp_text": "المستخدمون مسؤولون وحدهم عن الامتدادات التي يقومون بتثبيتها والمحتوى الذي يصلون إليه. باستخدام هذا التطبيق، فإنك توافق على ضمان أن لديك الحق القانوني في الوصول إلى أي محتوى تشاهده باستخدام Nuvio. لا يؤيد مطورو Nuvio أو يشجعون انتهاك حقوق الطبع والنشر.", "dmca_title": "حقوق الطبع والنشر و DMCA", - "dmca_text": "نحن نحترم حقوق الملكية الفكرية للآخرين. نظرًا لأن Nuvio لا يستضيف أي محتوى، فلا يمكننا إزالة المحتوى من الإنترنت. ومع ذلك، إذا كنت تعتقد أن واجهة التطبيق نفسها تنتهك حقوقك، فيرجى الاتصال بنا.", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "لا يوجد ضمان", "warranty_text": "يتم توفير هذا البرنامج \"كما هو\"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى تنشأ عن استخدام هذا البرنامج." }, diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index fdf27e82..8ee603f3 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -896,8 +896,8 @@ }, "debrid": { "title": "Debrid Integration", - "description_torbox": "Entsperren Sie 4K-Streams durch Integration von Torbox.", - "description_torrentio": "Konfigurieren Sie Torrentio um Torrent-Streams zu erhalten.", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "Verbunden", @@ -924,15 +924,15 @@ "enter_api_key": "Geben Sie Ihren API-Schlüssel ein", "connect_button": "Verbinden & Installieren", "connecting": "Verbinde...", - "unlock_speeds_title": "Premium-Geschwindigkeiten entsperren", - "unlock_speeds_desc": "Holen Sie sich ein Torbox-Abonnement.", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "Abonnement holen", "powered_by": "Bereitgestellt von", "disclaimer_torbox": "Nuvio ist nicht mit Torbox verbunden.", "disclaimer_torrentio": "Nuvio ist nicht mit Torrentio verbunden.", "installed_badge": "✓ INSTALLIERT", "promo_title": "⚡ Brauchen Sie einen Debrid-Dienst?", - "promo_desc": "Holen Sie sich TorBox für blitzschnelles 4K-Streaming.", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "TorBox-Abonnement holen", "service_label": "Debrid-Dienst *", "api_key_label": "API-Schlüssel *", @@ -1324,7 +1324,7 @@ "user_resp_title": "Verantwortung des Benutzers", "user_resp_text": "Benutzer sind allein verantwortlich für die installierten Erweiterungen.", "dmca_title": "Urheberrecht & DMCA", - "dmca_text": "Wir respektieren die geistigen Eigentumsrechte anderer.", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "Keine Garantie", "warranty_text": "Diese Software wird ohne Mängelgewähr bereitgestellt." }, diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 33978f4f..547fd282 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -762,13 +762,13 @@ "analytics_enabled_title": "Analytics Enabled", "analytics_enabled_message": "Usage data will be collected to help improve the app. You can disable this at any time.", "disable_error_reporting_title": "Disable Error Reporting?", - "disable_error_reporting_message": "Disabling error reporting means we won\u2019t be notified of crashes or issues you experience. This may affect our ability to fix bugs.", + "disable_error_reporting_message": "Disabling error reporting means we won’t be notified of crashes or issues you experience. This may affect our ability to fix bugs.", "enable_session_replay_title": "Enable Session Replay?", "enable_session_replay_message": "Session replay records your screen when errors occur to help us understand what happened. This may capture visible content on your screen.", "enable_pii_title": "Enable PII Collection?", "enable_pii_message": "This allows collection of personally identifiable information like IP address and device details. This data helps diagnose issues but increases privacy exposure.", "disable_all_title": "Disable All Telemetry?", - "disable_all_message": "This will disable all analytics, error reporting, and session replay. We won\u2019t receive any data about app usage or crashes.", + "disable_all_message": "This will disable all analytics, error reporting, and session replay. We won’t receive any data about app usage or crashes.", "disable_all_button": "Disable All", "all_disabled_title": "All Telemetry Disabled", "all_disabled_message": "All data collection has been disabled. Changes take effect on next app restart.", @@ -901,8 +901,8 @@ }, "debrid": { "title": "Debrid Integration", - "description_torbox": "Unlock 4K high-quality streams and lightning-fast speeds by integrating Torbox. Enter your API Key below to instantly upgrade your streaming experience.", - "description_torrentio": "Configure Torrentio to get torrent streams for movies and TV shows. A debrid service is required to stream content.", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "Connected", @@ -929,15 +929,15 @@ "enter_api_key": "Enter your API Key", "connect_button": "Connect & Install", "connecting": "Connecting...", - "unlock_speeds_title": "Unlock Premium Speeds", - "unlock_speeds_desc": "Get a Torbox subscription to access cached high-quality streams with zero buffering.", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "Get Subscription", "powered_by": "Powered by", "disclaimer_torbox": "Nuvio is not affiliated with Torbox in any way.", "disclaimer_torrentio": "Nuvio is not affiliated with Torrentio in any way.", "installed_badge": "✓ INSTALLED", "promo_title": "⚡ Need a Debrid Service?", - "promo_desc": "Get TorBox for lightning-fast 4K streaming with zero buffering. Premium cached torrents and instant downloads.", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "Get TorBox Subscription", "service_label": "Debrid Service *", "api_key_label": "API Key *", @@ -1329,7 +1329,7 @@ "user_resp_title": "User Responsibility", "user_resp_text": "Users are solely responsible for the plugins they install and the content they access. By using this application, you agree to ensure that you have the legal right to access any content you view using Nuvio. The developers of Nuvio do not endorse or encourage copyright infringement.", "dmca_title": "Copyright & DMCA", - "dmca_text": "We respect the intellectual property rights of others. Since Nuvio does not host any content, we cannot remove content from the internet. However, if you believe that the application interface itself infringes on your rights, please contact us.", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "No Warranty", "warranty_text": "This software is provided \"as is\", without warranty of any kind, express or implied. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability arising from the use of this software." }, diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index b0ae867f..a885eef4 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -896,8 +896,8 @@ }, "debrid": { "title": "Integración de Debrid", - "description_torbox": "Desbloquea fuentes 4K de alta calidad y velocidades ultrarrápidas integrando Torbox. Introduce tu clave de API abajo para mejorar instantáneamente tu experiencia de streaming.", - "description_torrentio": "Configura Torrentio para obtener fuentes de torrents para películas y series. Se requiere un servicio de debrid para reproducir el contenido.", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "Conectado", @@ -924,15 +924,15 @@ "enter_api_key": "Introduce tu clave de API", "connect_button": "Conectar e instalar", "connecting": "Conectando...", - "unlock_speeds_title": "Desbloquea velocidades premium", - "unlock_speeds_desc": "Consigue una suscripción a Torbox para acceder a fuentes de alta calidad en caché sin buffering.", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "Conseguir suscripción", "powered_by": "Impulsado por", "disclaimer_torbox": "Nuvio no tiene ninguna afiliación con Torbox.", "disclaimer_torrentio": "Nuvio no tiene ninguna afiliación con Torrentio.", "installed_badge": "✓ INSTALADO", "promo_title": "⚡ ¿Necesitas un servicio de Debrid?", - "promo_desc": "Consigue TorBox para streaming 4K ultrarrápido sin buffering. Torrents en caché premium y descargas instantáneas.", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "Conseguir suscripción a TorBox", "service_label": "Servicio de Debrid *", "api_key_label": "Clave de API *", @@ -1324,7 +1324,7 @@ "user_resp_title": "Responsabilidad del usuario", "user_resp_text": "Los usuarios son los únicos responsables de las extensiones que instalan y del contenido al que acceden. Al utilizar esta aplicación, aceptas asegurarte de que tienes el derecho legal de acceder a cualquier contenido que veas utilizando Nuvio. Los desarrolladores de Nuvio no respaldan ni fomentan la infracción de derechos de autor.", "dmca_title": "Derechos de autor y DMCA", - "dmca_text": "Respetamos los derechos de propiedad intelectual de otros. Dado que Nuvio no aloja ningún contenido, no podemos eliminar contenido de Internet. Sin embargo, si crees que la interfaz de la aplicación en sí infringe tus derechos, por favor contáctanos.", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "Sin garantía", "warranty_text": "Este software se proporciona \"tal cual\", sin garantía de ningún tipo, expresa o implícita. En ningún caso los autores o titulares de los derechos de autor serán responsables de ninguna reclamación, daños u otra responsabilidad que surja del uso de este software." }, diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 19ba0e6d..170ab2aa 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -896,8 +896,8 @@ }, "debrid": { "title": "Intégration Debrid", - "description_torbox": "Débloquez des flux 4K de haute qualité et des vitesses fulgurantes en intégrant Torbox. Entrez votre clé API ci-dessous pour améliorer instantanément votre expérience de streaming.", - "description_torrentio": "Configurez Torrentio pour obtenir des flux torrent pour les films et les séries TV. Un service debrid est requis pour streamer le contenu.", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "Connecté", @@ -924,15 +924,15 @@ "enter_api_key": "Entrez votre clé API", "connect_button": "Connecter et installer", "connecting": "Connexion...", - "unlock_speeds_title": "Débloquez les vitesses premium", - "unlock_speeds_desc": "Obtenez un abonnement Torbox pour accéder à des flux en cache de haute qualité sans aucun buffering.", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "S'abonner", "powered_by": "Propulsé par", "disclaimer_torbox": "Nuvio n'est affilié à Torbox d'aucune façon.", "disclaimer_torrentio": "Nuvio n'est affilié à Torrentio d'aucune façon.", "installed_badge": "✓ INSTALLÉ", "promo_title": "⚡ Besoin d'un service Debrid ?", - "promo_desc": "Obtenez TorBox pour un streaming 4K ultra-rapide sans buffering. Torrents en cache premium et téléchargements instantanés.", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "Obtenir un abonnement TorBox", "service_label": "Service Debrid *", "api_key_label": "Clé API *", @@ -1324,7 +1324,7 @@ "user_resp_title": "Responsabilité de l'Utilisateur", "user_resp_text": "Les utilisateurs sont seuls responsables des extensions qu'ils installent et du contenu auquel ils accèdent. En utilisant cette application, vous acceptez de vous assurer que vous disposez du droit légal d'accéder à tout contenu que vous visualisez en utilisant Nuvio. Les développeurs de Nuvio ne cautionnent ni n'encouragent la violation du droit d'auteur.", "dmca_title": "Droits d'Auteur et DMCA", - "dmca_text": "Nous respectons les droits de propriété intellectuelle d'autrui. Étant donné que Nuvio n'héberge aucun contenu, nous ne pouvons pas supprimer de contenu d'Internet. Toutefois, si vous pensez que l'interface de l'application elle-même enfreint vos droits, veuillez nous contacter.", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "Aucune Garantie", "warranty_text": "Ce logiciel est fourni \"tel quel\", sans garantie d'aucune sorte, expresse ou implicite. En aucun cas, les auteurs ou titulaires de droits d'auteur ne pourront être tenus responsables de toute réclamation, dommage ou autre responsabilité découlant de l'utilisation de ce logiciel." }, diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index df34dc67..f2a7f8d0 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -896,8 +896,8 @@ }, "debrid": { "title": "Debrid एकीकरण", - "description_torbox": "Torbox को एकीकृत करके 4K उच्च-गुणवत्ता वाले स्ट्रीम और बिजली की तेज़ गति अनलॉक करें। अपने स्ट्रीमिंग अनुभव को तुरंत अपग्रेड करने के लिए नीचे अपनी API कुंजी दर्ज करें।", - "description_torrentio": "फिल्मों और टीवी शो के लिए टोरेंट स्ट्रीम प्राप्त करने के लिए Torrentio कॉन्फ़िगर करें। सामग्री स्ट्रीम करने के लिए एक डेब्रिड सेवा आवश्यक है।", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "जुड़ा हुआ", @@ -924,15 +924,15 @@ "enter_api_key": "अपनी API कुंजी दर्ज करें", "connect_button": "कनेक्ट करें और इंस्टॉल करें", "connecting": "कनेक्ट किया जा रहा है...", - "unlock_speeds_title": "प्रीमियम गति अनलॉक करें", - "unlock_speeds_desc": "शून्य बफरिंग के साथ कैश किए गए उच्च-गुणवत्ता वाले स्ट्रीम तक पहुंचने के लिए Torbox सदस्यता प्राप्त करें।", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "सदस्यता प्राप्त करें", "powered_by": "द्वारा संचालित", "disclaimer_torbox": "Nuvio किसी भी तरह से Torbox से संबद्ध नहीं है।", "disclaimer_torrentio": "Nuvio किसी भी तरह से Torrentio से संबद्ध नहीं है।", "installed_badge": "✓ स्थापित", "promo_title": "⚡ एक Debrid सेवा की आवश्यकता है?", - "promo_desc": "शून्य बफरिंग के साथ बिजली की तेज़ 4K स्ट्रीमिंग के लिए TorBox प्राप्त करें। प्रीमियम कैश किए गए टोरेंट और तत्काल डाउनलोड।", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "TorBox सदस्यता प्राप्त करें", "service_label": "Debrid सेवा *", "api_key_label": "API कुंजी *", @@ -1324,7 +1324,7 @@ "user_resp_title": "उपयोगकर्ता जिम्मेदारी", "user_resp_text": "उपयोगकर्ता पूरी तरह से उन प्लगइन्स के लिए जिम्मेदार हैं जिन्हें वे स्थापित करते हैं और जिस सामग्री तक वे पहुंचते हैं। इस एप्लिकेशन का उपयोग करके, आप यह सुनिश्चित करने के लिए सहमत हैं कि आपके पास Nuvio का उपयोग करके किसी भी सामग्री को देखने का कानूनी अधिकार है। Nuvio के डेवलपर्स कॉपीराइट उल्लंघन का समर्थन या प्रोत्साहन नहीं करते हैं।", "dmca_title": "कॉपीराइट और DMCA", - "dmca_text": "हम दूसरों के बौद्धिक संपदा अधिकारों का सम्मान करते हैं। चूंकि Nuvio किसी भी सामग्री को होस्ट नहीं करता है, इसलिए हम इंटरनेट से सामग्री नहीं हटा सकते हैं। हालाँकि, यदि आपको लगता है कि एप्लिकेशन इंटरफ़ेस स्वयं आपके अधिकारों का उल्लंघन करता है, तो कृपया हमसे संपर्क करें।", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "कोई वारंटी नहीं", "warranty_text": "यह सॉफ़्टवेयर \"जैसा है\" प्रदान किया जाता है, बिना किसी प्रकार की वारंटी, व्यक्त या निहित। किसी भी स्थिति में लेखक या कॉपीराइट धारक इस सॉफ़्टवेयर के उपयोग से उत्पन्न किसी भी दावे, क्षति या अन्य दायित्व के लिए उत्तरदायी नहीं होंगे।" }, diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 09bdfa73..e974081c 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -1,1414 +1,1413 @@ -{ - "common": { - "loading": "Učitavanje...", - "cancel": "Odustani", - "save": "Spremi", - "delete": "Obriši", - "edit": "Uredi", - "search": "Pretraži", - "error": "Pogreška", - "success": "Uspjeh", - "ok": "U redu", - "unknown": "Nepoznato", - "retry": "Pokušaj ponovno", - "try_again": "Pokušajte ponovno", - "go_back": "Idi natrag", - "settings": "Postavke", - "close": "Zatvori", - "enable": "Omogući", - "disable": "Onemogući", - "show_more": "Prikaži više", - "show_less": "Prikaži manje", - "load_more": "Učitaj više", - "unknown_date": "Nepoznat datum", - "anonymous_user": "Anonimni korisnik", - "time": { - "now": "Upravo sada", - "minutes_ago": "prije {{count}} min", - "hours_ago": "prije {{count}} h", - "days_ago": "prije {{count}} d" - }, - "days_short": { - "sun": "Ned", - "mon": "Pon", - "tue": "Uto", - "wed": "Sri", - "thu": "Čet", - "fri": "Pet", - "sat": "Sub" - }, - "email": "E-pošta", - "status": "Status" - }, - "home": { - "categories": { - "movies": "Filmovi", - "series": "Serije", - "channels": "Kanali" - }, - "movies": "Filmovi", - "tv_shows": "Serije", - "load_more_catalogs": "Učitaj više kataloga", - "no_content": "Sadržaj nije dostupan", - "add_catalogs": "Dodaj kataloge", - "sign_in_available": "Prijava je dostupna", - "sign_in_desc": "Možete se prijaviti bilo kada u Postavke → Račun", - "view_all": "Vidi sve", - "this_week": "Ovaj tjedan", - "upcoming": "Dolazeće", - "recently_released": "Nedavno objavljeno", - "no_scheduled_episodes": "Serije bez zakazanih epizoda", - "check_back_later": "Provjerite kasnije", - "continue_watching": "Nastavi gledati", - "up_next": "Sljedeće", - "up_next_caps": "SLJEDEĆE", - "released": "Objavljeno", - "new": "Novo", - "tba": "Bit će objavljeno", - "new_episodes": "{{count}} nove epizode", - "season_short": "S{{season}}", - "episode_short": "E{{episode}}", - "season": "Sezona {{season}}", - "episode": "Epizoda {{episode}}", - "movie": "Film", - "series": "Serija", - "tv_show": "Serija", - "percent_watched": "{{percent}}% pogledano", - "view_details": "Vidi detalje", - "remove": "Ukloni", - "play": "Reproduciraj", - "play_now": "Pokreni odmah", - "resume": "Nastavi", - "info": "Informacije", - "more_info": "Više informacija", - "my_list": "Moj popis", - "save": "Spremi", - "saved": "Spremljeno", - "retry": "Pokušaj ponovno", - "install_addons": "Instaliraj dodatke", - "settings": "Postavke", - "no_featured_content": "Nema istaknutog sadržaja", - "couldnt_load_featured": "Nije moguće učitati istaknuti sadržaj", - "no_featured_desc": "Instalirajte dodatke s katalozima ili promijenite izvor sadržaja u postavkama.", - "load_error_desc": "Došlo je do problema prilikom dohvaćanja istaknutog sadržaja. Provjerite vezu i pokušajte ponovno.", - "no_featured_available": "Nema dostupnog istaknutog sadržaja", - "no_description": "Opis nije dostupan" - }, - "navigation": { - "home": "Početna", - "library": "Knjižnica", - "search": "Pretraživanje", - "downloads": "Preuzimanja", - "settings": "Postavke" - }, - "search": { - "title": "Pretraživanje", - "recent_searches": "Nedavna pretraživanja", - "discover": "Otkrij", - "movies": "Filmovi", - "tv_shows": "Serije", - "select_catalog": "Odaberi katalog", - "all_genres": "Svi žanrovi", - "discovering": "Otkrivanje sadržaja...", - "show_more": "Prikaži više ({{count}})", - "no_content_found": "Sadržaj nije pronađen", - "try_different": "Pokušajte s drugim žanrom ili katalogom", - "select_catalog_desc": "Odaberite katalog za istraživanje", - "tap_catalog_desc": "Dodirnite karticu kataloga iznad za početak", - "placeholder": "Pretraži filmove, serije...", - "keep_typing": "Nastavite tipkati...", - "type_characters": "Upišite barem 2 znaka za pretraživanje", - "no_results": "Nema rezultata", - "try_keywords": "Pokušajte s drugim ključnim riječima ili provjerite pravopis", - "select_type": "Odaberi vrstu", - "browse_movies": "Pregledaj kataloge filmova", - "browse_tv": "Pregledaj kataloge serija", - "select_genre": "Odaberi žanr", - "show_all_content": "Prikaži sav sadržaj", - "genres_count": "{{count}} žanrova" - }, - "library": { - "title": "Knjižnica", - "watched": "Pogledano", - "continue": "Nastavi", - "watchlist": "Popis za gledanje", - "collection": "Kolekcija", - "rated": "Ocijenjeno", - "items": "stavki", - "trakt_collections": "Trakt kolekcije", - "trakt_collection": "Trakt kolekcija", - "no_trakt": "Nema Trakt kolekcija", - "no_trakt_desc": "Vaše Trakt kolekcije pojavit će se ovdje kada počnete koristiti Trakt", - "load_collections": "Učitaj kolekcije", - "empty_folder": "Nema sadržaja u {{folder}}", - "empty_folder_desc": "Ova kolekcija je prazna", - "refresh": "Osvježi", - "no_movies": "Još nema filmova", - "no_series": "Još nema serija", - "no_content": "Još nema sadržaja", - "add_content_desc": "Dodajte sadržaj u svoju knjižnicu kako biste ga vidjeli ovdje", - "find_something": "Pronađi nešto za gledanje", - "removed_from_library": "Uklonjeno iz knjižnice", - "item_removed": "Stavka je uklonjena iz vaše knjižnice", - "failed_update_library": "Ažuriranje knjižnice nije uspjelo", - "unable_remove": "Nije moguće ukloniti stavku iz knjižnice", - "marked_watched": "Označeno kao pogledano", - "marked_unwatched": "Označeno kao nepogledano", - "item_marked_watched": "Stavka je označena kao pogledana", - "item_marked_unwatched": "Stavka je označena kao nepogledana", - "failed_update_watched": "Ažuriranje statusa gledanja nije uspjelo", - "unable_update_watched": "Nije moguće ažurirati status gledanja", - "added_to_library": "Dodano u knjižnicu", - "item_added": "Dodano u vašu lokalnu knjižnicu", - "add_to_library": "Dodaj u knjižnicu", - "remove_from_library": "Ukloni iz knjižnice", - "mark_watched": "Označi kao pogledano", - "mark_unwatched": "Označi kao nepogledano", - "share": "Podijeli", - "add_to_watchlist": "Dodaj na Trakt popis za gledanje", - "remove_from_watchlist": "Ukloni s Trakt popisa za gledanje", - "added_to_watchlist": "Dodano na popis za gledanje", - "added_to_watchlist_desc": "Dodano na vaš Trakt popis za gledanje", - "removed_from_watchlist": "Uklonjeno s popisa za gledanje", - "removed_from_watchlist_desc": "Uklonjeno s vašeg Trakt popisa za gledanje", - "add_to_collection": "Dodaj u Trakt kolekciju", - "remove_from_collection": "Ukloni iz Trakt kolekcije", - "added_to_collection": "Dodano u kolekciju", - "added_to_collection_desc": "Dodano u vašu Trakt kolekciju", - "removed_from_collection": "Uklonjeno iz kolekcije", - "removed_from_collection_desc": "Uklonjeno iz vaše Trakt kolekcije" - }, - "metadata": { - "unable_to_load": "Nije moguće učitati sadržaj", - "error_code": "Šifra pogreške: {{code}}", - "content_not_found": "Sadržaj nije pronađen", - "content_not_found_desc": "Ovaj sadržaj ne postoji ili je možda uklonjen.", - "server_error": "Pogreška poslužitelja", - "server_error_desc": "Poslužitelj je privremeno nedostupan. Pokušajte ponovno kasnije.", - "bad_gateway": "Loš gateway", - "bad_gateway_desc": "Poslužitelj ima poteškoća. Pokušajte ponovno kasnije.", - "service_unavailable": "Usluga nedostupna", - "service_unavailable_desc": "Usluga je trenutno na održavanju. Pokušajte ponovno kasnije.", - "too_many_requests": "Previše zahtjeva", - "too_many_requests_desc": "Šaljete previše zahtjeva. Pričekajte trenutak i pokušajte ponovno.", - "request_timeout": "Istek vremena zahtjeva", - "request_timeout_desc": "Zahtjev je trajao predugo. Pokušajte ponovno.", - "network_error": "Pogreška mreže", - "network_error_desc": "Provjerite internetsku vezu i pokušajte ponovno.", - "auth_error": "Pogreška autentifikacije", - "auth_error_desc": "Provjerite postavke računa i pokušajte ponovno.", - "access_denied": "Pristup odbijen", - "access_denied_desc": "Nemate dopuštenje za pristup ovom sadržaju.", - "connection_error": "Pogreška veze", - "streams_unavailable": "Streaming izvori nedostupni", - "streams_unavailable_desc": "Izvori za streaming trenutno su nedostupni. Pokušajte ponovno kasnije.", - "unknown_error": "Nepoznata pogreška", - "something_went_wrong": "Nešto je pošlo po zlu. Pokušajte ponovno.", - "cast": "Glumačka postava", - "more_like_this": "Slično ovome", - "collection": "Kolekcija", - "episodes": "Epizode", - "seasons": "Sezone", - "posters": "Posteri", - "banners": "Banneri", - "specials": "Specijali", - "season_number": "Sezona {{number}}", - "episode_count": "{{count}} epizoda", - "episode_count_plural": "{{count}} epizoda", - "no_episodes": "Nema dostupnih epizoda", - "no_episodes_for_season": "Nema dostupnih epizoda za Sezonu {{season}}", - "episodes_not_released": "Epizode možda još nisu objavljene", - "no_description": "Opis nije dostupan", - "episode_label": "EPIZODA {{number}}", - "watch_again": "Gledaj ponovno", - "completed": "Završeno", - "play_episode": "Reproduciraj S{{season}}E{{episode}}", - "play": "Reproduciraj", - "watched": "Pogledano", - "watched_on_trakt": "Pogledano na Traktu", - "synced_with_trakt": "Sinkronizirano s Traktom", - "saved": "Spremljeno", - "director": "Redatelj", - "directors": "Redatelji", - "creator": "Autor", - "creators": "Autori", - "production": "Produkcija", - "network": "Mreža", - "mark_watched": "Označi kao pogledano", - "mark_unwatched": "Označi kao nepogledano", - "marking": "Označavanje...", - "removing": "Uklanjanje...", - "unmark_season": "Odznači Sezonu {{season}}", - "mark_season": "Označi Sezonu {{season}}", - "resume": "Nastavi", - "spoiler_warning": "Upozorenje o spoilerima", - "spoiler_warning_desc": "Ovaj komentar sadrži spoilere. Jeste li sigurni da ga želite otkriti?", - "cancel": "Odustani", - "reveal_spoilers": "Otkrij spoilere", - "movie_details": "Detalji o filmu", - "show_details": "Detalji o seriji", - "tagline": "Slogan", - "status": "Status", - "release_date": "Datum izlaska", - "runtime": "Trajanje", - "budget": "Budžet", - "revenue": "Prihod", - "origin_country": "Zemlja podrijetla", - "original_language": "Izvorni jezik", - "first_air_date": "Datum prve emisije", - "last_air_date": "Datum zadnje emisije", - "total_episodes": "Ukupno epizoda", - "episode_runtime": "Trajanje epizode", - "created_by": "Autor", - "backdrop_gallery": "Galerija pozadina", - "loading_episodes": "Učitavanje epizoda...", - "no_episodes_available": "Nema dostupnih epizoda", - "play_next": "Reproduciraj S{{season}}E{{episode}}", - "play_next_episode": "Reproduciraj sljedeću epizodu", - "save": "Spremi", - "percent_watched": "{{percent}}% pogledano", - "percent_watched_trakt": "{{percent}}% pogledano ({{traktPercent}}% na Traktu)", - "synced_with_trakt_progress": "Sinkronizirano s Traktom", - "using_trakt_progress": "Koristi se Trakt napredak", - "added_to_collection_hero": "Dodano u kolekciju", - "added_to_collection_desc_hero": "Dodano u vašu Trakt kolekciju", - "removed_from_collection_hero": "Uklonjeno iz kolekcije", - "removed_from_collection_desc_hero": "Uklonjeno iz vaše Trakt kolekcije", - "mark_as_watched": "Označi kao pogledano", - "mark_as_unwatched": "Označi kao nepogledano" - }, - "cast": { - "biography": "Biografija", - "known_for": "Poznat po", - "personal_info": "Osobni podaci", - "born_in": "Rođen u {{place}}", - "filmography": "Filmografija", - "also_known_as": "Poznat i kao", - "no_info_available": "Dodatne informacije nisu dostupne", - "as_character": "kao {{character}}", - "loading_details": "Učitavanje detalja...", - "years_old": "{{age}} godina", - "view_filmography": "Vidi filmografiju", - "filter": "Filter", - "sort_by": "Sortiraj po", - "sort_popular": "Popularno", - "sort_latest": "Najnovije", - "sort_upcoming": "Dolazeće", - "upcoming_badge": "DOLAZI", - "coming_soon": "Dolazi uskoro", - "filmography_count": "Filmografija • {{count}} naslova", - "loading_filmography": "Učitavanje filmografije...", - "load_more_remaining": "Učitaj više (preostalo {{count}})", - "alert_error_title": "Pogreška", - "alert_error_message": "Nije moguće učitati \"{{title}}\". Pokušajte ponovno kasnije.", - "alert_ok": "U redu", - "no_upcoming": "Nema dolazećih izdanja za ovog glumca", - "no_content": "Sadržaj nije dostupan za ovog glumca", - "no_movies": "Nema dostupnih filmova za ovog glumca", - "no_tv": "Nema dostupnih serija za ovog glumca" - }, - "comments": { - "title": "Trakt komentari", - "spoiler_warning": "⚠️ Ovaj komentar sadrži spoilere. Dodirni za prikaz.", - "spoiler": "Spoiler", - "contains_spoilers": "Sadrži spoilere", - "reveal": "Otkrij", - "vip": "VIP", - "unavailable": "Komentari nedostupni", - "no_comments": "Još nema komentara na Traktu", - "not_in_database": "Ovaj sadržaj možda još nije u Trakt bazi podataka", - "check_trakt": "Provjeri Trakt" - }, - "trailers": { - "title": "Traileri", - "official_trailers": "Službeni traileri", - "official_trailer": "Službeni trailer", - "teasers": "Teaseri", - "teaser": "Teaser", - "clips_scenes": "Isječci i scene", - "clip": "Isječak", - "featurettes": "Featurettes", - "featurette": "Featurette", - "behind_the_scenes": "Iza kulisa", - "no_trailers": "Nema dostupnih trailera", - "unavailable": "Trailer nedostupan", - "unavailable_desc": "Ovaj trailer trenutno se ne može učitati. Pokušajte ponovno kasnije.", - "unable_to_play": "Nije moguće reproducirati trailer. Pokušajte ponovno.", - "watch_on_youtube": "Gledaj na YouTubeu" - }, - "catalog": { - "no_content_found": "Sadržaj nije pronađen", - "no_content_filters": "Nije pronađen sadržaj za odabrane filtere", - "loading_content": "Učitavanje sadržaja...", - "back": "Natrag", - "in_theaters": "U kinima", - "all": "Sve", - "failed_tmdb": "Učitavanje sadržaja s TMDB-a nije uspjelo", - "movies": "Filmovi", - "tv_shows": "Serije", - "channels": "Kanali" - }, - "streams": { - "back_to_episodes": "Natrag na epizode", - "back_to_info": "Natrag na informacije", - "fetching_from": "Dohvaćanje iz:", - "no_sources_available": "Nema dostupnih izvora za streaming", - "add_sources_desc": "Molimo dodajte izvore za streaming u postavkama", - "add_sources": "Dodaj izvore", - "finding_streams": "Pronalaženje dostupnih streamova...", - "finding_best_stream": "Pronalaženje najboljeg streama za automatsku reprodukciju...", - "still_fetching": "Dohvaćanje streamova i dalje u tijeku...", - "no_streams_available": "Nema dostupnih streamova", - "starting_best_stream": "Pokretanje najboljeg streama...", - "loading_more_sources": "Učitavanje dodatnih izvora..." - }, - "player_ui": { - "via": "putem {{name}}", - "audio_tracks": "Zvučni zapisi", - "no_audio_tracks": "Nema dostupnih zvučnih zapisa", - "playback_speed": "Brzina reprodukcije", - "on_hold": "Na čekanju", - "playback_error": "Pogreška pri reprodukciji", - "unknown_error": "Došlo je do nepoznate pogreške tijekom reprodukcije.", - "copy_error": "Kopiraj detalje pogreške", - "copied_to_clipboard": "Kopirano u međuspremnik", - "dismiss": "Zatvori", - "continue_watching": "Nastavi gledati", - "start_over": "Kreni ispočetka", - "resume": "Nastavi", - "change_source": "Promijeni izvor", - "switching_source": "Promjena izvora...", - "no_sources_found": "Nema pronađenih izvora", - "sources": "Izvori", - "finding_sources": "Pronalaženje izvora...", - "unknown_source": "Nepoznat izvor", - "sources_limited": "Izvori mogu biti ograničeni zbog pogrešaka pružatelja usluga.", - "episodes": "Epizode", - "specials": "Specijali", - "season": "Sezona {{season}}", - "stream": "Stream {{number}}", - "subtitles": "Titlovi", - "built_in": "Ugrađeno", - "addons": "Dodaci", - "style": "Stil", - "none": "Nijedan", - "search_online_subtitles": "Pretraži titlove na mreži", - "preview": "Pretpregled", - "quick_presets": "Brze postavke", - "default": "Zadano", - "yellow": "Žuta", - "high_contrast": "Visoki kontrast", - "large": "Veliko", - "core": "Osnovno", - "font_size": "Veličina fonta", - "show_background": "Prikaži pozadinu", - "advanced": "Napredno", - "position": "Položaj", - "text_color": "Boja teksta", - "align": "Poravnanje", - "bottom_offset": "Pomak od dna", - "background_opacity": "Prozirnost pozadine", - "text_shadow": "Sjena teksta", - "on": "Uključeno", - "off": "Isključeno", - "outline_color": "Boja obruba", - "outline": "Obrub", - "outline_width": "Širina obruba", - "letter_spacing": "Razmak slova", - "line_height": "Visina retka", - "timing_offset": "Pomak vremena (s)", - "visual_sync": "Vizualna sinkronizacija", - "timing_hint": "Pomaknite titlove ranije (-) ili kasnije (+) za sinkronizaciju ako je potrebno.", - "reset_defaults": "Vrati na zadano" - }, - "downloads": { - "title": "Preuzimanja", - "no_downloads": "Još nema preuzimanja", - "no_downloads_desc": "Preuzeti sadržaj pojavit će se ovdje za gledanje izvan mreže", - "explore": "Istraži sadržaj", - "path_copied": "Putanja kopirana", - "path_copied_desc": "Lokalna putanja datoteke kopirana u međuspremnik", - "copied": "Kopirano", - "incomplete": "Preuzimanje nepotpuno", - "incomplete_desc": "Preuzimanje još nije završeno", - "not_available": "Nije dostupno", - "not_available_desc": "Lokalna putanja datoteke dostupna je tek nakon završetka preuzimanja.", - "status_downloading": "Preuzimanje", - "status_completed": "Dovršeno", - "status_paused": "Pauzirano", - "status_error": "Pogreška", - "status_queued": "U redu čekanja", - "status_unknown": "Nepoznato", - "provider": "Pružatelj usluge", - "streaming_playlist_warning": "Možda se neće reproducirati - streaming playlista", - "remaining": "preostalo", - "not_ready": "Preuzimanje nije spremno", - "not_ready_desc": "Molimo pričekajte dok preuzimanje ne završi.", - "filter_all": "Sve", - "filter_active": "Aktivno", - "filter_done": "Gotovo", - "filter_paused": "Pauzirano", - "no_filter_results": "Nema {{filter}} preuzimanja", - "try_different_filter": "Pokušajte odabrati drugi filter", - "limitations_title": "Ograničenja preuzimanja", - "limitations_msg": "• Datoteke manje od 1MB obično su M3U8 streaming liste i ne mogu se preuzeti za gledanje izvan mreže. One rade samo s online streamingom i sadrže poveznice na segmente videa, a ne stvarni video sadržaj.", - "remove_title": "Ukloni preuzimanje", - "remove_confirm": "Ukloniti \"{{title}}\"{{season_episode}}?", - "cancel": "Odustani", - "remove": "Ukloni" - }, - "addons": { - "title": "Dodaci", - "reorder_mode": "Način preslagivanja", - "reorder_info": "Dodaci na vrhu imaju veći prioritet prilikom učitavanja sadržaja", - "add_addon_placeholder": "URL dodatka", - "add_button": "Dodaj dodatak", - "my_addons": "Moji dodaci", - "community_addons": "Dodaci zajednice", - "no_addons": "Nema instaliranih dodataka", - "uninstall_title": "Deinstaliraj dodatak", - "uninstall_message": "Jeste li sigurni da želite deinstalirati {{name}}?", - "uninstall_button": "Deinstaliraj", - "install_success": "Dodatak je uspješno instaliran", - "install_error": "Instalacija dodatka nije uspjela", - "load_error": "Učitavanje dodataka nije uspjelo", - "fetch_error": "Dohvaćanje detalja dodatka nije uspjelo", - "invalid_url": "Molimo unesite URL dodatka", - "configure": "Konfiguriraj", - "version": "Verzija: {{version}}", - "installed_addons": "INSTALIRANI DODACI", - "reorder_drag_title": "POVUCITE DODATKE ZA PRESLAGIVANJE", - "install": "Instaliraj", - "config_unavailable_title": "Konfiguracija nedostupna", - "config_unavailable_msg": "Nije moguće odrediti URL konfiguracije za ovaj dodatak.", - "cannot_open_config_title": "Nije moguće otvoriti konfiguraciju", - "cannot_open_config_msg": "Konfiguracijski URL ({{url}}) ne može se otvoriti. Dodatak možda nema stranicu za konfiguraciju.", - "description": "Opis", - "supported_types": "Podržane vrste", - "catalogs": "Katalozi", - "no_description": "Opis nije dostupan", - "overview": "PREGLED", - "no_categories": "Nema kategorija", - "pre_installed": "PREDINSTRUALIRANO" - }, - "trakt": { - "title": "Trakt postavke", - "settings_title": "Trakt postavke", - "connect_title": "Poveži se s Traktom", - "connect_desc": "Sinkronizirajte povijest gledanja, popis za gledanje i kolekciju s Trakt.tv", - "sign_in": "Prijavi se na Trakt", - "sign_out": "Odjava", - "sign_out_confirm": "Jeste li sigurni da se želite odjaviti s vašeg Trakt računa?", - "joined": "Pridružen {{date}}", - "sync_settings_title": "Postavke sinkronizacije", - "sync_info": "Kada ste povezani s Traktom, cijela povijest se sinkronizira izravno putem API-ja i ne zapisuje se u lokalnu pohranu. Vaš popis 'Nastavi gledati' odražava vaš ukupni Trakt napredak.", - "auto_sync_label": "Automatska sinkronizacija napretka", - "auto_sync_desc": "Automatski sinkroniziraj napredak gledanja na Trakt", - "import_history_label": "Uvezi povijest gledanja", - "import_history_desc": "Koristite 'Sinkroniziraj sada' za uvoz povijesti gledanja i napretka s Trakta", - "sync_now_button": "Sinkroniziraj sada", - "display_settings_title": "Postavke prikaza", - "show_comments_label": "Prikaži Trakt komentare", - "show_comments_desc": "Prikaži Trakt komentare u detaljima sadržaja kada su dostupni", - "maintenance_title": "Održavanje u tijeku", - "maintenance_unavailable": "Trakt nedostupan", - "maintenance_desc": "Integracija s Traktom privremeno je zaustavljena zbog održavanja. Sinkronizacija i autentifikacija su onemogućeni dok se održavanje ne završi.", - "maintenance_button": "Usluga se održava", - "auth_success_title": "Uspješno povezano", - "auth_success_msg": "Vaš Trakt račun je uspješno povezan.", - "auth_error_title": "Pogreška autentifikacije", - "auth_error_msg": "Autentifikacija s Traktom nije uspjela.", - "auth_error_generic": "Došlo je do pogreške tijekom autentifikacije.", - "sign_out_error": "Odjava s Trakta nije uspjela.", - "sync_complete_title": "Sinkronizacija završena", - "sync_success_msg": "Vaš napredak gledanja uspješno je sinkroniziran s Traktom.", - "sync_error_msg": "Sinkronizacija nije uspjela. Molimo pokušajte ponovno." - }, - "simkl": { - "title": "Simkl postavke", - "settings_title": "Simkl postavke", - "connect_title": "Poveži se sa Simklom", - "connect_desc": "Sinkronizirajte povijest gledanja i pratite što gledate", - "sign_in": "Prijavi se na Simkl", - "sign_out": "Odspoji se", - "sign_out_confirm": "Jeste li sigurni da se želite odspojiti sa Simkla?", - "syncing_desc": "Vaše pogledane stavke sinkroniziraju se sa Simklom.", - "auth_success_title": "Uspješno povezano", - "auth_success_msg": "Vaš Simkl račun je uspješno povezan.", - "auth_error_title": "Pogreška autentifikacije", - "auth_error_msg": "Autentifikacija sa Simklom nije uspjela.", - "auth_error_generic": "Došlo je do pogreške tijekom autentifikacije.", - "sign_out_error": "Odspajanje sa Simkla nije uspjelo.", - "config_error_title": "Pogreška konfiguracije", - "config_error_msg": "Simkl Client ID nedostaje u varijablama okruženja.", - "conflict_title": "Sukob", - "conflict_msg": "Ne možete se povezati sa Simklom dok je Trakt povezan. Molimo prvo odspojite Trakt.", - "disclaimer": "Nuvio nije povezan sa Simklom." - }, - "tmdb_settings": { - "title": "TMDb postavke", - "metadata_enrichment": "Obogaćivanje metapodataka", - "metadata_enrichment_desc": "Poboljšajte metapodatke sadržaja s TMDb podacima za bolje detalje i informacije.", - "enable_enrichment": "Omogući obogaćivanje", - "enable_enrichment_desc": "Proširuje metapodatke dodataka s TMDb-a za glumačku postavu, dobne ocjene, logotipe/postere i informacije o produkciji.", - "localized_text": "Lokalizirani tekst", - "localized_text_desc": "Dohvati naslove i opise na vašem željenom jeziku s TMDb-a.", - "language": "Jezik", - "change": "Promijeni", - "logo_preview": "Pretpregled logotipa", - "logo_preview_desc": "Pretpregled pokazuje kako će se lokalizirani logotipi pojaviti na odabranom jeziku.", - "example": "Primjer:", - "no_logo": "Logotip nije dostupan", - "enrichment_options": "Opcije obogaćivanja", - "enrichment_options_desc": "Kontrolirajte koji se podaci dohvaćaju s TMDb-a. Onemogućene opcije koristit će podatke iz dodatka ako su dostupni.", - "cast_crew": "Glumci i ekipa", - "cast_crew_desc": "Glumci, redatelji, scenaristi s profilnim fotografijama", - "title_description": "Naslov i opis", - "title_description_desc": "Koristi TMDb lokalizirani naslov i opis", - "title_logos": "Logotipi naslova", - "title_logos_desc": "Visokokvalitetne slike naslova", - "banners_backdrops": "Banneri i pozadine", - "banners_backdrops_desc": "Slike pozadina visoke rezolucije", - "certification": "Dobna ocjena sadržaja", - "certification_desc": "Dobne preporuke (PG-13, R, TV-MA, itd.)", - "recommendations": "Preporuke", - "recommendations_desc": "Prijedlozi sličnog sadržaja", - "episode_data": "Podaci o epizodama", - "episode_data_desc": "Sličice epizoda, informacije i zamjenski podaci za serije", - "season_posters": "Posteri sezona", - "season_posters_desc": "Slike postera specifične za sezonu", - "production_info": "Informacije o produkciji", - "production_info_desc": "Mreže i produkcijske kuće s logotipima", - "movie_details": "Detalji o filmu", - "movie_details_desc": "Budžet, prihod, trajanje, slogan", - "tv_details": "Detalji o seriji", - "tv_details_desc": "Status, broj sezona, mreže, autori", - "movie_collections": "Kolekcije filmova", - "movie_collections_desc": "Filmske franšize (Marvel, Star Wars, itd.)", - "api_configuration": "API konfiguracija", - "api_configuration_desc": "Konfigurirajte svoj TMDb API pristup za poboljšanu funkcionalnost.", - "custom_api_key": "Prilagođeni API ključ", - "custom_api_key_desc": "Koristite vlastiti TMDb API ključ za bolje performanse i namjenska ograničenja.", - "custom_key_active": "Prilagođeni API ključ je aktivan", - "api_key_required": "Potreban je API ključ", - "api_key_placeholder": "Zalijepite svoj TMDb API ključ (v3)", - "how_to_get_key": "Kako dobiti TMDb API ključ?", - "built_in_key_msg": "Trenutno se koristi ugrađeni API ključ. Razmislite o korištenju vlastitog ključa za bolje performanse.", - "cache_size": "Veličina predmemorije", - "clear_cache": "Očisti predmemoriju", - "cache_days": "TMDb odgovori se spremaju 7 dana radi boljih performansi", - "choose_language": "Odaberi jezik", - "choose_language_desc": "Odaberite željeni jezik za TMDb sadržaj", - "popular": "Popularno", - "all_languages": "Svi jezici", - "search_results": "Rezultati pretraživanja", - "no_languages_found": "Nema pronađenih jezika za \"{{query}}\"", - "clear_search": "Očisti pretragu", - "clear_cache_title": "Očisti TMDb predmemoriju", - "clear_cache_msg": "Ovo će obrisati sve spremljene TMDb podatke ({{size}}). To može privremeno usporiti učitavanje dok se predmemorija ponovno ne izgradi.", - "clear_cache_success": "TMDb predmemorija je uspješno očišćena.", - "clear_cache_error": "Čišćenje predmemorije nije uspjelo.", - "clear_api_key_title": "Ukloni API ključ", - "clear_api_key_msg": "Jeste li sigurni da želite ukloniti svoj prilagođeni API ključ i vratiti se na zadani?", - "clear_api_key_success": "API ključ je uspješno uklonjen", - "clear_api_key_error": "Uklanjanje API ključa nije uspjelo", - "empty_api_key": "API ključ ne može biti prazan.", - "invalid_api_key": "Nevažeći API ključ. Provjerite i pokušajte ponovno.", - "save_error": "Došlo je do pogreške pri spremanju. Pokušajte ponovno.", - "using_builtin_key": "Sada koristite ugrađeni TMDb API ključ.", - "using_custom_key": "Sada koristite svoj prilagođeni TMDb API ključ.", - "enter_custom_key": "Molimo unesite i spremite svoj prilagođeni TMDb API ključ.", - "key_verified": "API ključ je verificiran i uspješno spremljen." - }, - "settings": { - "language": "Jezik", - "select_language": "Odaberi jezik", - "english": "Engleski", - "portuguese": "Portugalski", - "portuguese_br": "Portugalski (Brazil)", - "portuguese_pt": "Portugalski (Portugal)", - "german": "Njemački", - "arabic": "Arapski", - "spanish": "Španjolski", - "french": "Francuski", - "italian": "Talijanski", - "croatian": "Hrvatski", - "chinese": "Kineski (pojednostavljeni)", - "hindi": "Hindski", - "serbian": "Srpski", - "account": "Račun", - "content_discovery": "Sadržaj i otkrivanje", - "appearance": "Izgled", - "integrations": "Integracije", - "playback": "Reprodukcija", - "backup_restore": "Sigurnosna kopija i vraćanje", - "updates": "Ažuriranja", - "about": "O aplikaciji", - "developer": "Razvojni programer", - "cache": "Predmemorija", - "title": "Postavke", - "settings_title": "Postavke", - "sign_in_sync": "Prijavite se za sinkronizaciju", - "add_catalogs_sources": "Dodaci, katalozi i izvori", - "player_trailers_downloads": "Player, traileri, preuzimanja", - "mdblist_tmdb_ai": "MDBList, TMDB, AI", - "check_updates": "Provjeri ažuriranja", - "clear_mdblist_cache": "Očisti MDBList predmemoriju", - "cache_management": "UPRAVLJANJE PREDMEMORIJOM", - "downloads_counter": "preuzimanja i raste", - "made_with_love": "Napravljeno s ❤️ - Tapframe i prijatelji", - "sections": { - "information": "INFORMACIJE", - "account": "RAČUN", - "theme": "TEMA", - "layout": "RASPORED", - "sources": "IZVORI", - "catalogs": "KATALOZI", - "discovery": "OTKRIVANJE", - "metadata": "METAPODACI", - "ai_assistant": "AI ASISTENT", - "video_player": "VIDEO PLAYER", - "audio_subtitles": "AUDIO I TITLOVI", - "media": "MEDIJI", - "notifications": "OBAVIJESTI", - "testing": "TESTIRANJE", - "danger_zone": "ZONA OPASNOSTI" - }, - "items": { - "legal": "Pravne napomene i odricanje odgovornosti", - "privacy_policy": "Pravila privatnosti", - "report_issue": "Prijavi problem", - "version": "Verzija", - "contributors": "Suradnici", - "view_contributors": "Prikaži sve suradnike", - "theme": "Tema", - "episode_layout": "Raspored epizoda", - "streams_backdrop": "Pozadina streamova", - "streams_backdrop_desc": "Prikaži zamućenu pozadinu na streamovima na mobitelu", - "addons": "Dodaci", - "installed": "instalirano", - "debrid_integration": "Debrid integracija", - "debrid_desc": "Poveži Torbox", - "plugins": "Priključci", - "plugins_desc": "Upravljaj priključcima i repozitorijima", - "catalogs": "Katalozi", - "active": "aktivno", - "home_screen": "Početni zaslon", - "home_screen_desc": "Raspored i sadržaj", - "continue_watching": "Nastavi gledati", - "continue_watching_desc": "Predmemorija i ponašanje reprodukcije", - "show_discover": "Prikaži odjeljak 'Otkrij'", - "show_discover_desc": "Prikaži sadržaj za otkrivanje u pretrazi", - "mdblist": "MDBList", - "mdblist_connected": "Povezano", - "mdblist_desc": "Omogući za prikaz ocjena i recenzija", - "simkl": "Simkl", - "simkl_connected": "Povezano", - "simkl_desc": "Prati što gledaš", - "tmdb": "TMDB", - "tmdb_desc": "Pružatelj metapodataka i logotipa", - "openrouter": "OpenRouter API", - "openrouter_connected": "Povezano", - "openrouter_desc": "Dodaj API ključ za AI chat", - "video_player": "Video player", - "built_in": "Ugrađeni", - "external": "Vanjski", - "preferred_audio": "Željeni jezik zvuka", - "preferred_subtitle": "Željeni jezik titlova", - "subtitle_source": "Prioritet izvora titlova", - "auto_select_subs": "Automatski odabir titlova", - "auto_select_subs_desc": "Automatski odaberi titlove koji odgovaraju vašim postavkama", - "show_trailers": "Prikaži najave", - "show_trailers_desc": "Prikaži najave u glavnom odjeljku", - "enable_downloads": "Omogući preuzimanja", - "enable_downloads_desc": "Prikaži karticu Preuzimanja i omogući spremanje streamova", - "notifications": "Obavijesti", - "notifications_desc": "Podsjetnici za epizode", - "developer_tools": "Razvojni alati", - "developer_tools_desc": "Opcije za testiranje i uklanjanje pogrešaka", - "test_onboarding": "Testiraj uvodni ekran", - "reset_onboarding": "Resetiraj uvodni ekran", - "test_announcement": "Testiraj objavu", - "test_announcement_desc": "Prikaži prozor s novostima", - "reset_campaigns": "Resetiraj kampanje", - "reset_campaigns_desc": "Očisti zapise o prikazanim kampanjama", - "clear_all_data": "Očisti sve podatke", - "clear_all_data_desc": "Resetiraj sve postavke i predmemorirane podatke" - }, - "options": { - "horizontal": "Vodoravno", - "vertical": "Okomito", - "internal_first": "Prvo unutarnji", - "internal_first_desc": "Prednost imaju ugrađeni titlovi, zatim vanjski", - "external_first": "Prvo vanjski", - "external_first_desc": "Prednost imaju titlovi iz dodataka, zatim ugrađeni", - "any_available": "Bilo koji dostupni", - "any_available_desc": "Koristi prvi dostupni zapis titlova" - }, - "clear_data_desc": "Ovo će resetirati sve postavke i obrisati sve privremene podatke. Jeste li sigurni?", - "app_updates": "Ažuriranja aplikacije", - "about_nuvio": "O Nuviju" - }, - "privacy": { - "title": "Privatnost i Podaci", - "settings_desc": "Kontrolirajte telemetriju i prikupljanje podataka", - "info_title": "Vaša Privatnost nam je Važna", - "info_description": "Kontrolirajte koje podatke se prikupljaju i dijele. Analitika je podrazumevano onemogućena, a izveštaji o greškama su anonimni po zadanom.", - "analytics_enabled_title": "Analitika Omogućena", - "analytics_enabled_message": "Podaci o korišćenju će se prikupljati kako bi se poboljšala aplikacija. Možete to onemogućiti u bilo kojem trenutku.", - "disable_error_reporting_title": "Onemogućiti Izveštavanje o Greškama?", - "disable_error_reporting_message": "Onemogućavanje izveštavanja o greškama znači da nećemo biti obavesteni o padu ili problemima koje doživljate. Ovo može uticati na našu sposobnost da ispravimo greške.", - "enable_session_replay_title": "Omogućiti Reprodukciju Sesije?", - "enable_session_replay_message": "Reprodukcija sesije snima vaš ekran kada se greške dogode kako bi nam pomogla da razumemo šta se desilo. Ovo može da hvata vidljiv sadržaj na vašoj ekranu.", - "enable_pii_title": "Omogućiti Prikupljanje PII?", - "enable_pii_message": "Ovo omogućava prikupljanje lično identifikabilnih podataka kao što su IP adresa i detalji uređaja. Ovi podaci pomažu u dijagnostici problema, ali povećavaju izloženost privatnosti.", - "disable_all_title": "Onemogućiti Svu Telemetriju?", - "disable_all_message": "Ovo će onemogućiti svu analitiku, izveštavanje o greškama i reprodukciju sesije. Nećemo primati nikakve podatke o korišćenju aplikacije ili padevima.", - "disable_all_button": "Onemogući Sve", - "all_disabled_title": "Sva Telemetrija Onemogućena", - "all_disabled_message": "Svo prikupljanje podataka je onemogućeno. Promene će stupiti na snagu pri sledećem pokretanju aplikacije.", - "reset_title": "Resetuj na Preporučene", - "reset_message": "Postavke privatnosti su resetovane na preporučene zadane vrednosti (izveštavanje o greškama omogućeno, analitika onemogućena).", - "section_analytics": "ANALITIKA", - "analytics_title": "Analitika Korišćenja", - "analytics_description": "Prikupljaj anonimne obrasce korišćenja i prikaze ekrana", - "section_error_reporting": "IZVEŠTAVANJE O GREŠKAMA", - "error_reporting_title": "Izveštaji o Greškama", - "error_reporting_description": "Pošalji anonimne izveštaje o greškama kako bi se poboljšala stabilnost", - "session_replay_title": "Reprodukcija Sesije", - "session_replay_description": "Snimaj ekran kada se greške dogode", - "pii_title": "Uključi Informacije o Uređaju", - "pii_description": "Pošalji IP adresu i detalje uređaja sa izveštajima", - "section_quick_actions": "BRZE AKCIJE", - "disable_all": "Onemogući Svu Telemetriju", - "disable_all_desc": "Isključi svo prikupljanje podataka", - "reset_recommended": "Resetuj na Preporučene", - "reset_recommended_desc": "Zadane vrednosti usmeren na privatnost sa izveštavanjem o greškama", - "section_learn_more": "SAZNAJ VIŠE", - "privacy_policy": "Politika Privatnosti", - "current_settings": "Sažetak Trenutnih Postavki", - "summary_analytics": "Analitika", - "summary_errors": "Izveštaji o Greškama", - "summary_replay": "Reprodukcija Sesije", - "summary_pii": "Informacije o Uređaju", - "restart_note_detailed": "* Promene u analitici i izveštavanju o greškama stupaju na snagu odmah. Reprodukcija sesije i PII postavke zahtevaju ponovni pokretanje aplikacije." - }, - "ai_settings": { - "title": "AI asistent", - "info_title": "Chat pokretan umjetnom inteligencijom", - "info_desc": "Postavljajte pitanja o bilo kojem filmu ili epizodi serije koristeći napredni AI. Saznajte više o radnji, likovima, temama i zanimljivostima - sve temeljeno na TMDB podacima.", - "feature_1": "Kontekst i analiza specifična za epizodu", - "feature_2": "Objašnjenja radnje i uvid u likove", - "feature_3": "Zanimljivosti i činjenice iza kulisa", - "feature_4": "Vlastiti besplatni OpenRouter API ključ", - "api_key_section": "OPENROUTER API KLJUČ", - "api_key_label": "API ključ", - "api_key_desc": "Unesite svoj OpenRouter API ključ kako biste omogućili AI chat", - "save_api_key": "Spremi API ključ", - "saving": "Spremanje...", - "update": "Ažuriraj", - "remove": "Ukloni", - "get_free_key": "Nabavi besplatni API ključ od OpenRoutera", - "enable_chat": "Omogući AI Chat", - "enable_chat_desc": "Kada je omogućeno, gumb 'Pitaj AI' pojavit će se na stranicama sadržaja.", - "chat_enabled": "AI Chat omogućen", - "chat_enabled_desc": "Sada možete postavljati pitanja o filmovima i serijama. Potražite gumb \"Pitaj AI\"!", - "how_it_works": "Kako radi", - "how_it_works_desc": "• OpenRouter omogućuje pristup brojnim AI modelima\n• Vaš API ključ ostaje privatan i siguran\n• Besplatni paket uključuje izdašna ograničenja upotrebe\n• Razgovarajte o specifičnim epizodama ili filmovima\n• Dobijte detaljne analize i objašnjenja", - "error_invalid_key": "Molimo unesite važeći API ključ", - "error_key_format": "OpenRouter API ključevi trebaju počinjati s \"sk-or-\"", - "success_saved": "OpenRouter API ključ je uspješno spremljen!", - "error_save": "Spremanje API ključa nije uspjelo", - "confirm_remove_title": "Ukloni API ključ", - "confirm_remove_msg": "Jeste li sigurni da želite ukloniti svoj OpenRouter API ključ? To će onemogućiti AI chat.", - "success_removed": "API ključ uspješno uklonjen", - "error_remove": "Uklanjanje API ključa nije uspjelo" - }, - "catalog_settings": { - "title": "Katalozi", - "layout_phone": "RASPORED ZASLONA KATALOGA (MOBITEL)", - "posters_per_row": "Postera po retku", - "auto": "Automatski", - "show_titles": "Prikaži naslove postera", - "show_titles_desc": "Prikaži tekst naslova ispod svakog postera", - "phone_only_hint": "Vrijedi samo za mobitele. Tableti zadržavaju prilagodljivi raspored.", - "catalogs_group": "Katalozi", - "enabled_count": "Omogućeno {{enabled}} od {{total}}", - "rename_hint": "Dugo pritisnite katalog za preimenovanje", - "rename_modal_title": "Preimenuj katalog", - "rename_placeholder": "Unesite novi naziv kataloga", - "error_save_name": "Spremanje prilagođenog naziva nije uspjelo." - }, - "continue_watching_settings": { - "title": "Nastavi gledati", - "playback_behavior": "PONAŠANJE REPRODUKCIJE", - "use_cached": "Koristi predmemorirane streamove", - "use_cached_desc": "Kada je omogućeno, klikom na stavke 'Nastavi gledati' player se otvara izravno koristeći prethodne streamove. Kada je isključeno, otvara se zaslon sa sadržajem.", - "open_metadata": "Otvori zaslon s detaljima", - "open_metadata_desc": "Kada su predmemorirani streamovi isključeni, otvara se zaslon s detaljima umjesto popisa streamova. Ovo omogućuje ručni odabir streama.", - "card_appearance": "IZGLED KARTICE", - "card_style": "Stil kartice", - "card_style_desc": "Odaberite kako će se stavke 'Nastavi gledati' pojavljivati na početnom zaslonu", - "wide": "Široko", - "poster": "Poster", - "cache_settings": "POSTAVKE PREDMEMORIJE", - "cache_duration": "Trajanje predmemorije streama", - "cache_duration_desc": "Koliko dugo čuvati poveznice streamova prije nego što isteknu", - "important_note": "Važna napomena", - "important_note_text": "Sve poveznice streamova možda neće ostati aktivne cijelo vrijeme. Duže vrijeme predmemorije može rezultirati neispravnim poveznicama. U tom slučaju, aplikacija će ponovno dohvatiti svježe streamove.", - "how_it_works": "Kako radi", - "how_it_works_cached": "• Streamovi se spremaju na odabrano trajanje nakon gledanja\n• Predmemorirani streamovi se provjeravaju prije upotrebe\n• Ako je zapis nevažeći ili istekao, otvara se zaslon sadržaja\n• Opcija 'Koristi predmemorirane streamove' kontrolira izravni ulaz u player\n• 'Otvori zaslon s detaljima' pojavljuje se samo kad su predmemorirani streamovi isključeni", - "how_it_works_uncached": "• Kada su predmemorirani streamovi isključeni, klik otvara zaslone sadržaja\n• Opcija 'Otvori zaslon s detaljima' određuje koji će se zaslon otvoriti\n• Zaslon s metapodacima prikazuje detalje i ručni odabir\n• Zaslon sa streamovima prikazuje dostupne izvore za trenutnu reprodukciju", - "changes_saved": "Promjene spremljene", - "min": "min", - "hour": "sat", - "hours": "sati" - }, - "contributors": { - "title": "Suradnici", - "special_mentions": "Posebna priznanja", - "tab_contributors": "Suradnici", - "tab_special": "Posebna priznanja", - "tab_donors": "Donatori", - "manager_role": "Voditelj zajednice", - "manager_desc": "Upravlja Discord i Reddit zajednicama za Nuvio", - "sponsor_role": "Sponzor poslužitelja", - "sponsor_desc": "Sponzorirao infrastrukturu poslužitelja za Nuvio", - "mod_role": "Discord moderator", - "mod_desc": "Pomaže u moderiranju Nuvio Discord zajednice", - "loading": "Učitavanje...", - "discord_user": "Discord korisnik", - "contributions": "doprinosa", - "gratitude_title": "Zahvalni smo na svakom doprinosu", - "gratitude_desc": "Svaka linija koda, prijava pogreške i prijedlog pomažu da Nuvio postane bolji za sve", - "special_thanks_title": "Posebna hvala", - "special_thanks_desc": "Ovi nevjerojatni ljudi pomažu u održavanju Nuvio zajednice i poslužitelja", - "donors_desc": "Hvala vam što vjerujete u ono što gradimo. Vaša podrška drži Nuvio besplatnim i stalno ga poboljšava.", - "latest_donations": "Najnovije", - "leaderboard": "Poredak", - "loading_donors": "Učitavanje donatora...", - "no_donors": "Još nema donatora", - "error_rate_limit": "Prekoračeno ograničenje GitHub API-ja. Pokušajte kasnije.", - "error_failed": "Učitavanje suradnika nije uspjelo. Provjerite internetsku vezu.", - "retry": "Pokušaj ponovno", - "no_contributors": "Nisu pronađeni suradnici", - "loading_contributors": "Učitavanje suradnika..." - }, - "debrid": { - "title": "Debrid integracija", - "description_torbox": "Otključajte 4K streamove visoke kvalitete i munjevite brzine integracijom Torboxa. Unesite API ključ ispod za trenutnu nadogradnju iskustva gledanja.", - "description_torrentio": "Konfigurirajte Torrentio za torrent streamove filmova i serija. Debrid usluga je potrebna za gledanje sadržaja.", - "tab_torbox": "TorBox", - "tab_torrentio": "Torrentio", - "status_connected": "Povezano", - "status_disconnected": "Odspojeno", - "enable_addon": "Omogući dodatak", - "disconnect_button": "Odspoji i ukloni", - "disconnect_loading": "Odspajanje...", - "account_info": "Informacije o računu", - "plan": "Paket", - "plan_free": "Besplatno", - "plan_essential": "Essential (3 $/mj)", - "plan_pro": "Pro (10 $/mj)", - "plan_standard": "Standard (5 $/mj)", - "plan_unknown": "Nepoznato", - "expires": "Istječe", - "downloaded": "Preuzeto", - "status_active": "Aktivno", - "connected_title": "✓ Povezano s TorBoxom", - "connected_desc": "Vaš TorBox dodatak je aktivan i pruža premium streamove.", - "configure_title": "Konfiguriraj dodatak", - "configure_desc": "Prilagodite svoje iskustvo. Razvrstajte po kvaliteti, filtrirajte veličine datoteka i upravljajte postavkama.", - "open_settings": "Otvori postavke", - "what_is_debrid": "Što je Debrid usluga?", - "enter_api_key": "Unesite API ključ", - "connect_button": "Poveži i instaliraj", - "connecting": "Povezivanje...", - "unlock_speeds_title": "Otključaj premium brzine", - "unlock_speeds_desc": "Pretplatite se na Torbox za pristup predmemoriranim 4K streamovima bez učitavanja.", - "get_subscription": "Pretplati se", - "powered_by": "Pokreće", - "disclaimer_torbox": "Nuvio nije povezan s Torboxom ni na koji način.", - "disclaimer_torrentio": "Nuvio nije povezan s Torrentio dodatakom ni na koji način.", - "installed_badge": "✓ INSTALIRANO", - "promo_title": "⚡ Trebate Debrid uslugu?", - "promo_desc": "Nabavite TorBox za munjeviti 4K streaming bez trzanja. Premium torrenti i trenutna preuzimanja.", - "promo_button": "Nabavi TorBox pretplatu", - "service_label": "Debrid usluga *", - "api_key_label": "API ključ *", - "sorting_label": "Razvrstavanje", - "exclude_qualities": "Isključi kvalitete", - "priority_languages": "Prioritetni jezici", - "max_results": "Maksimalno rezultata", - "additional_options": "Dodatne opcije", - "no_download_links": "Ne prikazuj poveznice za preuzimanje", - "no_debrid_catalog": "Ne prikazuj debrid katalog", - "install_button": "Instaliraj Torrentio", - "installing": "Instalacija...", - "update_button": "Ažuriraj konfiguraciju", - "updating": "Ažuriranje...", - "remove_button": "Ukloni Torrentio", - "error_api_required": "Potreban API ključ", - "error_api_required_desc": "Unesite API ključ debrid usluge za instalaciju Torrentia.", - "success_installed": "Torrentio dodatak je uspješno instaliran!", - "success_removed": "Torrentio dodatak je uspješno uklonjen", - "alert_disconnect_title": "Odspoji Torbox", - "alert_disconnect_msg": "Jeste li sigurni da želite odspojiti Torbox? Ovo će ukloniti dodatak i obrisati API ključ." - }, - "home_screen": { - "title": "Postavke početnog zaslona", - "changes_applied": "Promjene primijenjene", - "display_options": "OPCIJE PRIKAZA", - "show_hero": "Prikaži istaknuti sadržaj", - "show_hero_desc": "Istaknuti sadržaj na vrhu", - "show_this_week": "Prikaži 'Ovaj tjedan'", - "show_this_week_desc": "Nove epizode iz tekućeg tjedna", - "select_catalogs": "Odaberi kataloge", - "all_catalogs": "Svi katalozi", - "selected": "odabrano", - "hero_layout": "Izgled istaknutog sadržaja", - "layout_legacy": "Klasično", - "layout_carousel": "Vrtuljak", - "layout_appletv": "Apple TV", - "layout_desc": "Banner pune širine, kartice koje se listaju ili Apple TV stil", - "featured_source": "Izvor istaknutog sadržaja", - "using_catalogs": "Koriste se katalozi", - "manage_selected_catalogs": "Upravljaj odabranim katalozima", - "dynamic_bg": "Dinamična pozadina", - "dynamic_bg_desc": "Zamućeni banner iza vrtuljka", - "performance_note": "Može utjecati na performanse na slabijim uređajima.", - "posters": "Posteri", - "show_titles": "Prikaži naslove", - "poster_size": "Veličina postera", - "poster_corners": "Kutovi postera", - "size_small": "Mali", - "size_medium": "Srednji", - "size_large": "Veliki", - "corners_square": "Oštri", - "corners_rounded": "Zaobljeni", - "corners_pill": "Ovalni", - "about_these_settings": "O OVIM POSTAVKAMA", - "about_desc": "Ove postavke kontroliraju kako se sadržaj prikazuje na vašem početnom zaslonu. Promjene se primjenjuju odmah bez potrebe za ponovnim pokretanjem aplikacije.", - "hero_catalogs": { - "title": "Katalozi istaknutog sadržaja", - "select_all": "Odaberi sve", - "clear_all": "Očisti sve", - "info": "Odaberite koji će se katalozi prikazivati u odjeljku s istaknutim sadržajem. Ako ništa nije odabrano, koristit će se svi katalozi. Ne zaboravite pritisnuti 'Spremi' kada završite.", - "settings_saved": "Postavke spremljene", - "error_load": "Učitavanje kataloga nije uspjelo", - "movies": "Filmovi", - "tv_shows": "Serije" - } - }, - "calendar": { - "title": "Kalendar", - "loading": "Učitavanje kalendara...", - "no_scheduled_episodes": "Nema zakazanih epizoda", - "check_back_later": "Provjerite ponovno kasnije", - "showing_episodes_for": "Prikaz epizoda za {{date}}", - "show_all_episodes": "Prikaži sve epizode", - "no_episodes_for": "Nema epizoda za {{date}}", - "no_upcoming_found": "Nisu pronađene nadolazeće epizode", - "add_series_desc": "Dodajte serije u svoju knjižnicu kako biste ovdje vidjeli njihove nadolazeće epizode" - }, - "mdblist": { - "title": "Izvori ocjena", - "status_disabled": "MDBList onemogućen", - "status_active": "API ključ aktivan", - "status_required": "Potreban API ključ", - "status_disabled_desc": "MDBList funkcionalnost je trenutno isključena.", - "status_active_desc": "Ocjene s MDBList-a su omogućene.", - "status_required_desc": "Dodajte svoj ključ ispod kako biste omogućili ocjene.", - "enable_toggle": "Omogući MDBList", - "enable_toggle_desc": "Uključi/isključi sve MDBList funkcionalnosti", - "api_section": "API ključ", - "placeholder": "Zalijepite svoj MDBList API ključ", - "save": "Spremi", - "clear": "Obriši ključ", - "rating_providers": "Pružatelji ocjena", - "rating_providers_desc": "Odaberite čije će se ocjene prikazivati u aplikaciji", - "how_to": "Kako dobiti API ključ", - "step_1": "Prijavite se na", - "step_1_link": "MDBList web stranici", - "step_2": "Idite na odjeljak", - "step_2_settings": "Postavke", - "step_2_api": "API", - "step_2_end": ".", - "step_3": "Generirajte novi ključ i kopirajte ga.", - "go_to_website": "Posjeti MDBList", - "alert_clear_title": "Brisanje API ključa", - "alert_clear_msg": "Jeste li sigurni da želite ukloniti spremljeni API ključ?", - "success_saved": "API ključ uspješno spremljen.", - "error_empty": "API ključ ne može biti prazan.", - "error_save": "Došlo je do pogreške pri spremanju. Pokušajte ponovno.", - "api_key_empty_error": "API ključ ne može biti prazan.", - "success_cleared": "API ključ uspješno obrisan", - "error_clear": "Brisanje API ključa nije uspjelo" - }, - "notification": { - "title": "Postavke obavijesti", - "section_general": "Općenito", - "enable_notifications": "Omogući obavijesti", - "section_types": "Vrste obavijesti", - "new_episodes": "Nove epizode", - "upcoming_shows": "Nadolazeće serije", - "reminders": "Podsjetnici", - "section_timing": "Vrijeme obavijesti", - "timing_desc": "Kada želite primiti obavijest prije emitiranja epizode?", - "hours_1": "1 sat", - "hours_suffix": "sati", - "section_status": "Status obavijesti", - "stats_upcoming": "Nadolazeće", - "stats_this_week": "Ovaj tjedan", - "stats_total": "Ukupno", - "sync_button": "Sinkroniziraj knjižnicu i Trakt", - "syncing": "Sinkronizacija...", - "sync_desc": "Automatski sinkronizira obavijesti za sve serije u vašoj knjižnici i Trakt listama.", - "section_advanced": "Napredno", - "reset_button": "Resetiraj sve obavijesti", - "test_button": "Testiraj obavijest (5 sek)", - "test_notification_in": "Obavijest za {{seconds}}s...", - "test_notification_text": "Obavijest će se pojaviti za {{seconds}} sekundi", - "alert_reset_title": "Resetiraj obavijesti", - "alert_reset_msg": "Ovo će otkazati sve zakazane obavijesti, ali neće ukloniti ništa iz vaše knjižnice. Jeste li sigurni?", - "alert_reset_success": "Sve obavijesti su resetirane", - "alert_sync_complete": "Sinkronizacija dovršena", - "alert_sync_msg": "Uspješno sinkronizirane obavijesti za vašu knjižnicu i Trakt stavke.\n\nZakazano: {{upcoming}} nadolazećih epizoda\nOvaj tjedan: {{thisWeek}} epizoda", - "alert_test_scheduled": "Testna obavijest zakazana za trenutno prikazivanje" - }, - "backup": { - "title": "Sigurnosna kopija i oporavak", - "options_title": "Opcije sigurnosne kopije", - "options_desc": "Odaberite što želite uključiti u sigurnosnu kopiju", - "section_core": "Osnovni podaci", - "section_addons": "Dodaci i integracije", - "section_settings": "Postavke i preferencije", - "library_label": "Knjižnica", - "library_desc": "Vaši spremljeni filmovi i serije", - "watch_progress_label": "Napredak gledanja", - "watch_progress_desc": "Pozicije 'Nastavi gledati'", - "addons_label": "Dodaci", - "addons_desc": "Instalirani Stremio dodaci", - "plugins_label": "Priključci", - "plugins_desc": "Prilagođene konfiguracije strugača", - "trakt_label": "Trakt integracija", - "trakt_desc": "Sinkronizacija podataka i tokeni za prijavu", - "app_settings_label": "Postavke aplikacije", - "app_settings_desc": "Tema, preferencije i konfiguracije", - "user_prefs_label": "Korisničke preferencije", - "user_prefs_desc": "Redoslijed dodataka i postavke sučelja", - "catalog_settings_label": "Postavke kataloga", - "catalog_settings_desc": "Filteri kataloga i preferencije", - "api_keys_label": "API ključevi", - "api_keys_desc": "MDBList i OpenRouter ključevi", - "action_create": "Stvori sigurnosnu kopiju", - "action_restore": "Vrati iz sigurnosne kopije", - "section_info": "O sigurnosnim kopijama", - "info_text": "• Prilagodite što se sprema pomoću prekidača iznad\n• Datoteke se pohranjuju lokalno na vašem uređaju\n• Podijelite sigurnosnu kopiju za prijenos podataka na drugi uređaj\n• Oporavak će prepisati vaše trenutne podatke", - "alert_create_title": "Stvori sigurnosnu kopiju", - "alert_no_content": "Nije odabran sadržaj za kopiju.\n\nMolimo omogućite barem jednu opciju iznad.", - "alert_backup_created_title": "Kopija stvorena", - "alert_backup_created_msg": "Vaša sigurnosna kopija je spremna i možete je podijeliti.", - "alert_backup_failed_title": "Stvaranje kopije nije uspjelo", - "alert_restore_confirm_title": "Potvrdi oporavak", - "alert_restore_confirm_msg": "Ovo će vratiti vaše podatke iz kopije stvorene {{date}}.\n\nOva radnja će prepisati trenutne podatke. Želite li nastaviti?", - "alert_restore_complete_title": "Oporavak dovršen", - "alert_restore_complete_msg": "Vaši podaci su uspješno vraćeni. Ponovno pokrenite aplikaciju za primjenu promjena.", - "alert_restore_failed_title": "Oporavak nije uspio", - "restart_app": "Ponovno pokreni aplikaciju", - "alert_restart_failed_title": "Ponovno pokretanje nije uspjelo", - "alert_restart_failed_msg": "Neuspjelo ponovno pokretanje. Ručno zatvorite i otvorite aplikaciju." - }, - "updates": { - "title": "Ažuriranja aplikacije", - "status_checking": "Provjera ažuriranja...", - "status_available": "Ažuriranje dostupno!", - "status_downloading": "Preuzimanje ažuriranja...", - "status_installing": "Instalacija ažuriranja...", - "status_success": "Ažuriranje uspješno instalirano!", - "status_error": "Ažuriranje nije uspjelo", - "status_ready": "Spremno za provjeru", - "action_check": "Provjeri ažuriranja", - "action_install": "Instaliraj ažuriranje", - "release_notes": "Napomene o izdanju:", - "version": "Verzija:", - "last_checked": "Zadnja provjera:", - "current_version": "Trenutna verzija:", - "current_release_notes": "Trenutne napomene o izdanju:", - "github_release": "GITHUB IZDANJE", - "current": "Trenutna:", - "latest": "Najnovija:", - "notes": "Bilješke:", - "view_release": "Pogledaj izdanje", - "notification_settings": "POSTAVKE OBAVIJESTI", - "ota_alerts_label": "OTA upozorenja o ažuriranju", - "ota_alerts_desc": "Prikaži obavijesti za bežična (OTA) ažuriranja", - "major_alerts_label": "Glavna upozorenja o ažuriranju", - "major_alerts_desc": "Prikaži obavijesti za nove verzije na GitHubu", - "alert_disable_ota_title": "Onemogućiti OTA upozorenja?", - "alert_disable_ota_msg": "Više nećete primati obavijesti o OTA ažuriranjima.\n\n⚠️ Upozorenje: Najnovija verzija je važna za:\n• Ispravke bugova i stabilnost\n• Nove značajke\n• Točne izvještaje o padu aplikacije\n\nI dalje možete ručno provjeriti ažuriranja.", - "alert_disable_major_title": "Onemogućiti glavna upozorenja?", - "alert_disable_major_msg": "Više nećete primati obavijesti o verzijama koje zahtijevaju ponovnu instalaciju.\n\n⚠️ Upozorenje: Glavna ažuriranja sadrže:\n• Kritične sigurnosne zakrpe\n• Velike promjene sustava\n• Važne ispravke kompatibilnosti", - "warning_note": "Omogućena upozorenja osiguravaju da dobijete ispravke i nove mogućnosti.", - "disable": "Onemogući", - "alert_no_update_to_install": "Nema dostupnog ažuriranja za instalaciju", - "alert_install_failed": "Instalacija ažuriranja nije uspjela", - "alert_no_update_title": "Nema ažuriranja", - "alert_update_applied_msg": "Ažuriranje će se primijeniti kod sljedećeg pokretanja" - }, - "player": { - "title": "Video player", - "section_selection": "ODABIR PLAYERA", - "internal_title": "Ugrađeni player", - "internal_desc": "Koristi zadani player aplikacije", - "vlc_title": "VLC", - "vlc_desc": "Otvori streamove u VLC-u", - "infuse_title": "Infuse", - "infuse_desc": "Otvori streamove u Infuse-u", - "outplayer_title": "OutPlayer", - "outplayer_desc": "Otvori streamove u OutPlayeru", - "vidhub_title": "VidHub", - "vidhub_desc": "Otvori streamove u VidHubu", - "infuse_live_title": "Infuse LiveContainer", - "infuse_live_desc": "Otvori streamove u Infuse-u putem LiveContainera", - "external_title": "Vanjski player", - "external_desc": "Otvori streamove u svom željenom playeru", - "section_playback": "OPCIJE REPRODUKCIJE", - "skip_intro_settings_title": "Preskoči uvod", - "powered_by_introdb": "Pokreće IntroDB", - "autoplay_title": "Automatska reprodukcija prvog streama", - "autoplay_desc": "Automatski pokreni prvi stream s popisa.", - "resume_title": "Uvijek nastavi", - "resume_desc": "Preskoči upit i nastavi tamo gdje ste stali (ako je odgledano manje od 85%).", - "engine_title": "Engine video playera", - "engine_desc": "Auto koristi ExoPlayer uz MPV kao rezervu. Neki formati poput Dolby Vision možda nisu podržani na MPV-u.", - "decoder_title": "Način dekodiranja", - "decoder_desc": "Kako se video dekodira. 'Auto' se preporučuje.", - "gpu_title": "GPU renderiranje", - "gpu_desc": "GPU-Next nudi bolje HDR upravljanje bojama.", - "external_downloads_title": "Vanjski player za preuzimanja", - "external_downloads_desc": "Reproduciraj preuzeti sadržaj u vanjskom playeru.", - "restart_required": "Potrebno ponovno pokretanje", - "restart_msg_decoder": "Ponovno pokrenite aplikaciju za primjenu promjena dekodera.", - "restart_msg_gpu": "Ponovno pokrenite aplikaciju za primjenu GPU načina.", - "option_auto": "Auto", - "option_auto_desc_engine": "ExoPlayer + MPV rezerva", - "option_mpv": "MPV", - "option_mpv_desc": "Samo MPV", - "option_auto_desc_decoder": "Najbolji balans", - "option_sw": "SW", - "option_sw_desc": "Softversko", - "option_hw": "HW", - "option_hw_desc": "Hardversko", - "option_hw_plus": "HW+", - "option_hw_plus_desc": "Puni HW", - "option_gpu_desc": "Standardno", - "option_gpu_next_desc": "Napredno" - }, - "plugins": { - "title": "Priključci", - "enable_title": "Omogući priključke", - "enable_desc": "Omogući sustav priključaka za pronalaženje vanjskih izvora medija", - "repo_config_title": "Konfiguracija repozitorija", - "repo_config_desc": "Upravljajte vanjskim repozitorijima priključaka.", - "your_repos": "Repozitoriji", - "your_repos_desc": "Konfigurirajte vanjske izvore za priključke.", - "add_repo_button": "Dodaj repozitorij", - "refresh": "Osvježi", - "remove": "Ukloni", - "enabled": "Omogućeno", - "disabled": "Onemogućeno", - "updating": "Ažuriranje...", - "success": "Uspjeh", - "error": "Pogreška", - "alert_repo_added": "Repozitorij dodan i priključci uspješno učitani", - "alert_repo_saved": "URL repozitorija uspješno spremljen", - "alert_repo_refreshed": "Repozitorij uspješno osvježen", - "alert_invalid_url": "Nevažeći URL format", - "alert_plugins_cleared": "Svi priključci su uklonjeni", - "alert_cache_cleared": "Predmemorija repozitorija uspješno očišćena", - "unknown": "Nepoznato", - "active": "Aktivno", - "available": "Dostupno", - "platform_disabled": "Platforma onemogućena", - "limited": "Ograničeno", - "clear_all": "Ukloni sve priključke", - "clear_all_desc": "Jeste li sigurni da želite ukloniti sve instalirane priključke? To se ne može poništiti.", - "clear_cache": "Očisti predmemoriju repozitorija", - "clear_cache_desc": "Ovo će ukloniti URL i podatke repozitorija. Morat ćete ga ponovno unijeti.", - "add_new_repo": "Dodaj novi repozitorij", - "available_plugins": "Dostupni priključci ({{count}})", - "placeholder": "Pretraži priključke...", - "all": "Svi", - "filter_all": "Sve vrste", - "filter_movies": "Filmovi", - "filter_tv": "Serije", - "enable_all": "Omogući sve", - "disable_all": "Onemogući sve", - "no_plugins_found": "Priključci nisu pronađeni", - "no_plugins_available": "Nema dostupnih priključaka", - "no_match_desc": "Nema rezultata za \"{{query}}\". Pokušajte s drugim pojmom.", - "configure_repo_desc": "Konfigurirajte repozitorij iznad za prikaz priključaka.", - "clear_search": "Očisti pretragu", - "no_external_player": "Nema vanjskog playera", - "showbox_token": "ShowBox UI Token", - "showbox_placeholder": "Zalijepite svoj ShowBox UI token", - "save": "Spremi", - "clear": "Očisti", - "additional_settings": "Dodatne postavke", - "enable_url_validation": "Omogući provjeru URL-a", - "url_validation_desc": "Provjeri ispravnost poveznica (može usporiti rezultate, ali povećava pouzdanost)", - "group_streams": "Grupiraj izvore priključaka", - "group_streams_desc": "Izvori će biti grupirani prema repozitoriju.", - "sort_quality": "Poredaj prvo po kvaliteti", - "sort_quality_desc": "Izvori se prvo razvrstavaju po kvaliteti (samo uz grupiranje).", - "show_logos": "Prikaži logotipe priključaka", - "show_logos_desc": "Prikaži logotipe pored izvora na zaslonu odabira.", - "quality_filtering": "Filtriranje kvalitete", - "quality_filtering_desc": "Isključi određene rezolucije iz rezultata.", - "excluded_qualities": "Isključene kvalitete:", - "language_filtering": "Filtriranje jezika", - "language_filtering_desc": "Isključi određene jezike iz rezultata.", - "note": "Napomena:", - "language_filtering_note": "Ovo se primjenjuje samo na pružatelje koji šalju informaciju o jeziku.", - "excluded_languages": "Isključeni jezici:", - "about_title": "O priključcima", - "about_desc_1": "Priključci su modularne komponente koje prilagođavaju sadržaj s vanjskih protokola. Rade lokalno na vašem uređaju.", - "about_desc_2": "Priključci označeni kao \"Ograničeno\" mogu zahtijevati dodatne konfiguracije.", - "help_title": "Postavljanje priključaka", - "help_step_1": "1. **Omogući priključke** - Uključite glavni prekidač", - "help_step_2": "2. **Dodaj repozitorij** - Unesite ispravan URL", - "help_step_3": "3. **Osvježi** - Povucite popis dostupnih priključaka", - "help_step_4": "4. **Aktiviraj** - Omogućite željene priključke", - "got_it": "Razumijem!", - "repo_format_hint": "Format: https://raw.githubusercontent.com/korisnik/repo/refs/heads/branch", - "cancel": "Odustani", - "add": "Dodaj" - }, - "theme": { - "title": "Teme aplikacije", - "select_theme": "ODABERI TEMU", - "create_custom": "Stvori vlastitu temu", - "options": "OPCIJE", - "use_dominant_color": "Koristi dominantnu boju s postera", - "categories": { - "all": "Sve teme", - "dark": "Tamne teme", - "colorful": "Šarene", - "custom": "Moje teme" - }, - "editor": { - "theme_name_placeholder": "Naziv teme", - "save": "Spremi", - "primary": "Primarna", - "secondary": "Sekundarna", - "background": "Pozadina", - "invalid_name_title": "Nevažeći naziv", - "invalid_name_msg": "Molimo unesite ispravan naziv teme" - }, - "alerts": { - "delete_title": "Obriši temu", - "delete_msg": "Jeste li sigurni da želite obrisati temu \"{{name}}\"?", - "ok": "U redu", - "delete": "Obriši", - "cancel": "Odustani", - "back": "Postavke" - } - }, - "legal": { - "title": "Pravne napomene i odricanje odgovornosti", - "intro_title": "Priroda aplikacije", - "intro_text": "Nuvio je media player i aplikacija za upravljanje metapodacima. Djeluje isključivo kao klijentsko sučelje za pregledavanje javno dostupnih informacija (filmovi, serije) i reprodukciju datoteka koje osigura korisnik ili dodaci trećih strana. Nuvio ne ugošćuje, ne distribuira niti indeksira nikakav medijski sadržaj.", - "extensions_title": "Priključci trećih strana", - "extensions_text": "Nuvio omogućuje instalaciju priključaka koje razvijaju neovisni programeri. Nemamo kontrolu niti odgovornost za sadržaj, zakonitost ili funkcionalnost tih priključaka.", - "user_resp_title": "Odgovornost korisnika", - "user_resp_text": "Korisnici su isključivo odgovorni za priključke koje instaliraju. Korištenjem aplikacije pristajete osigurati da imate zakonsko pravo na pristup sadržaju koji gledate. Autori Nuvia ne potiču kršenje autorskih prava.", - "dmca_title": "Autorska prava i DMCA", - "dmca_text": "Nuvio ne ugošćuje sadržaj pa ga ne može ukloniti s interneta. Ako smatrate da samo sučelje krši vaša prava, kontaktirajte nas.", - "warranty_title": "Bez jamstva", - "warranty_text": "Softver se isporučuje \"kakav jest\", bez ikakvih jamstava. Autori nisu odgovorni za bilo kakvu štetu nastalu korištenjem ovog softvera." - }, - "plugin_tester": { - "title": "Plugin Tester", - "subtitle": "Pokrenite strugače i pratite zapise u stvarnom vremenu", - "tabs": { - "individual": "Pojedinačno", - "repo": "Repo Tester", - "code": "Kod", - "logs": "Zapisi", - "results": "Rezultati" - }, - "common": { - "error": "Pogreška", - "success": "Uspjeh", - "movie": "Film", - "tv": "Serija", - "tmdb_id": "TMDB ID", - "season": "Sezona", - "episode": "Epizoda", - "running": "Pokretanje…", - "run_test": "Pokreni test", - "play": "Reproduciraj", - "done": "Gotovo", - "test": "Test", - "testing": "Testiranje…" - }, - "individual": { - "load_from_url": "Učitaj s URL-a", - "load_from_url_desc": "Zalijepite GitHub URL ili lokalni IP i preuzmite.", - "enter_url_error": "Molimo unesite URL", - "code_loaded": "Kod učitan s URL-a", - "fetch_error": "Dohvaćanje nije uspjelo: {{message}}", - "no_code_error": "Nema koda za pokretanje", - "plugin_code": "Kod priključka", - "focus_editor": "Fokusiraj uređivač koda", - "code_placeholder": "// Zalijepite kod priključka ovdje...", - "test_parameters": "Testni parametri", - "no_logs": "Još nema zapisa. Pokrenite test.", - "no_streams": "Nisu pronađeni streamovi.", - "streams_found": "Pronađen {{count}} stream", - "streams_found_plural": "Pronađeno {{count}} streama", - "tap_play_hint": "Dodirnite 'Reproduciraj' za testiranje streama.", - "unnamed_stream": "Neimenovani stream", - "quality": "Kvaliteta: {{quality}}", - "size": "Veličina: {{size}}", - "url_label": "URL: {{url}}", - "headers_info": "Zaglavlja: {{count}} prilagođenih", - "find_placeholder": "Pronađi u kodu…", - "edit_code_title": "Uredi kod", - "no_url_stream_error": "Nije pronađen URL za ovaj stream" - }, - "repo": { - "title": "Repo Tester", - "description": "Dohvatite repozitorij i testirajte svakog pružatelja.", - "enter_repo_url_error": "Unesite URL repozitorija", - "invalid_url_title": "Nevažeći URL", - "invalid_url_msg": "Koristite GitHub raw URL ili lokalni http(s) URL.", - "manifest_build_error": "Neuspjelo stvaranje URL-a manifesta", - "manifest_fetch_error": "Neuspjelo dohvaćanje manifesta", - "repo_manifest_fetch_error": "Neuspjelo dohvaćanje manifesta repozitorija", - "missing_filename": "Nedostaje naziv datoteke u manifestu", - "scraper_build_error": "Neuspjelo stvaranje URL-a strugača", - "download_scraper_error": "Neuspjelo preuzimanje strugača", - "test_failed": "Test nije uspio", - "test_parameters": "Parametri Repo testa", - "test_parameters_desc": "Ovi se parametri koriste samo za Repo Tester.", - "using_info": "Koristi se: {{mediaType}} • TMDB {{tmdbId}}", - "using_info_tv": "Koristi se: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", - "providers_title": "Pružatelji", - "repository_default": "Repozitorij", - "providers_count": "{{count}} pružatelja", - "fetch_hint": "Dohvatite repo za popis pružatelja.", - "test_all": "Testiraj sve", - "status_running": "U TIJEKU", - "status_ok": "OK ({{count}})", - "status_ok_empty": "OK (0)", - "status_failed": "NEUSPJEH", - "status_idle": "ČEKANJE", - "tried_url": "Pokušano: {{url}}", - "provider_logs": "Zapisi pružatelja", - "no_logs_captured": "Nema zapisa." - } - } - -} +{ + "common": { + "loading": "Učitavanje...", + "cancel": "Odustani", + "save": "Spremi", + "delete": "Obriši", + "edit": "Uredi", + "search": "Pretraži", + "error": "Pogreška", + "success": "Uspjeh", + "ok": "U redu", + "unknown": "Nepoznato", + "retry": "Pokušaj ponovno", + "try_again": "Pokušajte ponovno", + "go_back": "Idi natrag", + "settings": "Postavke", + "close": "Zatvori", + "enable": "Omogući", + "disable": "Onemogući", + "show_more": "Prikaži više", + "show_less": "Prikaži manje", + "load_more": "Učitaj više", + "unknown_date": "Nepoznat datum", + "anonymous_user": "Anonimni korisnik", + "time": { + "now": "Upravo sada", + "minutes_ago": "prije {{count}} min", + "hours_ago": "prije {{count}} h", + "days_ago": "prije {{count}} d" + }, + "days_short": { + "sun": "Ned", + "mon": "Pon", + "tue": "Uto", + "wed": "Sri", + "thu": "Čet", + "fri": "Pet", + "sat": "Sub" + }, + "email": "E-pošta", + "status": "Status" + }, + "home": { + "categories": { + "movies": "Filmovi", + "series": "Serije", + "channels": "Kanali" + }, + "movies": "Filmovi", + "tv_shows": "Serije", + "load_more_catalogs": "Učitaj više kataloga", + "no_content": "Sadržaj nije dostupan", + "add_catalogs": "Dodaj kataloge", + "sign_in_available": "Prijava je dostupna", + "sign_in_desc": "Možete se prijaviti bilo kada u Postavke → Račun", + "view_all": "Vidi sve", + "this_week": "Ovaj tjedan", + "upcoming": "Dolazeće", + "recently_released": "Nedavno objavljeno", + "no_scheduled_episodes": "Serije bez zakazanih epizoda", + "check_back_later": "Provjerite kasnije", + "continue_watching": "Nastavi gledati", + "up_next": "Sljedeće", + "up_next_caps": "SLJEDEĆE", + "released": "Objavljeno", + "new": "Novo", + "tba": "Bit će objavljeno", + "new_episodes": "{{count}} nove epizode", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Sezona {{season}}", + "episode": "Epizoda {{episode}}", + "movie": "Film", + "series": "Serija", + "tv_show": "Serija", + "percent_watched": "{{percent}}% pogledano", + "view_details": "Vidi detalje", + "remove": "Ukloni", + "play": "Reproduciraj", + "play_now": "Pokreni odmah", + "resume": "Nastavi", + "info": "Informacije", + "more_info": "Više informacija", + "my_list": "Moj popis", + "save": "Spremi", + "saved": "Spremljeno", + "retry": "Pokušaj ponovno", + "install_addons": "Instaliraj dodatke", + "settings": "Postavke", + "no_featured_content": "Nema istaknutog sadržaja", + "couldnt_load_featured": "Nije moguće učitati istaknuti sadržaj", + "no_featured_desc": "Instalirajte dodatke s katalozima ili promijenite izvor sadržaja u postavkama.", + "load_error_desc": "Došlo je do problema prilikom dohvaćanja istaknutog sadržaja. Provjerite vezu i pokušajte ponovno.", + "no_featured_available": "Nema dostupnog istaknutog sadržaja", + "no_description": "Opis nije dostupan" + }, + "navigation": { + "home": "Početna", + "library": "Knjižnica", + "search": "Pretraživanje", + "downloads": "Preuzimanja", + "settings": "Postavke" + }, + "search": { + "title": "Pretraživanje", + "recent_searches": "Nedavna pretraživanja", + "discover": "Otkrij", + "movies": "Filmovi", + "tv_shows": "Serije", + "select_catalog": "Odaberi katalog", + "all_genres": "Svi žanrovi", + "discovering": "Otkrivanje sadržaja...", + "show_more": "Prikaži više ({{count}})", + "no_content_found": "Sadržaj nije pronađen", + "try_different": "Pokušajte s drugim žanrom ili katalogom", + "select_catalog_desc": "Odaberite katalog za istraživanje", + "tap_catalog_desc": "Dodirnite karticu kataloga iznad za početak", + "placeholder": "Pretraži filmove, serije...", + "keep_typing": "Nastavite tipkati...", + "type_characters": "Upišite barem 2 znaka za pretraživanje", + "no_results": "Nema rezultata", + "try_keywords": "Pokušajte s drugim ključnim riječima ili provjerite pravopis", + "select_type": "Odaberi vrstu", + "browse_movies": "Pregledaj kataloge filmova", + "browse_tv": "Pregledaj kataloge serija", + "select_genre": "Odaberi žanr", + "show_all_content": "Prikaži sav sadržaj", + "genres_count": "{{count}} žanrova" + }, + "library": { + "title": "Knjižnica", + "watched": "Pogledano", + "continue": "Nastavi", + "watchlist": "Popis za gledanje", + "collection": "Kolekcija", + "rated": "Ocijenjeno", + "items": "stavki", + "trakt_collections": "Trakt kolekcije", + "trakt_collection": "Trakt kolekcija", + "no_trakt": "Nema Trakt kolekcija", + "no_trakt_desc": "Vaše Trakt kolekcije pojavit će se ovdje kada počnete koristiti Trakt", + "load_collections": "Učitaj kolekcije", + "empty_folder": "Nema sadržaja u {{folder}}", + "empty_folder_desc": "Ova kolekcija je prazna", + "refresh": "Osvježi", + "no_movies": "Još nema filmova", + "no_series": "Još nema serija", + "no_content": "Još nema sadržaja", + "add_content_desc": "Dodajte sadržaj u svoju knjižnicu kako biste ga vidjeli ovdje", + "find_something": "Pronađi nešto za gledanje", + "removed_from_library": "Uklonjeno iz knjižnice", + "item_removed": "Stavka je uklonjena iz vaše knjižnice", + "failed_update_library": "Ažuriranje knjižnice nije uspjelo", + "unable_remove": "Nije moguće ukloniti stavku iz knjižnice", + "marked_watched": "Označeno kao pogledano", + "marked_unwatched": "Označeno kao nepogledano", + "item_marked_watched": "Stavka je označena kao pogledana", + "item_marked_unwatched": "Stavka je označena kao nepogledana", + "failed_update_watched": "Ažuriranje statusa gledanja nije uspjelo", + "unable_update_watched": "Nije moguće ažurirati status gledanja", + "added_to_library": "Dodano u knjižnicu", + "item_added": "Dodano u vašu lokalnu knjižnicu", + "add_to_library": "Dodaj u knjižnicu", + "remove_from_library": "Ukloni iz knjižnice", + "mark_watched": "Označi kao pogledano", + "mark_unwatched": "Označi kao nepogledano", + "share": "Podijeli", + "add_to_watchlist": "Dodaj na Trakt popis za gledanje", + "remove_from_watchlist": "Ukloni s Trakt popisa za gledanje", + "added_to_watchlist": "Dodano na popis za gledanje", + "added_to_watchlist_desc": "Dodano na vaš Trakt popis za gledanje", + "removed_from_watchlist": "Uklonjeno s popisa za gledanje", + "removed_from_watchlist_desc": "Uklonjeno s vašeg Trakt popisa za gledanje", + "add_to_collection": "Dodaj u Trakt kolekciju", + "remove_from_collection": "Ukloni iz Trakt kolekcije", + "added_to_collection": "Dodano u kolekciju", + "added_to_collection_desc": "Dodano u vašu Trakt kolekciju", + "removed_from_collection": "Uklonjeno iz kolekcije", + "removed_from_collection_desc": "Uklonjeno iz vaše Trakt kolekcije" + }, + "metadata": { + "unable_to_load": "Nije moguće učitati sadržaj", + "error_code": "Šifra pogreške: {{code}}", + "content_not_found": "Sadržaj nije pronađen", + "content_not_found_desc": "Ovaj sadržaj ne postoji ili je možda uklonjen.", + "server_error": "Pogreška poslužitelja", + "server_error_desc": "Poslužitelj je privremeno nedostupan. Pokušajte ponovno kasnije.", + "bad_gateway": "Loš gateway", + "bad_gateway_desc": "Poslužitelj ima poteškoća. Pokušajte ponovno kasnije.", + "service_unavailable": "Usluga nedostupna", + "service_unavailable_desc": "Usluga je trenutno na održavanju. Pokušajte ponovno kasnije.", + "too_many_requests": "Previše zahtjeva", + "too_many_requests_desc": "Šaljete previše zahtjeva. Pričekajte trenutak i pokušajte ponovno.", + "request_timeout": "Istek vremena zahtjeva", + "request_timeout_desc": "Zahtjev je trajao predugo. Pokušajte ponovno.", + "network_error": "Pogreška mreže", + "network_error_desc": "Provjerite internetsku vezu i pokušajte ponovno.", + "auth_error": "Pogreška autentifikacije", + "auth_error_desc": "Provjerite postavke računa i pokušajte ponovno.", + "access_denied": "Pristup odbijen", + "access_denied_desc": "Nemate dopuštenje za pristup ovom sadržaju.", + "connection_error": "Pogreška veze", + "streams_unavailable": "Streaming izvori nedostupni", + "streams_unavailable_desc": "Izvori za streaming trenutno su nedostupni. Pokušajte ponovno kasnije.", + "unknown_error": "Nepoznata pogreška", + "something_went_wrong": "Nešto je pošlo po zlu. Pokušajte ponovno.", + "cast": "Glumačka postava", + "more_like_this": "Slično ovome", + "collection": "Kolekcija", + "episodes": "Epizode", + "seasons": "Sezone", + "posters": "Posteri", + "banners": "Banneri", + "specials": "Specijali", + "season_number": "Sezona {{number}}", + "episode_count": "{{count}} epizoda", + "episode_count_plural": "{{count}} epizoda", + "no_episodes": "Nema dostupnih epizoda", + "no_episodes_for_season": "Nema dostupnih epizoda za Sezonu {{season}}", + "episodes_not_released": "Epizode možda još nisu objavljene", + "no_description": "Opis nije dostupan", + "episode_label": "EPIZODA {{number}}", + "watch_again": "Gledaj ponovno", + "completed": "Završeno", + "play_episode": "Reproduciraj S{{season}}E{{episode}}", + "play": "Reproduciraj", + "watched": "Pogledano", + "watched_on_trakt": "Pogledano na Traktu", + "synced_with_trakt": "Sinkronizirano s Traktom", + "saved": "Spremljeno", + "director": "Redatelj", + "directors": "Redatelji", + "creator": "Autor", + "creators": "Autori", + "production": "Produkcija", + "network": "Mreža", + "mark_watched": "Označi kao pogledano", + "mark_unwatched": "Označi kao nepogledano", + "marking": "Označavanje...", + "removing": "Uklanjanje...", + "unmark_season": "Odznači Sezonu {{season}}", + "mark_season": "Označi Sezonu {{season}}", + "resume": "Nastavi", + "spoiler_warning": "Upozorenje o spoilerima", + "spoiler_warning_desc": "Ovaj komentar sadrži spoilere. Jeste li sigurni da ga želite otkriti?", + "cancel": "Odustani", + "reveal_spoilers": "Otkrij spoilere", + "movie_details": "Detalji o filmu", + "show_details": "Detalji o seriji", + "tagline": "Slogan", + "status": "Status", + "release_date": "Datum izlaska", + "runtime": "Trajanje", + "budget": "Budžet", + "revenue": "Prihod", + "origin_country": "Zemlja podrijetla", + "original_language": "Izvorni jezik", + "first_air_date": "Datum prve emisije", + "last_air_date": "Datum zadnje emisije", + "total_episodes": "Ukupno epizoda", + "episode_runtime": "Trajanje epizode", + "created_by": "Autor", + "backdrop_gallery": "Galerija pozadina", + "loading_episodes": "Učitavanje epizoda...", + "no_episodes_available": "Nema dostupnih epizoda", + "play_next": "Reproduciraj S{{season}}E{{episode}}", + "play_next_episode": "Reproduciraj sljedeću epizodu", + "save": "Spremi", + "percent_watched": "{{percent}}% pogledano", + "percent_watched_trakt": "{{percent}}% pogledano ({{traktPercent}}% na Traktu)", + "synced_with_trakt_progress": "Sinkronizirano s Traktom", + "using_trakt_progress": "Koristi se Trakt napredak", + "added_to_collection_hero": "Dodano u kolekciju", + "added_to_collection_desc_hero": "Dodano u vašu Trakt kolekciju", + "removed_from_collection_hero": "Uklonjeno iz kolekcije", + "removed_from_collection_desc_hero": "Uklonjeno iz vaše Trakt kolekcije", + "mark_as_watched": "Označi kao pogledano", + "mark_as_unwatched": "Označi kao nepogledano" + }, + "cast": { + "biography": "Biografija", + "known_for": "Poznat po", + "personal_info": "Osobni podaci", + "born_in": "Rođen u {{place}}", + "filmography": "Filmografija", + "also_known_as": "Poznat i kao", + "no_info_available": "Dodatne informacije nisu dostupne", + "as_character": "kao {{character}}", + "loading_details": "Učitavanje detalja...", + "years_old": "{{age}} godina", + "view_filmography": "Vidi filmografiju", + "filter": "Filter", + "sort_by": "Sortiraj po", + "sort_popular": "Popularno", + "sort_latest": "Najnovije", + "sort_upcoming": "Dolazeće", + "upcoming_badge": "DOLAZI", + "coming_soon": "Dolazi uskoro", + "filmography_count": "Filmografija • {{count}} naslova", + "loading_filmography": "Učitavanje filmografije...", + "load_more_remaining": "Učitaj više (preostalo {{count}})", + "alert_error_title": "Pogreška", + "alert_error_message": "Nije moguće učitati \"{{title}}\". Pokušajte ponovno kasnije.", + "alert_ok": "U redu", + "no_upcoming": "Nema dolazećih izdanja za ovog glumca", + "no_content": "Sadržaj nije dostupan za ovog glumca", + "no_movies": "Nema dostupnih filmova za ovog glumca", + "no_tv": "Nema dostupnih serija za ovog glumca" + }, + "comments": { + "title": "Trakt komentari", + "spoiler_warning": "⚠️ Ovaj komentar sadrži spoilere. Dodirni za prikaz.", + "spoiler": "Spoiler", + "contains_spoilers": "Sadrži spoilere", + "reveal": "Otkrij", + "vip": "VIP", + "unavailable": "Komentari nedostupni", + "no_comments": "Još nema komentara na Traktu", + "not_in_database": "Ovaj sadržaj možda još nije u Trakt bazi podataka", + "check_trakt": "Provjeri Trakt" + }, + "trailers": { + "title": "Traileri", + "official_trailers": "Službeni traileri", + "official_trailer": "Službeni trailer", + "teasers": "Teaseri", + "teaser": "Teaser", + "clips_scenes": "Isječci i scene", + "clip": "Isječak", + "featurettes": "Featurettes", + "featurette": "Featurette", + "behind_the_scenes": "Iza kulisa", + "no_trailers": "Nema dostupnih trailera", + "unavailable": "Trailer nedostupan", + "unavailable_desc": "Ovaj trailer trenutno se ne može učitati. Pokušajte ponovno kasnije.", + "unable_to_play": "Nije moguće reproducirati trailer. Pokušajte ponovno.", + "watch_on_youtube": "Gledaj na YouTubeu" + }, + "catalog": { + "no_content_found": "Sadržaj nije pronađen", + "no_content_filters": "Nije pronađen sadržaj za odabrane filtere", + "loading_content": "Učitavanje sadržaja...", + "back": "Natrag", + "in_theaters": "U kinima", + "all": "Sve", + "failed_tmdb": "Učitavanje sadržaja s TMDB-a nije uspjelo", + "movies": "Filmovi", + "tv_shows": "Serije", + "channels": "Kanali" + }, + "streams": { + "back_to_episodes": "Natrag na epizode", + "back_to_info": "Natrag na informacije", + "fetching_from": "Dohvaćanje iz:", + "no_sources_available": "Nema dostupnih izvora za streaming", + "add_sources_desc": "Molimo dodajte izvore za streaming u postavkama", + "add_sources": "Dodaj izvore", + "finding_streams": "Pronalaženje dostupnih streamova...", + "finding_best_stream": "Pronalaženje najboljeg streama za automatsku reprodukciju...", + "still_fetching": "Dohvaćanje streamova i dalje u tijeku...", + "no_streams_available": "Nema dostupnih streamova", + "starting_best_stream": "Pokretanje najboljeg streama...", + "loading_more_sources": "Učitavanje dodatnih izvora..." + }, + "player_ui": { + "via": "putem {{name}}", + "audio_tracks": "Zvučni zapisi", + "no_audio_tracks": "Nema dostupnih zvučnih zapisa", + "playback_speed": "Brzina reprodukcije", + "on_hold": "Na čekanju", + "playback_error": "Pogreška pri reprodukciji", + "unknown_error": "Došlo je do nepoznate pogreške tijekom reprodukcije.", + "copy_error": "Kopiraj detalje pogreške", + "copied_to_clipboard": "Kopirano u međuspremnik", + "dismiss": "Zatvori", + "continue_watching": "Nastavi gledati", + "start_over": "Kreni ispočetka", + "resume": "Nastavi", + "change_source": "Promijeni izvor", + "switching_source": "Promjena izvora...", + "no_sources_found": "Nema pronađenih izvora", + "sources": "Izvori", + "finding_sources": "Pronalaženje izvora...", + "unknown_source": "Nepoznat izvor", + "sources_limited": "Izvori mogu biti ograničeni zbog pogrešaka pružatelja usluga.", + "episodes": "Epizode", + "specials": "Specijali", + "season": "Sezona {{season}}", + "stream": "Stream {{number}}", + "subtitles": "Titlovi", + "built_in": "Ugrađeno", + "addons": "Dodaci", + "style": "Stil", + "none": "Nijedan", + "search_online_subtitles": "Pretraži titlove na mreži", + "preview": "Pretpregled", + "quick_presets": "Brze postavke", + "default": "Zadano", + "yellow": "Žuta", + "high_contrast": "Visoki kontrast", + "large": "Veliko", + "core": "Osnovno", + "font_size": "Veličina fonta", + "show_background": "Prikaži pozadinu", + "advanced": "Napredno", + "position": "Položaj", + "text_color": "Boja teksta", + "align": "Poravnanje", + "bottom_offset": "Pomak od dna", + "background_opacity": "Prozirnost pozadine", + "text_shadow": "Sjena teksta", + "on": "Uključeno", + "off": "Isključeno", + "outline_color": "Boja obruba", + "outline": "Obrub", + "outline_width": "Širina obruba", + "letter_spacing": "Razmak slova", + "line_height": "Visina retka", + "timing_offset": "Pomak vremena (s)", + "visual_sync": "Vizualna sinkronizacija", + "timing_hint": "Pomaknite titlove ranije (-) ili kasnije (+) za sinkronizaciju ako je potrebno.", + "reset_defaults": "Vrati na zadano" + }, + "downloads": { + "title": "Preuzimanja", + "no_downloads": "Još nema preuzimanja", + "no_downloads_desc": "Preuzeti sadržaj pojavit će se ovdje za gledanje izvan mreže", + "explore": "Istraži sadržaj", + "path_copied": "Putanja kopirana", + "path_copied_desc": "Lokalna putanja datoteke kopirana u međuspremnik", + "copied": "Kopirano", + "incomplete": "Preuzimanje nepotpuno", + "incomplete_desc": "Preuzimanje još nije završeno", + "not_available": "Nije dostupno", + "not_available_desc": "Lokalna putanja datoteke dostupna je tek nakon završetka preuzimanja.", + "status_downloading": "Preuzimanje", + "status_completed": "Dovršeno", + "status_paused": "Pauzirano", + "status_error": "Pogreška", + "status_queued": "U redu čekanja", + "status_unknown": "Nepoznato", + "provider": "Pružatelj usluge", + "streaming_playlist_warning": "Možda se neće reproducirati - streaming playlista", + "remaining": "preostalo", + "not_ready": "Preuzimanje nije spremno", + "not_ready_desc": "Molimo pričekajte dok preuzimanje ne završi.", + "filter_all": "Sve", + "filter_active": "Aktivno", + "filter_done": "Gotovo", + "filter_paused": "Pauzirano", + "no_filter_results": "Nema {{filter}} preuzimanja", + "try_different_filter": "Pokušajte odabrati drugi filter", + "limitations_title": "Ograničenja preuzimanja", + "limitations_msg": "• Datoteke manje od 1MB obično su M3U8 streaming liste i ne mogu se preuzeti za gledanje izvan mreže. One rade samo s online streamingom i sadrže poveznice na segmente videa, a ne stvarni video sadržaj.", + "remove_title": "Ukloni preuzimanje", + "remove_confirm": "Ukloniti \"{{title}}\"{{season_episode}}?", + "cancel": "Odustani", + "remove": "Ukloni" + }, + "addons": { + "title": "Dodaci", + "reorder_mode": "Način preslagivanja", + "reorder_info": "Dodaci na vrhu imaju veći prioritet prilikom učitavanja sadržaja", + "add_addon_placeholder": "URL dodatka", + "add_button": "Dodaj dodatak", + "my_addons": "Moji dodaci", + "community_addons": "Dodaci zajednice", + "no_addons": "Nema instaliranih dodataka", + "uninstall_title": "Deinstaliraj dodatak", + "uninstall_message": "Jeste li sigurni da želite deinstalirati {{name}}?", + "uninstall_button": "Deinstaliraj", + "install_success": "Dodatak je uspješno instaliran", + "install_error": "Instalacija dodatka nije uspjela", + "load_error": "Učitavanje dodataka nije uspjelo", + "fetch_error": "Dohvaćanje detalja dodatka nije uspjelo", + "invalid_url": "Molimo unesite URL dodatka", + "configure": "Konfiguriraj", + "version": "Verzija: {{version}}", + "installed_addons": "INSTALIRANI DODACI", + "reorder_drag_title": "POVUCITE DODATKE ZA PRESLAGIVANJE", + "install": "Instaliraj", + "config_unavailable_title": "Konfiguracija nedostupna", + "config_unavailable_msg": "Nije moguće odrediti URL konfiguracije za ovaj dodatak.", + "cannot_open_config_title": "Nije moguće otvoriti konfiguraciju", + "cannot_open_config_msg": "Konfiguracijski URL ({{url}}) ne može se otvoriti. Dodatak možda nema stranicu za konfiguraciju.", + "description": "Opis", + "supported_types": "Podržane vrste", + "catalogs": "Katalozi", + "no_description": "Opis nije dostupan", + "overview": "PREGLED", + "no_categories": "Nema kategorija", + "pre_installed": "PREDINSTRUALIRANO" + }, + "trakt": { + "title": "Trakt postavke", + "settings_title": "Trakt postavke", + "connect_title": "Poveži se s Traktom", + "connect_desc": "Sinkronizirajte povijest gledanja, popis za gledanje i kolekciju s Trakt.tv", + "sign_in": "Prijavi se na Trakt", + "sign_out": "Odjava", + "sign_out_confirm": "Jeste li sigurni da se želite odjaviti s vašeg Trakt računa?", + "joined": "Pridružen {{date}}", + "sync_settings_title": "Postavke sinkronizacije", + "sync_info": "Kada ste povezani s Traktom, cijela povijest se sinkronizira izravno putem API-ja i ne zapisuje se u lokalnu pohranu. Vaš popis 'Nastavi gledati' odražava vaš ukupni Trakt napredak.", + "auto_sync_label": "Automatska sinkronizacija napretka", + "auto_sync_desc": "Automatski sinkroniziraj napredak gledanja na Trakt", + "import_history_label": "Uvezi povijest gledanja", + "import_history_desc": "Koristite 'Sinkroniziraj sada' za uvoz povijesti gledanja i napretka s Trakta", + "sync_now_button": "Sinkroniziraj sada", + "display_settings_title": "Postavke prikaza", + "show_comments_label": "Prikaži Trakt komentare", + "show_comments_desc": "Prikaži Trakt komentare u detaljima sadržaja kada su dostupni", + "maintenance_title": "Održavanje u tijeku", + "maintenance_unavailable": "Trakt nedostupan", + "maintenance_desc": "Integracija s Traktom privremeno je zaustavljena zbog održavanja. Sinkronizacija i autentifikacija su onemogućeni dok se održavanje ne završi.", + "maintenance_button": "Usluga se održava", + "auth_success_title": "Uspješno povezano", + "auth_success_msg": "Vaš Trakt račun je uspješno povezan.", + "auth_error_title": "Pogreška autentifikacije", + "auth_error_msg": "Autentifikacija s Traktom nije uspjela.", + "auth_error_generic": "Došlo je do pogreške tijekom autentifikacije.", + "sign_out_error": "Odjava s Trakta nije uspjela.", + "sync_complete_title": "Sinkronizacija završena", + "sync_success_msg": "Vaš napredak gledanja uspješno je sinkroniziran s Traktom.", + "sync_error_msg": "Sinkronizacija nije uspjela. Molimo pokušajte ponovno." + }, + "simkl": { + "title": "Simkl postavke", + "settings_title": "Simkl postavke", + "connect_title": "Poveži se sa Simklom", + "connect_desc": "Sinkronizirajte povijest gledanja i pratite što gledate", + "sign_in": "Prijavi se na Simkl", + "sign_out": "Odspoji se", + "sign_out_confirm": "Jeste li sigurni da se želite odspojiti sa Simkla?", + "syncing_desc": "Vaše pogledane stavke sinkroniziraju se sa Simklom.", + "auth_success_title": "Uspješno povezano", + "auth_success_msg": "Vaš Simkl račun je uspješno povezan.", + "auth_error_title": "Pogreška autentifikacije", + "auth_error_msg": "Autentifikacija sa Simklom nije uspjela.", + "auth_error_generic": "Došlo je do pogreške tijekom autentifikacije.", + "sign_out_error": "Odspajanje sa Simkla nije uspjelo.", + "config_error_title": "Pogreška konfiguracije", + "config_error_msg": "Simkl Client ID nedostaje u varijablama okruženja.", + "conflict_title": "Sukob", + "conflict_msg": "Ne možete se povezati sa Simklom dok je Trakt povezan. Molimo prvo odspojite Trakt.", + "disclaimer": "Nuvio nije povezan sa Simklom." + }, + "tmdb_settings": { + "title": "TMDb postavke", + "metadata_enrichment": "Obogaćivanje metapodataka", + "metadata_enrichment_desc": "Poboljšajte metapodatke sadržaja s TMDb podacima za bolje detalje i informacije.", + "enable_enrichment": "Omogući obogaćivanje", + "enable_enrichment_desc": "Proširuje metapodatke dodataka s TMDb-a za glumačku postavu, dobne ocjene, logotipe/postere i informacije o produkciji.", + "localized_text": "Lokalizirani tekst", + "localized_text_desc": "Dohvati naslove i opise na vašem željenom jeziku s TMDb-a.", + "language": "Jezik", + "change": "Promijeni", + "logo_preview": "Pretpregled logotipa", + "logo_preview_desc": "Pretpregled pokazuje kako će se lokalizirani logotipi pojaviti na odabranom jeziku.", + "example": "Primjer:", + "no_logo": "Logotip nije dostupan", + "enrichment_options": "Opcije obogaćivanja", + "enrichment_options_desc": "Kontrolirajte koji se podaci dohvaćaju s TMDb-a. Onemogućene opcije koristit će podatke iz dodatka ako su dostupni.", + "cast_crew": "Glumci i ekipa", + "cast_crew_desc": "Glumci, redatelji, scenaristi s profilnim fotografijama", + "title_description": "Naslov i opis", + "title_description_desc": "Koristi TMDb lokalizirani naslov i opis", + "title_logos": "Logotipi naslova", + "title_logos_desc": "Visokokvalitetne slike naslova", + "banners_backdrops": "Banneri i pozadine", + "banners_backdrops_desc": "Slike pozadina visoke rezolucije", + "certification": "Dobna ocjena sadržaja", + "certification_desc": "Dobne preporuke (PG-13, R, TV-MA, itd.)", + "recommendations": "Preporuke", + "recommendations_desc": "Prijedlozi sličnog sadržaja", + "episode_data": "Podaci o epizodama", + "episode_data_desc": "Sličice epizoda, informacije i zamjenski podaci za serije", + "season_posters": "Posteri sezona", + "season_posters_desc": "Slike postera specifične za sezonu", + "production_info": "Informacije o produkciji", + "production_info_desc": "Mreže i produkcijske kuće s logotipima", + "movie_details": "Detalji o filmu", + "movie_details_desc": "Budžet, prihod, trajanje, slogan", + "tv_details": "Detalji o seriji", + "tv_details_desc": "Status, broj sezona, mreže, autori", + "movie_collections": "Kolekcije filmova", + "movie_collections_desc": "Filmske franšize (Marvel, Star Wars, itd.)", + "api_configuration": "API konfiguracija", + "api_configuration_desc": "Konfigurirajte svoj TMDb API pristup za poboljšanu funkcionalnost.", + "custom_api_key": "Prilagođeni API ključ", + "custom_api_key_desc": "Koristite vlastiti TMDb API ključ za bolje performanse i namjenska ograničenja.", + "custom_key_active": "Prilagođeni API ključ je aktivan", + "api_key_required": "Potreban je API ključ", + "api_key_placeholder": "Zalijepite svoj TMDb API ključ (v3)", + "how_to_get_key": "Kako dobiti TMDb API ključ?", + "built_in_key_msg": "Trenutno se koristi ugrađeni API ključ. Razmislite o korištenju vlastitog ključa za bolje performanse.", + "cache_size": "Veličina predmemorije", + "clear_cache": "Očisti predmemoriju", + "cache_days": "TMDb odgovori se spremaju 7 dana radi boljih performansi", + "choose_language": "Odaberi jezik", + "choose_language_desc": "Odaberite željeni jezik za TMDb sadržaj", + "popular": "Popularno", + "all_languages": "Svi jezici", + "search_results": "Rezultati pretraživanja", + "no_languages_found": "Nema pronađenih jezika za \"{{query}}\"", + "clear_search": "Očisti pretragu", + "clear_cache_title": "Očisti TMDb predmemoriju", + "clear_cache_msg": "Ovo će obrisati sve spremljene TMDb podatke ({{size}}). To može privremeno usporiti učitavanje dok se predmemorija ponovno ne izgradi.", + "clear_cache_success": "TMDb predmemorija je uspješno očišćena.", + "clear_cache_error": "Čišćenje predmemorije nije uspjelo.", + "clear_api_key_title": "Ukloni API ključ", + "clear_api_key_msg": "Jeste li sigurni da želite ukloniti svoj prilagođeni API ključ i vratiti se na zadani?", + "clear_api_key_success": "API ključ je uspješno uklonjen", + "clear_api_key_error": "Uklanjanje API ključa nije uspjelo", + "empty_api_key": "API ključ ne može biti prazan.", + "invalid_api_key": "Nevažeći API ključ. Provjerite i pokušajte ponovno.", + "save_error": "Došlo je do pogreške pri spremanju. Pokušajte ponovno.", + "using_builtin_key": "Sada koristite ugrađeni TMDb API ključ.", + "using_custom_key": "Sada koristite svoj prilagođeni TMDb API ključ.", + "enter_custom_key": "Molimo unesite i spremite svoj prilagođeni TMDb API ključ.", + "key_verified": "API ključ je verificiran i uspješno spremljen." + }, + "settings": { + "language": "Jezik", + "select_language": "Odaberi jezik", + "english": "Engleski", + "portuguese": "Portugalski", + "portuguese_br": "Portugalski (Brazil)", + "portuguese_pt": "Portugalski (Portugal)", + "german": "Njemački", + "arabic": "Arapski", + "spanish": "Španjolski", + "french": "Francuski", + "italian": "Talijanski", + "croatian": "Hrvatski", + "chinese": "Kineski (pojednostavljeni)", + "hindi": "Hindski", + "serbian": "Srpski", + "account": "Račun", + "content_discovery": "Sadržaj i otkrivanje", + "appearance": "Izgled", + "integrations": "Integracije", + "playback": "Reprodukcija", + "backup_restore": "Sigurnosna kopija i vraćanje", + "updates": "Ažuriranja", + "about": "O aplikaciji", + "developer": "Razvojni programer", + "cache": "Predmemorija", + "title": "Postavke", + "settings_title": "Postavke", + "sign_in_sync": "Prijavite se za sinkronizaciju", + "add_catalogs_sources": "Dodaci, katalozi i izvori", + "player_trailers_downloads": "Player, traileri, preuzimanja", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Provjeri ažuriranja", + "clear_mdblist_cache": "Očisti MDBList predmemoriju", + "cache_management": "UPRAVLJANJE PREDMEMORIJOM", + "downloads_counter": "preuzimanja i raste", + "made_with_love": "Napravljeno s ❤️ - Tapframe i prijatelji", + "sections": { + "information": "INFORMACIJE", + "account": "RAČUN", + "theme": "TEMA", + "layout": "RASPORED", + "sources": "IZVORI", + "catalogs": "KATALOZI", + "discovery": "OTKRIVANJE", + "metadata": "METAPODACI", + "ai_assistant": "AI ASISTENT", + "video_player": "VIDEO PLAYER", + "audio_subtitles": "AUDIO I TITLOVI", + "media": "MEDIJI", + "notifications": "OBAVIJESTI", + "testing": "TESTIRANJE", + "danger_zone": "ZONA OPASNOSTI" + }, + "items": { + "legal": "Pravne napomene i odricanje odgovornosti", + "privacy_policy": "Pravila privatnosti", + "report_issue": "Prijavi problem", + "version": "Verzija", + "contributors": "Suradnici", + "view_contributors": "Prikaži sve suradnike", + "theme": "Tema", + "episode_layout": "Raspored epizoda", + "streams_backdrop": "Pozadina streamova", + "streams_backdrop_desc": "Prikaži zamućenu pozadinu na streamovima na mobitelu", + "addons": "Dodaci", + "installed": "instalirano", + "debrid_integration": "Debrid integracija", + "debrid_desc": "Poveži Torbox", + "plugins": "Priključci", + "plugins_desc": "Upravljaj priključcima i repozitorijima", + "catalogs": "Katalozi", + "active": "aktivno", + "home_screen": "Početni zaslon", + "home_screen_desc": "Raspored i sadržaj", + "continue_watching": "Nastavi gledati", + "continue_watching_desc": "Predmemorija i ponašanje reprodukcije", + "show_discover": "Prikaži odjeljak 'Otkrij'", + "show_discover_desc": "Prikaži sadržaj za otkrivanje u pretrazi", + "mdblist": "MDBList", + "mdblist_connected": "Povezano", + "mdblist_desc": "Omogući za prikaz ocjena i recenzija", + "simkl": "Simkl", + "simkl_connected": "Povezano", + "simkl_desc": "Prati što gledaš", + "tmdb": "TMDB", + "tmdb_desc": "Pružatelj metapodataka i logotipa", + "openrouter": "OpenRouter API", + "openrouter_connected": "Povezano", + "openrouter_desc": "Dodaj API ključ za AI chat", + "video_player": "Video player", + "built_in": "Ugrađeni", + "external": "Vanjski", + "preferred_audio": "Željeni jezik zvuka", + "preferred_subtitle": "Željeni jezik titlova", + "subtitle_source": "Prioritet izvora titlova", + "auto_select_subs": "Automatski odabir titlova", + "auto_select_subs_desc": "Automatski odaberi titlove koji odgovaraju vašim postavkama", + "show_trailers": "Prikaži najave", + "show_trailers_desc": "Prikaži najave u glavnom odjeljku", + "enable_downloads": "Omogući preuzimanja", + "enable_downloads_desc": "Prikaži karticu Preuzimanja i omogući spremanje streamova", + "notifications": "Obavijesti", + "notifications_desc": "Podsjetnici za epizode", + "developer_tools": "Razvojni alati", + "developer_tools_desc": "Opcije za testiranje i uklanjanje pogrešaka", + "test_onboarding": "Testiraj uvodni ekran", + "reset_onboarding": "Resetiraj uvodni ekran", + "test_announcement": "Testiraj objavu", + "test_announcement_desc": "Prikaži prozor s novostima", + "reset_campaigns": "Resetiraj kampanje", + "reset_campaigns_desc": "Očisti zapise o prikazanim kampanjama", + "clear_all_data": "Očisti sve podatke", + "clear_all_data_desc": "Resetiraj sve postavke i predmemorirane podatke" + }, + "options": { + "horizontal": "Vodoravno", + "vertical": "Okomito", + "internal_first": "Prvo unutarnji", + "internal_first_desc": "Prednost imaju ugrađeni titlovi, zatim vanjski", + "external_first": "Prvo vanjski", + "external_first_desc": "Prednost imaju titlovi iz dodataka, zatim ugrađeni", + "any_available": "Bilo koji dostupni", + "any_available_desc": "Koristi prvi dostupni zapis titlova" + }, + "clear_data_desc": "Ovo će resetirati sve postavke i obrisati sve privremene podatke. Jeste li sigurni?", + "app_updates": "Ažuriranja aplikacije", + "about_nuvio": "O Nuviju" + }, + "privacy": { + "title": "Privatnost i Podaci", + "settings_desc": "Kontrolirajte telemetriju i prikupljanje podataka", + "info_title": "Vaša Privatnost nam je Važna", + "info_description": "Kontrolirajte koje podatke se prikupljaju i dijele. Analitika je podrazumevano onemogućena, a izveštaji o greškama su anonimni po zadanom.", + "analytics_enabled_title": "Analitika Omogućena", + "analytics_enabled_message": "Podaci o korišćenju će se prikupljati kako bi se poboljšala aplikacija. Možete to onemogućiti u bilo kojem trenutku.", + "disable_error_reporting_title": "Onemogućiti Izveštavanje o Greškama?", + "disable_error_reporting_message": "Onemogućavanje izveštavanja o greškama znači da nećemo biti obavesteni o padu ili problemima koje doživljate. Ovo može uticati na našu sposobnost da ispravimo greške.", + "enable_session_replay_title": "Omogućiti Reprodukciju Sesije?", + "enable_session_replay_message": "Reprodukcija sesije snima vaš ekran kada se greške dogode kako bi nam pomogla da razumemo šta se desilo. Ovo može da hvata vidljiv sadržaj na vašoj ekranu.", + "enable_pii_title": "Omogućiti Prikupljanje PII?", + "enable_pii_message": "Ovo omogućava prikupljanje lično identifikabilnih podataka kao što su IP adresa i detalji uređaja. Ovi podaci pomažu u dijagnostici problema, ali povećavaju izloženost privatnosti.", + "disable_all_title": "Onemogućiti Svu Telemetriju?", + "disable_all_message": "Ovo će onemogućiti svu analitiku, izveštavanje o greškama i reprodukciju sesije. Nećemo primati nikakve podatke o korišćenju aplikacije ili padevima.", + "disable_all_button": "Onemogući Sve", + "all_disabled_title": "Sva Telemetrija Onemogućena", + "all_disabled_message": "Svo prikupljanje podataka je onemogućeno. Promene će stupiti na snagu pri sledećem pokretanju aplikacije.", + "reset_title": "Resetuj na Preporučene", + "reset_message": "Postavke privatnosti su resetovane na preporučene zadane vrednosti (izveštavanje o greškama omogućeno, analitika onemogućena).", + "section_analytics": "ANALITIKA", + "analytics_title": "Analitika Korišćenja", + "analytics_description": "Prikupljaj anonimne obrasce korišćenja i prikaze ekrana", + "section_error_reporting": "IZVEŠTAVANJE O GREŠKAMA", + "error_reporting_title": "Izveštaji o Greškama", + "error_reporting_description": "Pošalji anonimne izveštaje o greškama kako bi se poboljšala stabilnost", + "session_replay_title": "Reprodukcija Sesije", + "session_replay_description": "Snimaj ekran kada se greške dogode", + "pii_title": "Uključi Informacije o Uređaju", + "pii_description": "Pošalji IP adresu i detalje uređaja sa izveštajima", + "section_quick_actions": "BRZE AKCIJE", + "disable_all": "Onemogući Svu Telemetriju", + "disable_all_desc": "Isključi svo prikupljanje podataka", + "reset_recommended": "Resetuj na Preporučene", + "reset_recommended_desc": "Zadane vrednosti usmeren na privatnost sa izveštavanjem o greškama", + "section_learn_more": "SAZNAJ VIŠE", + "privacy_policy": "Politika Privatnosti", + "current_settings": "Sažetak Trenutnih Postavki", + "summary_analytics": "Analitika", + "summary_errors": "Izveštaji o Greškama", + "summary_replay": "Reprodukcija Sesije", + "summary_pii": "Informacije o Uređaju", + "restart_note_detailed": "* Promene u analitici i izveštavanju o greškama stupaju na snagu odmah. Reprodukcija sesije i PII postavke zahtevaju ponovni pokretanje aplikacije." + }, + "ai_settings": { + "title": "AI asistent", + "info_title": "Chat pokretan umjetnom inteligencijom", + "info_desc": "Postavljajte pitanja o bilo kojem filmu ili epizodi serije koristeći napredni AI. Saznajte više o radnji, likovima, temama i zanimljivostima - sve temeljeno na TMDB podacima.", + "feature_1": "Kontekst i analiza specifična za epizodu", + "feature_2": "Objašnjenja radnje i uvid u likove", + "feature_3": "Zanimljivosti i činjenice iza kulisa", + "feature_4": "Vlastiti besplatni OpenRouter API ključ", + "api_key_section": "OPENROUTER API KLJUČ", + "api_key_label": "API ključ", + "api_key_desc": "Unesite svoj OpenRouter API ključ kako biste omogućili AI chat", + "save_api_key": "Spremi API ključ", + "saving": "Spremanje...", + "update": "Ažuriraj", + "remove": "Ukloni", + "get_free_key": "Nabavi besplatni API ključ od OpenRoutera", + "enable_chat": "Omogući AI Chat", + "enable_chat_desc": "Kada je omogućeno, gumb 'Pitaj AI' pojavit će se na stranicama sadržaja.", + "chat_enabled": "AI Chat omogućen", + "chat_enabled_desc": "Sada možete postavljati pitanja o filmovima i serijama. Potražite gumb \"Pitaj AI\"!", + "how_it_works": "Kako radi", + "how_it_works_desc": "• OpenRouter omogućuje pristup brojnim AI modelima\n• Vaš API ključ ostaje privatan i siguran\n• Besplatni paket uključuje izdašna ograničenja upotrebe\n• Razgovarajte o specifičnim epizodama ili filmovima\n• Dobijte detaljne analize i objašnjenja", + "error_invalid_key": "Molimo unesite važeći API ključ", + "error_key_format": "OpenRouter API ključevi trebaju počinjati s \"sk-or-\"", + "success_saved": "OpenRouter API ključ je uspješno spremljen!", + "error_save": "Spremanje API ključa nije uspjelo", + "confirm_remove_title": "Ukloni API ključ", + "confirm_remove_msg": "Jeste li sigurni da želite ukloniti svoj OpenRouter API ključ? To će onemogućiti AI chat.", + "success_removed": "API ključ uspješno uklonjen", + "error_remove": "Uklanjanje API ključa nije uspjelo" + }, + "catalog_settings": { + "title": "Katalozi", + "layout_phone": "RASPORED ZASLONA KATALOGA (MOBITEL)", + "posters_per_row": "Postera po retku", + "auto": "Automatski", + "show_titles": "Prikaži naslove postera", + "show_titles_desc": "Prikaži tekst naslova ispod svakog postera", + "phone_only_hint": "Vrijedi samo za mobitele. Tableti zadržavaju prilagodljivi raspored.", + "catalogs_group": "Katalozi", + "enabled_count": "Omogućeno {{enabled}} od {{total}}", + "rename_hint": "Dugo pritisnite katalog za preimenovanje", + "rename_modal_title": "Preimenuj katalog", + "rename_placeholder": "Unesite novi naziv kataloga", + "error_save_name": "Spremanje prilagođenog naziva nije uspjelo." + }, + "continue_watching_settings": { + "title": "Nastavi gledati", + "playback_behavior": "PONAŠANJE REPRODUKCIJE", + "use_cached": "Koristi predmemorirane streamove", + "use_cached_desc": "Kada je omogućeno, klikom na stavke 'Nastavi gledati' player se otvara izravno koristeći prethodne streamove. Kada je isključeno, otvara se zaslon sa sadržajem.", + "open_metadata": "Otvori zaslon s detaljima", + "open_metadata_desc": "Kada su predmemorirani streamovi isključeni, otvara se zaslon s detaljima umjesto popisa streamova. Ovo omogućuje ručni odabir streama.", + "card_appearance": "IZGLED KARTICE", + "card_style": "Stil kartice", + "card_style_desc": "Odaberite kako će se stavke 'Nastavi gledati' pojavljivati na početnom zaslonu", + "wide": "Široko", + "poster": "Poster", + "cache_settings": "POSTAVKE PREDMEMORIJE", + "cache_duration": "Trajanje predmemorije streama", + "cache_duration_desc": "Koliko dugo čuvati poveznice streamova prije nego što isteknu", + "important_note": "Važna napomena", + "important_note_text": "Sve poveznice streamova možda neće ostati aktivne cijelo vrijeme. Duže vrijeme predmemorije može rezultirati neispravnim poveznicama. U tom slučaju, aplikacija će ponovno dohvatiti svježe streamove.", + "how_it_works": "Kako radi", + "how_it_works_cached": "• Streamovi se spremaju na odabrano trajanje nakon gledanja\n• Predmemorirani streamovi se provjeravaju prije upotrebe\n• Ako je zapis nevažeći ili istekao, otvara se zaslon sadržaja\n• Opcija 'Koristi predmemorirane streamove' kontrolira izravni ulaz u player\n• 'Otvori zaslon s detaljima' pojavljuje se samo kad su predmemorirani streamovi isključeni", + "how_it_works_uncached": "• Kada su predmemorirani streamovi isključeni, klik otvara zaslone sadržaja\n• Opcija 'Otvori zaslon s detaljima' određuje koji će se zaslon otvoriti\n• Zaslon s metapodacima prikazuje detalje i ručni odabir\n• Zaslon sa streamovima prikazuje dostupne izvore za trenutnu reprodukciju", + "changes_saved": "Promjene spremljene", + "min": "min", + "hour": "sat", + "hours": "sati" + }, + "contributors": { + "title": "Suradnici", + "special_mentions": "Posebna priznanja", + "tab_contributors": "Suradnici", + "tab_special": "Posebna priznanja", + "tab_donors": "Donatori", + "manager_role": "Voditelj zajednice", + "manager_desc": "Upravlja Discord i Reddit zajednicama za Nuvio", + "sponsor_role": "Sponzor poslužitelja", + "sponsor_desc": "Sponzorirao infrastrukturu poslužitelja za Nuvio", + "mod_role": "Discord moderator", + "mod_desc": "Pomaže u moderiranju Nuvio Discord zajednice", + "loading": "Učitavanje...", + "discord_user": "Discord korisnik", + "contributions": "doprinosa", + "gratitude_title": "Zahvalni smo na svakom doprinosu", + "gratitude_desc": "Svaka linija koda, prijava pogreške i prijedlog pomažu da Nuvio postane bolji za sve", + "special_thanks_title": "Posebna hvala", + "special_thanks_desc": "Ovi nevjerojatni ljudi pomažu u održavanju Nuvio zajednice i poslužitelja", + "donors_desc": "Hvala vam što vjerujete u ono što gradimo. Vaša podrška drži Nuvio besplatnim i stalno ga poboljšava.", + "latest_donations": "Najnovije", + "leaderboard": "Poredak", + "loading_donors": "Učitavanje donatora...", + "no_donors": "Još nema donatora", + "error_rate_limit": "Prekoračeno ograničenje GitHub API-ja. Pokušajte kasnije.", + "error_failed": "Učitavanje suradnika nije uspjelo. Provjerite internetsku vezu.", + "retry": "Pokušaj ponovno", + "no_contributors": "Nisu pronađeni suradnici", + "loading_contributors": "Učitavanje suradnika..." + }, + "debrid": { + "title": "Debrid integracija", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Povezano", + "status_disconnected": "Odspojeno", + "enable_addon": "Omogući dodatak", + "disconnect_button": "Odspoji i ukloni", + "disconnect_loading": "Odspajanje...", + "account_info": "Informacije o računu", + "plan": "Paket", + "plan_free": "Besplatno", + "plan_essential": "Essential (3 $/mj)", + "plan_pro": "Pro (10 $/mj)", + "plan_standard": "Standard (5 $/mj)", + "plan_unknown": "Nepoznato", + "expires": "Istječe", + "downloaded": "Preuzeto", + "status_active": "Aktivno", + "connected_title": "✓ Povezano s TorBoxom", + "connected_desc": "Vaš TorBox dodatak je aktivan i pruža premium streamove.", + "configure_title": "Konfiguriraj dodatak", + "configure_desc": "Prilagodite svoje iskustvo. Razvrstajte po kvaliteti, filtrirajte veličine datoteka i upravljajte postavkama.", + "open_settings": "Otvori postavke", + "what_is_debrid": "Što je Debrid usluga?", + "enter_api_key": "Unesite API ključ", + "connect_button": "Poveži i instaliraj", + "connecting": "Povezivanje...", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", + "get_subscription": "Pretplati se", + "powered_by": "Pokreće", + "disclaimer_torbox": "Nuvio nije povezan s Torboxom ni na koji način.", + "disclaimer_torrentio": "Nuvio nije povezan s Torrentio dodatakom ni na koji način.", + "installed_badge": "✓ INSTALIRANO", + "promo_title": "⚡ Trebate Debrid uslugu?", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", + "promo_button": "Nabavi TorBox pretplatu", + "service_label": "Debrid usluga *", + "api_key_label": "API ključ *", + "sorting_label": "Razvrstavanje", + "exclude_qualities": "Isključi kvalitete", + "priority_languages": "Prioritetni jezici", + "max_results": "Maksimalno rezultata", + "additional_options": "Dodatne opcije", + "no_download_links": "Ne prikazuj poveznice za preuzimanje", + "no_debrid_catalog": "Ne prikazuj debrid katalog", + "install_button": "Instaliraj Torrentio", + "installing": "Instalacija...", + "update_button": "Ažuriraj konfiguraciju", + "updating": "Ažuriranje...", + "remove_button": "Ukloni Torrentio", + "error_api_required": "Potreban API ključ", + "error_api_required_desc": "Unesite API ključ debrid usluge za instalaciju Torrentia.", + "success_installed": "Torrentio dodatak je uspješno instaliran!", + "success_removed": "Torrentio dodatak je uspješno uklonjen", + "alert_disconnect_title": "Odspoji Torbox", + "alert_disconnect_msg": "Jeste li sigurni da želite odspojiti Torbox? Ovo će ukloniti dodatak i obrisati API ključ." + }, + "home_screen": { + "title": "Postavke početnog zaslona", + "changes_applied": "Promjene primijenjene", + "display_options": "OPCIJE PRIKAZA", + "show_hero": "Prikaži istaknuti sadržaj", + "show_hero_desc": "Istaknuti sadržaj na vrhu", + "show_this_week": "Prikaži 'Ovaj tjedan'", + "show_this_week_desc": "Nove epizode iz tekućeg tjedna", + "select_catalogs": "Odaberi kataloge", + "all_catalogs": "Svi katalozi", + "selected": "odabrano", + "hero_layout": "Izgled istaknutog sadržaja", + "layout_legacy": "Klasično", + "layout_carousel": "Vrtuljak", + "layout_appletv": "Apple TV", + "layout_desc": "Banner pune širine, kartice koje se listaju ili Apple TV stil", + "featured_source": "Izvor istaknutog sadržaja", + "using_catalogs": "Koriste se katalozi", + "manage_selected_catalogs": "Upravljaj odabranim katalozima", + "dynamic_bg": "Dinamična pozadina", + "dynamic_bg_desc": "Zamućeni banner iza vrtuljka", + "performance_note": "Može utjecati na performanse na slabijim uređajima.", + "posters": "Posteri", + "show_titles": "Prikaži naslove", + "poster_size": "Veličina postera", + "poster_corners": "Kutovi postera", + "size_small": "Mali", + "size_medium": "Srednji", + "size_large": "Veliki", + "corners_square": "Oštri", + "corners_rounded": "Zaobljeni", + "corners_pill": "Ovalni", + "about_these_settings": "O OVIM POSTAVKAMA", + "about_desc": "Ove postavke kontroliraju kako se sadržaj prikazuje na vašem početnom zaslonu. Promjene se primjenjuju odmah bez potrebe za ponovnim pokretanjem aplikacije.", + "hero_catalogs": { + "title": "Katalozi istaknutog sadržaja", + "select_all": "Odaberi sve", + "clear_all": "Očisti sve", + "info": "Odaberite koji će se katalozi prikazivati u odjeljku s istaknutim sadržajem. Ako ništa nije odabrano, koristit će se svi katalozi. Ne zaboravite pritisnuti 'Spremi' kada završite.", + "settings_saved": "Postavke spremljene", + "error_load": "Učitavanje kataloga nije uspjelo", + "movies": "Filmovi", + "tv_shows": "Serije" + } + }, + "calendar": { + "title": "Kalendar", + "loading": "Učitavanje kalendara...", + "no_scheduled_episodes": "Nema zakazanih epizoda", + "check_back_later": "Provjerite ponovno kasnije", + "showing_episodes_for": "Prikaz epizoda za {{date}}", + "show_all_episodes": "Prikaži sve epizode", + "no_episodes_for": "Nema epizoda za {{date}}", + "no_upcoming_found": "Nisu pronađene nadolazeće epizode", + "add_series_desc": "Dodajte serije u svoju knjižnicu kako biste ovdje vidjeli njihove nadolazeće epizode" + }, + "mdblist": { + "title": "Izvori ocjena", + "status_disabled": "MDBList onemogućen", + "status_active": "API ključ aktivan", + "status_required": "Potreban API ključ", + "status_disabled_desc": "MDBList funkcionalnost je trenutno isključena.", + "status_active_desc": "Ocjene s MDBList-a su omogućene.", + "status_required_desc": "Dodajte svoj ključ ispod kako biste omogućili ocjene.", + "enable_toggle": "Omogući MDBList", + "enable_toggle_desc": "Uključi/isključi sve MDBList funkcionalnosti", + "api_section": "API ključ", + "placeholder": "Zalijepite svoj MDBList API ključ", + "save": "Spremi", + "clear": "Obriši ključ", + "rating_providers": "Pružatelji ocjena", + "rating_providers_desc": "Odaberite čije će se ocjene prikazivati u aplikaciji", + "how_to": "Kako dobiti API ključ", + "step_1": "Prijavite se na", + "step_1_link": "MDBList web stranici", + "step_2": "Idite na odjeljak", + "step_2_settings": "Postavke", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Generirajte novi ključ i kopirajte ga.", + "go_to_website": "Posjeti MDBList", + "alert_clear_title": "Brisanje API ključa", + "alert_clear_msg": "Jeste li sigurni da želite ukloniti spremljeni API ključ?", + "success_saved": "API ključ uspješno spremljen.", + "error_empty": "API ključ ne može biti prazan.", + "error_save": "Došlo je do pogreške pri spremanju. Pokušajte ponovno.", + "api_key_empty_error": "API ključ ne može biti prazan.", + "success_cleared": "API ključ uspješno obrisan", + "error_clear": "Brisanje API ključa nije uspjelo" + }, + "notification": { + "title": "Postavke obavijesti", + "section_general": "Općenito", + "enable_notifications": "Omogući obavijesti", + "section_types": "Vrste obavijesti", + "new_episodes": "Nove epizode", + "upcoming_shows": "Nadolazeće serije", + "reminders": "Podsjetnici", + "section_timing": "Vrijeme obavijesti", + "timing_desc": "Kada želite primiti obavijest prije emitiranja epizode?", + "hours_1": "1 sat", + "hours_suffix": "sati", + "section_status": "Status obavijesti", + "stats_upcoming": "Nadolazeće", + "stats_this_week": "Ovaj tjedan", + "stats_total": "Ukupno", + "sync_button": "Sinkroniziraj knjižnicu i Trakt", + "syncing": "Sinkronizacija...", + "sync_desc": "Automatski sinkronizira obavijesti za sve serije u vašoj knjižnici i Trakt listama.", + "section_advanced": "Napredno", + "reset_button": "Resetiraj sve obavijesti", + "test_button": "Testiraj obavijest (5 sek)", + "test_notification_in": "Obavijest za {{seconds}}s...", + "test_notification_text": "Obavijest će se pojaviti za {{seconds}} sekundi", + "alert_reset_title": "Resetiraj obavijesti", + "alert_reset_msg": "Ovo će otkazati sve zakazane obavijesti, ali neće ukloniti ništa iz vaše knjižnice. Jeste li sigurni?", + "alert_reset_success": "Sve obavijesti su resetirane", + "alert_sync_complete": "Sinkronizacija dovršena", + "alert_sync_msg": "Uspješno sinkronizirane obavijesti za vašu knjižnicu i Trakt stavke.\n\nZakazano: {{upcoming}} nadolazećih epizoda\nOvaj tjedan: {{thisWeek}} epizoda", + "alert_test_scheduled": "Testna obavijest zakazana za trenutno prikazivanje" + }, + "backup": { + "title": "Sigurnosna kopija i oporavak", + "options_title": "Opcije sigurnosne kopije", + "options_desc": "Odaberite što želite uključiti u sigurnosnu kopiju", + "section_core": "Osnovni podaci", + "section_addons": "Dodaci i integracije", + "section_settings": "Postavke i preferencije", + "library_label": "Knjižnica", + "library_desc": "Vaši spremljeni filmovi i serije", + "watch_progress_label": "Napredak gledanja", + "watch_progress_desc": "Pozicije 'Nastavi gledati'", + "addons_label": "Dodaci", + "addons_desc": "Instalirani Stremio dodaci", + "plugins_label": "Priključci", + "plugins_desc": "Prilagođene konfiguracije strugača", + "trakt_label": "Trakt integracija", + "trakt_desc": "Sinkronizacija podataka i tokeni za prijavu", + "app_settings_label": "Postavke aplikacije", + "app_settings_desc": "Tema, preferencije i konfiguracije", + "user_prefs_label": "Korisničke preferencije", + "user_prefs_desc": "Redoslijed dodataka i postavke sučelja", + "catalog_settings_label": "Postavke kataloga", + "catalog_settings_desc": "Filteri kataloga i preferencije", + "api_keys_label": "API ključevi", + "api_keys_desc": "MDBList i OpenRouter ključevi", + "action_create": "Stvori sigurnosnu kopiju", + "action_restore": "Vrati iz sigurnosne kopije", + "section_info": "O sigurnosnim kopijama", + "info_text": "• Prilagodite što se sprema pomoću prekidača iznad\n• Datoteke se pohranjuju lokalno na vašem uređaju\n• Podijelite sigurnosnu kopiju za prijenos podataka na drugi uređaj\n• Oporavak će prepisati vaše trenutne podatke", + "alert_create_title": "Stvori sigurnosnu kopiju", + "alert_no_content": "Nije odabran sadržaj za kopiju.\n\nMolimo omogućite barem jednu opciju iznad.", + "alert_backup_created_title": "Kopija stvorena", + "alert_backup_created_msg": "Vaša sigurnosna kopija je spremna i možete je podijeliti.", + "alert_backup_failed_title": "Stvaranje kopije nije uspjelo", + "alert_restore_confirm_title": "Potvrdi oporavak", + "alert_restore_confirm_msg": "Ovo će vratiti vaše podatke iz kopije stvorene {{date}}.\n\nOva radnja će prepisati trenutne podatke. Želite li nastaviti?", + "alert_restore_complete_title": "Oporavak dovršen", + "alert_restore_complete_msg": "Vaši podaci su uspješno vraćeni. Ponovno pokrenite aplikaciju za primjenu promjena.", + "alert_restore_failed_title": "Oporavak nije uspio", + "restart_app": "Ponovno pokreni aplikaciju", + "alert_restart_failed_title": "Ponovno pokretanje nije uspjelo", + "alert_restart_failed_msg": "Neuspjelo ponovno pokretanje. Ručno zatvorite i otvorite aplikaciju." + }, + "updates": { + "title": "Ažuriranja aplikacije", + "status_checking": "Provjera ažuriranja...", + "status_available": "Ažuriranje dostupno!", + "status_downloading": "Preuzimanje ažuriranja...", + "status_installing": "Instalacija ažuriranja...", + "status_success": "Ažuriranje uspješno instalirano!", + "status_error": "Ažuriranje nije uspjelo", + "status_ready": "Spremno za provjeru", + "action_check": "Provjeri ažuriranja", + "action_install": "Instaliraj ažuriranje", + "release_notes": "Napomene o izdanju:", + "version": "Verzija:", + "last_checked": "Zadnja provjera:", + "current_version": "Trenutna verzija:", + "current_release_notes": "Trenutne napomene o izdanju:", + "github_release": "GITHUB IZDANJE", + "current": "Trenutna:", + "latest": "Najnovija:", + "notes": "Bilješke:", + "view_release": "Pogledaj izdanje", + "notification_settings": "POSTAVKE OBAVIJESTI", + "ota_alerts_label": "OTA upozorenja o ažuriranju", + "ota_alerts_desc": "Prikaži obavijesti za bežična (OTA) ažuriranja", + "major_alerts_label": "Glavna upozorenja o ažuriranju", + "major_alerts_desc": "Prikaži obavijesti za nove verzije na GitHubu", + "alert_disable_ota_title": "Onemogućiti OTA upozorenja?", + "alert_disable_ota_msg": "Više nećete primati obavijesti o OTA ažuriranjima.\n\n⚠️ Upozorenje: Najnovija verzija je važna za:\n• Ispravke bugova i stabilnost\n• Nove značajke\n• Točne izvještaje o padu aplikacije\n\nI dalje možete ručno provjeriti ažuriranja.", + "alert_disable_major_title": "Onemogućiti glavna upozorenja?", + "alert_disable_major_msg": "Više nećete primati obavijesti o verzijama koje zahtijevaju ponovnu instalaciju.\n\n⚠️ Upozorenje: Glavna ažuriranja sadrže:\n• Kritične sigurnosne zakrpe\n• Velike promjene sustava\n• Važne ispravke kompatibilnosti", + "warning_note": "Omogućena upozorenja osiguravaju da dobijete ispravke i nove mogućnosti.", + "disable": "Onemogući", + "alert_no_update_to_install": "Nema dostupnog ažuriranja za instalaciju", + "alert_install_failed": "Instalacija ažuriranja nije uspjela", + "alert_no_update_title": "Nema ažuriranja", + "alert_update_applied_msg": "Ažuriranje će se primijeniti kod sljedećeg pokretanja" + }, + "player": { + "title": "Video player", + "section_selection": "ODABIR PLAYERA", + "internal_title": "Ugrađeni player", + "internal_desc": "Koristi zadani player aplikacije", + "vlc_title": "VLC", + "vlc_desc": "Otvori streamove u VLC-u", + "infuse_title": "Infuse", + "infuse_desc": "Otvori streamove u Infuse-u", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Otvori streamove u OutPlayeru", + "vidhub_title": "VidHub", + "vidhub_desc": "Otvori streamove u VidHubu", + "infuse_live_title": "Infuse LiveContainer", + "infuse_live_desc": "Otvori streamove u Infuse-u putem LiveContainera", + "external_title": "Vanjski player", + "external_desc": "Otvori streamove u svom željenom playeru", + "section_playback": "OPCIJE REPRODUKCIJE", + "skip_intro_settings_title": "Preskoči uvod", + "powered_by_introdb": "Pokreće IntroDB", + "autoplay_title": "Automatska reprodukcija prvog streama", + "autoplay_desc": "Automatski pokreni prvi stream s popisa.", + "resume_title": "Uvijek nastavi", + "resume_desc": "Preskoči upit i nastavi tamo gdje ste stali (ako je odgledano manje od 85%).", + "engine_title": "Engine video playera", + "engine_desc": "Auto koristi ExoPlayer uz MPV kao rezervu. Neki formati poput Dolby Vision možda nisu podržani na MPV-u.", + "decoder_title": "Način dekodiranja", + "decoder_desc": "Kako se video dekodira. 'Auto' se preporučuje.", + "gpu_title": "GPU renderiranje", + "gpu_desc": "GPU-Next nudi bolje HDR upravljanje bojama.", + "external_downloads_title": "Vanjski player za preuzimanja", + "external_downloads_desc": "Reproduciraj preuzeti sadržaj u vanjskom playeru.", + "restart_required": "Potrebno ponovno pokretanje", + "restart_msg_decoder": "Ponovno pokrenite aplikaciju za primjenu promjena dekodera.", + "restart_msg_gpu": "Ponovno pokrenite aplikaciju za primjenu GPU načina.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV rezerva", + "option_mpv": "MPV", + "option_mpv_desc": "Samo MPV", + "option_auto_desc_decoder": "Najbolji balans", + "option_sw": "SW", + "option_sw_desc": "Softversko", + "option_hw": "HW", + "option_hw_desc": "Hardversko", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Puni HW", + "option_gpu_desc": "Standardno", + "option_gpu_next_desc": "Napredno" + }, + "plugins": { + "title": "Priključci", + "enable_title": "Omogući priključke", + "enable_desc": "Omogući sustav priključaka za pronalaženje vanjskih izvora medija", + "repo_config_title": "Konfiguracija repozitorija", + "repo_config_desc": "Upravljajte vanjskim repozitorijima priključaka.", + "your_repos": "Repozitoriji", + "your_repos_desc": "Konfigurirajte vanjske izvore za priključke.", + "add_repo_button": "Dodaj repozitorij", + "refresh": "Osvježi", + "remove": "Ukloni", + "enabled": "Omogućeno", + "disabled": "Onemogućeno", + "updating": "Ažuriranje...", + "success": "Uspjeh", + "error": "Pogreška", + "alert_repo_added": "Repozitorij dodan i priključci uspješno učitani", + "alert_repo_saved": "URL repozitorija uspješno spremljen", + "alert_repo_refreshed": "Repozitorij uspješno osvježen", + "alert_invalid_url": "Nevažeći URL format", + "alert_plugins_cleared": "Svi priključci su uklonjeni", + "alert_cache_cleared": "Predmemorija repozitorija uspješno očišćena", + "unknown": "Nepoznato", + "active": "Aktivno", + "available": "Dostupno", + "platform_disabled": "Platforma onemogućena", + "limited": "Ograničeno", + "clear_all": "Ukloni sve priključke", + "clear_all_desc": "Jeste li sigurni da želite ukloniti sve instalirane priključke? To se ne može poništiti.", + "clear_cache": "Očisti predmemoriju repozitorija", + "clear_cache_desc": "Ovo će ukloniti URL i podatke repozitorija. Morat ćete ga ponovno unijeti.", + "add_new_repo": "Dodaj novi repozitorij", + "available_plugins": "Dostupni priključci ({{count}})", + "placeholder": "Pretraži priključke...", + "all": "Svi", + "filter_all": "Sve vrste", + "filter_movies": "Filmovi", + "filter_tv": "Serije", + "enable_all": "Omogući sve", + "disable_all": "Onemogući sve", + "no_plugins_found": "Priključci nisu pronađeni", + "no_plugins_available": "Nema dostupnih priključaka", + "no_match_desc": "Nema rezultata za \"{{query}}\". Pokušajte s drugim pojmom.", + "configure_repo_desc": "Konfigurirajte repozitorij iznad za prikaz priključaka.", + "clear_search": "Očisti pretragu", + "no_external_player": "Nema vanjskog playera", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "Zalijepite svoj ShowBox UI token", + "save": "Spremi", + "clear": "Očisti", + "additional_settings": "Dodatne postavke", + "enable_url_validation": "Omogući provjeru URL-a", + "url_validation_desc": "Provjeri ispravnost poveznica (može usporiti rezultate, ali povećava pouzdanost)", + "group_streams": "Grupiraj izvore priključaka", + "group_streams_desc": "Izvori će biti grupirani prema repozitoriju.", + "sort_quality": "Poredaj prvo po kvaliteti", + "sort_quality_desc": "Izvori se prvo razvrstavaju po kvaliteti (samo uz grupiranje).", + "show_logos": "Prikaži logotipe priključaka", + "show_logos_desc": "Prikaži logotipe pored izvora na zaslonu odabira.", + "quality_filtering": "Filtriranje kvalitete", + "quality_filtering_desc": "Isključi određene rezolucije iz rezultata.", + "excluded_qualities": "Isključene kvalitete:", + "language_filtering": "Filtriranje jezika", + "language_filtering_desc": "Isključi određene jezike iz rezultata.", + "note": "Napomena:", + "language_filtering_note": "Ovo se primjenjuje samo na pružatelje koji šalju informaciju o jeziku.", + "excluded_languages": "Isključeni jezici:", + "about_title": "O priključcima", + "about_desc_1": "Priključci su modularne komponente koje prilagođavaju sadržaj s vanjskih protokola. Rade lokalno na vašem uređaju.", + "about_desc_2": "Priključci označeni kao \"Ograničeno\" mogu zahtijevati dodatne konfiguracije.", + "help_title": "Postavljanje priključaka", + "help_step_1": "1. **Omogući priključke** - Uključite glavni prekidač", + "help_step_2": "2. **Dodaj repozitorij** - Unesite ispravan URL", + "help_step_3": "3. **Osvježi** - Povucite popis dostupnih priključaka", + "help_step_4": "4. **Aktiviraj** - Omogućite željene priključke", + "got_it": "Razumijem!", + "repo_format_hint": "Format: https://raw.githubusercontent.com/korisnik/repo/refs/heads/branch", + "cancel": "Odustani", + "add": "Dodaj" + }, + "theme": { + "title": "Teme aplikacije", + "select_theme": "ODABERI TEMU", + "create_custom": "Stvori vlastitu temu", + "options": "OPCIJE", + "use_dominant_color": "Koristi dominantnu boju s postera", + "categories": { + "all": "Sve teme", + "dark": "Tamne teme", + "colorful": "Šarene", + "custom": "Moje teme" + }, + "editor": { + "theme_name_placeholder": "Naziv teme", + "save": "Spremi", + "primary": "Primarna", + "secondary": "Sekundarna", + "background": "Pozadina", + "invalid_name_title": "Nevažeći naziv", + "invalid_name_msg": "Molimo unesite ispravan naziv teme" + }, + "alerts": { + "delete_title": "Obriši temu", + "delete_msg": "Jeste li sigurni da želite obrisati temu \"{{name}}\"?", + "ok": "U redu", + "delete": "Obriši", + "cancel": "Odustani", + "back": "Postavke" + } + }, + "legal": { + "title": "Pravne napomene i odricanje odgovornosti", + "intro_title": "Priroda aplikacije", + "intro_text": "Nuvio je media player i aplikacija za upravljanje metapodacima. Djeluje isključivo kao klijentsko sučelje za pregledavanje javno dostupnih informacija (filmovi, serije) i reprodukciju datoteka koje osigura korisnik ili dodaci trećih strana. Nuvio ne ugošćuje, ne distribuira niti indeksira nikakav medijski sadržaj.", + "extensions_title": "Priključci trećih strana", + "extensions_text": "Nuvio omogućuje instalaciju priključaka koje razvijaju neovisni programeri. Nemamo kontrolu niti odgovornost za sadržaj, zakonitost ili funkcionalnost tih priključaka.", + "user_resp_title": "Odgovornost korisnika", + "user_resp_text": "Korisnici su isključivo odgovorni za priključke koje instaliraju. Korištenjem aplikacije pristajete osigurati da imate zakonsko pravo na pristup sadržaju koji gledate. Autori Nuvia ne potiču kršenje autorskih prava.", + "dmca_title": "Autorska prava i DMCA", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", + "warranty_title": "Bez jamstva", + "warranty_text": "Softver se isporučuje \"kakav jest\", bez ikakvih jamstava. Autori nisu odgovorni za bilo kakvu štetu nastalu korištenjem ovog softvera." + }, + "plugin_tester": { + "title": "Plugin Tester", + "subtitle": "Pokrenite strugače i pratite zapise u stvarnom vremenu", + "tabs": { + "individual": "Pojedinačno", + "repo": "Repo Tester", + "code": "Kod", + "logs": "Zapisi", + "results": "Rezultati" + }, + "common": { + "error": "Pogreška", + "success": "Uspjeh", + "movie": "Film", + "tv": "Serija", + "tmdb_id": "TMDB ID", + "season": "Sezona", + "episode": "Epizoda", + "running": "Pokretanje…", + "run_test": "Pokreni test", + "play": "Reproduciraj", + "done": "Gotovo", + "test": "Test", + "testing": "Testiranje…" + }, + "individual": { + "load_from_url": "Učitaj s URL-a", + "load_from_url_desc": "Zalijepite GitHub URL ili lokalni IP i preuzmite.", + "enter_url_error": "Molimo unesite URL", + "code_loaded": "Kod učitan s URL-a", + "fetch_error": "Dohvaćanje nije uspjelo: {{message}}", + "no_code_error": "Nema koda za pokretanje", + "plugin_code": "Kod priključka", + "focus_editor": "Fokusiraj uređivač koda", + "code_placeholder": "// Zalijepite kod priključka ovdje...", + "test_parameters": "Testni parametri", + "no_logs": "Još nema zapisa. Pokrenite test.", + "no_streams": "Nisu pronađeni streamovi.", + "streams_found": "Pronađen {{count}} stream", + "streams_found_plural": "Pronađeno {{count}} streama", + "tap_play_hint": "Dodirnite 'Reproduciraj' za testiranje streama.", + "unnamed_stream": "Neimenovani stream", + "quality": "Kvaliteta: {{quality}}", + "size": "Veličina: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Zaglavlja: {{count}} prilagođenih", + "find_placeholder": "Pronađi u kodu…", + "edit_code_title": "Uredi kod", + "no_url_stream_error": "Nije pronađen URL za ovaj stream" + }, + "repo": { + "title": "Repo Tester", + "description": "Dohvatite repozitorij i testirajte svakog pružatelja.", + "enter_repo_url_error": "Unesite URL repozitorija", + "invalid_url_title": "Nevažeći URL", + "invalid_url_msg": "Koristite GitHub raw URL ili lokalni http(s) URL.", + "manifest_build_error": "Neuspjelo stvaranje URL-a manifesta", + "manifest_fetch_error": "Neuspjelo dohvaćanje manifesta", + "repo_manifest_fetch_error": "Neuspjelo dohvaćanje manifesta repozitorija", + "missing_filename": "Nedostaje naziv datoteke u manifestu", + "scraper_build_error": "Neuspjelo stvaranje URL-a strugača", + "download_scraper_error": "Neuspjelo preuzimanje strugača", + "test_failed": "Test nije uspio", + "test_parameters": "Parametri Repo testa", + "test_parameters_desc": "Ovi se parametri koriste samo za Repo Tester.", + "using_info": "Koristi se: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Koristi se: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Pružatelji", + "repository_default": "Repozitorij", + "providers_count": "{{count}} pružatelja", + "fetch_hint": "Dohvatite repo za popis pružatelja.", + "test_all": "Testiraj sve", + "status_running": "U TIJEKU", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "NEUSPJEH", + "status_idle": "ČEKANJE", + "tried_url": "Pokušano: {{url}}", + "provider_logs": "Zapisi pružatelja", + "no_logs_captured": "Nema zapisa." + } + } +} diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 5e34bf56..3b441107 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -1,1413 +1,1413 @@ { - "common": { - "loading": "Caricamento...", - "cancel": "Annulla", - "save": "Salva", - "delete": "Elimina", - "edit": "Modifica", - "search": "Cerca", - "error": "Errore", - "success": "Successo", - "ok": "OK", - "unknown": "Sconosciuto", - "retry": "Riprova", - "try_again": "Riprova", - "go_back": "Torna indietro", - "settings": "Impostazioni", - "close": "Chiudi", - "enable": "Abilita", - "disable": "Disabilita", - "show_more": "Mostra altro", - "show_less": "Mostra meno", - "load_more": "Carica altro", - "unknown_date": "Data sconosciuta", - "anonymous_user": "Utente anonimo", - "time": { - "now": "Proprio ora", - "minutes_ago": "{{count}}m fa", - "hours_ago": "{{count}}o fa", - "days_ago": "{{count}}g fa" - }, - "days_short": { - "sun": "Dom", - "mon": "Lun", - "tue": "Mar", - "wed": "Mer", - "thu": "Gio", - "fri": "Ven", - "sat": "Sab" - }, - "email": "Email", - "status": "Stato" - }, - "home": { - "categories": { - "movies": "Film", - "series": "Serie TV", - "channels": "Canali" - }, - "movies": "Film", - "tv_shows": "Serie TV", - "load_more_catalogs": "Carica altri cataloghi", - "no_content": "Nessun contenuto disponibile", - "add_catalogs": "Aggiungi cataloghi", - "sign_in_available": "Accesso disponibile", - "sign_in_desc": "Puoi accedere in qualsiasi momento da Impostazioni → Account", - "view_all": "Vedi tutto", - "this_week": "Questa settimana", - "upcoming": "In arrivo", - "recently_released": "Rilasciati di recente", - "no_scheduled_episodes": "Serie TV senza episodi programmati", - "check_back_later": "Torna a controllare più tardi", - "continue_watching": "Continua a guardare", - "up_next": "Prossimi titoli", - "up_next_caps": "PROSSIMI TITOLI", - "released": "Rilasciato", - "new": "Nuovo", - "tba": "Da annunciare", - "new_episodes": "{{count}} Nuovi episodi", - "season_short": "S{{season}}", - "episode_short": "E{{episode}}", - "season": "Stagione {{season}}", - "episode": "Episodio {{episode}}", - "movie": "Film", - "series": "Serie TV", - "tv_show": "Serie TV", - "percent_watched": "{{percent}}% guardato", - "view_details": "Visualizza dettagli", - "remove": "Rimuovi", - "play": "Riproduci", - "play_now": "Riproduci ora", - "resume": "Riprendi", - "info": "Info", - "more_info": "Più informazioni", - "my_list": "La mia lista", - "save": "Salva", - "saved": "Salvato", - "retry": "Riprova", - "install_addons": "Installa Addon", - "settings": "Impostazioni", - "no_featured_content": "Nessun contenuto in evidenza", - "couldnt_load_featured": "Impossibile caricare i contenuti in evidenza", - "no_featured_desc": "Installa addon con cataloghi o cambia la sorgente dei contenuti nelle impostazioni.", - "load_error_desc": "Si è verificato un problema nel recupero dei contenuti in evidenza. Controlla la tua connessione e riprova.", - "no_featured_available": "Nessun contenuto in evidenza disponibile", - "no_description": "Nessuna descrizione disponibile" - }, - "navigation": { - "home": "Home", - "library": "Libreria", - "search": "Cerca", - "downloads": "Download", - "settings": "Impostazioni" - }, - "search": { - "title": "Cerca", - "recent_searches": "Ricerche recenti", - "discover": "Scopri", - "movies": "Film", - "tv_shows": "Serie TV", - "select_catalog": "Seleziona catalogo", - "all_genres": "Tutti i generi", - "discovering": "Scoperta contenuti in corso...", - "show_more": "Mostra altro ({{count}})", - "no_content_found": "Nessun contenuto trovato", - "try_different": "Prova un genere o un catalogo differente", - "select_catalog_desc": "Seleziona un catalogo da esplorare", - "tap_catalog_desc": "Tocca il catalogo qui sopra per iniziare", - "placeholder": "Cerca film, Serie TV...", - "keep_typing": "Continua a scrivere...", - "type_characters": "Scrivi almeno 2 caratteri per cercare", - "no_results": "Nessun risultato trovato", - "try_keywords": "Prova parole chiave diverse o controlla l'ortografia", - "select_type": "Seleziona tipo", - "browse_movies": "Sfoglia i cataloghi dei film", - "browse_tv": "Sfoglia i cataloghi delle Serie TV", - "select_genre": "Seleziona genere", - "show_all_content": "Mostra tutti i contenuti", - "genres_count": "{{count}} generi" - }, - "library": { - "title": "Libreria", - "watched": "Visti", - "continue": "Continua", - "watchlist": "Watchlist", - "collection": "Collezione", - "rated": "Valutati", - "items": "elementi", - "trakt_collections": "Collezioni Trakt", - "trakt_collection": "Collezione Trakt", - "no_trakt": "Nessuna collezione Trakt", - "no_trakt_desc": "Le tue collezioni Trakt appariranno qui non appena inizierai a usare Trakt", - "load_collections": "Carica collezioni", - "empty_folder": "Nessun contenuto in {{folder}}", - "empty_folder_desc": "Questa collezione è vuota", - "refresh": "Aggiorna", - "no_movies": "Ancora nessun film", - "no_series": "Ancora nessuna Serie TV", - "no_content": "Ancora nessun contenuto", - "add_content_desc": "Aggiungi dei contenuti alla tua libreria per vederli qui", - "find_something": "Trova qualcosa da guardare", - "removed_from_library": "Rimosso dalla Libreria", - "item_removed": "Elemento rimosso dalla tua libreria", - "failed_update_library": "Aggiornamento Libreria fallito", - "unable_remove": "Impossibile rimuovere l'elemento dalla libreria", - "marked_watched": "Segnato come Visto", - "marked_unwatched": "Segnato come Non Visto", - "item_marked_watched": "Elemento segnato come visto", - "item_marked_unwatched": "Elemento segnato come non visto", - "failed_update_watched": "Aggiornamento stato visione fallito", - "unable_update_watched": "Impossibile aggiornare lo stato di visione", - "added_to_library": "Aggiunto alla Libreria", - "item_added": "Aggiunto alla tua libreria locale", - "add_to_library": "Aggiungi alla Libreria", - "remove_from_library": "Rimuovi dalla Libreria", - "mark_watched": "Segna come visto", - "mark_unwatched": "Segna come non visto", - "share": "Condividi", - "add_to_watchlist": "Aggiungi alla Watchlist Trakt", - "remove_from_watchlist": "Rimuovi dalla Watchlist Trakt", - "added_to_watchlist": "Aggiunto alla Watchlist", - "added_to_watchlist_desc": "Aggiunto alla tua watchlist Trakt", - "removed_from_watchlist": "Rimosso dalla Watchlist", - "removed_from_watchlist_desc": "Rimosso dalla tua watchlist Trakt", - "add_to_collection": "Aggiungi alla Collezione Trakt", - "remove_from_collection": "Rimuovi dalla Collezione Trakt", - "added_to_collection": "Aggiunto alla Collezione", - "added_to_collection_desc": "Aggiunto alla tua collezione Trakt", - "removed_from_collection": "Rimosso dalla Collezione", - "removed_from_collection_desc": "Rimosso dalla tua collezione Trakt" - }, - "metadata": { - "unable_to_load": "Impossibile caricare il contenuto", - "error_code": "Codice errore: {{code}}", - "content_not_found": "Contenuto non trovato", - "content_not_found_desc": "Questo contenuto non esiste o potrebbe essere stato rimosso.", - "server_error": "Errore del server", - "server_error_desc": "Il server è temporaneamente non disponibile. Riprova più tardi.", - "bad_gateway": "Bad gateway", - "bad_gateway_desc": "Il server sta riscontrando dei problemi. Riprova più tardi.", - "service_unavailable": "Servizio non disponibile", - "service_unavailable_desc": "Il servizio è attualmente in manutenzione. Riprova più tardi.", - "too_many_requests": "Troppe richieste", - "too_many_requests_desc": "Stai effettuando troppe richieste. Attendi un momento e riprova.", - "request_timeout": "Richiesta scaduta", - "request_timeout_desc": "La richiesta ha impiegato troppo tempo. Riprova.", - "network_error": "Errore di rete", - "network_error_desc": "Controlla la tua connessione internet e riprova.", - "auth_error": "Errore di autenticazione", - "auth_error_desc": "Controlla le impostazioni del tuo account e riprova.", - "access_denied": "Accesso negato", - "access_denied_desc": "Non hai i permessi per accedere a questo contenuto.", - "connection_error": "Errore di connessione", - "streams_unavailable": "Streaming non disponibili", - "streams_unavailable_desc": "Le sorgenti di streaming sono attualmente non disponibili. Riprova più tardi.", - "unknown_error": "Errore sconosciuto", - "something_went_wrong": "Qualcosa è andato storto. Riprova.", - "cast": "Cast", - "more_like_this": "Altri titoli simili", - "collection": "Collezione", - "episodes": "Episodi", - "seasons": "Stagioni", - "posters": "Poster", - "banners": "Banner", - "specials": "Speciali", - "season_number": "Stagione {{number}}", - "episode_count": "{{count}} Episodio", - "episode_count_plural": "{{count}} Episodi", - "no_episodes": "Nessun episodio disponibile", - "no_episodes_for_season": "Nessun episodio disponibile per la Stagione {{season}}", - "episodes_not_released": "Gli episodi potrebbero non essere ancora stati rilasciati", - "no_description": "Nessuna descrizione disponibile", - "episode_label": "EPISODIO {{number}}", - "watch_again": "Guarda di nuovo", - "completed": "Completato", - "play_episode": "Riproduci S{{season}}E{{episode}}", - "play": "Riproduci", - "watched": "Visto", - "watched_on_trakt": "Visto su Trakt", - "synced_with_trakt": "Sincronizzato con Trakt", - "saved": "Salvato", - "director": "Regista", - "directors": "Registi", - "creator": "Creatore", - "creators": "Creatori", - "production": "Produzione", - "network": "Rete", - "mark_watched": "Segna come visto", - "mark_unwatched": "Segna come non visto", - "marking": "Segnatura...", - "removing": "Rimozione...", - "unmark_season": "Deseleziona Stagione {{season}}", - "mark_season": "Segna Stagione {{season}} come vista", - "resume": "Riprendi", - "spoiler_warning": "Avviso Spoiler", - "spoiler_warning_desc": "Questo commento contiene spoiler. Sei sicuro di volerlo visualizzare?", - "cancel": "Annulla", - "reveal_spoilers": "Mostra Spoiler", - "movie_details": "Dettagli Film", - "show_details": "Dettagli Serie TV", - "tagline": "Slogan", - "status": "Stato", - "release_date": "Data di rilascio", - "runtime": "Durata", - "budget": "Budget", - "revenue": "Incasso", - "origin_country": "Paese d'origine", - "original_language": "Lingua originale", - "first_air_date": "Data prima messa in onda", - "last_air_date": "Data ultima messa in onda", - "total_episodes": "Episodi totali", - "episode_runtime": "Durata episodio", - "created_by": "Creato da", - "backdrop_gallery": "Galleria sfondi", - "loading_episodes": "Caricamento episodi...", - "no_episodes_available": "Nessun episodio disponibile", - "play_next": "Riproduci S{{season}}E{{episode}}", - "play_next_episode": "Riproduci prossimo episodio", - "save": "Salva", - "percent_watched": "{{percent}}% guardato", - "percent_watched_trakt": "{{percent}}% guardato ({{traktPercent}}% su Trakt)", - "synced_with_trakt_progress": "Sincronizzato con Trakt", - "using_trakt_progress": "Utilizzo progressi Trakt", - "added_to_collection_hero": "Aggiunto alla collezione", - "added_to_collection_desc_hero": "Aggiunto alla tua collezione Trakt", - "removed_from_collection_hero": "Rimosso dalla collezione", - "removed_from_collection_desc_hero": "Rimosso dalla tua collezione Trakt", - "mark_as_watched": "Segna come visto", - "mark_as_unwatched": "Segna come non visto" - }, - "cast": { - "biography": "Biografia", - "known_for": "Conosciuto per", - "personal_info": "Informazioni personali", - "born_in": "Nato a {{place}}", - "filmography": "Filmografia", - "also_known_as": "Conosciuto anche come", - "no_info_available": "Nessuna informazione aggiuntiva disponibile", - "as_character": "nel ruolo di {{character}}", - "loading_details": "Caricamento dettagli...", - "years_old": "{{age}} anni", - "view_filmography": "Visualizza filmografia", - "filter": "Filtra", - "sort_by": "Ordina per", - "sort_popular": "Popolarità", - "sort_latest": "Ultimi prodotti", - "sort_upcoming": "In arrivo", - "upcoming_badge": "IN ARRIVO", - "coming_soon": "Prossimamente", - "filmography_count": "Filmografia • {{count}} titoli", - "loading_filmography": "Caricamento filmografia...", - "load_more_remaining": "Carica altri ({{count}} rimanenti)", - "alert_error_title": "Errore", - "alert_error_message": "Impossibile caricare \"{{title}}\". Riprova più tardi.", - "alert_ok": "OK", - "no_upcoming": "Nessuna uscita imminente disponibile per questo attore", - "no_content": "Nessun contenuto disponibile per questo attore", - "no_movies": "Nessun film disponibile per questo attore", - "no_tv": "Nessuna Serie TV disponibile per questo attore" - }, - "comments": { - "title": "Commenti Trakt", - "spoiler_warning": "⚠️ Questo commento contiene spoiler. Tocca per visualizzare.", - "spoiler": "Spoiler", - "contains_spoilers": "Contiene spoiler", - "reveal": "Mostra", - "vip": "VIP", - "unavailable": "Commenti non disponibili", - "no_comments": "Ancora nessun commento su Trakt", - "not_in_database": "Questo contenuto potrebbe non essere ancora nel database di Trakt", - "check_trakt": "Controlla su Trakt" - }, - "trailers": { - "title": "Trailer", - "official_trailers": "Trailer ufficiali", - "official_trailer": "Trailer ufficiale", - "teasers": "Teaser", - "teaser": "Teaser", - "clips_scenes": "Clip e scene", - "clip": "Clip", - "featurettes": "Featurette", - "featurette": "Featurette", - "behind_the_scenes": "Dietro le quinte", - "no_trailers": "Nessun trailer disponibile", - "unavailable": "Trailer non disponibile", - "unavailable_desc": "Impossibile caricare questo trailer al momento. Riprova più tardi.", - "unable_to_play": "Impossibile riprodurre il trailer. Riprova.", - "watch_on_youtube": "Guarda su YouTube" - }, - "catalog": { - "no_content_found": "Nessun contenuto trovato", - "no_content_filters": "Nessun contenuto trovato per i filtri selezionati", - "loading_content": "Caricamento contenuti...", - "back": "Indietro", - "in_theaters": "Al cinema", - "all": "Tutti", - "failed_tmdb": "Impossibile caricare i contenuti da TMDB", - "movies": "Film", - "tv_shows": "Serie TV", - "channels": "Canali" - }, - "streams": { - "back_to_episodes": "Torna agli episodi", - "back_to_info": "Torna alle info", - "fetching_from": "Recupero da:", - "no_sources_available": "Nessuna sorgente streaming disponibile", - "add_sources_desc": "Aggiungi sorgenti streaming nelle impostazioni", - "add_sources": "Aggiungi sorgenti", - "finding_streams": "Ricerca streaming disponibili...", - "finding_best_stream": "Ricerca del miglior streaming per l'avvio automatico...", - "still_fetching": "Recupero streaming in corso...", - "no_streams_available": "Nessuno streaming disponibile", - "starting_best_stream": "Avvio del miglior streaming...", - "loading_more_sources": "Caricamento di altre sorgenti..." - }, - "player_ui": { - "via": "via {{name}}", - "audio_tracks": "Tracce audio", - "no_audio_tracks": "Nessuna traccia audio disponibile", - "playback_speed": "Velocità di riproduzione", - "on_hold": "In attesa", - "playback_error": "Errore di riproduzione", - "unknown_error": "Si è verificato un errore sconosciuto durante la riproduzione.", - "copy_error": "Copia dettagli errore", - "copied_to_clipboard": "Copiato negli appunti", - "dismiss": "Chiudi", - "continue_watching": "Continua a guardare", - "start_over": "Ricomincia dall'inizio", - "resume": "Riprendi", - "change_source": "Cambia sorgente", - "switching_source": "Cambio sorgente in corso...", - "no_sources_found": "Nessuna sorgente trovata", - "sources": "Sorgenti", - "finding_sources": "Ricerca sorgenti...", - "unknown_source": "Sorgente sconosciuta", - "sources_limited": "Le sorgenti potrebbero essere limitate a causa di errori del provider.", - "episodes": "Episodi", - "specials": "Speciali", - "season": "Stagione {{season}}", - "stream": "Streaming {{number}}", - "subtitles": "Sottotitoli", - "built_in": "Integrati", - "addons": "Addon", - "style": "Stile", - "none": "Nessuno", - "search_online_subtitles": "Cerca sottotitoli online", - "preview": "Anteprima", - "quick_presets": "Predefiniti rapidi", - "default": "Predefinito", - "yellow": "Giallo", - "high_contrast": "Contrasto elevato", - "large": "Grande", - "core": "Base", - "font_size": "Dimensione carattere", - "show_background": "Mostra sfondo", - "advanced": "Avanzate", - "position": "Posizione", - "text_color": "Colore testo", - "align": "Allineamento", - "bottom_offset": "Distanza dal basso", - "background_opacity": "Opacità sfondo", - "text_shadow": "Ombra testo", - "on": "Attivo", - "off": "Disattivo", - "outline_color": "Colore contorno", - "outline": "Contorno", - "outline_width": "Larghezza contorno", - "letter_spacing": "Spaziatura lettere", - "line_height": "Altezza riga", - "timing_offset": "Ritardo sincronizzazione (s)", - "visual_sync": "Sincronizzazione visiva", - "timing_hint": "Anticipa (-) o ritarda (+) i sottotitoli per sincronizzarli se necessario.", - "reset_defaults": "Ripristina predefiniti" - }, - "downloads": { - "title": "Download", - "no_downloads": "Ancora nessun download", - "no_downloads_desc": "I contenuti scaricati appariranno qui per la visione offline", - "explore": "Esplora contenuti", - "path_copied": "Percorso copiato", - "path_copied_desc": "Percorso del file locale copiato negli appunti", - "copied": "Copiato", - "incomplete": "Download incompleto", - "incomplete_desc": "Il download non è ancora terminato", - "not_available": "Non disponibile", - "not_available_desc": "Il percorso del file locale è disponibile solo al termine del download.", - "status_downloading": "Download in corso", - "status_completed": "Completato", - "status_paused": "In pausa", - "status_error": "Errore", - "status_queued": "In coda", - "status_unknown": "Sconosciuto", - "provider": "Provider", - "streaming_playlist_warning": "Potrebbe non funzionare - playlist di streaming", - "remaining": "rimanenti", - "not_ready": "Download non pronto", - "not_ready_desc": "Attendi il completamento del download.", - "filter_all": "Tutti", - "filter_active": "Attivi", - "filter_done": "Completati", - "filter_paused": "In pausa", - "no_filter_results": "Nessun download per il filtro {{filter}}", - "try_different_filter": "Prova a selezionare un filtro diverso", - "limitations_title": "Limitazioni del download", - "limitations_msg": "• I file più piccoli di 1MB sono solitamente playlist streaming M3U8 e non possono essere scaricati per la visione offline. Funzionano solo con lo streaming online e contengono link ai segmenti video, non il contenuto video effettivo.", - "remove_title": "Rimuovi download", - "remove_confirm": "Rimuovere \"{{title}}\"{{season_episode}}?", - "cancel": "Annulla", - "remove": "Rimuovi" - }, - "addons": { - "title": "Addon", - "reorder_mode": "Modalità riordino", - "reorder_info": "Gli Addon in alto hanno priorità maggiore durante il caricamento dei contenuti", - "add_addon_placeholder": "URL Addon", - "add_button": "Aggiungi Addon", - "my_addons": "I miei Addon", - "community_addons": "Addon della community", - "no_addons": "Nessun Addon installato", - "uninstall_title": "Disinstalla Addon", - "uninstall_message": "Sei sicuro di voler disinstallare {{name}}?", - "uninstall_button": "Disinstalla", - "install_success": "Addon installato con successo", - "install_error": "Installazione Addon fallita", - "load_error": "Caricamento Addon fallito", - "fetch_error": "Impossibile recuperare i dettagli dell'Addon", - "invalid_url": "Inserisci un URL Addon valido", - "configure": "Configura", - "version": "Versione: {{version}}", - "installed_addons": "ADDON INSTALLATI", - "reorder_drag_title": "TRASCINA GLI ADDON PER RIORDINARLI", - "install": "Installa", - "config_unavailable_title": "Configurazione non disponibile", - "config_unavailable_msg": "Impossibile determinare l'URL di configurazione per questo Addon.", - "cannot_open_config_title": "Impossibile aprire la configurazione", - "cannot_open_config_msg": "L'URL di configurazione ({{url}}) non può essere aperto. L'Addon potrebbe non avere una pagina di configurazione.", - "description": "Descrizione", - "supported_types": "Tipi supportati", - "catalogs": "Cataloghi", - "no_description": "Nessuna descrizione disponibile", - "overview": "PANORAMICA", - "no_categories": "Nessuna categoria", - "pre_installed": "PRE-INSTALLATO" - }, - "trakt": { - "title": "Impostazioni Trakt", - "settings_title": "Impostazioni Trakt", - "connect_title": "Connettiti a Trakt", - "connect_desc": "Sincronizza cronologia, watchlist e collezione con Trakt.tv", - "sign_in": "Accedi con Trakt", - "sign_out": "Esci", - "sign_out_confirm": "Sei sicuro di voler uscire dal tuo account Trakt?", - "joined": "Iscritto dal {{date}}", - "sync_settings_title": "Impostazioni Sincronizzazione", - "sync_info": "Quando sei connesso a Trakt, l'intera cronologia viene sincronizzata direttamente dall'API e non viene salvata localmente. La tua lista 'Continua a guardare' riflette i tuoi progressi globali su Trakt.", - "auto_sync_label": "Sincronizzazione automatica progressi", - "auto_sync_desc": "Sincronizza automaticamente i progressi di visione su Trakt", - "import_history_label": "Importa cronologia visioni", - "import_history_desc": "Usa \"Sincronizza ora\" per importare la cronologia e i progressi da Trakt", - "sync_now_button": "Sincronizza ora", - "display_settings_title": "Impostazioni Visualizzazione", - "show_comments_label": "Mostra commenti Trakt", - "show_comments_desc": "Visualizza i commenti di Trakt nelle schede dei contenuti quando disponibili", - "maintenance_title": "In manutenzione", - "maintenance_unavailable": "Trakt non disponibile", - "maintenance_desc": "L'integrazione con Trakt è temporaneamente sospesa per manutenzione. Tutte le funzioni di sincronizzazione e autenticazione sono disabilitate fino al termine dei lavori.", - "maintenance_button": "Servizio in manutenzione", - "auth_success_title": "Connessione riuscita", - "auth_success_msg": "Il tuo account Trakt è stato collegato correttamente.", - "auth_error_title": "Errore di autenticazione", - "auth_error_msg": "Impossibile completare l'autenticazione con Trakt.", - "auth_error_generic": "Si è verificato un errore durante l'autenticazione.", - "sign_out_error": "Impossibile uscire da Trakt.", - "sync_complete_title": "Sincronizzazione completata", - "sync_success_msg": "Progressi di visione sincronizzati con successo con Trakt.", - "sync_error_msg": "Sincronizzazione fallita. Riprova." - }, - "simkl": { - "title": "Impostazioni Simkl", - "settings_title": "Impostazioni Simkl", - "connect_title": "Connetti con Simkl", - "connect_desc": "Sincronizza la tua cronologia di visione e traccia ciò che guardi", - "sign_in": "Accedi con Simkl", - "sign_out": "Disconnetti", - "sign_out_confirm": "Sei sicuro di voler disconnettere da Simkl?", - "syncing_desc": "I tuoi elementi guardati sono in sincronizzazione con Simkl.", - "auth_success_title": "Connesso con successo", - "auth_success_msg": "Il tuo account Simkl è stato connesso con successo.", - "auth_error_title": "Errore di autenticazione", - "auth_error_msg": "Impossibile completare l'autenticazione con Simkl.", - "auth_error_generic": "Si è verificato un errore durante l'autenticazione.", - "sign_out_error": "Impossibile disconnettere da Simkl.", - "config_error_title": "Errore di configurazione", - "config_error_msg": "L'ID client Simkl manca nelle variabili d'ambiente.", - "conflict_title": "Conflitto", - "conflict_msg": "Non puoi connettere Simkl mentre Trakt è connesso. Disconnetti prima Trakt.", - "disclaimer": "Nuvio non è affiliato con Simkl." - }, - "tmdb_settings": { - "title": "Impostazioni TMDb", - "metadata_enrichment": "Arricchimento metadati", - "metadata_enrichment_desc": "Migliora i metadati dei contenuti con i dati di TMDb per maggiori dettagli e informazioni.", - "enable_enrichment": "Abilita arricchimento", - "enable_enrichment_desc": "Integra i metadati degli Addon con TMDb per cast, certificazioni, loghi/poster e info di produzione.", - "localized_text": "Testo localizzato", - "localized_text_desc": "Recupera titoli e descrizioni nella tua lingua preferita da TMDb.", - "language": "Lingua", - "change": "Cambia", - "logo_preview": "Anteprima Logo", - "logo_preview_desc": "L'anteprima mostra come appariranno i loghi localizzati nella lingua selezionata.", - "example": "Esempio:", - "no_logo": "Nessun logo disponibile", - "enrichment_options": "Opzioni di arricchimento", - "enrichment_options_desc": "Controlla quali dati recuperare da TMDb. Le opzioni disabilitate useranno i dati dell'Addon, se disponibili.", - "cast_crew": "Cast e Troupe", - "cast_crew_desc": "Attori, registi, sceneggiatori con foto profilo", - "title_description": "Titolo e Descrizione", - "title_description_desc": "Usa titolo e panoramica localizzati di TMDb", - "title_logos": "Loghi Titolo", - "title_logos_desc": "Immagini di alta qualità per il titolo", - "banners_backdrops": "Banner e Sfondi", - "banners_backdrops_desc": "Immagini di sfondo ad alta risoluzione", - "certification": "Certificazione contenuti", - "certification_desc": "Classificazione per età (PG-13, R, TV-MA, ecc.)", - "recommendations": "Consigliati", - "recommendations_desc": "Suggerimenti per contenuti simili", - "episode_data": "Dati episodi", - "episode_data_desc": "Miniature episodi, info e fallback per le Serie TV", - "season_posters": "Poster stagioni", - "season_posters_desc": "Immagini poster specifiche per le stagioni", - "production_info": "Info di produzione", - "production_info_desc": "Reti e case di produzione con loghi", - "movie_details": "Dettagli Film", - "movie_details_desc": "Budget, incassi, durata, slogan", - "tv_details": "Dettagli Serie TV", - "tv_details_desc": "Stato, numero stagioni, reti, creatori", - "movie_collections": "Collezioni Film", - "movie_collections_desc": "Franchise cinematografici (Marvel, Star Wars, ecc.)", - "api_configuration": "Configurazione API", - "api_configuration_desc": "Configura il tuo accesso alle API di TMDb per funzionalità avanzate.", - "custom_api_key": "Chiave API personalizzata", - "custom_api_key_desc": "Usa la tua chiave API TMDb per prestazioni migliori e limiti di frequenza dedicati.", - "custom_key_active": "Chiave API personalizzata attiva", - "api_key_required": "Chiave API richiesta", - "api_key_placeholder": "Incolla la tua chiave API TMDb (v3)", - "how_to_get_key": "Come ottenere una chiave API TMDb?", - "built_in_key_msg": "Attualmente in uso la chiave API integrata. Considera l'uso di una chiave tua per prestazioni migliori.", - "cache_size": "Dimensione Cache", - "clear_cache": "Cancella Cache", - "cache_days": "Le risposte TMDB vengono memorizzate per 7 giorni per migliorare le prestazioni", - "choose_language": "Scegli Lingua", - "choose_language_desc": "Seleziona la lingua preferita per i contenuti TMDb", - "popular": "Popolari", - "all_languages": "Tutte le lingue", - "search_results": "Risultati di ricerca", - "no_languages_found": "Nessuna lingua trovata per \"{{query}}\"", - "clear_search": "Cancella ricerca", - "clear_cache_title": "Cancella Cache TMDB", - "clear_cache_msg": "Questo cancellerà tutti i dati TMDB memorizzati ({{size}}). Il caricamento potrebbe rallentare temporaneamente fino alla ricostruzione della cache.", - "clear_cache_success": "Cache TMDB cancellata con successo.", - "clear_cache_error": "Impossibile cancellare la cache.", - "clear_api_key_title": "Rimuovi Chiave API", - "clear_api_key_msg": "Sei sicuro di voler rimuovere la tua chiave API personalizzata e tornare a quella predefinita?", - "clear_api_key_success": "Chiave API rimossa con successo", - "clear_api_key_error": "Impossibile rimuovere la chiave API", - "empty_api_key": "La chiave API non può essere vuota.", - "invalid_api_key": "Chiave API non valida. Controlla e riprova.", - "save_error": "Si è verificato un errore durante il salvataggio. Riprova.", - "using_builtin_key": "Ora in uso la chiave API TMDb integrata.", - "using_custom_key": "Ora in uso la tua chiave API TMDb personalizzata.", - "enter_custom_key": "Inserisci e salva la tua chiave API TMDb personalizzata.", - "key_verified": "Chiave API verificata e salvata con successo." - }, - "settings": { - "language": "Lingua", - "select_language": "Seleziona Lingua", - "english": "Inglese", - "portuguese": "Portoghese", - "portuguese_br": "Portoghese (Brasile)", - "portuguese_pt": "Portoghese (Portogallo)", - "german": "Tedesco", - "arabic": "Arabo", - "spanish": "Spagnolo", - "french": "Francese", - "italian": "Italiano", - "croatian": "Croato", - "chinese": "Cinese (Semplificato)", - "hindi": "Hindi", - "serbian": "Serbo", - "account": "Account", - "content_discovery": "Contenuti e Scoperta", - "appearance": "Aspetto", - "integrations": "Integrazioni", - "playback": "Riproduzione", - "backup_restore": "Backup e Ripristino", - "updates": "Aggiornamenti", - "about": "Informazioni", - "developer": "Sviluppatore", - "cache": "Cache", - "title": "Impostazioni", - "settings_title": "Impostazioni", - "sign_in_sync": "Accedi per sincronizzare", - "add_catalogs_sources": "Addon, cataloghi e sorgenti", - "player_trailers_downloads": "Player, trailer, download", - "mdblist_tmdb_ai": "MDBList, TMDB, IA", - "check_updates": "Controlla aggiornamenti", - "clear_mdblist_cache": "Cancella Cache MDBList", - "cache_management": "GESTIONE CACHE", - "downloads_counter": "download e oltre", - "made_with_love": "Fatto con ❤️ da Tapframe e amici", - "sections": { - "information": "INFORMAZIONI", - "account": "ACCOUNT", - "theme": "TEMA", - "layout": "LAYOUT", - "sources": "SORGENTI", - "catalogs": "CATALOGHI", - "discovery": "SCOPERTA", - "metadata": "METADATI", - "ai_assistant": "ASSISTENTE IA", - "video_player": "VIDEO PLAYER", - "audio_subtitles": "AUDIO E SOTTOTITOLI", - "media": "MEDIA", - "notifications": "NOTIFICHE", - "testing": "TEST", - "danger_zone": "ZONA PERICOLOSA" - }, - "items": { - "legal": "Note Legali & Disclaimer", - "privacy_policy": "Informativa sulla privacy", - "report_issue": "Segnala un problema", - "version": "Versione", - "contributors": "Collaboratori", - "view_contributors": "Vedi tutti i collaboratori", - "theme": "Tema", - "episode_layout": "Layout episodi", - "streams_backdrop": "Sfondo streaming", - "streams_backdrop_desc": "Mostra sfondo sfocato durante lo streaming su mobile", - "addons": "Addon", - "installed": "installati", - "debrid_integration": "Integrazione Debrid", - "debrid_desc": "Connetti Torbox", - "plugins": "Plugin", - "plugins_desc": "Gestisci plugin e repository", - "catalogs": "Cataloghi", - "active": "attivi", - "home_screen": "Schermata Home", - "home_screen_desc": "Layout e contenuti", - "continue_watching": "Continua a guardare", - "continue_watching_desc": "Comportamento cache e riproduzione", - "show_discover": "Mostra sezione Scopri", - "show_discover_desc": "Visualizza contenuti scopri nella Ricerca", - "mdblist": "MDBList", - "mdblist_connected": "Connesso", - "mdblist_desc": "Abilita per aggiungere voti e recensioni", - "simkl": "Simkl", - "simkl_connected": "Connesso", - "simkl_desc": "Traccia ciò che guardi", - "tmdb": "TMDB", - "tmdb_desc": "Sorgente metadati e loghi", - "openrouter": "API OpenRouter", - "openrouter_connected": "Connesso", - "openrouter_desc": "Aggiungi la tua chiave API per abilitare la chat IA", - "video_player": "Video Player", - "built_in": "Integrato", - "external": "Esterno", - "preferred_audio": "Lingua audio preferita", - "preferred_subtitle": "Lingua sottotitoli preferita", - "subtitle_source": "Priorità sorgente sottotitoli", - "auto_select_subs": "Selezione automatica sottotitoli", - "auto_select_subs_desc": "Seleziona automaticamente i sottotitoli in base alle tue preferenze", - "show_trailers": "Mostra Trailer", - "show_trailers_desc": "Visualizza i trailer nella sezione principale", - "enable_downloads": "Abilita Download", - "enable_downloads_desc": "Mostra la scheda Download e abilita il salvataggio degli streaming", - "notifications": "Notifiche", - "notifications_desc": "Promemoria episodi", - "developer_tools": "Strumenti di Sviluppo", - "developer_tools_desc": "Opzioni di test e debug", - "test_onboarding": "Test Introduzione", - "reset_onboarding": "Ripristina Introduzione", - "test_announcement": "Test Annuncio", - "test_announcement_desc": "Mostra l'overlay 'novità'", - "reset_campaigns": "Ripristina Campagne", - "reset_campaigns_desc": "Cancella le impressioni delle campagne", - "clear_all_data": "Cancella tutti i dati", - "clear_all_data_desc": "Ripristina tutte le impostazioni e i dati memorizzati" - }, - "options": { - "horizontal": "Orizzontale", - "vertical": "Verticale", - "internal_first": "Prima interni", - "internal_first_desc": "Preferisci i sottotitoli integrati, poi quelli esterni", - "external_first": "Prima esterni", - "external_first_desc": "Preferisci i sottotitoli degli Addon, poi quelli integrati", - "any_available": "Qualsiasi disponibile", - "any_available_desc": "Usa la prima traccia di sottotitoli disponibile" - }, - "clear_data_desc": "Questo ripristinerà tutte le impostazioni e cancellerà tutti i dati in cache. Sei sicuro?", - "app_updates": "Aggiornamenti App", - "about_nuvio": "Informazioni su Nuvio" - }, - "privacy": { - "title": "Privacy e Dati", - "settings_desc": "Controlla la telemetria e la raccolta di dati", - "info_title": "La Tua Privacy è Importante per Noi", - "info_description": "Controlla quali dati vengono raccolti e condivisi. L'analisi è disabilitata per impostazione predefinita e i rapporti di arresto sono anonimi per impostazione predefinita.", - "analytics_enabled_title": "Analisi Abilitata", - "analytics_enabled_message": "I dati di utilizzo verranno raccolti per aiutare a migliorare l'app. Puoi disabilitarlo in qualsiasi momento.", - "disable_error_reporting_title": "Disabilitare la Segnalazione di Errori?", - "disable_error_reporting_message": "Disabilitare la segnalazione di errori significa che non riceveremo notifiche di arresti anomali o problemi che riscontri. Questo potrebbe influire sulla nostra capacità di correggere i bug.", - "enable_session_replay_title": "Abilitare la Riproduzione Sessione?", - "enable_session_replay_message": "La riproduzione della sessione registra il tuo schermo quando si verificano errori per aiutarci a capire cosa è successo. Questo potrebbe catturare contenuti visibili sullo schermo.", - "enable_pii_title": "Abilitare la Raccolta PII?", - "enable_pii_message": "Ciò consente la raccolta di informazioni di identificazione personale come indirizzo IP e dettagli del dispositivo. Questi dati aiutano a diagnosticare i problemi ma aumentano l'esposizione della privacy.", - "disable_all_title": "Disabilitare Tutta la Telemetria?", - "disable_all_message": "Questo disabiliterà tutta l'analisi, la segnalazione di errori e la riproduzione della sessione. Non riceveremo alcun dato sull'utilizzo dell'app o gli arresti.", - "disable_all_button": "Disabilita Tutto", - "all_disabled_title": "Tutta la Telemetria Disabilitata", - "all_disabled_message": "Tutta la raccolta di dati è stata disabilitata. Le modifiche avranno effetto al prossimo riavvio dell'app.", - "reset_title": "Ripristina ai Valori Consigliati", - "reset_message": "Le impostazioni di privacy sono state ripristinate ai valori predefiniti consigliati (segnalazione di errori abilitata, analisi disabilitata).", - "section_analytics": "ANALISI", - "analytics_title": "Analisi di Utilizzo", - "analytics_description": "Raccogli schemi di utilizzo anonimi e visualizzazioni dello schermo", - "section_error_reporting": "SEGNALAZIONE DI ERRORI", - "error_reporting_title": "Rapporti di Arresto", - "error_reporting_description": "Invia rapporti di arresto anonimi per migliorare la stabilità", - "session_replay_title": "Riproduzione Sessione", - "session_replay_description": "Registra lo schermo quando si verificano errori", - "pii_title": "Includi Informazioni Dispositivo", - "pii_description": "Invia indirizzo IP e dettagli del dispositivo con i rapporti", - "section_quick_actions": "AZIONI RAPIDE", - "disable_all": "Disabilitare Tutta la Telemetria", - "disable_all_desc": "Disattiva tutta la raccolta di dati", - "reset_recommended": "Ripristina ai Valori Consigliati", - "reset_recommended_desc": "Impostazioni predefinite incentrate sulla privacy con segnalazione di errori", - "section_learn_more": "SCOPRI DI PIÙ", - "privacy_policy": "Informativa sulla Privacy", - "current_settings": "Riepilogo delle Impostazioni Attuali", - "summary_analytics": "Analisi", - "summary_errors": "Rapporti di Errore", - "summary_replay": "Riproduzione Sessione", - "summary_pii": "Informazioni Dispositivo", - "restart_note_detailed": "* Le modifiche all'analisi e alla segnalazione di errori hanno effetto immediato. La riproduzione della sessione e le impostazioni PII richiedono il riavvio dell'app." - }, - "ai_settings": { - "title": "Assistente IA", - "info_title": "Chat potenziata dall'IA", - "info_desc": "Fai domande su qualsiasi film o episodio di Serie TV usando l'IA avanzata. Ottieni approfondimenti su trama, personaggi, temi, curiosità e altro ancora, tutto basato sui dati completi di TMDB.", - "feature_1": "Contesto e analisi specifici per ogni episodio", - "feature_2": "Spiegazioni della trama e analisi dei personaggi", - "feature_3": "Curiosità e fatti dietro le quinte", - "feature_4": "Usa la tua chiave API gratuita di OpenRouter", - "api_key_section": "CHIAVE API OPENROUTER", - "api_key_label": "Chiave API", - "api_key_desc": "Inserisci la tua chiave API OpenRouter per abilitare le funzioni di chat IA", - "save_api_key": "Salva Chiave API", - "saving": "Salvataggio...", - "update": "Aggiorna", - "remove": "Rimuovi", - "get_free_key": "Ottieni una chiave API gratuita da OpenRouter", - "enable_chat": "Abilita Chat IA", - "enable_chat_desc": "Se abilitato, il pulsante 'Chiedi all'IA' apparirà nelle pagine dei contenuti.", - "chat_enabled": "Chat IA Abilitata", - "chat_enabled_desc": "Ora puoi fare domande su film e Serie TV. Cerca il pulsante \"Chiedi all'IA\" nelle pagine dei contenuti!", - "how_it_works": "Come funziona", - "how_it_works_desc": "• OpenRouter fornisce l'accesso a diversi modelli IA\n• La tua chiave API rimane privata e sicura\n• Il piano gratuito include limiti di utilizzo generosi\n• Chatta con contesto su film/episodi specifici\n• Ottieni analisi dettagliate e spiegazioni", - "error_invalid_key": "Inserisci una chiave API valida", - "error_key_format": "Le chiavi API OpenRouter devono iniziare con \"sk-or-\"", - "success_saved": "Chiave API OpenRouter salvata con successo!", - "error_save": "Impossibile salvare la chiave API", - "confirm_remove_title": "Rimuovi Chiave API", - "confirm_remove_msg": "Sei sicuro di voler rimuovere la tua chiave API OpenRouter? Questo disabiliterà le funzioni di chat IA.", - "success_removed": "Chiave API rimossa con successo", - "error_remove": "Impossibile rimuovere la chiave API" - }, - "catalog_settings": { - "title": "Cataloghi", - "layout_phone": "LAYOUT SCHERMATA CATALOGO (TELEFONO)", - "posters_per_row": "Poster per riga", - "auto": "Auto", - "show_titles": "Mostra titoli poster", - "show_titles_desc": "Visualizza il testo del titolo sotto ogni poster", - "phone_only_hint": "Si applica solo ai telefoni. I tablet mantengono il layout adattivo.", - "catalogs_group": "Cataloghi", - "enabled_count": "{{enabled}} su {{total}} abilitati", - "rename_hint": "Premi a lungo su un catalogo per rinominarlo", - "rename_modal_title": "Rinomina Catalogo", - "rename_placeholder": "Inserisci il nuovo nome del catalogo", - "error_save_name": "Impossibile salvare il nome personalizzato." - }, - "continue_watching_settings": { - "title": "Continua a guardare", - "playback_behavior": "COMPORTAMENTO RIPRODUZIONE", - "use_cached": "Usa stream in cache", - "use_cached_desc": "Se abilitato, cliccando sugli elementi in 'Continua a guardare' si aprirà direttamente il player usando gli stream riprodotti in precedenza. Se disabilitato, aprirà la schermata dei contenuti.", - "open_metadata": "Apri schermata metadati", - "open_metadata_desc": "Quando gli stream in cache sono disabilitati, apre la schermata dei metadati invece di quella degli stream. Mostra i dettagli del contenuto e permette la selezione manuale dello stream.", - "card_appearance": "ASPETTO SCHEDA", - "card_style": "Stile scheda", - "card_style_desc": "Scegli come appaiono gli elementi di 'Continua a guardare' nella home", - "wide": "Ampia", - "poster": "Poster", - "cache_settings": "IMPOSTAZIONI CACHE", - "cache_duration": "Durata cache stream", - "cache_duration_desc": "Per quanto tempo conservare i link degli stream in cache prima della scadenza", - "important_note": "Nota importante", - "important_note_text": "Non tutti i link degli stream rimangono attivi per l'intera durata della cache. Tempi di cache più lunghi potrebbero causare link scaduti. Se un link in cache fallisce, l'app tornerà a recuperare nuovi stream.", - "how_it_works": "Come funziona", - "how_it_works_cached": "• Gli stream vengono salvati in cache per la durata selezionata dopo la riproduzione\n• Gli stream in cache vengono convalidati prima dell'uso\n• Se la cache non è valida o è scaduta, si torna alla schermata dei contenuti\n• 'Usa stream in cache' controlla l'apertura diretta del player rispetto alla navigazione\n• 'Apri schermata metadati' appare solo quando gli stream in cache sono disabilitati", - "how_it_works_uncached": "• Quando gli stream in cache sono disabilitati, cliccare su 'Continua a guardare' apre la schermata dei contenuti\n• L'opzione 'Apri schermata metadati' controlla quale schermata aprire\n• La schermata metadati mostra i dettagli e permette la selezione manuale\n• La schermata degli stream mostra gli stream disponibili per la riproduzione immediata", - "changes_saved": "Modifiche salvate", - "min": "min", - "hour": "ora", - "hours": "ore" - }, - "contributors": { - "title": "Collaboratori", - "special_mentions": "Menzioni speciali", - "tab_contributors": "Collaboratori", - "tab_special": "Menzioni speciali", - "tab_donors": "Donatori", - "manager_role": "Community Manager", - "manager_desc": "Gestisce le community Discord e Reddit per Nuvio", - "sponsor_role": "Sponsor del Server", - "sponsor_desc": "Ha sponsorizzato l'infrastruttura del server per Nuvio", - "mod_role": "Moderatore Discord", - "mod_desc": "Aiuta a moderare la community Discord di Nuvio", - "loading": "Caricamento...", - "discord_user": "Utente Discord", - "contributions": "contributi", - "gratitude_title": "Siamo grati per ogni contributo", - "gratitude_desc": "Ogni riga di codice, segnalazione di bug e suggerimento aiuta a rendere Nuvio migliore per tutti", - "special_thanks_title": "Ringraziamenti speciali", - "special_thanks_desc": "Queste persone fantastiche aiutano a mantenere attiva la community di Nuvio e i server online", - "donors_desc": "Grazie per credere in quello che stiamo costruendo. Il vostro supporto mantiene Nuvio gratuito e in continuo miglioramento.", - "latest_donations": "Recenti", - "leaderboard": "Classifica", - "loading_donors": "Caricamento donatori…", - "no_donors": "Nessun donatore ancora", - "error_rate_limit": "Limite di frequenza API GitHub superato. Riprova più tardi o trascina per aggiornare.", - "error_failed": "Impossibile caricare i collaboratori. Controlla la tua connessione internet.", - "retry": "Riprova", - "no_contributors": "Nessun collaboratore trovato", - "loading_contributors": "Caricamento collaboratori..." - }, - "debrid": { - "title": "Integrazione Debrid", - "description_torbox": "Sblocca stream 4K di alta qualità e velocità fulminee integrando Torbox. Inserisci la tua chiave API qui sotto per potenziare istantaneamente la tua esperienza di streaming.", - "description_torrentio": "Configura Torrentio per ottenere stream torrent per film e Serie TV. È necessario un servizio debrid per riprodurre i contenuti.", - "tab_torbox": "TorBox", - "tab_torrentio": "Torrentio", - "status_connected": "Connesso", - "status_disconnected": "Disconnesso", - "enable_addon": "Abilita Addon", - "disconnect_button": "Disconnetti e Rimuovi", - "disconnect_loading": "Disconnessione in corso...", - "account_info": "Informazioni Account", - "plan": "Piano", - "plan_free": "Gratuito", - "plan_essential": "Essential ($3/mese)", - "plan_pro": "Pro ($10/mese)", - "plan_standard": "Standard ($5/mese)", - "plan_unknown": "Sconosciuto", - "expires": "Scade il", - "downloaded": "Scaricati", - "status_active": "Attivo", - "connected_title": "✓ Connesso a TorBox", - "connected_desc": "Il tuo Addon TorBox è attivo e fornisce stream premium.", - "configure_title": "Configura Addon", - "configure_desc": "Personalizza la tua esperienza di streaming. Ordina per qualità, filtra le dimensioni dei file e gestisci altre impostazioni di integrazione.", - "open_settings": "Apri Impostazioni", - "what_is_debrid": "Cos'è un servizio Debrid?", - "enter_api_key": "Inserisci la tua chiave API", - "connect_button": "Connetti e Installa", - "connecting": "Connessione in corso...", - "unlock_speeds_title": "Sblocca velocità Premium", - "unlock_speeds_desc": "Abbonati a Torbox per accedere a stream di alta qualità in cache con zero buffering.", - "get_subscription": "Abbonati ora", - "powered_by": "Offerto da", - "disclaimer_torbox": "Nuvio non è affiliato a Torbox in alcun modo.", - "disclaimer_torrentio": "Nuvio non è affiliato a Torrentio in alcun modo.", - "installed_badge": "✓ INSTALLATO", - "promo_title": "⚡ Serve un servizio Debrid?", - "promo_desc": "Scegli TorBox per streaming 4K velocissimo senza buffering. Torrent in cache premium e download istantanei.", - "promo_button": "Ottieni abbonamento TorBox", - "service_label": "Servizio Debrid *", - "api_key_label": "Chiave API *", - "sorting_label": "Ordinamento", - "exclude_qualities": "Escludi qualità", - "priority_languages": "Lingue prioritarie", - "max_results": "Risultati massimi", - "additional_options": "Opzioni aggiuntive", - "no_download_links": "Non mostrare link di download", - "no_debrid_catalog": "Non mostrare catalogo debrid", - "install_button": "Installa Torrentio", - "installing": "Installazione...", - "update_button": "Aggiorna configurazione", - "updating": "Aggiornamento...", - "remove_button": "Rimuovi Torrentio", - "error_api_required": "Chiave API richiesta", - "error_api_required_desc": "Inserisci la chiave API del tuo servizio debrid per installare Torrentio.", - "success_installed": "Addon Torrentio installato con successo!", - "success_removed": "Addon Torrentio rimosso con successo", - "alert_disconnect_title": "Disconnetti Torbox", - "alert_disconnect_msg": "Sei sicuro di voler disconnettere Torbox? Questo rimuoverà l'Addon e cancellerà la chiave API salvata." - }, - "home_screen": { - "title": "Impostazioni Schermata Home", - "changes_applied": "Modifiche applicate", - "display_options": "OPZIONI DI VISUALIZZAZIONE", - "show_hero": "Mostra sezione Hero", - "show_hero_desc": "Contenuti in evidenza in alto", - "show_this_week": "Mostra sezione 'Questa settimana'", - "show_this_week_desc": "Nuovi episodi della settimana corrente", - "select_catalogs": "Seleziona cataloghi", - "all_catalogs": "Tutti i cataloghi", - "selected": "selezionati", - "hero_layout": "Layout Hero", - "layout_legacy": "Classico", - "layout_carousel": "Carosello", - "layout_appletv": "Apple TV", - "layout_desc": "Banner a tutta larghezza, schede scorrevoli o stile Apple TV", - "featured_source": "Sorgente in evidenza", - "using_catalogs": "Utilizzo cataloghi", - "manage_selected_catalogs": "Gestisci cataloghi selezionati", - "dynamic_bg": "Sfondo Hero dinamico", - "dynamic_bg_desc": "Banner sfocato dietro il carosello", - "performance_note": "Potrebbe influire sulle prestazioni dei dispositivi meno potenti.", - "posters": "Poster", - "show_titles": "Mostra titoli", - "poster_size": "Dimensione poster", - "poster_corners": "Angoli poster", - "size_small": "Piccolo", - "size_medium": "Medio", - "size_large": "Grande", - "corners_square": "Squadrati", - "corners_rounded": "Arrotondati", - "corners_pill": "Pillola", - "about_these_settings": "INFORMAZIONI SU QUESTE IMPOSTAZIONI", - "about_desc": "Queste impostazioni controllano come i contenuti vengono visualizzati nella Home. Le modifiche vengono applicate immediatamente senza riavviare l'app.", - "hero_catalogs": { - "title": "Cataloghi sezione Hero", - "select_all": "Seleziona tutto", - "clear_all": "Cancella tutto", - "info": "Seleziona quali cataloghi visualizzare nella sezione hero. Se non ne viene selezionato nessuno, verranno usati tutti. Non dimenticare di salvare al termine.", - "settings_saved": "Impostazioni salvate", - "error_load": "Impossibile caricare i cataloghi", - "movies": "Film", - "tv_shows": "Serie TV" - } - }, - "calendar": { - "title": "Calendario", - "loading": "Caricamento calendario...", - "no_scheduled_episodes": "Nessun episodio in programma", - "check_back_later": "Torna più tardi", - "showing_episodes_for": "Episodi per il {{date}}", - "show_all_episodes": "Mostra tutti gli episodi", - "no_episodes_for": "Nessun episodio per il {{date}}", - "no_upcoming_found": "Nessun episodio imminente trovato", - "add_series_desc": "Aggiungi Serie TV alla tua libreria per vedere qui i prossimi episodi" - }, - "mdblist": { - "title": "Sorgenti valutazione", - "status_disabled": "MDBList disabilitato", - "status_active": "Chiave API attiva", - "status_required": "Chiave API richiesta", - "status_disabled_desc": "La funzionalità MDBList è attualmente disabilitata.", - "status_active_desc": "Le valutazioni di MDBList sono abilitate.", - "status_required_desc": "Aggiungi la tua chiave qui sotto per abilitare i voti.", - "enable_toggle": "Abilita MDBList", - "enable_toggle_desc": "Attiva/disattiva tutte le funzioni MDBList", - "api_section": "Chiave API", - "placeholder": "Incolla la tua chiave API MDBList", - "save": "Salva", - "clear": "Rimuovi chiave", - "rating_providers": "Fornitori valutazioni", - "rating_providers_desc": "Scegli quali voti visualizzare nell'app", - "how_to": "Come ottenere una chiave API", - "step_1": "Accedi al", - "step_1_link": "sito web MDBList", - "step_2": "Vai alla sezione", - "step_2_settings": "Impostazioni", - "step_2_api": "API", - "step_2_end": ".", - "step_3": "Genera una nuova chiave e copiala.", - "go_to_website": "Vai su MDBList", - "alert_clear_title": "Rimuovi chiave API", - "alert_clear_msg": "Sei sicuro di voler rimuovere la chiave API salvata?", - "success_saved": "Chiave API salvata con successo.", - "error_empty": "La chiave API non può essere vuota.", - "error_save": "Si è verificato un errore durante il salvataggio. Riprova.", - "api_key_empty_error": "La chiave API non può essere vuota.", - "success_cleared": "Chiave API rimossa con successo", - "error_clear": "Impossibile rimuovere la chiave API" - }, - "notification": { - "title": "Impostazioni Notifiche", - "section_general": "Generali", - "enable_notifications": "Abilita Notifiche", - "section_types": "Tipi di Notifica", - "new_episodes": "Nuovi Episodi", - "upcoming_shows": "Serie in Arrivo", - "reminders": "Promemoria", - "section_timing": "Tempistica Notifiche", - "timing_desc": "Quanto tempo prima della messa in onda vuoi ricevere la notifica?", - "hours_1": "1 ora", - "hours_suffix": "ore", - "section_status": "Stato Notifiche", - "stats_upcoming": "In arrivo", - "stats_this_week": "Questa settimana", - "stats_total": "Totale", - "sync_button": "Sincronizza Libreria e Trakt", - "syncing": "Sincronizzazione...", - "sync_desc": "Sincronizza automaticamente le notifiche per tutte le serie nella tua libreria e nella watchlist/collezione di Trakt.", - "section_advanced": "Avanzate", - "reset_button": "Ripristina tutte le notifiche", - "test_button": "Test Notifica (5 sec)", - "test_notification_in": "Notifica tra {{seconds}}s...", - "test_notification_text": "La notifica apparirà tra {{seconds}} secondi", - "alert_reset_title": "Ripristina Notifiche", - "alert_reset_msg": "Questo cancellerà tutte le notifiche programmate, ma non rimuoverà nulla dalla tua libreria salvata. Sei sicuro?", - "alert_reset_success": "Tutte le notifiche sono state ripristinate", - "alert_sync_complete": "Sincronizzazione Completata", - "alert_sync_msg": "Sincronizzazione notifiche completata con successo per la libreria e gli elementi Trakt.\n\nProgrammati: {{upcoming}} episodi in arrivo\nQuesta settimana: {{thisWeek}} episodi", - "alert_test_scheduled": "Notifica di test programmata per l'invio immediato" - }, - "backup": { - "title": "Backup e Ripristino", - "options_title": "Opzioni Backup", - "options_desc": "Scegli cosa includere nei tuoi backup", - "section_core": "Dati Principali", - "section_addons": "Addon e Integrazioni", - "section_settings": "Impostazioni e Preferenze", - "library_label": "Libreria", - "library_desc": "I tuoi film e Serie TV salvati", - "watch_progress_label": "Progressi di Visione", - "watch_progress_desc": "Posizioni di 'Continua a guardare'", - "addons_label": "Addon", - "addons_desc": "Addon di Stremio installati", - "plugins_label": "Plugin", - "plugins_desc": "Configurazioni scraper personalizzate", - "trakt_label": "Integrazione Trakt", - "trakt_desc": "Dati di sincronizzazione e token di autenticazione", - "app_settings_label": "Impostazioni App", - "app_settings_desc": "Tema, preferenze e configurazioni", - "user_prefs_label": "Preferenze Utente", - "user_prefs_desc": "Ordine degli Addon e impostazioni UI", - "catalog_settings_label": "Impostazioni Catalogo", - "catalog_settings_desc": "Filtri catalogo e preferenze", - "api_keys_label": "Chiavi API", - "api_keys_desc": "Chiavi per MDBList e OpenRouter", - "action_create": "Crea Backup", - "action_restore": "Ripristina da Backup", - "section_info": "Informazioni sui Backup", - "info_text": "• Personalizza gli elementi del backup usando i selettori sopra\n• I file di backup sono salvati localmente sul tuo dispositivo\n• Condividi il backup per trasferire i dati tra dispositivi\n• Il ripristino sovrascriverà i dati attuali", - "alert_create_title": "Crea Backup", - "alert_no_content": "Nessun contenuto selezionato per il backup.\n\nAbilita almeno un'opzione nella sezione Opzioni Backup sopra.", - "alert_backup_created_title": "Backup Creato", - "alert_backup_created_msg": "Il tuo backup è stato creato ed è pronto per essere condiviso.", - "alert_backup_failed_title": "Backup Fallito", - "alert_restore_confirm_title": "Conferma Ripristino", - "alert_restore_confirm_msg": "Questo ripristinerà i tuoi dati da un backup creato il {{date}}.\n\nQuesta azione sovrascriverà i dati attuali. Sei sicuro di voler continuare?", - "alert_restore_complete_title": "Ripristino Completato", - "alert_restore_complete_msg": "I tuoi dati sono stati ripristinati con successo. Riavvia l'app per applicare tutte le modifiche.", - "alert_restore_failed_title": "Ripristino Fallito", - "restart_app": "Riavvia App", - "alert_restart_failed_title": "Riavvio Fallito", - "alert_restart_failed_msg": "Impossibile riavviare l'app. Chiudi e riapri manualmente per vedere i dati ripristinati." - }, - "updates": { - "title": "Aggiornamenti App", - "status_checking": "Controllo aggiornamenti...", - "status_available": "Aggiornamento disponibile!", - "status_downloading": "Download aggiornamento...", - "status_installing": "Installazione aggiornamento...", - "status_success": "Aggiornamento installato con successo!", - "status_error": "Aggiornamento fallito", - "status_ready": "Pronto per controllare gli aggiornamenti", - "action_check": "Controlla Aggiornamenti", - "action_install": "Installa Aggiornamento", - "release_notes": "Note di rilascio:", - "version": "Versione:", - "last_checked": "Ultimo controllo:", - "current_version": "Versione attuale:", - "current_release_notes": "Note di rilascio attuali:", - "github_release": "RELEASE GITHUB", - "current": "Attuale:", - "latest": "Ultima:", - "notes": "Note:", - "view_release": "Vedi Release", - "notification_settings": "IMPOSTAZIONI NOTIFICHE", - "ota_alerts_label": "Avvisi Aggiornamenti OTA", - "ota_alerts_desc": "Mostra notifiche per aggiornamenti over-the-air", - "major_alerts_label": "Avvisi Aggiornamenti Maggiori", - "major_alerts_desc": "Mostra notifiche per nuove versioni dell'app su GitHub", - "alert_disable_ota_title": "Disabilitare Avvisi OTA?", - "alert_disable_ota_msg": "Non riceverai più notifiche automatiche per gli aggiornamenti OTA.\n\n⚠️ Attenzione: Rimanere all'ultima versione è importante per:\n• Correzioni di bug e stabilità\n• Nuove funzioni e miglioramenti\n• Feedback e report sui crash accurati\n\nPuoi comunque controllare manualmente gli aggiornamenti in questa schermata.", - "alert_disable_major_title": "Disabilitare Avvisi Major?", - "alert_disable_major_msg": "Non riceverai più notifiche per gli aggiornamenti maggiori che richiedono la reinstallazione.\n\n⚠️ Attenzione: Gli aggiornamenti maggiori includono spesso:\n• Patch di sicurezza critiche\n• Cambiamenti strutturali che richiedono la reinstallazione\n• Correzioni di compatibilità importanti\n\nPuoi comunque controllare manualmente.", - "warning_note": "Mantenere gli avvisi abilitati garantisce la ricezione delle correzioni e report di crash accurati.", - "disable": "Disabilita", - "alert_no_update_to_install": "Nessun aggiornamento disponibile da installare", - "alert_install_failed": "Installazione aggiornamento fallita", - "alert_no_update_title": "Nessun Aggiornamento", - "alert_update_applied_msg": "L'aggiornamento sarà applicato al prossimo riavvio dell'app" - }, - "player": { - "title": "Video Player", - "section_selection": "SELEZIONE PLAYER", - "internal_title": "Player Integrato", - "internal_desc": "Usa il video player predefinito dell'app", - "vlc_title": "VLC", - "vlc_desc": "Apri gli stream in VLC media player", - "infuse_title": "Infuse", - "infuse_desc": "Apri gli stream nel player Infuse", - "outplayer_title": "OutPlayer", - "outplayer_desc": "Apri gli stream in OutPlayer", - "vidhub_title": "VidHub", - "vidhub_desc": "Apri gli stream nel player VidHub", - "infuse_live_title": "Infuse LiveContainer", - "infuse_live_desc": "Apri gli stream in Infuse tramite LiveContainer", - "external_title": "Player Esterno", - "external_desc": "Apri gli stream nel tuo video player preferito", - "section_playback": "OPZIONI RIPRODUZIONE", - "skip_intro_settings_title": "Salta intro", - "powered_by_introdb": "Powered by IntroDB", - "autoplay_title": "Auto-play Primo Stream", - "autoplay_desc": "Avvia automaticamente il primo stream mostrato nella lista.", - "resume_title": "Riprendi Sempre", - "resume_desc": "Salta la richiesta di ripresa e continua automaticamente da dove avevi interrotto (se visto meno dell'85%).", - "engine_title": "Motore Video Player", - "engine_desc": "Auto utilizza ExoPlayer con MPV come ripiego. Alcuni formati come Dolby Vision e HDR potrebbero non essere supportati da MPV, quindi Auto è raccomandato.", - "decoder_title": "Modalità Decodificatore", - "decoder_desc": "Come viene decodificato il video. Auto è raccomandato per il miglior bilanciamento.", - "gpu_title": "Rendering GPU", - "gpu_desc": "GPU-Next offre una migliore gestione di HDR e colori.", - "external_downloads_title": "Player Esterno per Download", - "external_downloads_desc": "Riproduci i contenuti scaricati nel tuo player esterno preferito.", - "restart_required": "Riavvio Richiesto", - "restart_msg_decoder": "Riavvia l'app affinché le modifiche al decodificatore abbiano effetto.", - "restart_msg_gpu": "Riavvia l'app affinché le modifiche alla modalità GPU abbiano effetto.", - "option_auto": "Auto", - "option_auto_desc_engine": "ExoPlayer + MPV fallback", - "option_mpv": "MPV", - "option_mpv_desc": "Solo MPV", - "option_auto_desc_decoder": "Miglior bilanciamento", - "option_sw": "SW", - "option_sw_desc": "Software", - "option_hw": "HW", - "option_hw_desc": "Hardware", - "option_hw_plus": "HW+", - "option_hw_plus_desc": "HW Completo", - "option_gpu_desc": "Standard", - "option_gpu_next_desc": "Avanzato" - }, - "plugins": { - "title": "Estensioni", - "enable_title": "Abilita Estensioni", - "enable_desc": "Permetti all'app di usare estensioni installate per trovare fonti multimediali", - "repo_config_title": "Configurazione Repository", - "repo_config_desc": "Gestisci repository di estensioni esterni. Attiva o disattiva ogni repository qui sotto.", - "your_repos": "Repository", - "your_repos_desc": "Configura sorgenti esterne per le estensioni.", - "add_repo_button": "Aggiungi Repository", - "refresh": "Aggiorna", - "remove": "Rimuovi", - "enabled": "Abilitato", - "disabled": "Disabilitato", - "updating": "Aggiornamento...", - "success": "Successo", - "error": "Errore", - "alert_repo_added": "Repository aggiunto ed estensioni caricate con successo", - "alert_repo_saved": "URL del repository salvato con successo", - "alert_repo_refreshed": "Repository aggiornato con successo", - "alert_invalid_url": "Formato URL Non Valido", - "alert_plugins_cleared": "Tutte le estensioni sono state rimosse", - "alert_cache_cleared": "Cache del repository cancellata con successo", - "unknown": "Sconosciuto", - "active": "Attivo", - "available": "Disponibile", - "platform_disabled": "Piattaforma Disabilitata", - "limited": "Limitato", - "clear_all": "Rimuovi Tutte le Estensioni", - "clear_all_desc": "Sei sicuro di voler rimuovere tutte le estensioni installate? L'azione è irreversibile.", - "clear_cache": "Cancella Cache Repository", - "clear_cache_desc": "Questo rimuoverà l'URL salvato e tutti i dati delle estensioni in cache.", - "add_new_repo": "Aggiungi Nuovo Repository", - "available_plugins": "Estensioni Disponibili ({{count}})", - "placeholder": "Cerca estensioni...", - "all": "Tutti", - "filter_all": "Tutti i Tipi", - "filter_movies": "Film", - "filter_tv": "Serie TV", - "enable_all": "Abilita Tutti", - "disable_all": "Disabilita Tutti", - "no_plugins_found": "Nessuna Estensione Trovata", - "no_plugins_available": "Nessuna Estensione Disponibile", - "no_match_desc": "Nessuna estensione corrisponde a \"{{query}}\".", - "configure_repo_desc": "Configura un repository sopra per visualizzare le estensioni disponibili.", - "clear_search": "Cancella Ricerca", - "no_external_player": "Nessun player esterno", - "showbox_token": "Token UI ShowBox", - "showbox_placeholder": "Incolla il tuo token UI ShowBox", - "save": "Salva", - "clear": "Cancella", - "additional_settings": "Impostazioni Aggiuntive", - "enable_url_validation": "Abilita Validazione URL", - "url_validation_desc": "Valida gli URL prima di mostrarli (può rallentare i risultati ma migliora l'affidabilità)", - "group_streams": "Raggruppa Fonti Estensioni", - "group_streams_desc": "Se abilitato, le fonti sono raggruppate per repository. Se disabilitato, ogni estensione appare come provider separato.", - "sort_quality": "Ordina Prima per Qualità", - "sort_quality_desc": "Se abilitato, le fonti sono ordinate prima per qualità. Solo disponibile con il raggruppamento attivo.", - "show_logos": "Mostra Loghi Estensioni", - "show_logos_desc": "Visualizza i loghi delle estensioni accanto ai link multimediali.", - "quality_filtering": "Filtraggio Qualità", - "quality_filtering_desc": "Escludi specifiche qualità video dai risultati. Tocca una qualità per escluderla dalle estensioni.", - "excluded_qualities": "Qualità escluse:", - "language_filtering": "Filtraggio Lingua", - "language_filtering_desc": "Escludi specifiche lingue dai risultati. Tocca una lingua per escluderla dalle estensioni.", - "note": "Nota:", - "language_filtering_note": "Questo filtro si applica solo ai provider che includono informazioni sulla lingua.", - "excluded_languages": "Lingue escluse:", - "about_title": "Informazioni sulle Estensioni", - "about_desc_1": "Le estensioni sono moduli che adattano contenuti da vari protocolli esterni. Girano localmente e sono installate da repository fidati.", - "about_desc_2": "Le estensioni contrassegnate come \"Limitate\" richiedono configurazioni esterne specifiche.", - "help_title": "Configurazione Estensioni", - "help_step_1": "1. **Abilita Estensioni** - Attiva l'interruttore principale", - "help_step_2": "2. **Aggiungi Repository** - Inserisci un URL di repository valido", - "help_step_3": "3. **Aggiorna Repository** - Scarica le estensioni disponibili", - "help_step_4": "4. **Abilita** - Attiva le estensioni che desideri usare", - "got_it": "Capito!", - "repo_format_hint": "Formato: https://raw.githubusercontent.com/user/repo/refs/heads/branch", - "cancel": "Annulla", - "add": "Aggiungi" - }, - "theme": { - "title": "Temi App", - "select_theme": "SELEZIONA TEMA", - "create_custom": "Crea Tema Personalizado", - "options": "OPZIONI", - "use_dominant_color": "Usa colore dominante dall'artwork", - "categories": { - "all": "Tutti i Temi", - "dark": "Temi Scuri", - "colorful": "Colorati", - "custom": "I Miei Temi" - }, - "editor": { - "theme_name_placeholder": "Nome tema", - "save": "Salva", - "primary": "Primario", - "secondary": "Secondario", - "background": "Sfondo", - "invalid_name_title": "Nome Non Valido", - "invalid_name_msg": "Inserisci un nome valido per il tema" - }, - "alerts": { - "delete_title": "Elimina Tema", - "delete_msg": "Sei sicuro di voler eliminare \"{{name}}\"?", - "ok": "OK", - "delete": "Elimina", - "cancel": "Annulla", - "back": "Impostazioni" - } - }, - "legal": { - "title": "Note Legali & Disclaimer", - "intro_title": "Natura dell'Applicazione", - "intro_text": "Nuvio è un lettore multimediale e un'applicazione per la gestione dei metadati. Agisce unicamente come interfaccia lato client per sfogliare metadati pubblicamente disponibili (film, serie TV, ecc.) e riprodurre file multimediali forniti dall'utente o da estensioni di terze parti. Nuvio non ospita, archivia, distribuisce né indicizza alcun contenuto multimediale autonomamente.", - "extensions_title": "Estensioni di Terze Parti", - "extensions_text": "Nuvio utilizza un'architettura estensibile che consente agli utenti di installare plugin di terze parti (estensioni). Queste estensioni sono sviluppate e mantenute da sviluppatori indipendenti non affiliati a Nuvio. Non abbiamo alcun controllo su, e non ci assumiamo alcuna responsabilità per, il contenuto, la legalità o la funzionalità di qualsiasi estensione di terze parti.", - "user_resp_title": "Responsabilità dell'Utente", - "user_resp_text": "Gli utenti sono gli unici responsabili delle estensioni che installano e dei contenuti a cui accedono. Utilizzando questa applicazione, accetti di garantire di avere il diritto legale di accedere a qualsiasi contenuto visualizzato utilizzando Nuvio. Gli sviluppatori di Nuvio non sostengono né incoraggiano la violazione del copyright.", - "dmca_title": "Copyright e DMCA", - "dmca_text": "Rispettiamo i diritti di proprietà intellettuale altrui. Poiché Nuvio non ospita alcun contenuto, non possiamo rimuovere contenuti da Internet. Tuttavia, se ritieni che l'interfaccia stessa dell'applicazione violi i tuoi diritti, ti preghiamo di contattarci.", - "warranty_title": "Nessuna Garanzia", - "warranty_text": "Questo software è fornito \"così com'è\", senza garanzia di alcun tipo, espressa o implicita. In nessun caso gli autori o i detentori del copyright saranno responsabili per qualsiasi reclamo, danno o altra responsabilità derivante dall'uso di questo software." - }, - "plugin_tester": { - "title": "Tester Plugin", - "subtitle": "Esegui scraper e ispeziona log in tempo reale", - "tabs": { - "individual": "Individuale", - "repo": "Tester Repo", - "code": "Codice", - "logs": "Log", - "results": "Risultati" - }, - "common": { - "error": "Errore", - "success": "Successo", - "movie": "Film", - "tv": "Serie TV", - "tmdb_id": "ID TMDB", - "season": "Stagione", - "episode": "Episodio", - "running": "In esecuzione…", - "run_test": "Esegui Test", - "play": "Riproduci", - "done": "Fatto", - "test": "Test", - "testing": "Test in corso…" - }, - "individual": { - "load_from_url": "Carica da URL", - "load_from_url_desc": "Incolla un URL GitHub raw o IP locale e tocca scarica.", - "enter_url_error": "Inserisci un URL", - "code_loaded": "Codice caricato da URL", - "fetch_error": "Caricamento fallito: {{message}}", - "no_code_error": "Nessun codice da eseguire", - "plugin_code": "Codice Plugin", - "focus_editor": "Focus editor", - "code_placeholder": "// Incolla il codice del plugin qui...", - "test_parameters": "Parametri di Test", - "no_logs": "Nessun log. Esegui un test per vedere l'output.", - "no_streams": "Nessun stream trovato.", - "streams_found": "{{count}} Stream Trovato", - "streams_found_plural": "{{count}} Stream Trovati", - "tap_play_hint": "Tocca Riproduci per testare uno stream nel player nativo.", - "unnamed_stream": "Stream Senza Nome", - "quality": "Qualità: {{quality}}", - "size": "Dimensione: {{size}}", - "url_label": "URL: {{url}}", - "headers_info": "Header: {{count}} header personalizzati", - "find_placeholder": "Cerca nel codice…", - "edit_code_title": "Modifica Codice", - "no_url_stream_error": "Nessun URL trovato per questo stream" - }, - "repo": { - "title": "Tester Repo", - "description": "Recupera un repository (URL locale o GitHub raw) e testa ogni provider.", - "enter_repo_url_error": "Inserisci un URL del repository", - "invalid_url_title": "URL Non Valido", - "invalid_url_msg": "Usa un URL GitHub raw o un URL locale http(s).\n\nEsempio:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", - "manifest_build_error": "Impossibile creare un URL manifest dall'input", - "manifest_fetch_error": "Caricamento manifest fallito", - "repo_manifest_fetch_error": "Caricamento manifest repo fallito", - "missing_filename": "Nome file mancante nel manifest", - "scraper_build_error": "Impossibile creare un URL scraper", - "download_scraper_error": "Download scraper fallito", - "test_failed": "Test fallito", - "test_parameters": "Parametri Test Repo", - "test_parameters_desc": "Questi parametri sono usati solo per il Tester Repo.", - "using_info": "Uso: {{mediaType}} • TMDB {{tmdbId}}", - "using_info_tv": "Uso: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", - "providers_title": "Provider", - "repository_default": "Repository", - "providers_count": "{{count}} provider", - "fetch_hint": "Recupera un repo per elencare i provider.", - "test_all": "Testa Tutto", - "status_running": "IN ESECUZIONE", - "status_ok": "OK ({{count}})", - "status_ok_empty": "OK (0)", - "status_failed": "FALLITO", - "status_idle": "INATTIVO", - "tried_url": "Provato: {{url}}", - "provider_logs": "Log Provider", - "no_logs_captured": "Nessun log catturato." - } - } + "common": { + "loading": "Caricamento...", + "cancel": "Annulla", + "save": "Salva", + "delete": "Elimina", + "edit": "Modifica", + "search": "Cerca", + "error": "Errore", + "success": "Successo", + "ok": "OK", + "unknown": "Sconosciuto", + "retry": "Riprova", + "try_again": "Riprova", + "go_back": "Torna indietro", + "settings": "Impostazioni", + "close": "Chiudi", + "enable": "Abilita", + "disable": "Disabilita", + "show_more": "Mostra altro", + "show_less": "Mostra meno", + "load_more": "Carica altro", + "unknown_date": "Data sconosciuta", + "anonymous_user": "Utente anonimo", + "time": { + "now": "Proprio ora", + "minutes_ago": "{{count}}m fa", + "hours_ago": "{{count}}o fa", + "days_ago": "{{count}}g fa" + }, + "days_short": { + "sun": "Dom", + "mon": "Lun", + "tue": "Mar", + "wed": "Mer", + "thu": "Gio", + "fri": "Ven", + "sat": "Sab" + }, + "email": "Email", + "status": "Stato" + }, + "home": { + "categories": { + "movies": "Film", + "series": "Serie TV", + "channels": "Canali" + }, + "movies": "Film", + "tv_shows": "Serie TV", + "load_more_catalogs": "Carica altri cataloghi", + "no_content": "Nessun contenuto disponibile", + "add_catalogs": "Aggiungi cataloghi", + "sign_in_available": "Accesso disponibile", + "sign_in_desc": "Puoi accedere in qualsiasi momento da Impostazioni → Account", + "view_all": "Vedi tutto", + "this_week": "Questa settimana", + "upcoming": "In arrivo", + "recently_released": "Rilasciati di recente", + "no_scheduled_episodes": "Serie TV senza episodi programmati", + "check_back_later": "Torna a controllare più tardi", + "continue_watching": "Continua a guardare", + "up_next": "Prossimi titoli", + "up_next_caps": "PROSSIMI TITOLI", + "released": "Rilasciato", + "new": "Nuovo", + "tba": "Da annunciare", + "new_episodes": "{{count}} Nuovi episodi", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Stagione {{season}}", + "episode": "Episodio {{episode}}", + "movie": "Film", + "series": "Serie TV", + "tv_show": "Serie TV", + "percent_watched": "{{percent}}% guardato", + "view_details": "Visualizza dettagli", + "remove": "Rimuovi", + "play": "Riproduci", + "play_now": "Riproduci ora", + "resume": "Riprendi", + "info": "Info", + "more_info": "Più informazioni", + "my_list": "La mia lista", + "save": "Salva", + "saved": "Salvato", + "retry": "Riprova", + "install_addons": "Installa Addon", + "settings": "Impostazioni", + "no_featured_content": "Nessun contenuto in evidenza", + "couldnt_load_featured": "Impossibile caricare i contenuti in evidenza", + "no_featured_desc": "Installa addon con cataloghi o cambia la sorgente dei contenuti nelle impostazioni.", + "load_error_desc": "Si è verificato un problema nel recupero dei contenuti in evidenza. Controlla la tua connessione e riprova.", + "no_featured_available": "Nessun contenuto in evidenza disponibile", + "no_description": "Nessuna descrizione disponibile" + }, + "navigation": { + "home": "Home", + "library": "Libreria", + "search": "Cerca", + "downloads": "Download", + "settings": "Impostazioni" + }, + "search": { + "title": "Cerca", + "recent_searches": "Ricerche recenti", + "discover": "Scopri", + "movies": "Film", + "tv_shows": "Serie TV", + "select_catalog": "Seleziona catalogo", + "all_genres": "Tutti i generi", + "discovering": "Scoperta contenuti in corso...", + "show_more": "Mostra altro ({{count}})", + "no_content_found": "Nessun contenuto trovato", + "try_different": "Prova un genere o un catalogo differente", + "select_catalog_desc": "Seleziona un catalogo da esplorare", + "tap_catalog_desc": "Tocca il catalogo qui sopra per iniziare", + "placeholder": "Cerca film, Serie TV...", + "keep_typing": "Continua a scrivere...", + "type_characters": "Scrivi almeno 2 caratteri per cercare", + "no_results": "Nessun risultato trovato", + "try_keywords": "Prova parole chiave diverse o controlla l'ortografia", + "select_type": "Seleziona tipo", + "browse_movies": "Sfoglia i cataloghi dei film", + "browse_tv": "Sfoglia i cataloghi delle Serie TV", + "select_genre": "Seleziona genere", + "show_all_content": "Mostra tutti i contenuti", + "genres_count": "{{count}} generi" + }, + "library": { + "title": "Libreria", + "watched": "Visti", + "continue": "Continua", + "watchlist": "Watchlist", + "collection": "Collezione", + "rated": "Valutati", + "items": "elementi", + "trakt_collections": "Collezioni Trakt", + "trakt_collection": "Collezione Trakt", + "no_trakt": "Nessuna collezione Trakt", + "no_trakt_desc": "Le tue collezioni Trakt appariranno qui non appena inizierai a usare Trakt", + "load_collections": "Carica collezioni", + "empty_folder": "Nessun contenuto in {{folder}}", + "empty_folder_desc": "Questa collezione è vuota", + "refresh": "Aggiorna", + "no_movies": "Ancora nessun film", + "no_series": "Ancora nessuna Serie TV", + "no_content": "Ancora nessun contenuto", + "add_content_desc": "Aggiungi dei contenuti alla tua libreria per vederli qui", + "find_something": "Trova qualcosa da guardare", + "removed_from_library": "Rimosso dalla Libreria", + "item_removed": "Elemento rimosso dalla tua libreria", + "failed_update_library": "Aggiornamento Libreria fallito", + "unable_remove": "Impossibile rimuovere l'elemento dalla libreria", + "marked_watched": "Segnato come Visto", + "marked_unwatched": "Segnato come Non Visto", + "item_marked_watched": "Elemento segnato come visto", + "item_marked_unwatched": "Elemento segnato come non visto", + "failed_update_watched": "Aggiornamento stato visione fallito", + "unable_update_watched": "Impossibile aggiornare lo stato di visione", + "added_to_library": "Aggiunto alla Libreria", + "item_added": "Aggiunto alla tua libreria locale", + "add_to_library": "Aggiungi alla Libreria", + "remove_from_library": "Rimuovi dalla Libreria", + "mark_watched": "Segna come visto", + "mark_unwatched": "Segna come non visto", + "share": "Condividi", + "add_to_watchlist": "Aggiungi alla Watchlist Trakt", + "remove_from_watchlist": "Rimuovi dalla Watchlist Trakt", + "added_to_watchlist": "Aggiunto alla Watchlist", + "added_to_watchlist_desc": "Aggiunto alla tua watchlist Trakt", + "removed_from_watchlist": "Rimosso dalla Watchlist", + "removed_from_watchlist_desc": "Rimosso dalla tua watchlist Trakt", + "add_to_collection": "Aggiungi alla Collezione Trakt", + "remove_from_collection": "Rimuovi dalla Collezione Trakt", + "added_to_collection": "Aggiunto alla Collezione", + "added_to_collection_desc": "Aggiunto alla tua collezione Trakt", + "removed_from_collection": "Rimosso dalla Collezione", + "removed_from_collection_desc": "Rimosso dalla tua collezione Trakt" + }, + "metadata": { + "unable_to_load": "Impossibile caricare il contenuto", + "error_code": "Codice errore: {{code}}", + "content_not_found": "Contenuto non trovato", + "content_not_found_desc": "Questo contenuto non esiste o potrebbe essere stato rimosso.", + "server_error": "Errore del server", + "server_error_desc": "Il server è temporaneamente non disponibile. Riprova più tardi.", + "bad_gateway": "Bad gateway", + "bad_gateway_desc": "Il server sta riscontrando dei problemi. Riprova più tardi.", + "service_unavailable": "Servizio non disponibile", + "service_unavailable_desc": "Il servizio è attualmente in manutenzione. Riprova più tardi.", + "too_many_requests": "Troppe richieste", + "too_many_requests_desc": "Stai effettuando troppe richieste. Attendi un momento e riprova.", + "request_timeout": "Richiesta scaduta", + "request_timeout_desc": "La richiesta ha impiegato troppo tempo. Riprova.", + "network_error": "Errore di rete", + "network_error_desc": "Controlla la tua connessione internet e riprova.", + "auth_error": "Errore di autenticazione", + "auth_error_desc": "Controlla le impostazioni del tuo account e riprova.", + "access_denied": "Accesso negato", + "access_denied_desc": "Non hai i permessi per accedere a questo contenuto.", + "connection_error": "Errore di connessione", + "streams_unavailable": "Streaming non disponibili", + "streams_unavailable_desc": "Le sorgenti di streaming sono attualmente non disponibili. Riprova più tardi.", + "unknown_error": "Errore sconosciuto", + "something_went_wrong": "Qualcosa è andato storto. Riprova.", + "cast": "Cast", + "more_like_this": "Altri titoli simili", + "collection": "Collezione", + "episodes": "Episodi", + "seasons": "Stagioni", + "posters": "Poster", + "banners": "Banner", + "specials": "Speciali", + "season_number": "Stagione {{number}}", + "episode_count": "{{count}} Episodio", + "episode_count_plural": "{{count}} Episodi", + "no_episodes": "Nessun episodio disponibile", + "no_episodes_for_season": "Nessun episodio disponibile per la Stagione {{season}}", + "episodes_not_released": "Gli episodi potrebbero non essere ancora stati rilasciati", + "no_description": "Nessuna descrizione disponibile", + "episode_label": "EPISODIO {{number}}", + "watch_again": "Guarda di nuovo", + "completed": "Completato", + "play_episode": "Riproduci S{{season}}E{{episode}}", + "play": "Riproduci", + "watched": "Visto", + "watched_on_trakt": "Visto su Trakt", + "synced_with_trakt": "Sincronizzato con Trakt", + "saved": "Salvato", + "director": "Regista", + "directors": "Registi", + "creator": "Creatore", + "creators": "Creatori", + "production": "Produzione", + "network": "Rete", + "mark_watched": "Segna come visto", + "mark_unwatched": "Segna come non visto", + "marking": "Segnatura...", + "removing": "Rimozione...", + "unmark_season": "Deseleziona Stagione {{season}}", + "mark_season": "Segna Stagione {{season}} come vista", + "resume": "Riprendi", + "spoiler_warning": "Avviso Spoiler", + "spoiler_warning_desc": "Questo commento contiene spoiler. Sei sicuro di volerlo visualizzare?", + "cancel": "Annulla", + "reveal_spoilers": "Mostra Spoiler", + "movie_details": "Dettagli Film", + "show_details": "Dettagli Serie TV", + "tagline": "Slogan", + "status": "Stato", + "release_date": "Data di rilascio", + "runtime": "Durata", + "budget": "Budget", + "revenue": "Incasso", + "origin_country": "Paese d'origine", + "original_language": "Lingua originale", + "first_air_date": "Data prima messa in onda", + "last_air_date": "Data ultima messa in onda", + "total_episodes": "Episodi totali", + "episode_runtime": "Durata episodio", + "created_by": "Creato da", + "backdrop_gallery": "Galleria sfondi", + "loading_episodes": "Caricamento episodi...", + "no_episodes_available": "Nessun episodio disponibile", + "play_next": "Riproduci S{{season}}E{{episode}}", + "play_next_episode": "Riproduci prossimo episodio", + "save": "Salva", + "percent_watched": "{{percent}}% guardato", + "percent_watched_trakt": "{{percent}}% guardato ({{traktPercent}}% su Trakt)", + "synced_with_trakt_progress": "Sincronizzato con Trakt", + "using_trakt_progress": "Utilizzo progressi Trakt", + "added_to_collection_hero": "Aggiunto alla collezione", + "added_to_collection_desc_hero": "Aggiunto alla tua collezione Trakt", + "removed_from_collection_hero": "Rimosso dalla collezione", + "removed_from_collection_desc_hero": "Rimosso dalla tua collezione Trakt", + "mark_as_watched": "Segna come visto", + "mark_as_unwatched": "Segna come non visto" + }, + "cast": { + "biography": "Biografia", + "known_for": "Conosciuto per", + "personal_info": "Informazioni personali", + "born_in": "Nato a {{place}}", + "filmography": "Filmografia", + "also_known_as": "Conosciuto anche come", + "no_info_available": "Nessuna informazione aggiuntiva disponibile", + "as_character": "nel ruolo di {{character}}", + "loading_details": "Caricamento dettagli...", + "years_old": "{{age}} anni", + "view_filmography": "Visualizza filmografia", + "filter": "Filtra", + "sort_by": "Ordina per", + "sort_popular": "Popolarità", + "sort_latest": "Ultimi prodotti", + "sort_upcoming": "In arrivo", + "upcoming_badge": "IN ARRIVO", + "coming_soon": "Prossimamente", + "filmography_count": "Filmografia • {{count}} titoli", + "loading_filmography": "Caricamento filmografia...", + "load_more_remaining": "Carica altri ({{count}} rimanenti)", + "alert_error_title": "Errore", + "alert_error_message": "Impossibile caricare \"{{title}}\". Riprova più tardi.", + "alert_ok": "OK", + "no_upcoming": "Nessuna uscita imminente disponibile per questo attore", + "no_content": "Nessun contenuto disponibile per questo attore", + "no_movies": "Nessun film disponibile per questo attore", + "no_tv": "Nessuna Serie TV disponibile per questo attore" + }, + "comments": { + "title": "Commenti Trakt", + "spoiler_warning": "⚠️ Questo commento contiene spoiler. Tocca per visualizzare.", + "spoiler": "Spoiler", + "contains_spoilers": "Contiene spoiler", + "reveal": "Mostra", + "vip": "VIP", + "unavailable": "Commenti non disponibili", + "no_comments": "Ancora nessun commento su Trakt", + "not_in_database": "Questo contenuto potrebbe non essere ancora nel database di Trakt", + "check_trakt": "Controlla su Trakt" + }, + "trailers": { + "title": "Trailer", + "official_trailers": "Trailer ufficiali", + "official_trailer": "Trailer ufficiale", + "teasers": "Teaser", + "teaser": "Teaser", + "clips_scenes": "Clip e scene", + "clip": "Clip", + "featurettes": "Featurette", + "featurette": "Featurette", + "behind_the_scenes": "Dietro le quinte", + "no_trailers": "Nessun trailer disponibile", + "unavailable": "Trailer non disponibile", + "unavailable_desc": "Impossibile caricare questo trailer al momento. Riprova più tardi.", + "unable_to_play": "Impossibile riprodurre il trailer. Riprova.", + "watch_on_youtube": "Guarda su YouTube" + }, + "catalog": { + "no_content_found": "Nessun contenuto trovato", + "no_content_filters": "Nessun contenuto trovato per i filtri selezionati", + "loading_content": "Caricamento contenuti...", + "back": "Indietro", + "in_theaters": "Al cinema", + "all": "Tutti", + "failed_tmdb": "Impossibile caricare i contenuti da TMDB", + "movies": "Film", + "tv_shows": "Serie TV", + "channels": "Canali" + }, + "streams": { + "back_to_episodes": "Torna agli episodi", + "back_to_info": "Torna alle info", + "fetching_from": "Recupero da:", + "no_sources_available": "Nessuna sorgente streaming disponibile", + "add_sources_desc": "Aggiungi sorgenti streaming nelle impostazioni", + "add_sources": "Aggiungi sorgenti", + "finding_streams": "Ricerca streaming disponibili...", + "finding_best_stream": "Ricerca del miglior streaming per l'avvio automatico...", + "still_fetching": "Recupero streaming in corso...", + "no_streams_available": "Nessuno streaming disponibile", + "starting_best_stream": "Avvio del miglior streaming...", + "loading_more_sources": "Caricamento di altre sorgenti..." + }, + "player_ui": { + "via": "via {{name}}", + "audio_tracks": "Tracce audio", + "no_audio_tracks": "Nessuna traccia audio disponibile", + "playback_speed": "Velocità di riproduzione", + "on_hold": "In attesa", + "playback_error": "Errore di riproduzione", + "unknown_error": "Si è verificato un errore sconosciuto durante la riproduzione.", + "copy_error": "Copia dettagli errore", + "copied_to_clipboard": "Copiato negli appunti", + "dismiss": "Chiudi", + "continue_watching": "Continua a guardare", + "start_over": "Ricomincia dall'inizio", + "resume": "Riprendi", + "change_source": "Cambia sorgente", + "switching_source": "Cambio sorgente in corso...", + "no_sources_found": "Nessuna sorgente trovata", + "sources": "Sorgenti", + "finding_sources": "Ricerca sorgenti...", + "unknown_source": "Sorgente sconosciuta", + "sources_limited": "Le sorgenti potrebbero essere limitate a causa di errori del provider.", + "episodes": "Episodi", + "specials": "Speciali", + "season": "Stagione {{season}}", + "stream": "Streaming {{number}}", + "subtitles": "Sottotitoli", + "built_in": "Integrati", + "addons": "Addon", + "style": "Stile", + "none": "Nessuno", + "search_online_subtitles": "Cerca sottotitoli online", + "preview": "Anteprima", + "quick_presets": "Predefiniti rapidi", + "default": "Predefinito", + "yellow": "Giallo", + "high_contrast": "Contrasto elevato", + "large": "Grande", + "core": "Base", + "font_size": "Dimensione carattere", + "show_background": "Mostra sfondo", + "advanced": "Avanzate", + "position": "Posizione", + "text_color": "Colore testo", + "align": "Allineamento", + "bottom_offset": "Distanza dal basso", + "background_opacity": "Opacità sfondo", + "text_shadow": "Ombra testo", + "on": "Attivo", + "off": "Disattivo", + "outline_color": "Colore contorno", + "outline": "Contorno", + "outline_width": "Larghezza contorno", + "letter_spacing": "Spaziatura lettere", + "line_height": "Altezza riga", + "timing_offset": "Ritardo sincronizzazione (s)", + "visual_sync": "Sincronizzazione visiva", + "timing_hint": "Anticipa (-) o ritarda (+) i sottotitoli per sincronizzarli se necessario.", + "reset_defaults": "Ripristina predefiniti" + }, + "downloads": { + "title": "Download", + "no_downloads": "Ancora nessun download", + "no_downloads_desc": "I contenuti scaricati appariranno qui per la visione offline", + "explore": "Esplora contenuti", + "path_copied": "Percorso copiato", + "path_copied_desc": "Percorso del file locale copiato negli appunti", + "copied": "Copiato", + "incomplete": "Download incompleto", + "incomplete_desc": "Il download non è ancora terminato", + "not_available": "Non disponibile", + "not_available_desc": "Il percorso del file locale è disponibile solo al termine del download.", + "status_downloading": "Download in corso", + "status_completed": "Completato", + "status_paused": "In pausa", + "status_error": "Errore", + "status_queued": "In coda", + "status_unknown": "Sconosciuto", + "provider": "Provider", + "streaming_playlist_warning": "Potrebbe non funzionare - playlist di streaming", + "remaining": "rimanenti", + "not_ready": "Download non pronto", + "not_ready_desc": "Attendi il completamento del download.", + "filter_all": "Tutti", + "filter_active": "Attivi", + "filter_done": "Completati", + "filter_paused": "In pausa", + "no_filter_results": "Nessun download per il filtro {{filter}}", + "try_different_filter": "Prova a selezionare un filtro diverso", + "limitations_title": "Limitazioni del download", + "limitations_msg": "• I file più piccoli di 1MB sono solitamente playlist streaming M3U8 e non possono essere scaricati per la visione offline. Funzionano solo con lo streaming online e contengono link ai segmenti video, non il contenuto video effettivo.", + "remove_title": "Rimuovi download", + "remove_confirm": "Rimuovere \"{{title}}\"{{season_episode}}?", + "cancel": "Annulla", + "remove": "Rimuovi" + }, + "addons": { + "title": "Addon", + "reorder_mode": "Modalità riordino", + "reorder_info": "Gli Addon in alto hanno priorità maggiore durante il caricamento dei contenuti", + "add_addon_placeholder": "URL Addon", + "add_button": "Aggiungi Addon", + "my_addons": "I miei Addon", + "community_addons": "Addon della community", + "no_addons": "Nessun Addon installato", + "uninstall_title": "Disinstalla Addon", + "uninstall_message": "Sei sicuro di voler disinstallare {{name}}?", + "uninstall_button": "Disinstalla", + "install_success": "Addon installato con successo", + "install_error": "Installazione Addon fallita", + "load_error": "Caricamento Addon fallito", + "fetch_error": "Impossibile recuperare i dettagli dell'Addon", + "invalid_url": "Inserisci un URL Addon valido", + "configure": "Configura", + "version": "Versione: {{version}}", + "installed_addons": "ADDON INSTALLATI", + "reorder_drag_title": "TRASCINA GLI ADDON PER RIORDINARLI", + "install": "Installa", + "config_unavailable_title": "Configurazione non disponibile", + "config_unavailable_msg": "Impossibile determinare l'URL di configurazione per questo Addon.", + "cannot_open_config_title": "Impossibile aprire la configurazione", + "cannot_open_config_msg": "L'URL di configurazione ({{url}}) non può essere aperto. L'Addon potrebbe non avere una pagina di configurazione.", + "description": "Descrizione", + "supported_types": "Tipi supportati", + "catalogs": "Cataloghi", + "no_description": "Nessuna descrizione disponibile", + "overview": "PANORAMICA", + "no_categories": "Nessuna categoria", + "pre_installed": "PRE-INSTALLATO" + }, + "trakt": { + "title": "Impostazioni Trakt", + "settings_title": "Impostazioni Trakt", + "connect_title": "Connettiti a Trakt", + "connect_desc": "Sincronizza cronologia, watchlist e collezione con Trakt.tv", + "sign_in": "Accedi con Trakt", + "sign_out": "Esci", + "sign_out_confirm": "Sei sicuro di voler uscire dal tuo account Trakt?", + "joined": "Iscritto dal {{date}}", + "sync_settings_title": "Impostazioni Sincronizzazione", + "sync_info": "Quando sei connesso a Trakt, l'intera cronologia viene sincronizzata direttamente dall'API e non viene salvata localmente. La tua lista 'Continua a guardare' riflette i tuoi progressi globali su Trakt.", + "auto_sync_label": "Sincronizzazione automatica progressi", + "auto_sync_desc": "Sincronizza automaticamente i progressi di visione su Trakt", + "import_history_label": "Importa cronologia visioni", + "import_history_desc": "Usa \"Sincronizza ora\" per importare la cronologia e i progressi da Trakt", + "sync_now_button": "Sincronizza ora", + "display_settings_title": "Impostazioni Visualizzazione", + "show_comments_label": "Mostra commenti Trakt", + "show_comments_desc": "Visualizza i commenti di Trakt nelle schede dei contenuti quando disponibili", + "maintenance_title": "In manutenzione", + "maintenance_unavailable": "Trakt non disponibile", + "maintenance_desc": "L'integrazione con Trakt è temporaneamente sospesa per manutenzione. Tutte le funzioni di sincronizzazione e autenticazione sono disabilitate fino al termine dei lavori.", + "maintenance_button": "Servizio in manutenzione", + "auth_success_title": "Connessione riuscita", + "auth_success_msg": "Il tuo account Trakt è stato collegato correttamente.", + "auth_error_title": "Errore di autenticazione", + "auth_error_msg": "Impossibile completare l'autenticazione con Trakt.", + "auth_error_generic": "Si è verificato un errore durante l'autenticazione.", + "sign_out_error": "Impossibile uscire da Trakt.", + "sync_complete_title": "Sincronizzazione completata", + "sync_success_msg": "Progressi di visione sincronizzati con successo con Trakt.", + "sync_error_msg": "Sincronizzazione fallita. Riprova." + }, + "simkl": { + "title": "Impostazioni Simkl", + "settings_title": "Impostazioni Simkl", + "connect_title": "Connetti con Simkl", + "connect_desc": "Sincronizza la tua cronologia di visione e traccia ciò che guardi", + "sign_in": "Accedi con Simkl", + "sign_out": "Disconnetti", + "sign_out_confirm": "Sei sicuro di voler disconnettere da Simkl?", + "syncing_desc": "I tuoi elementi guardati sono in sincronizzazione con Simkl.", + "auth_success_title": "Connesso con successo", + "auth_success_msg": "Il tuo account Simkl è stato connesso con successo.", + "auth_error_title": "Errore di autenticazione", + "auth_error_msg": "Impossibile completare l'autenticazione con Simkl.", + "auth_error_generic": "Si è verificato un errore durante l'autenticazione.", + "sign_out_error": "Impossibile disconnettere da Simkl.", + "config_error_title": "Errore di configurazione", + "config_error_msg": "L'ID client Simkl manca nelle variabili d'ambiente.", + "conflict_title": "Conflitto", + "conflict_msg": "Non puoi connettere Simkl mentre Trakt è connesso. Disconnetti prima Trakt.", + "disclaimer": "Nuvio non è affiliato con Simkl." + }, + "tmdb_settings": { + "title": "Impostazioni TMDb", + "metadata_enrichment": "Arricchimento metadati", + "metadata_enrichment_desc": "Migliora i metadati dei contenuti con i dati di TMDb per maggiori dettagli e informazioni.", + "enable_enrichment": "Abilita arricchimento", + "enable_enrichment_desc": "Integra i metadati degli Addon con TMDb per cast, certificazioni, loghi/poster e info di produzione.", + "localized_text": "Testo localizzato", + "localized_text_desc": "Recupera titoli e descrizioni nella tua lingua preferita da TMDb.", + "language": "Lingua", + "change": "Cambia", + "logo_preview": "Anteprima Logo", + "logo_preview_desc": "L'anteprima mostra come appariranno i loghi localizzati nella lingua selezionata.", + "example": "Esempio:", + "no_logo": "Nessun logo disponibile", + "enrichment_options": "Opzioni di arricchimento", + "enrichment_options_desc": "Controlla quali dati recuperare da TMDb. Le opzioni disabilitate useranno i dati dell'Addon, se disponibili.", + "cast_crew": "Cast e Troupe", + "cast_crew_desc": "Attori, registi, sceneggiatori con foto profilo", + "title_description": "Titolo e Descrizione", + "title_description_desc": "Usa titolo e panoramica localizzati di TMDb", + "title_logos": "Loghi Titolo", + "title_logos_desc": "Immagini di alta qualità per il titolo", + "banners_backdrops": "Banner e Sfondi", + "banners_backdrops_desc": "Immagini di sfondo ad alta risoluzione", + "certification": "Certificazione contenuti", + "certification_desc": "Classificazione per età (PG-13, R, TV-MA, ecc.)", + "recommendations": "Consigliati", + "recommendations_desc": "Suggerimenti per contenuti simili", + "episode_data": "Dati episodi", + "episode_data_desc": "Miniature episodi, info e fallback per le Serie TV", + "season_posters": "Poster stagioni", + "season_posters_desc": "Immagini poster specifiche per le stagioni", + "production_info": "Info di produzione", + "production_info_desc": "Reti e case di produzione con loghi", + "movie_details": "Dettagli Film", + "movie_details_desc": "Budget, incassi, durata, slogan", + "tv_details": "Dettagli Serie TV", + "tv_details_desc": "Stato, numero stagioni, reti, creatori", + "movie_collections": "Collezioni Film", + "movie_collections_desc": "Franchise cinematografici (Marvel, Star Wars, ecc.)", + "api_configuration": "Configurazione API", + "api_configuration_desc": "Configura il tuo accesso alle API di TMDb per funzionalità avanzate.", + "custom_api_key": "Chiave API personalizzata", + "custom_api_key_desc": "Usa la tua chiave API TMDb per prestazioni migliori e limiti di frequenza dedicati.", + "custom_key_active": "Chiave API personalizzata attiva", + "api_key_required": "Chiave API richiesta", + "api_key_placeholder": "Incolla la tua chiave API TMDb (v3)", + "how_to_get_key": "Come ottenere una chiave API TMDb?", + "built_in_key_msg": "Attualmente in uso la chiave API integrata. Considera l'uso di una chiave tua per prestazioni migliori.", + "cache_size": "Dimensione Cache", + "clear_cache": "Cancella Cache", + "cache_days": "Le risposte TMDB vengono memorizzate per 7 giorni per migliorare le prestazioni", + "choose_language": "Scegli Lingua", + "choose_language_desc": "Seleziona la lingua preferita per i contenuti TMDb", + "popular": "Popolari", + "all_languages": "Tutte le lingue", + "search_results": "Risultati di ricerca", + "no_languages_found": "Nessuna lingua trovata per \"{{query}}\"", + "clear_search": "Cancella ricerca", + "clear_cache_title": "Cancella Cache TMDB", + "clear_cache_msg": "Questo cancellerà tutti i dati TMDB memorizzati ({{size}}). Il caricamento potrebbe rallentare temporaneamente fino alla ricostruzione della cache.", + "clear_cache_success": "Cache TMDB cancellata con successo.", + "clear_cache_error": "Impossibile cancellare la cache.", + "clear_api_key_title": "Rimuovi Chiave API", + "clear_api_key_msg": "Sei sicuro di voler rimuovere la tua chiave API personalizzata e tornare a quella predefinita?", + "clear_api_key_success": "Chiave API rimossa con successo", + "clear_api_key_error": "Impossibile rimuovere la chiave API", + "empty_api_key": "La chiave API non può essere vuota.", + "invalid_api_key": "Chiave API non valida. Controlla e riprova.", + "save_error": "Si è verificato un errore durante il salvataggio. Riprova.", + "using_builtin_key": "Ora in uso la chiave API TMDb integrata.", + "using_custom_key": "Ora in uso la tua chiave API TMDb personalizzata.", + "enter_custom_key": "Inserisci e salva la tua chiave API TMDb personalizzata.", + "key_verified": "Chiave API verificata e salvata con successo." + }, + "settings": { + "language": "Lingua", + "select_language": "Seleziona Lingua", + "english": "Inglese", + "portuguese": "Portoghese", + "portuguese_br": "Portoghese (Brasile)", + "portuguese_pt": "Portoghese (Portogallo)", + "german": "Tedesco", + "arabic": "Arabo", + "spanish": "Spagnolo", + "french": "Francese", + "italian": "Italiano", + "croatian": "Croato", + "chinese": "Cinese (Semplificato)", + "hindi": "Hindi", + "serbian": "Serbo", + "account": "Account", + "content_discovery": "Contenuti e Scoperta", + "appearance": "Aspetto", + "integrations": "Integrazioni", + "playback": "Riproduzione", + "backup_restore": "Backup e Ripristino", + "updates": "Aggiornamenti", + "about": "Informazioni", + "developer": "Sviluppatore", + "cache": "Cache", + "title": "Impostazioni", + "settings_title": "Impostazioni", + "sign_in_sync": "Accedi per sincronizzare", + "add_catalogs_sources": "Addon, cataloghi e sorgenti", + "player_trailers_downloads": "Player, trailer, download", + "mdblist_tmdb_ai": "MDBList, TMDB, IA", + "check_updates": "Controlla aggiornamenti", + "clear_mdblist_cache": "Cancella Cache MDBList", + "cache_management": "GESTIONE CACHE", + "downloads_counter": "download e oltre", + "made_with_love": "Fatto con ❤️ da Tapframe e amici", + "sections": { + "information": "INFORMAZIONI", + "account": "ACCOUNT", + "theme": "TEMA", + "layout": "LAYOUT", + "sources": "SORGENTI", + "catalogs": "CATALOGHI", + "discovery": "SCOPERTA", + "metadata": "METADATI", + "ai_assistant": "ASSISTENTE IA", + "video_player": "VIDEO PLAYER", + "audio_subtitles": "AUDIO E SOTTOTITOLI", + "media": "MEDIA", + "notifications": "NOTIFICHE", + "testing": "TEST", + "danger_zone": "ZONA PERICOLOSA" + }, + "items": { + "legal": "Note Legali & Disclaimer", + "privacy_policy": "Informativa sulla privacy", + "report_issue": "Segnala un problema", + "version": "Versione", + "contributors": "Collaboratori", + "view_contributors": "Vedi tutti i collaboratori", + "theme": "Tema", + "episode_layout": "Layout episodi", + "streams_backdrop": "Sfondo streaming", + "streams_backdrop_desc": "Mostra sfondo sfocato durante lo streaming su mobile", + "addons": "Addon", + "installed": "installati", + "debrid_integration": "Integrazione Debrid", + "debrid_desc": "Connetti Torbox", + "plugins": "Plugin", + "plugins_desc": "Gestisci plugin e repository", + "catalogs": "Cataloghi", + "active": "attivi", + "home_screen": "Schermata Home", + "home_screen_desc": "Layout e contenuti", + "continue_watching": "Continua a guardare", + "continue_watching_desc": "Comportamento cache e riproduzione", + "show_discover": "Mostra sezione Scopri", + "show_discover_desc": "Visualizza contenuti scopri nella Ricerca", + "mdblist": "MDBList", + "mdblist_connected": "Connesso", + "mdblist_desc": "Abilita per aggiungere voti e recensioni", + "simkl": "Simkl", + "simkl_connected": "Connesso", + "simkl_desc": "Traccia ciò che guardi", + "tmdb": "TMDB", + "tmdb_desc": "Sorgente metadati e loghi", + "openrouter": "API OpenRouter", + "openrouter_connected": "Connesso", + "openrouter_desc": "Aggiungi la tua chiave API per abilitare la chat IA", + "video_player": "Video Player", + "built_in": "Integrato", + "external": "Esterno", + "preferred_audio": "Lingua audio preferita", + "preferred_subtitle": "Lingua sottotitoli preferita", + "subtitle_source": "Priorità sorgente sottotitoli", + "auto_select_subs": "Selezione automatica sottotitoli", + "auto_select_subs_desc": "Seleziona automaticamente i sottotitoli in base alle tue preferenze", + "show_trailers": "Mostra Trailer", + "show_trailers_desc": "Visualizza i trailer nella sezione principale", + "enable_downloads": "Abilita Download", + "enable_downloads_desc": "Mostra la scheda Download e abilita il salvataggio degli streaming", + "notifications": "Notifiche", + "notifications_desc": "Promemoria episodi", + "developer_tools": "Strumenti di Sviluppo", + "developer_tools_desc": "Opzioni di test e debug", + "test_onboarding": "Test Introduzione", + "reset_onboarding": "Ripristina Introduzione", + "test_announcement": "Test Annuncio", + "test_announcement_desc": "Mostra l'overlay 'novità'", + "reset_campaigns": "Ripristina Campagne", + "reset_campaigns_desc": "Cancella le impressioni delle campagne", + "clear_all_data": "Cancella tutti i dati", + "clear_all_data_desc": "Ripristina tutte le impostazioni e i dati memorizzati" + }, + "options": { + "horizontal": "Orizzontale", + "vertical": "Verticale", + "internal_first": "Prima interni", + "internal_first_desc": "Preferisci i sottotitoli integrati, poi quelli esterni", + "external_first": "Prima esterni", + "external_first_desc": "Preferisci i sottotitoli degli Addon, poi quelli integrati", + "any_available": "Qualsiasi disponibile", + "any_available_desc": "Usa la prima traccia di sottotitoli disponibile" + }, + "clear_data_desc": "Questo ripristinerà tutte le impostazioni e cancellerà tutti i dati in cache. Sei sicuro?", + "app_updates": "Aggiornamenti App", + "about_nuvio": "Informazioni su Nuvio" + }, + "privacy": { + "title": "Privacy e Dati", + "settings_desc": "Controlla la telemetria e la raccolta di dati", + "info_title": "La Tua Privacy è Importante per Noi", + "info_description": "Controlla quali dati vengono raccolti e condivisi. L'analisi è disabilitata per impostazione predefinita e i rapporti di arresto sono anonimi per impostazione predefinita.", + "analytics_enabled_title": "Analisi Abilitata", + "analytics_enabled_message": "I dati di utilizzo verranno raccolti per aiutare a migliorare l'app. Puoi disabilitarlo in qualsiasi momento.", + "disable_error_reporting_title": "Disabilitare la Segnalazione di Errori?", + "disable_error_reporting_message": "Disabilitare la segnalazione di errori significa che non riceveremo notifiche di arresti anomali o problemi che riscontri. Questo potrebbe influire sulla nostra capacità di correggere i bug.", + "enable_session_replay_title": "Abilitare la Riproduzione Sessione?", + "enable_session_replay_message": "La riproduzione della sessione registra il tuo schermo quando si verificano errori per aiutarci a capire cosa è successo. Questo potrebbe catturare contenuti visibili sullo schermo.", + "enable_pii_title": "Abilitare la Raccolta PII?", + "enable_pii_message": "Ciò consente la raccolta di informazioni di identificazione personale come indirizzo IP e dettagli del dispositivo. Questi dati aiutano a diagnosticare i problemi ma aumentano l'esposizione della privacy.", + "disable_all_title": "Disabilitare Tutta la Telemetria?", + "disable_all_message": "Questo disabiliterà tutta l'analisi, la segnalazione di errori e la riproduzione della sessione. Non riceveremo alcun dato sull'utilizzo dell'app o gli arresti.", + "disable_all_button": "Disabilita Tutto", + "all_disabled_title": "Tutta la Telemetria Disabilitata", + "all_disabled_message": "Tutta la raccolta di dati è stata disabilitata. Le modifiche avranno effetto al prossimo riavvio dell'app.", + "reset_title": "Ripristina ai Valori Consigliati", + "reset_message": "Le impostazioni di privacy sono state ripristinate ai valori predefiniti consigliati (segnalazione di errori abilitata, analisi disabilitata).", + "section_analytics": "ANALISI", + "analytics_title": "Analisi di Utilizzo", + "analytics_description": "Raccogli schemi di utilizzo anonimi e visualizzazioni dello schermo", + "section_error_reporting": "SEGNALAZIONE DI ERRORI", + "error_reporting_title": "Rapporti di Arresto", + "error_reporting_description": "Invia rapporti di arresto anonimi per migliorare la stabilità", + "session_replay_title": "Riproduzione Sessione", + "session_replay_description": "Registra lo schermo quando si verificano errori", + "pii_title": "Includi Informazioni Dispositivo", + "pii_description": "Invia indirizzo IP e dettagli del dispositivo con i rapporti", + "section_quick_actions": "AZIONI RAPIDE", + "disable_all": "Disabilitare Tutta la Telemetria", + "disable_all_desc": "Disattiva tutta la raccolta di dati", + "reset_recommended": "Ripristina ai Valori Consigliati", + "reset_recommended_desc": "Impostazioni predefinite incentrate sulla privacy con segnalazione di errori", + "section_learn_more": "SCOPRI DI PIÙ", + "privacy_policy": "Informativa sulla Privacy", + "current_settings": "Riepilogo delle Impostazioni Attuali", + "summary_analytics": "Analisi", + "summary_errors": "Rapporti di Errore", + "summary_replay": "Riproduzione Sessione", + "summary_pii": "Informazioni Dispositivo", + "restart_note_detailed": "* Le modifiche all'analisi e alla segnalazione di errori hanno effetto immediato. La riproduzione della sessione e le impostazioni PII richiedono il riavvio dell'app." + }, + "ai_settings": { + "title": "Assistente IA", + "info_title": "Chat potenziata dall'IA", + "info_desc": "Fai domande su qualsiasi film o episodio di Serie TV usando l'IA avanzata. Ottieni approfondimenti su trama, personaggi, temi, curiosità e altro ancora, tutto basato sui dati completi di TMDB.", + "feature_1": "Contesto e analisi specifici per ogni episodio", + "feature_2": "Spiegazioni della trama e analisi dei personaggi", + "feature_3": "Curiosità e fatti dietro le quinte", + "feature_4": "Usa la tua chiave API gratuita di OpenRouter", + "api_key_section": "CHIAVE API OPENROUTER", + "api_key_label": "Chiave API", + "api_key_desc": "Inserisci la tua chiave API OpenRouter per abilitare le funzioni di chat IA", + "save_api_key": "Salva Chiave API", + "saving": "Salvataggio...", + "update": "Aggiorna", + "remove": "Rimuovi", + "get_free_key": "Ottieni una chiave API gratuita da OpenRouter", + "enable_chat": "Abilita Chat IA", + "enable_chat_desc": "Se abilitato, il pulsante 'Chiedi all'IA' apparirà nelle pagine dei contenuti.", + "chat_enabled": "Chat IA Abilitata", + "chat_enabled_desc": "Ora puoi fare domande su film e Serie TV. Cerca il pulsante \"Chiedi all'IA\" nelle pagine dei contenuti!", + "how_it_works": "Come funziona", + "how_it_works_desc": "• OpenRouter fornisce l'accesso a diversi modelli IA\n• La tua chiave API rimane privata e sicura\n• Il piano gratuito include limiti di utilizzo generosi\n• Chatta con contesto su film/episodi specifici\n• Ottieni analisi dettagliate e spiegazioni", + "error_invalid_key": "Inserisci una chiave API valida", + "error_key_format": "Le chiavi API OpenRouter devono iniziare con \"sk-or-\"", + "success_saved": "Chiave API OpenRouter salvata con successo!", + "error_save": "Impossibile salvare la chiave API", + "confirm_remove_title": "Rimuovi Chiave API", + "confirm_remove_msg": "Sei sicuro di voler rimuovere la tua chiave API OpenRouter? Questo disabiliterà le funzioni di chat IA.", + "success_removed": "Chiave API rimossa con successo", + "error_remove": "Impossibile rimuovere la chiave API" + }, + "catalog_settings": { + "title": "Cataloghi", + "layout_phone": "LAYOUT SCHERMATA CATALOGO (TELEFONO)", + "posters_per_row": "Poster per riga", + "auto": "Auto", + "show_titles": "Mostra titoli poster", + "show_titles_desc": "Visualizza il testo del titolo sotto ogni poster", + "phone_only_hint": "Si applica solo ai telefoni. I tablet mantengono il layout adattivo.", + "catalogs_group": "Cataloghi", + "enabled_count": "{{enabled}} su {{total}} abilitati", + "rename_hint": "Premi a lungo su un catalogo per rinominarlo", + "rename_modal_title": "Rinomina Catalogo", + "rename_placeholder": "Inserisci il nuovo nome del catalogo", + "error_save_name": "Impossibile salvare il nome personalizzato." + }, + "continue_watching_settings": { + "title": "Continua a guardare", + "playback_behavior": "COMPORTAMENTO RIPRODUZIONE", + "use_cached": "Usa stream in cache", + "use_cached_desc": "Se abilitato, cliccando sugli elementi in 'Continua a guardare' si aprirà direttamente il player usando gli stream riprodotti in precedenza. Se disabilitato, aprirà la schermata dei contenuti.", + "open_metadata": "Apri schermata metadati", + "open_metadata_desc": "Quando gli stream in cache sono disabilitati, apre la schermata dei metadati invece di quella degli stream. Mostra i dettagli del contenuto e permette la selezione manuale dello stream.", + "card_appearance": "ASPETTO SCHEDA", + "card_style": "Stile scheda", + "card_style_desc": "Scegli come appaiono gli elementi di 'Continua a guardare' nella home", + "wide": "Ampia", + "poster": "Poster", + "cache_settings": "IMPOSTAZIONI CACHE", + "cache_duration": "Durata cache stream", + "cache_duration_desc": "Per quanto tempo conservare i link degli stream in cache prima della scadenza", + "important_note": "Nota importante", + "important_note_text": "Non tutti i link degli stream rimangono attivi per l'intera durata della cache. Tempi di cache più lunghi potrebbero causare link scaduti. Se un link in cache fallisce, l'app tornerà a recuperare nuovi stream.", + "how_it_works": "Come funziona", + "how_it_works_cached": "• Gli stream vengono salvati in cache per la durata selezionata dopo la riproduzione\n• Gli stream in cache vengono convalidati prima dell'uso\n• Se la cache non è valida o è scaduta, si torna alla schermata dei contenuti\n• 'Usa stream in cache' controlla l'apertura diretta del player rispetto alla navigazione\n• 'Apri schermata metadati' appare solo quando gli stream in cache sono disabilitati", + "how_it_works_uncached": "• Quando gli stream in cache sono disabilitati, cliccare su 'Continua a guardare' apre la schermata dei contenuti\n• L'opzione 'Apri schermata metadati' controlla quale schermata aprire\n• La schermata metadati mostra i dettagli e permette la selezione manuale\n• La schermata degli stream mostra gli stream disponibili per la riproduzione immediata", + "changes_saved": "Modifiche salvate", + "min": "min", + "hour": "ora", + "hours": "ore" + }, + "contributors": { + "title": "Collaboratori", + "special_mentions": "Menzioni speciali", + "tab_contributors": "Collaboratori", + "tab_special": "Menzioni speciali", + "tab_donors": "Donatori", + "manager_role": "Community Manager", + "manager_desc": "Gestisce le community Discord e Reddit per Nuvio", + "sponsor_role": "Sponsor del Server", + "sponsor_desc": "Ha sponsorizzato l'infrastruttura del server per Nuvio", + "mod_role": "Moderatore Discord", + "mod_desc": "Aiuta a moderare la community Discord di Nuvio", + "loading": "Caricamento...", + "discord_user": "Utente Discord", + "contributions": "contributi", + "gratitude_title": "Siamo grati per ogni contributo", + "gratitude_desc": "Ogni riga di codice, segnalazione di bug e suggerimento aiuta a rendere Nuvio migliore per tutti", + "special_thanks_title": "Ringraziamenti speciali", + "special_thanks_desc": "Queste persone fantastiche aiutano a mantenere attiva la community di Nuvio e i server online", + "donors_desc": "Grazie per credere in quello che stiamo costruendo. Il vostro supporto mantiene Nuvio gratuito e in continuo miglioramento.", + "latest_donations": "Recenti", + "leaderboard": "Classifica", + "loading_donors": "Caricamento donatori…", + "no_donors": "Nessun donatore ancora", + "error_rate_limit": "Limite di frequenza API GitHub superato. Riprova più tardi o trascina per aggiornare.", + "error_failed": "Impossibile caricare i collaboratori. Controlla la tua connessione internet.", + "retry": "Riprova", + "no_contributors": "Nessun collaboratore trovato", + "loading_contributors": "Caricamento collaboratori..." + }, + "debrid": { + "title": "Integrazione Debrid", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Connesso", + "status_disconnected": "Disconnesso", + "enable_addon": "Abilita Addon", + "disconnect_button": "Disconnetti e Rimuovi", + "disconnect_loading": "Disconnessione in corso...", + "account_info": "Informazioni Account", + "plan": "Piano", + "plan_free": "Gratuito", + "plan_essential": "Essential ($3/mese)", + "plan_pro": "Pro ($10/mese)", + "plan_standard": "Standard ($5/mese)", + "plan_unknown": "Sconosciuto", + "expires": "Scade il", + "downloaded": "Scaricati", + "status_active": "Attivo", + "connected_title": "✓ Connesso a TorBox", + "connected_desc": "Il tuo Addon TorBox è attivo e fornisce stream premium.", + "configure_title": "Configura Addon", + "configure_desc": "Personalizza la tua esperienza di streaming. Ordina per qualità, filtra le dimensioni dei file e gestisci altre impostazioni di integrazione.", + "open_settings": "Apri Impostazioni", + "what_is_debrid": "Cos'è un servizio Debrid?", + "enter_api_key": "Inserisci la tua chiave API", + "connect_button": "Connetti e Installa", + "connecting": "Connessione in corso...", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", + "get_subscription": "Abbonati ora", + "powered_by": "Offerto da", + "disclaimer_torbox": "Nuvio non è affiliato a Torbox in alcun modo.", + "disclaimer_torrentio": "Nuvio non è affiliato a Torrentio in alcun modo.", + "installed_badge": "✓ INSTALLATO", + "promo_title": "⚡ Serve un servizio Debrid?", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", + "promo_button": "Ottieni abbonamento TorBox", + "service_label": "Servizio Debrid *", + "api_key_label": "Chiave API *", + "sorting_label": "Ordinamento", + "exclude_qualities": "Escludi qualità", + "priority_languages": "Lingue prioritarie", + "max_results": "Risultati massimi", + "additional_options": "Opzioni aggiuntive", + "no_download_links": "Non mostrare link di download", + "no_debrid_catalog": "Non mostrare catalogo debrid", + "install_button": "Installa Torrentio", + "installing": "Installazione...", + "update_button": "Aggiorna configurazione", + "updating": "Aggiornamento...", + "remove_button": "Rimuovi Torrentio", + "error_api_required": "Chiave API richiesta", + "error_api_required_desc": "Inserisci la chiave API del tuo servizio debrid per installare Torrentio.", + "success_installed": "Addon Torrentio installato con successo!", + "success_removed": "Addon Torrentio rimosso con successo", + "alert_disconnect_title": "Disconnetti Torbox", + "alert_disconnect_msg": "Sei sicuro di voler disconnettere Torbox? Questo rimuoverà l'Addon e cancellerà la chiave API salvata." + }, + "home_screen": { + "title": "Impostazioni Schermata Home", + "changes_applied": "Modifiche applicate", + "display_options": "OPZIONI DI VISUALIZZAZIONE", + "show_hero": "Mostra sezione Hero", + "show_hero_desc": "Contenuti in evidenza in alto", + "show_this_week": "Mostra sezione 'Questa settimana'", + "show_this_week_desc": "Nuovi episodi della settimana corrente", + "select_catalogs": "Seleziona cataloghi", + "all_catalogs": "Tutti i cataloghi", + "selected": "selezionati", + "hero_layout": "Layout Hero", + "layout_legacy": "Classico", + "layout_carousel": "Carosello", + "layout_appletv": "Apple TV", + "layout_desc": "Banner a tutta larghezza, schede scorrevoli o stile Apple TV", + "featured_source": "Sorgente in evidenza", + "using_catalogs": "Utilizzo cataloghi", + "manage_selected_catalogs": "Gestisci cataloghi selezionati", + "dynamic_bg": "Sfondo Hero dinamico", + "dynamic_bg_desc": "Banner sfocato dietro il carosello", + "performance_note": "Potrebbe influire sulle prestazioni dei dispositivi meno potenti.", + "posters": "Poster", + "show_titles": "Mostra titoli", + "poster_size": "Dimensione poster", + "poster_corners": "Angoli poster", + "size_small": "Piccolo", + "size_medium": "Medio", + "size_large": "Grande", + "corners_square": "Squadrati", + "corners_rounded": "Arrotondati", + "corners_pill": "Pillola", + "about_these_settings": "INFORMAZIONI SU QUESTE IMPOSTAZIONI", + "about_desc": "Queste impostazioni controllano come i contenuti vengono visualizzati nella Home. Le modifiche vengono applicate immediatamente senza riavviare l'app.", + "hero_catalogs": { + "title": "Cataloghi sezione Hero", + "select_all": "Seleziona tutto", + "clear_all": "Cancella tutto", + "info": "Seleziona quali cataloghi visualizzare nella sezione hero. Se non ne viene selezionato nessuno, verranno usati tutti. Non dimenticare di salvare al termine.", + "settings_saved": "Impostazioni salvate", + "error_load": "Impossibile caricare i cataloghi", + "movies": "Film", + "tv_shows": "Serie TV" + } + }, + "calendar": { + "title": "Calendario", + "loading": "Caricamento calendario...", + "no_scheduled_episodes": "Nessun episodio in programma", + "check_back_later": "Torna più tardi", + "showing_episodes_for": "Episodi per il {{date}}", + "show_all_episodes": "Mostra tutti gli episodi", + "no_episodes_for": "Nessun episodio per il {{date}}", + "no_upcoming_found": "Nessun episodio imminente trovato", + "add_series_desc": "Aggiungi Serie TV alla tua libreria per vedere qui i prossimi episodi" + }, + "mdblist": { + "title": "Sorgenti valutazione", + "status_disabled": "MDBList disabilitato", + "status_active": "Chiave API attiva", + "status_required": "Chiave API richiesta", + "status_disabled_desc": "La funzionalità MDBList è attualmente disabilitata.", + "status_active_desc": "Le valutazioni di MDBList sono abilitate.", + "status_required_desc": "Aggiungi la tua chiave qui sotto per abilitare i voti.", + "enable_toggle": "Abilita MDBList", + "enable_toggle_desc": "Attiva/disattiva tutte le funzioni MDBList", + "api_section": "Chiave API", + "placeholder": "Incolla la tua chiave API MDBList", + "save": "Salva", + "clear": "Rimuovi chiave", + "rating_providers": "Fornitori valutazioni", + "rating_providers_desc": "Scegli quali voti visualizzare nell'app", + "how_to": "Come ottenere una chiave API", + "step_1": "Accedi al", + "step_1_link": "sito web MDBList", + "step_2": "Vai alla sezione", + "step_2_settings": "Impostazioni", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Genera una nuova chiave e copiala.", + "go_to_website": "Vai su MDBList", + "alert_clear_title": "Rimuovi chiave API", + "alert_clear_msg": "Sei sicuro di voler rimuovere la chiave API salvata?", + "success_saved": "Chiave API salvata con successo.", + "error_empty": "La chiave API non può essere vuota.", + "error_save": "Si è verificato un errore durante il salvataggio. Riprova.", + "api_key_empty_error": "La chiave API non può essere vuota.", + "success_cleared": "Chiave API rimossa con successo", + "error_clear": "Impossibile rimuovere la chiave API" + }, + "notification": { + "title": "Impostazioni Notifiche", + "section_general": "Generali", + "enable_notifications": "Abilita Notifiche", + "section_types": "Tipi di Notifica", + "new_episodes": "Nuovi Episodi", + "upcoming_shows": "Serie in Arrivo", + "reminders": "Promemoria", + "section_timing": "Tempistica Notifiche", + "timing_desc": "Quanto tempo prima della messa in onda vuoi ricevere la notifica?", + "hours_1": "1 ora", + "hours_suffix": "ore", + "section_status": "Stato Notifiche", + "stats_upcoming": "In arrivo", + "stats_this_week": "Questa settimana", + "stats_total": "Totale", + "sync_button": "Sincronizza Libreria e Trakt", + "syncing": "Sincronizzazione...", + "sync_desc": "Sincronizza automaticamente le notifiche per tutte le serie nella tua libreria e nella watchlist/collezione di Trakt.", + "section_advanced": "Avanzate", + "reset_button": "Ripristina tutte le notifiche", + "test_button": "Test Notifica (5 sec)", + "test_notification_in": "Notifica tra {{seconds}}s...", + "test_notification_text": "La notifica apparirà tra {{seconds}} secondi", + "alert_reset_title": "Ripristina Notifiche", + "alert_reset_msg": "Questo cancellerà tutte le notifiche programmate, ma non rimuoverà nulla dalla tua libreria salvata. Sei sicuro?", + "alert_reset_success": "Tutte le notifiche sono state ripristinate", + "alert_sync_complete": "Sincronizzazione Completata", + "alert_sync_msg": "Sincronizzazione notifiche completata con successo per la libreria e gli elementi Trakt.\n\nProgrammati: {{upcoming}} episodi in arrivo\nQuesta settimana: {{thisWeek}} episodi", + "alert_test_scheduled": "Notifica di test programmata per l'invio immediato" + }, + "backup": { + "title": "Backup e Ripristino", + "options_title": "Opzioni Backup", + "options_desc": "Scegli cosa includere nei tuoi backup", + "section_core": "Dati Principali", + "section_addons": "Addon e Integrazioni", + "section_settings": "Impostazioni e Preferenze", + "library_label": "Libreria", + "library_desc": "I tuoi film e Serie TV salvati", + "watch_progress_label": "Progressi di Visione", + "watch_progress_desc": "Posizioni di 'Continua a guardare'", + "addons_label": "Addon", + "addons_desc": "Addon di Stremio installati", + "plugins_label": "Plugin", + "plugins_desc": "Configurazioni scraper personalizzate", + "trakt_label": "Integrazione Trakt", + "trakt_desc": "Dati di sincronizzazione e token di autenticazione", + "app_settings_label": "Impostazioni App", + "app_settings_desc": "Tema, preferenze e configurazioni", + "user_prefs_label": "Preferenze Utente", + "user_prefs_desc": "Ordine degli Addon e impostazioni UI", + "catalog_settings_label": "Impostazioni Catalogo", + "catalog_settings_desc": "Filtri catalogo e preferenze", + "api_keys_label": "Chiavi API", + "api_keys_desc": "Chiavi per MDBList e OpenRouter", + "action_create": "Crea Backup", + "action_restore": "Ripristina da Backup", + "section_info": "Informazioni sui Backup", + "info_text": "• Personalizza gli elementi del backup usando i selettori sopra\n• I file di backup sono salvati localmente sul tuo dispositivo\n• Condividi il backup per trasferire i dati tra dispositivi\n• Il ripristino sovrascriverà i dati attuali", + "alert_create_title": "Crea Backup", + "alert_no_content": "Nessun contenuto selezionato per il backup.\n\nAbilita almeno un'opzione nella sezione Opzioni Backup sopra.", + "alert_backup_created_title": "Backup Creato", + "alert_backup_created_msg": "Il tuo backup è stato creato ed è pronto per essere condiviso.", + "alert_backup_failed_title": "Backup Fallito", + "alert_restore_confirm_title": "Conferma Ripristino", + "alert_restore_confirm_msg": "Questo ripristinerà i tuoi dati da un backup creato il {{date}}.\n\nQuesta azione sovrascriverà i dati attuali. Sei sicuro di voler continuare?", + "alert_restore_complete_title": "Ripristino Completato", + "alert_restore_complete_msg": "I tuoi dati sono stati ripristinati con successo. Riavvia l'app per applicare tutte le modifiche.", + "alert_restore_failed_title": "Ripristino Fallito", + "restart_app": "Riavvia App", + "alert_restart_failed_title": "Riavvio Fallito", + "alert_restart_failed_msg": "Impossibile riavviare l'app. Chiudi e riapri manualmente per vedere i dati ripristinati." + }, + "updates": { + "title": "Aggiornamenti App", + "status_checking": "Controllo aggiornamenti...", + "status_available": "Aggiornamento disponibile!", + "status_downloading": "Download aggiornamento...", + "status_installing": "Installazione aggiornamento...", + "status_success": "Aggiornamento installato con successo!", + "status_error": "Aggiornamento fallito", + "status_ready": "Pronto per controllare gli aggiornamenti", + "action_check": "Controlla Aggiornamenti", + "action_install": "Installa Aggiornamento", + "release_notes": "Note di rilascio:", + "version": "Versione:", + "last_checked": "Ultimo controllo:", + "current_version": "Versione attuale:", + "current_release_notes": "Note di rilascio attuali:", + "github_release": "RELEASE GITHUB", + "current": "Attuale:", + "latest": "Ultima:", + "notes": "Note:", + "view_release": "Vedi Release", + "notification_settings": "IMPOSTAZIONI NOTIFICHE", + "ota_alerts_label": "Avvisi Aggiornamenti OTA", + "ota_alerts_desc": "Mostra notifiche per aggiornamenti over-the-air", + "major_alerts_label": "Avvisi Aggiornamenti Maggiori", + "major_alerts_desc": "Mostra notifiche per nuove versioni dell'app su GitHub", + "alert_disable_ota_title": "Disabilitare Avvisi OTA?", + "alert_disable_ota_msg": "Non riceverai più notifiche automatiche per gli aggiornamenti OTA.\n\n⚠️ Attenzione: Rimanere all'ultima versione è importante per:\n• Correzioni di bug e stabilità\n• Nuove funzioni e miglioramenti\n• Feedback e report sui crash accurati\n\nPuoi comunque controllare manualmente gli aggiornamenti in questa schermata.", + "alert_disable_major_title": "Disabilitare Avvisi Major?", + "alert_disable_major_msg": "Non riceverai più notifiche per gli aggiornamenti maggiori che richiedono la reinstallazione.\n\n⚠️ Attenzione: Gli aggiornamenti maggiori includono spesso:\n• Patch di sicurezza critiche\n• Cambiamenti strutturali che richiedono la reinstallazione\n• Correzioni di compatibilità importanti\n\nPuoi comunque controllare manualmente.", + "warning_note": "Mantenere gli avvisi abilitati garantisce la ricezione delle correzioni e report di crash accurati.", + "disable": "Disabilita", + "alert_no_update_to_install": "Nessun aggiornamento disponibile da installare", + "alert_install_failed": "Installazione aggiornamento fallita", + "alert_no_update_title": "Nessun Aggiornamento", + "alert_update_applied_msg": "L'aggiornamento sarà applicato al prossimo riavvio dell'app" + }, + "player": { + "title": "Video Player", + "section_selection": "SELEZIONE PLAYER", + "internal_title": "Player Integrato", + "internal_desc": "Usa il video player predefinito dell'app", + "vlc_title": "VLC", + "vlc_desc": "Apri gli stream in VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Apri gli stream nel player Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Apri gli stream in OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Apri gli stream nel player VidHub", + "infuse_live_title": "Infuse LiveContainer", + "infuse_live_desc": "Apri gli stream in Infuse tramite LiveContainer", + "external_title": "Player Esterno", + "external_desc": "Apri gli stream nel tuo video player preferito", + "section_playback": "OPZIONI RIPRODUZIONE", + "skip_intro_settings_title": "Salta intro", + "powered_by_introdb": "Powered by IntroDB", + "autoplay_title": "Auto-play Primo Stream", + "autoplay_desc": "Avvia automaticamente il primo stream mostrato nella lista.", + "resume_title": "Riprendi Sempre", + "resume_desc": "Salta la richiesta di ripresa e continua automaticamente da dove avevi interrotto (se visto meno dell'85%).", + "engine_title": "Motore Video Player", + "engine_desc": "Auto utilizza ExoPlayer con MPV come ripiego. Alcuni formati come Dolby Vision e HDR potrebbero non essere supportati da MPV, quindi Auto è raccomandato.", + "decoder_title": "Modalità Decodificatore", + "decoder_desc": "Come viene decodificato il video. Auto è raccomandato per il miglior bilanciamento.", + "gpu_title": "Rendering GPU", + "gpu_desc": "GPU-Next offre una migliore gestione di HDR e colori.", + "external_downloads_title": "Player Esterno per Download", + "external_downloads_desc": "Riproduci i contenuti scaricati nel tuo player esterno preferito.", + "restart_required": "Riavvio Richiesto", + "restart_msg_decoder": "Riavvia l'app affinché le modifiche al decodificatore abbiano effetto.", + "restart_msg_gpu": "Riavvia l'app affinché le modifiche alla modalità GPU abbiano effetto.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV fallback", + "option_mpv": "MPV", + "option_mpv_desc": "Solo MPV", + "option_auto_desc_decoder": "Miglior bilanciamento", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "HW Completo", + "option_gpu_desc": "Standard", + "option_gpu_next_desc": "Avanzato" + }, + "plugins": { + "title": "Estensioni", + "enable_title": "Abilita Estensioni", + "enable_desc": "Permetti all'app di usare estensioni installate per trovare fonti multimediali", + "repo_config_title": "Configurazione Repository", + "repo_config_desc": "Gestisci repository di estensioni esterni. Attiva o disattiva ogni repository qui sotto.", + "your_repos": "Repository", + "your_repos_desc": "Configura sorgenti esterne per le estensioni.", + "add_repo_button": "Aggiungi Repository", + "refresh": "Aggiorna", + "remove": "Rimuovi", + "enabled": "Abilitato", + "disabled": "Disabilitato", + "updating": "Aggiornamento...", + "success": "Successo", + "error": "Errore", + "alert_repo_added": "Repository aggiunto ed estensioni caricate con successo", + "alert_repo_saved": "URL del repository salvato con successo", + "alert_repo_refreshed": "Repository aggiornato con successo", + "alert_invalid_url": "Formato URL Non Valido", + "alert_plugins_cleared": "Tutte le estensioni sono state rimosse", + "alert_cache_cleared": "Cache del repository cancellata con successo", + "unknown": "Sconosciuto", + "active": "Attivo", + "available": "Disponibile", + "platform_disabled": "Piattaforma Disabilitata", + "limited": "Limitato", + "clear_all": "Rimuovi Tutte le Estensioni", + "clear_all_desc": "Sei sicuro di voler rimuovere tutte le estensioni installate? L'azione è irreversibile.", + "clear_cache": "Cancella Cache Repository", + "clear_cache_desc": "Questo rimuoverà l'URL salvato e tutti i dati delle estensioni in cache.", + "add_new_repo": "Aggiungi Nuovo Repository", + "available_plugins": "Estensioni Disponibili ({{count}})", + "placeholder": "Cerca estensioni...", + "all": "Tutti", + "filter_all": "Tutti i Tipi", + "filter_movies": "Film", + "filter_tv": "Serie TV", + "enable_all": "Abilita Tutti", + "disable_all": "Disabilita Tutti", + "no_plugins_found": "Nessuna Estensione Trovata", + "no_plugins_available": "Nessuna Estensione Disponibile", + "no_match_desc": "Nessuna estensione corrisponde a \"{{query}}\".", + "configure_repo_desc": "Configura un repository sopra per visualizzare le estensioni disponibili.", + "clear_search": "Cancella Ricerca", + "no_external_player": "Nessun player esterno", + "showbox_token": "Token UI ShowBox", + "showbox_placeholder": "Incolla il tuo token UI ShowBox", + "save": "Salva", + "clear": "Cancella", + "additional_settings": "Impostazioni Aggiuntive", + "enable_url_validation": "Abilita Validazione URL", + "url_validation_desc": "Valida gli URL prima di mostrarli (può rallentare i risultati ma migliora l'affidabilità)", + "group_streams": "Raggruppa Fonti Estensioni", + "group_streams_desc": "Se abilitato, le fonti sono raggruppate per repository. Se disabilitato, ogni estensione appare come provider separato.", + "sort_quality": "Ordina Prima per Qualità", + "sort_quality_desc": "Se abilitato, le fonti sono ordinate prima per qualità. Solo disponibile con il raggruppamento attivo.", + "show_logos": "Mostra Loghi Estensioni", + "show_logos_desc": "Visualizza i loghi delle estensioni accanto ai link multimediali.", + "quality_filtering": "Filtraggio Qualità", + "quality_filtering_desc": "Escludi specifiche qualità video dai risultati. Tocca una qualità per escluderla dalle estensioni.", + "excluded_qualities": "Qualità escluse:", + "language_filtering": "Filtraggio Lingua", + "language_filtering_desc": "Escludi specifiche lingue dai risultati. Tocca una lingua per escluderla dalle estensioni.", + "note": "Nota:", + "language_filtering_note": "Questo filtro si applica solo ai provider che includono informazioni sulla lingua.", + "excluded_languages": "Lingue escluse:", + "about_title": "Informazioni sulle Estensioni", + "about_desc_1": "Le estensioni sono moduli che adattano contenuti da vari protocolli esterni. Girano localmente e sono installate da repository fidati.", + "about_desc_2": "Le estensioni contrassegnate come \"Limitate\" richiedono configurazioni esterne specifiche.", + "help_title": "Configurazione Estensioni", + "help_step_1": "1. **Abilita Estensioni** - Attiva l'interruttore principale", + "help_step_2": "2. **Aggiungi Repository** - Inserisci un URL di repository valido", + "help_step_3": "3. **Aggiorna Repository** - Scarica le estensioni disponibili", + "help_step_4": "4. **Abilita** - Attiva le estensioni che desideri usare", + "got_it": "Capito!", + "repo_format_hint": "Formato: https://raw.githubusercontent.com/user/repo/refs/heads/branch", + "cancel": "Annulla", + "add": "Aggiungi" + }, + "theme": { + "title": "Temi App", + "select_theme": "SELEZIONA TEMA", + "create_custom": "Crea Tema Personalizado", + "options": "OPZIONI", + "use_dominant_color": "Usa colore dominante dall'artwork", + "categories": { + "all": "Tutti i Temi", + "dark": "Temi Scuri", + "colorful": "Colorati", + "custom": "I Miei Temi" + }, + "editor": { + "theme_name_placeholder": "Nome tema", + "save": "Salva", + "primary": "Primario", + "secondary": "Secondario", + "background": "Sfondo", + "invalid_name_title": "Nome Non Valido", + "invalid_name_msg": "Inserisci un nome valido per il tema" + }, + "alerts": { + "delete_title": "Elimina Tema", + "delete_msg": "Sei sicuro di voler eliminare \"{{name}}\"?", + "ok": "OK", + "delete": "Elimina", + "cancel": "Annulla", + "back": "Impostazioni" + } + }, + "legal": { + "title": "Note Legali & Disclaimer", + "intro_title": "Natura dell'Applicazione", + "intro_text": "Nuvio è un lettore multimediale e un'applicazione per la gestione dei metadati. Agisce unicamente come interfaccia lato client per sfogliare metadati pubblicamente disponibili (film, serie TV, ecc.) e riprodurre file multimediali forniti dall'utente o da estensioni di terze parti. Nuvio non ospita, archivia, distribuisce né indicizza alcun contenuto multimediale autonomamente.", + "extensions_title": "Estensioni di Terze Parti", + "extensions_text": "Nuvio utilizza un'architettura estensibile che consente agli utenti di installare plugin di terze parti (estensioni). Queste estensioni sono sviluppate e mantenute da sviluppatori indipendenti non affiliati a Nuvio. Non abbiamo alcun controllo su, e non ci assumiamo alcuna responsabilità per, il contenuto, la legalità o la funzionalità di qualsiasi estensione di terze parti.", + "user_resp_title": "Responsabilità dell'Utente", + "user_resp_text": "Gli utenti sono gli unici responsabili delle estensioni che installano e dei contenuti a cui accedono. Utilizzando questa applicazione, accetti di garantire di avere il diritto legale di accedere a qualsiasi contenuto visualizzato utilizzando Nuvio. Gli sviluppatori di Nuvio non sostengono né incoraggiano la violazione del copyright.", + "dmca_title": "Copyright e DMCA", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", + "warranty_title": "Nessuna Garanzia", + "warranty_text": "Questo software è fornito \"così com'è\", senza garanzia di alcun tipo, espressa o implicita. In nessun caso gli autori o i detentori del copyright saranno responsabili per qualsiasi reclamo, danno o altra responsabilità derivante dall'uso di questo software." + }, + "plugin_tester": { + "title": "Tester Plugin", + "subtitle": "Esegui scraper e ispeziona log in tempo reale", + "tabs": { + "individual": "Individuale", + "repo": "Tester Repo", + "code": "Codice", + "logs": "Log", + "results": "Risultati" + }, + "common": { + "error": "Errore", + "success": "Successo", + "movie": "Film", + "tv": "Serie TV", + "tmdb_id": "ID TMDB", + "season": "Stagione", + "episode": "Episodio", + "running": "In esecuzione…", + "run_test": "Esegui Test", + "play": "Riproduci", + "done": "Fatto", + "test": "Test", + "testing": "Test in corso…" + }, + "individual": { + "load_from_url": "Carica da URL", + "load_from_url_desc": "Incolla un URL GitHub raw o IP locale e tocca scarica.", + "enter_url_error": "Inserisci un URL", + "code_loaded": "Codice caricato da URL", + "fetch_error": "Caricamento fallito: {{message}}", + "no_code_error": "Nessun codice da eseguire", + "plugin_code": "Codice Plugin", + "focus_editor": "Focus editor", + "code_placeholder": "// Incolla il codice del plugin qui...", + "test_parameters": "Parametri di Test", + "no_logs": "Nessun log. Esegui un test per vedere l'output.", + "no_streams": "Nessun stream trovato.", + "streams_found": "{{count}} Stream Trovato", + "streams_found_plural": "{{count}} Stream Trovati", + "tap_play_hint": "Tocca Riproduci per testare uno stream nel player nativo.", + "unnamed_stream": "Stream Senza Nome", + "quality": "Qualità: {{quality}}", + "size": "Dimensione: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Header: {{count}} header personalizzati", + "find_placeholder": "Cerca nel codice…", + "edit_code_title": "Modifica Codice", + "no_url_stream_error": "Nessun URL trovato per questo stream" + }, + "repo": { + "title": "Tester Repo", + "description": "Recupera un repository (URL locale o GitHub raw) e testa ogni provider.", + "enter_repo_url_error": "Inserisci un URL del repository", + "invalid_url_title": "URL Non Valido", + "invalid_url_msg": "Usa un URL GitHub raw o un URL locale http(s).\n\nEsempio:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "Impossibile creare un URL manifest dall'input", + "manifest_fetch_error": "Caricamento manifest fallito", + "repo_manifest_fetch_error": "Caricamento manifest repo fallito", + "missing_filename": "Nome file mancante nel manifest", + "scraper_build_error": "Impossibile creare un URL scraper", + "download_scraper_error": "Download scraper fallito", + "test_failed": "Test fallito", + "test_parameters": "Parametri Test Repo", + "test_parameters_desc": "Questi parametri sono usati solo per il Tester Repo.", + "using_info": "Uso: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Uso: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Provider", + "repository_default": "Repository", + "providers_count": "{{count}} provider", + "fetch_hint": "Recupera un repo per elencare i provider.", + "test_all": "Testa Tutto", + "status_running": "IN ESECUZIONE", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "FALLITO", + "status_idle": "INATTIVO", + "tried_url": "Provato: {{url}}", + "provider_logs": "Log Provider", + "no_logs_captured": "Nessun log catturato." + } + } } diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index b482e3ea..facb3cbf 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -910,8 +910,8 @@ }, "debrid": { "title": "Integração Debrid", - "description_torbox": "Desbloqueie streams 4K de alta qualidade e velocidades ultra-rápidas integrando o Torbox. Insira sua chave API abaixo para atualizar instantaneamente sua experiência de streaming.", - "description_torrentio": "Configure o Torrentio para obter streams de torrent para filmes e séries. Um serviço debrid é necessário para transmitir conteúdo.", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "Conectado", @@ -938,15 +938,15 @@ "enter_api_key": "Insira sua Chave API", "connect_button": "Conectar e Instalar", "connecting": "Conectando...", - "unlock_speeds_title": "Velocidades Premium", - "unlock_speeds_desc": "Assine o Torbox para acessar streams em cache de alta qualidade com zero buffering.", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "Obter Assinatura", "powered_by": "Desenvolvido por", "disclaimer_torbox": "O Nuvio não é afiliado ao Torbox de nenhuma forma.", "disclaimer_torrentio": "O Nuvio não é afiliado ao Torrentio de nenhuma forma.", "installed_badge": "✓ INSTALADO", "promo_title": "⚡ Precisa de um Serviço Debrid?", - "promo_desc": "Obtenha o TorBox para streaming 4K ultra-rápido com zero buffering. Torrents em cache premium e downloads instantâneos.", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "Assinar TorBox", "service_label": "Serviço Debrid *", "api_key_label": "Chave API *", @@ -1338,7 +1338,7 @@ "user_resp_title": "Responsabilidade do Usuário", "user_resp_text": "Os usuários são os únicos responsáveis pelas extensões que instalam e pelo conteúdo que acessam. Ao usar este aplicativo, você concorda em garantir que tem o direito legal de acessar qualquer conteúdo que visualizar usando o Nuvio. Os desenvolvedores do Nuvio não endossam ou incentivam a violação de direitos autorais.", "dmca_title": "Direitos Autorais e DMCA", - "dmca_text": "Respeitamos os direitos de propriedade intelectual de terceiros. Como o Nuvio não hospeda nenhum conteúdo, não podemos remover conteúdo da internet. No entanto, se você acredita que a interface do aplicativo em si infringe seus direitos, entre em contato conosco.", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "Sem Garantia", "warranty_text": "Este software é fornecido \"como está\", sem garantia de qualquer tipo, expressa ou implícita. Em nenhum caso os autores ou detentores de direitos autorais serão responsáveis por qualquer reclamação, danos ou outra responsabilidade decorrente do uso deste software." }, diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 18a32583..8616a736 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -908,8 +908,8 @@ }, "debrid": { "title": "Integração Debrid", - "description_torbox": "Desbloqueia streams 4K de alta qualidade e velocidades ultra-rápidas integrando o Torbox. Insere a tua chave API abaixo para atualizar instantaneamente a tua experiência de streaming.", - "description_torrentio": "Configura o Torrentio para obter streams de torrent para filmes e séries. Um serviço debrid é necessário para transmitir conteúdo.", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "Conectado", @@ -936,15 +936,15 @@ "enter_api_key": "Insere a tua Chave API", "connect_button": "Conectar e Instalar", "connecting": "A conectar...", - "unlock_speeds_title": "Velocidades Premium", - "unlock_speeds_desc": "Subscreve o Torbox para acessar streams em cache de alta qualidade com zero buffering.", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "Obter Subscrição", "powered_by": "Desenvolvido por", "disclaimer_torbox": "O Nuvio não é afiliado ao Torbox de nenhuma forma.", "disclaimer_torrentio": "O Nuvio não é afiliado ao Torrentio de nenhuma forma.", "installed_badge": "✓ INSTALADO", "promo_title": "⚡ Precisas de um Serviço Debrid?", - "promo_desc": "Obtém o TorBox para streaming 4K ultra-rápido com zero buffering. Torrents em cache premium e downloads instantâneos.", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "Subscrever TorBox", "service_label": "Serviço Debrid *", "api_key_label": "Chave API *", @@ -1336,7 +1336,7 @@ "user_resp_title": "Responsabilidade do Usuário", "user_resp_text": "Os usuários são os únicos responsáveis pelas extensões que instalam e pelo conteúdo que acessam. Ao usar este aplicativo, você concorda em garantir que tem o direito legal de acessar qualquer conteúdo que visualizar usando o Nuvio. Os desenvolvedores do Nuvio não endossam ou incentivam a violação de direitos autorais.", "dmca_title": "Direitos Autorais e DMCA", - "dmca_text": "Respeitamos os direitos de propriedade intelectual de terceiros. Como o Nuvio não hospeda nenhum conteúdo, não podemos remover conteúdo da internet. No entanto, se você acredita que a interface do aplicativo em si infringe seus direitos, entre em contato conosco.", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "Sem Garantia", "warranty_text": "Este software é fornecido \"como está\", sem garantia de qualquer tipo, expressa ou implícita. Em nenhum caso os autores ou detentores de direitos autorais serão responsáveis por qualquer reclamação, danos ou outra responsabilidade decorrente do uso deste software." }, diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 4ca910dc..934f3d77 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -1,1411 +1,1411 @@ -{ - "common": { - "loading": "Учитавање...", - "cancel": "Одустани", - "save": "Сачувај", - "delete": "Обриши", - "edit": "Уреди", - "search": "Претражи", - "error": "Грешка", - "success": "Успех", - "ok": "У реду", - "unknown": "Непознато", - "retry": "Покушај поново", - "try_again": "Покушај поново", - "go_back": "Иди назад", - "settings": "Подешавања", - "close": "Затвори", - "enable": "Омогући", - "disable": "Искључи", - "show_more": "Прикажи више", - "show_less": "Прикажи мање", - "load_more": "Учитај више", - "unknown_date": "Непознат датум", - "anonymous_user": "Анонимни корисник", - "time": { - "now": "Управо сада", - "minutes_ago": "пре {{count}} мин", - "hours_ago": "пре {{count}} ч", - "days_ago": "пре {{count}} д" - }, - "days_short": { - "sun": "Нед", - "mon": "Пон", - "tue": "Уто", - "wed": "Сре", - "thu": "Чет", - "fri": "Пет", - "sat": "Суб" - }, - "email": "Е-пошта", - "status": "Статус" - }, - "home": { - "categories": { - "movies": "Филмови", - "series": "Серије", - "channels": "Канали" - }, - "movies": "Филмови", - "tv_shows": "ТВ серије", - "load_more_catalogs": "Учитај више каталога", - "no_content": "Садржај није доступан", - "add_catalogs": "Додај каталоге", - "sign_in_available": "Пријава доступна", - "sign_in_desc": "Можете се пријавити било када у Подешавања → Налог", - "view_all": "Види све", - "this_week": "Ове недеље", - "upcoming": "Надолазеће", - "recently_released": "Недавно објављено", - "no_scheduled_episodes": "Серије без заказаних епизода", - "check_back_later": "Проверите касније", - "continue_watching": "Настави са гледањем", - "up_next": "Следеће на реду", - "up_next_caps": "СЛЕДЕЋЕ", - "released": "Објављено", - "new": "Ново", - "tba": "Биће објављено", - "new_episodes": "{{count}} нове епизоде", - "season_short": "С{{season}}", - "episode_short": "Е{{episode}}", - "season": "Сезона {{season}}", - "episode": "Епизода {{episode}}", - "movie": "Филм", - "series": "Серија", - "tv_show": "ТВ серија", - "percent_watched": "{{percent}}% одгледано", - "view_details": "Види детаље", - "remove": "Уклони", - "play": "Пусти", - "play_now": "Пусти одмах", - "resume": "Настави", - "info": "Инфо", - "more_info": "Више информација", - "my_list": "Моја листа", - "save": "Сачувај", - "saved": "Сачувано", - "retry": "Покушај поново", - "install_addons": "Инсталирај додатке", - "settings": "Подешавања", - "no_featured_content": "Нема истакнутог садржаја", - "couldnt_load_featured": "Учитавање истакнутог садржаја није успело", - "no_featured_desc": "Инсталирајте додатке са каталозима или промените извор садржаја у подешавањима.", - "load_error_desc": "Дошло је до проблема при преузимању садржаја. Проверите везу и покушајте поново.", - "no_featured_available": "Нема доступног истакнутог садржаја", - "no_description": "Опис није доступан" - }, - "navigation": { - "home": "Почетна", - "library": "Библиотека", - "search": "Претражи", - "downloads": "Преузимања", - "settings": "Подешавања" - }, - "search": { - "title": "Претражи", - "recent_searches": "Недавне претраге", - "discover": "Откриј", - "movies": "Филмови", - "tv_shows": "ТВ серије", - "select_catalog": "Изабери каталог", - "all_genres": "Сви жанрови", - "discovering": "Откривање садржаја...", - "show_more": "Прикажи више ({{count}})", - "no_content_found": "Садржај није пронађен", - "try_different": "Покушајте други жанр или каталог", - "select_catalog_desc": "Изаберите каталог за истраживање", - "tap_catalog_desc": "Додирните дугме каталога изнад за почетак", - "placeholder": "Претражи филмове, серије...", - "keep_typing": "Наставите са куцањем...", - "type_characters": "Упишите најмање 2 знака за претрагу", - "no_results": "Нема резултата", - "try_keywords": "Покушајте са другим кључним речима", - "select_type": "Изабери тип", - "browse_movies": "Прегледај каталоге филмова", - "browse_tv": "Прегледај каталоге ТВ серија", - "select_genre": "Изабери жанр", - "show_all_content": "Прикажи сав садржај", - "genres_count": "{{count}} жанрова" - }, - "library": { - "title": "Библиотека", - "watched": "Одгледано", - "continue": "Настави", - "watchlist": "Листа за гледање", - "collection": "Колекција", - "rated": "Оцењено", - "items": "ставки", - "trakt_collections": "Trakt колекције", - "trakt_collection": "Trakt колекција", - "no_trakt": "Нема Trakt колекција", - "no_trakt_desc": "Ваше Trakt колекције ће се појавити овде након коришћења Trakt-а", - "load_collections": "Учитај колекције", - "empty_folder": "Нема садржаја у {{folder}}", - "empty_folder_desc": "Ова колекција је празна", - "refresh": "Освежи", - "no_movies": "Још нема филмова", - "no_series": "Још нема ТВ серија", - "no_content": "Још нема садржаја", - "add_content_desc": "Додајте садржај у своју библиотеку да бисте га видели овде", - "find_something": "Пронађи нешто за гледање", - "removed_from_library": "Уклоњено из библиотеке", - "item_removed": "Ставка је уклоњена из ваше библиотеке", - "failed_update_library": "Ажурирање библиотеке није успело", - "unable_remove": "Неуспело уклањање ставке из библиотеке", - "marked_watched": "Означено као одгледано", - "marked_unwatched": "Означено као неодгледано", - "item_marked_watched": "Ставка је означена као одгледана", - "item_marked_unwatched": "Ставка је означена као неодгледана", - "failed_update_watched": "Ажурирање статуса гледања није успело", - "unable_update_watched": "Неуспело ажурирање статуса гледања", - "added_to_library": "Додато у библиотеку", - "item_added": "Додато у вашу локалну библиотеку", - "add_to_library": "Додај у библиотеку", - "remove_from_library": "Уклони из библиотеке", - "mark_watched": "Означи као одгледано", - "mark_unwatched": "Означи као неодгледано", - "share": "Подели", - "add_to_watchlist": "Додај на Trakt листу гледања", - "remove_from_watchlist": "Уклони са Trakt листе гледања", - "added_to_watchlist": "Додато на листу гледања", - "added_to_watchlist_desc": "Додато на вашу Trakt листу гледања", - "removed_from_watchlist": "Уклоњено са листе гледања", - "removed_from_watchlist_desc": "Уклоњено са ваше Trakt листе гледања", - "add_to_collection": "Додај у Trakt колекцију", - "remove_from_collection": "Уклони из Trakt колекције", - "added_to_collection": "Додато у колекцију", - "added_to_collection_desc": "Додато у вашу Trakt колекцију", - "removed_from_collection": "Уклоњено из колекције", - "removed_from_collection_desc": "Уклоњено из ваше Trakt колекције" - }, - "metadata": { - "unable_to_load": "Учитавање садржаја није успело", - "error_code": "Код грешке: {{code}}", - "content_not_found": "Садржај није пронађен", - "content_not_found_desc": "Овај садржај не постоји или је можда уклоњен.", - "server_error": "Грешка сервера", - "server_error_desc": "Сервер је привремено недоступан. Покушајте касније.", - "bad_gateway": "Лош gateway", - "bad_gateway_desc": "Сервер има потешкоћа. Покушајте касније.", - "service_unavailable": "Услуга недоступна", - "service_unavailable_desc": "Услуга је тренутно недоступна због одржавања.", - "too_many_requests": "Превише захтева", - "too_many_requests_desc": "Шаљете превише захтева. Молимо сачекајте тренутак.", - "request_timeout": "Истек захтева", - "request_timeout_desc": "Захтев је трајао предуго. Покушајте поново.", - "network_error": "Мрежна грешка", - "network_error_desc": "Проверите интернет везу и покушајте поново.", - "auth_error": "Грешка у аутентификацији", - "auth_error_desc": "Проверите подешавања налога и покушајте поново.", - "access_denied": "Приступ одбијен", - "access_denied_desc": "Немате дозволу за приступ овом садржају.", - "connection_error": "Грешка у вези", - "streams_unavailable": "Стримови недоступни", - "streams_unavailable_desc": "Извори за стримовање су тренутно недоступни.", - "unknown_error": "Непозната грешка", - "something_went_wrong": "Нешто је пошло по злу. Покушајте поново.", - "cast": "Глумачка постава", - "more_like_this": "Слично овоме", - "collection": "Колекција", - "episodes": "Епизоде", - "seasons": "Сезоне", - "posters": "Постери", - "banners": "Банери", - "specials": "Специјали", - "season_number": "Сезона {{number}}", - "episode_count": "{{count}} епизода", - "episode_count_plural": "{{count}} епизода", - "no_episodes": "Нема доступних епизода", - "no_episodes_for_season": "Нема доступних епизода за сезону {{season}}", - "episodes_not_released": "Епизоде можда још нису објављене", - "no_description": "Опис није доступан", - "episode_label": "ЕПИЗОДА {{number}}", - "watch_again": "Гледај поново", - "completed": "Завршено", - "play_episode": "Пусти С{{season}}Е{{episode}}", - "play": "Пусти", - "watched": "Одгледано", - "watched_on_trakt": "Одгледано на Trakt-у", - "synced_with_trakt": "Синхронизовано са Trakt-ом", - "saved": "Сачувано", - "director": "Режисер", - "directors": "Режисери", - "creator": "Креатор", - "creators": "Креатори", - "production": "Продукција", - "network": "Мрежа", - "mark_watched": "Означи као одгледано", - "mark_unwatched": "Означи као неодгледано", - "marking": "Означавање...", - "removing": "Уклањање...", - "unmark_season": "Одозначи сезону {{season}}", - "mark_season": "Означи сезону {{season}}", - "resume": "Настави", - "spoiler_warning": "Упозорење о спојлерима", - "spoiler_warning_desc": "Овај коментар садржи спојлере. Да ли сте сигурни да желите да га откријете?", - "cancel": "Одустани", - "reveal_spoilers": "Откриј спојлере", - "movie_details": "Детаљи о филму", - "show_details": "Детаљи о серији", - "tagline": "Слоган", - "status": "Статус", - "release_date": "Датум објаве", - "runtime": "Трајање", - "budget": "Буџет", - "revenue": "Приход", - "origin_country": "Земља порекла", - "original_language": "Оригинални језик", - "first_air_date": "Прво емитовање", - "last_air_date": "Последње емитовање", - "total_episodes": "Укупно епизода", - "episode_runtime": "Трајање епизоде", - "created_by": "Креирао", - "backdrop_gallery": "Галерија позадина", - "loading_episodes": "Учитавање епизода...", - "no_episodes_available": "Нема доступних епизода", - "play_next": "Пусти С{{season}}Е{{episode}}", - "play_next_episode": "Пусти следећу епизоду", - "save": "Сачувај", - "percent_watched_trakt": "{{percent}}% одгледано ({{traktPercent}}% на Trakt-у)", - "synced_with_trakt_progress": "Синхронизовано са Trakt-ом", - "using_trakt_progress": "Користи се Trakt напредак", - "added_to_collection_hero": "Додато у колекцију", - "added_to_collection_desc_hero": "Додато у вашу Trakt колекцију", - "removed_from_collection_hero": "Уклоњено из колекције", - "removed_from_collection_desc_hero": "Уклоњено из ваше Trakt колекције", - "mark_as_watched": "Означи као одгледано", - "mark_as_unwatched": "Означи као неодгледано" - }, - "cast": { - "biography": "Биографија", - "known_for": "Познат по", - "personal_info": "Лични подаци", - "born_in": "Рођен у {{place}}", - "filmography": "Филмографија", - "also_known_as": "Познат и као", - "no_info_available": "Додатне информације нису доступне", - "as_character": "као {{character}}", - "loading_details": "Учитавање детаља...", - "years_old": "{{age}} година", - "view_filmography": "Види филмографију", - "filter": "Филтер", - "sort_by": "Сортирај по", - "sort_popular": "Популарно", - "sort_latest": "Најновије", - "sort_upcoming": "Надолазеће", - "upcoming_badge": "НАДОЛАЗЕЋЕ", - "coming_soon": "Ускоро стиже", - "filmography_count": "Филмографија • {{count}} наслова", - "loading_filmography": "Учитавање филмографије...", - "load_more_remaining": "Учитај још ({{count}} преостало)", - "alert_error_title": "Грешка", - "alert_error_message": "Неуспело учитавање \"{{title}}\". Покушајте касније.", - "alert_ok": "У реду", - "no_upcoming": "Нема надолазећих објава за овог глумца", - "no_content": "Нема доступног садржаја за овог глумца", - "no_movies": "Нема доступних филмова за овог глумца", - "no_tv": "Нема доступних ТВ серија за овог глумца" - }, - "comments": { - "title": "Trakt коментари", - "spoiler_warning": "⚠️ Овај коментар садржи спојлере. Додирните да откријете.", - "spoiler": "Спојлер", - "contains_spoilers": "Садржи спојлере", - "reveal": "Откриј", - "vip": "VIP", - "unavailable": "Коментари недоступни", - "no_comments": "Још нема коментара на Trakt-у", - "not_in_database": "Овај садржај можда још није у Trakt бази података", - "check_trakt": "Провери Trakt" - }, - "trailers": { - "title": "Трејлери", - "official_trailers": "Званични трејлери", - "official_trailer": "Званични трејлер", - "teasers": "Тизери", - "teaser": "Тизер", - "clips_scenes": "Клипови и сцене", - "clip": "Клип", - "featurettes": "Кратки филмови о снимању", - "featurette": "Кратки филм о снимању", - "behind_the_scenes": "Иза кулиса", - "no_trailers": "Нема доступних трејлера", - "unavailable": "Трејлер недоступан", - "unavailable_desc": "Овај трејлер није могуће учитати тренутно.", - "unable_to_play": "Није могуће пустити трејлер. Покушајте поново.", - "watch_on_youtube": "Гледај на YouTube-у" - }, - "catalog": { - "no_content_found": "Садржај није пронађен", - "no_content_filters": "Нема садржаја за изабране филтере", - "loading_content": "Учитавање садржаја...", - "back": "Назад", - "in_theaters": "У биоскопима", - "all": "Све", - "failed_tmdb": "Неуспело учитавање садржаја са TMDB", - "movies": "Филмови", - "tv_shows": "ТВ серије", - "channels": "Канали" - }, - "streams": { - "back_to_episodes": "Назад на епизоде", - "back_to_info": "Назад на инфо", - "fetching_from": "Преузимање са:", - "no_sources_available": "Нема доступних извора за стримовање", - "add_sources_desc": "Молимо додајте изворе у подешавањима", - "add_sources": "Додај изворе", - "finding_streams": "Проналажење доступних стримова...", - "finding_best_stream": "Проналажење најбољег стрима за аутоматско пуштање...", - "still_fetching": "Преузимање стримова је још у току...", - "no_streams_available": "Нема доступних стримова", - "starting_best_stream": "Покретање најбољег стрима...", - "loading_more_sources": "Учитавање додатних извора..." - }, - "player_ui": { - "via": "преко {{name}}", - "audio_tracks": "Аудио траке", - "no_audio_tracks": "Нема доступних аудио трака", - "playback_speed": "Брзина репродукције", - "on_hold": "На чекању", - "playback_error": "Грешка при репродукцији", - "unknown_error": "Дошло је до непознате грешке током репродукције.", - "copy_error": "Копирај детаље о грешци", - "copied_to_clipboard": "Копирано у привремени меморију", - "dismiss": "Одбаци", - "continue_watching": "Настави са гледањем", - "start_over": "Крени испочетка", - "resume": "Настави", - "change_source": "Промени извор", - "switching_source": "Промена извора...", - "no_sources_found": "Извори нису пронађени", - "sources": "Извори", - "finding_sources": "Проналажење извора...", - "unknown_source": "Непознат извор", - "sources_limited": "Извори могу бити ограничени због грешака провајдера.", - "episodes": "Епизоде", - "specials": "Специјали", - "season": "Сезона {{season}}", - "stream": "Стрим {{number}}", - "subtitles": "Титлови", - "built_in": "Уграђени", - "addons": "Додаци", - "style": "Стил", - "none": "Ниједан", - "search_online_subtitles": "Претражи титлове на мрежи", - "preview": "Преглед", - "quick_presets": "Брза подешавања", - "default": "Подразумевано", - "yellow": "Жуто", - "high_contrast": "Висок контраст", - "large": "Велико", - "core": "Језгро", - "font_size": "Величина фонта", - "show_background": "Прикажи позадину", - "advanced": "Напредно", - "position": "Позиција", - "text_color": "Боја текста", - "align": "Поравнање", - "bottom_offset": "Размак од дна", - "background_opacity": "Провидност позадине", - "text_shadow": "Сенка текста", - "on": "Укључено", - "off": "Искључено", - "outline_color": "Боја оквира", - "outline": "Оквир", - "outline_width": "Ширина оквира", - "letter_spacing": "Размак између слова", - "line_height": "Висина линије", - "timing_offset": "Временски помак (с)", - "visual_sync": "Визуелна синхронизација", - "timing_hint": "Померите титлове раније (-) или касније (+) за синхронизацију.", - "reset_defaults": "Врати на подразумевано" - }, - "downloads": { - "title": "Преузимања", - "no_downloads": "Још нема преузимања", - "no_downloads_desc": "Преузети садржај ће се појавити овде за гледање ван мреже", - "explore": "Истражи садржај", - "path_copied": "Путања је копирана", - "path_copied_desc": "Локална путања датотеке је копирана у привремену меморију", - "copied": "Копирано", - "incomplete": "Преузимање није завршено", - "incomplete_desc": "Преузимање још увек није комплетно", - "not_available": "Није доступно", - "not_available_desc": "Локална путања је доступна тек након што се преузимање заврши.", - "status_downloading": "Преузимање", - "status_completed": "Завршено", - "status_paused": "Паузирано", - "status_error": "Грешка", - "status_queued": "У реду за чекање", - "status_unknown": "Непознато", - "provider": "Провајдер", - "streaming_playlist_warning": "Можда се неће пустити - стриминг плејлиста", - "remaining": "преостало", - "not_ready": "Преузимање није спремно", - "not_ready_desc": "Молимо сачекајте да се преузимање заврши.", - "filter_all": "Све", - "filter_active": "Активно", - "filter_done": "Завршено", - "filter_paused": "Паузирано", - "no_filter_results": "Нема {{filter}} преузимања", - "try_different_filter": "Покушајте са другим филтером", - "limitations_title": "Ограничења преузимања", - "limitations_msg": "• Датотеке мање од 1MB су обично M3U8 стриминг плејлисте и не могу се преузети за гледање ван мреже. Оне раде само са онлајн стримингом и садрже линкове до делова видеа, а не сам видео садржај.", - "remove_title": "Уклони преузимање", - "remove_confirm": "Уклонити \"{{title}}\"{{season_episode}}?", - "cancel": "Одустани", - "remove": "Уклони" - }, - "addons": { - "title": "Додаци", - "reorder_mode": "Режим преуређивања", - "reorder_info": "Додаци на врху имају већи приоритет приликом учитавања садржаја", - "add_addon_placeholder": "URL додатка", - "add_button": "Додај додатак", - "my_addons": "Моји додаци", - "community_addons": "Додаци заједнице", - "no_addons": "Нема инсталираних додатака", - "uninstall_title": "Деинсталирај додатак", - "uninstall_message": "Да ли сте сигурни да желите да деинсталирате {{name}}?", - "uninstall_button": "Деинсталирај", - "install_success": "Додатак је успешно инсталиран", - "install_error": "Неуспела инсталација додатка", - "load_error": "Неуспело учитавање додатака", - "fetch_error": "Неуспело добављање детаља додатка", - "invalid_url": "Молимо унесите URL додатка", - "configure": "Конфигуриши", - "version": "Верзија: {{version}}", - "installed_addons": "ИНСТАЛИРАНИ ДОДАЦИ", - "reorder_drag_title": "ПРЕВУЦИТЕ ДОДАТКЕ ЗА ПРЕУРЕЂИВАЊЕ", - "install": "Инсталирај", - "config_unavailable_title": "Конфигурација недоступна", - "config_unavailable_msg": "Није могуће одредити URL конфигурације за овај додатак.", - "cannot_open_config_title": "Није могуће отворити конфигурацију", - "cannot_open_config_msg": "URL конфигурације ({{url}}) не може бити отворен. Додатак можда нема страницу за подешавање.", - "description": "Опис", - "supported_types": "Подржани типови", - "catalogs": "Каталози", - "no_description": "Опис није доступан", - "overview": "ПРЕГЛЕД", - "no_categories": "Нема категорија", - "pre_installed": "ПРЕИНСТАЛИРАНО" - }, - "trakt": { - "title": "Trakt подешавања", - "settings_title": "Trakt подешавања", - "connect_title": "Повежи се са Trakt-ом", - "connect_desc": "Синхронизујте историју гледања, листу гледања и колекцију са Trakt.tv", - "sign_in": "Пријави се на Trakt", - "sign_out": "Одјави се", - "sign_out_confirm": "Да ли сте сигурни да желите да се одјавите са свог Trakt налога?", - "joined": "Придружен {{date}}", - "sync_settings_title": "Подешавања синхронизације", - "sync_info": "Када сте повезани са Trakt-ом, комплетна историја се синхронизује директно преко API-ја и не записује се у локалну меморију. Ваша листа 'Настави са гледањем' одражава ваш глобални Trakt напредак.", - "auto_sync_label": "Аутоматска синхронизација напретка", - "auto_sync_desc": "Аутоматски синхронизуј напредак гледања на Trakt", - "import_history_label": "Увези историју гледања", - "import_history_desc": "Користите 'Синхронизуј сада' да увезете своју историју и напредак са Trakt-а", - "sync_now_button": "Синхронизуј сада", - "display_settings_title": "Подешавања приказа", - "show_comments_label": "Прикажи Trakt коментаре", - "show_comments_desc": "Прикажи Trakt коментаре на екранима са метаподацима када су доступни", - "maintenance_title": "Одржавање у току", - "maintenance_unavailable": "Trakt недоступан", - "maintenance_desc": "Trakt интеграција је привремено заустављена због одржавања. Сва синхронизација и аутентификација су онемогућене док се одржавање не заврши.", - "maintenance_button": "Услуга се одржава", - "auth_success_title": "Успешно повезано", - "auth_success_msg": "Ваш Trakt налог је успешно повезан.", - "auth_error_title": "Грешка при аутентификацији", - "auth_error_msg": "Неуспела аутентификација са Trakt-ом.", - "auth_error_generic": "Дошло је до грешке током аутентификације.", - "sign_out_error": "Неуспела одјава са Trakt-а.", - "sync_complete_title": "Синхронизација завршена", - "sync_success_msg": "Ваш напредак је успешно синхронизован са Trakt-ом.", - "sync_error_msg": "Синхронизација није успела. Покушајте поново." - }, - "simkl": { - "title": "Simkl подешавања", - "settings_title": "Simkl подешавања", - "connect_title": "Повежи се са Simkl-ом", - "connect_desc": "Синхронизујте историју гледања и пратите шта гледате", - "sign_in": "Пријави се на Simkl", - "sign_out": "Прекини везу", - "sign_out_confirm": "Да ли сте сигурни да желите да прекинете везу са Simkl-ом?", - "syncing_desc": "Ваше одгледане ставке се синхронизују са Simkl-ом.", - "auth_success_title": "Успешно повезано", - "auth_success_msg": "Ваш Simkl налог је успешно повезан.", - "auth_error_title": "Грешка при аутентификацији", - "auth_error_msg": "Неуспела аутентификација са Simkl-ом.", - "auth_error_generic": "Дошло је до грешке током аутентификације.", - "sign_out_error": "Неуспело прекидање везе са Simkl-ом.", - "config_error_title": "Грешка у конфигурацији", - "config_error_msg": "Simkl Client ID недостаје у системским променљивама.", - "conflict_title": "Конфликт", - "conflict_msg": "Не можете се повезати на Simkl док је Trakt повезан. Прво прекините везу са Trakt-ом.", - "disclaimer": "Nuvio није повезан са Simkl-ом." - }, - "tmdb_settings": { - "title": "TMDb подешавања", - "metadata_enrichment": "Обогаћивање метаподатака", - "metadata_enrichment_desc": "Побољшајте метаподатке садржаја помоћу TMDb података за боље детаље и информације.", - "enable_enrichment": "Омогући обогаћивање", - "enable_enrichment_desc": "Допуњава метаподатке додатака са TMDb подацима за глумце, сертификате, логотипе/постере и информације о продукцији.", - "localized_text": "Локализовани текст", - "localized_text_desc": "Преузми наслове и описе на твом преферираном језику са TMDb-а.", - "language": "Језик", - "change": "Промени", - "logo_preview": "Преглед логотипа", - "logo_preview_desc": "Преглед показује како ће локализовани логотипи изгледати на изабраном језику.", - "example": "Пример:", - "no_logo": "Логотип није доступан", - "enrichment_options": "Опције обогаћивања", - "enrichment_options_desc": "Контролишите који се подаци преузимају са TMDb-а. Онемогућене опције ће користити податке из додатака ако су доступни.", - "cast_crew": "Глумци и екипа", - "cast_crew_desc": "Глумци, режисери, писци са профилним фотографијама", - "title_description": "Наслов и опис", - "title_description_desc": "Користи TMDb локализовани наслов и текст описа", - "title_logos": "Логотипи наслова", - "title_logos_desc": "Висококвалитетне слике наслова", - "banners_backdrops": "Банери и позадине", - "banners_backdrops_desc": "Позадинске слике високе резолуције", - "certification": "Сертификација садржаја", - "certification_desc": "Старосне оцене (PG-13, R, TV-MA, итд.)", - "recommendations": "Препоруке", - "recommendations_desc": "Предлози сличног садржаја", - "episode_data": "Подаци о епизодама", - "episode_data_desc": "Сличице епизода, информације и резервне опције за ТВ серије", - "season_posters": "Постери сезона", - "season_posters_desc": "Слике постера за специфичне сезоне", - "production_info": "Информације о продукцији", - "production_info_desc": "Мреже и продукцијске куће са логотипима", - "movie_details": "Детаљи о филму", - "movie_details_desc": "Буџет, приход, трајање, слоган", - "tv_details": "Детаљи о ТВ серији", - "tv_details_desc": "Статус, број сезона, мреже, креатори", - "movie_collections": "Филмске колекције", - "movie_collections_desc": "Филмске франшизе (Marvel, Star Wars, итд.)", - "api_configuration": "API конфигурација", - "api_configuration_desc": "Конфигуришите свој TMDb API приступ за напредне функције.", - "custom_api_key": "Сопствени API кључ", - "custom_api_key_desc": "Користите сопствени TMDb API кључ за боље перформансе и наменска ограничења.", - "custom_key_active": "Сопствени API кључ је активан", - "api_key_required": "API кључ је неопходан", - "api_key_placeholder": "Залепите свој TMDb API кључ (v3)", - "how_to_get_key": "Како добити TMDb API кључ?", - "built_in_key_msg": "Тренутно се користи уграђени API кључ. Размислите о коришћењу сопственог кључа за боље перформансе.", - "cache_size": "Величина кеш меморије", - "clear_cache": "Обриши кеш", - "cache_days": "TMDB одговори се чувају 7 дана ради бољих перформанси", - "choose_language": "Изабери језик", - "choose_language_desc": "Изаберите преферирани језик за TMDb садржај", - "popular": "Популарно", - "all_languages": "Сви језици", - "search_results": "Резултати претраге", - "no_languages_found": "Није пронађен ниједан језик за \"{{query}}\"", - "clear_search": "Очисти претрагу", - "clear_cache_title": "Обриши TMDB кеш", - "clear_cache_msg": "Ово ће обрисати све кеширане TMDB податке ({{size}}). Ово може привремено успорити учитавање док се кеш поново не изгради.", - "clear_cache_success": "TMDB кеш је успешно обрисан.", - "clear_cache_error": "Неуспело брисање кеша.", - "clear_api_key_title": "Обриши API кључ", - "clear_api_key_msg": "Да ли сте сигурни да желите да уклоните свој API кључ и вратите се на подразумевани?", - "clear_api_key_success": "API кључ успешно обрисан", - "clear_api_key_error": "Неуспело брисање API кључа", - "empty_api_key": "API кључ не може бити празан.", - "invalid_api_key": "Неважећи API кључ. Молимо проверите и покушајте поново.", - "save_error": "Дошло је до грешке приликом чувања. Покушајте поново.", - "using_builtin_key": "Сада се користи уграђени TMDb API кључ.", - "using_custom_key": "Сада се користи ваш сопствени TMDb API кључ.", - "enter_custom_key": "Молимо унесите и сачувајте свој сопствени TMDb API кључ.", - "key_verified": "API кључ је верификован и успешно сачуван." - }, - "settings": { - "language": "Језик", - "select_language": "Изабери језик", - "english": "Енглески", - "portuguese": "Португалски", - "portuguese_br": "Португалски (Бразил)", - "portuguese_pt": "Португалски (Португалија)", - "german": "Немачки", - "arabic": "Арапски", - "spanish": "Шпански", - "french": "Француски", - "italian": "Италијански", - "croatian": "Хрватски", - "chinese": "Кинески (поједностављени)", - "hindi": "Хинди", - "account": "Налог", - "content_discovery": "Садржај и откривање", - "appearance": "Изглед", - "integrations": "Интеграције", - "playback": "Репродукција", - "backup_restore": "Резервна копија и враћање", - "updates": "Ажурирања", - "about": "О апликацији", - "developer": "Програмер", - "cache": "Кеш меморија", - "title": "Подешавања", - "settings_title": "Подешавања", - "sign_in_sync": "Пријавите се за синхронизацију", - "add_catalogs_sources": "Додаци, каталози и извори", - "player_trailers_downloads": "Плејер, трејлери, преузимања", - "mdblist_tmdb_ai": "MDBList, TMDB, AI", - "check_updates": "Провери ажурирања", - "clear_mdblist_cache": "Обриши MDBList кеш", - "cache_management": "УПРАВЉАЊЕ КЕШ МЕМОРИЈОМ", - "downloads_counter": "преузимања и расте", - "made_with_love": "Направљено са ❤️ од стране Tapframe и пријатеља", - "sections": { - "information": "ИНФОРМАЦИЈЕ", - "account": "НАЛОГ", - "theme": "ТЕМА", - "layout": "РАСПОРЕД", - "sources": "ИЗВОРИ", - "catalogs": "КАТАЛОЗИ", - "discovery": "ОТКРИВАЊЕ", - "metadata": "МЕТАПОДАЦИ", - "ai_assistant": "AI АСИСТЕНТ", - "video_player": "ВИДЕО ПЛЕЈЕР", - "audio_subtitles": "АУДИО И ТИТЛОВИ", - "media": "МЕДИЈИ", - "notifications": "ОБАВЕШТЕЊА", - "testing": "ТЕСТИРАЊЕ", - "danger_zone": "ОПАСНА ЗОНА" - }, - "items": { - "legal": "Правне напомене и одрицање одговорности", - "privacy_policy": "Политика приватности", - "report_issue": "Пријави проблем", - "version": "Верзија", - "contributors": "Сарадници", - "view_contributors": "Види све сараднике", - "theme": "Тема", - "episode_layout": "Распоред епизода", - "streams_backdrop": "Позадина стримова", - "streams_backdrop_desc": "Прикажи замућену позадину на мобилним стримовима", - "addons": "Додаци", - "installed": "инсталирано", - "debrid_integration": "Debrid интеграција", - "debrid_desc": "Повежи Torbox", - "plugins": "Прикључци", - "plugins_desc": "Управљање прикључцима и репозиторијумима", - "catalogs": "Каталози", - "active": "активно", - "home_screen": "Почетни екран", - "home_screen_desc": "Распоред и садржај", - "continue_watching": "Настави са гледањем", - "continue_watching_desc": "Кеширање и понашање репродукције", - "show_discover": "Прикажи одељак за откривање", - "show_discover_desc": "Прикажи садржај за откривање у Претрази", - "mdblist": "MDBList", - "mdblist_connected": "Повезано", - "mdblist_desc": "Омогући за приказ оцена и рецензија", - "simkl": "Simkl", - "simkl_connected": "Повезано", - "simkl_desc": "Пратите шта гледате", - "tmdb": "TMDB", - "tmdb_desc": "Извор за метаподатке и логотипе", - "openrouter": "OpenRouter API", - "openrouter_connected": "Повезано", - "openrouter_desc": "Додајте свој API кључ за AI ћаскање", - "video_player": "Видео плејер", - "built_in": "Уграђени", - "external": "Спољни", - "preferred_audio": "Преферирани језик аудија", - "preferred_subtitle": "Преферирани језик титлова", - "subtitle_source": "Приоритет извора титлова", - "auto_select_subs": "Аутоматски изабери титлове", - "auto_select_subs_desc": "Аутоматски изабери титлове који одговарају вашим подешавањима", - "show_trailers": "Прикажи трејлере", - "show_trailers_desc": "Прикажи трејлере у истакнутом одељку", - "enable_downloads": "Омогући преузимања", - "enable_downloads_desc": "Прикажи картицу за преузимања и омогући чување стримова", - "notifications": "Обавештења", - "notifications_desc": "Подсетници за епизоде", - "developer_tools": "Програмерски алати", - "developer_tools_desc": "Опције за тестирање и дебаговање", - "test_onboarding": "Тестирај 'Onboarding'", - "reset_onboarding": "Ресетуј 'Onboarding'", - "test_announcement": "Тестирај објаву", - "test_announcement_desc": "Прикажи прозор шта је ново", - "reset_campaigns": "Ресетуј кампање", - "reset_campaigns_desc": "Обриши приказе кампања", - "clear_all_data": "Обриши све податке", - "clear_all_data_desc": "Ресетуј сва подешавања и кеширане податке" - }, - "options": { - "horizontal": "Хоризонтално", - "vertical": "Вертикално", - "internal_first": "Прво уграђени", - "internal_first_desc": "Предност имају титлови унутар датотеке", - "external_first": "Прво спољни", - "external_first_desc": "Предност имају титлови из додатака", - "any_available": "Било који доступни", - "any_available_desc": "Користи први доступни титл" - }, - "clear_data_desc": "Ово ће ресетовати сва подешавања и обрисати кеш. Да ли сте сигурни?", - "app_updates": "Ажурирања апликације", - "about_nuvio": "О Nuvio апликацији" - }, - "privacy": { - "title": "Приватност и Подаци", - "settings_desc": "Управљајте телеметријом и прикупљањем података", - "info_title": "Ваша Приватност је Важна за Нас", - "info_description": "Управљајте које podatke se prikupljaju i dijele. Аналитика је подразумевано искључена и извештаји о паду су подразумевано анонимни.", - "analytics_enabled_title": "Аналитика Омогућена", - "analytics_enabled_message": "Подаци о коришћењу ће бити прикупљени да помогну унапређивању апликације. Можете то искључити у било ком тренутку.", - "disable_error_reporting_title": "Искључити Извештавање о Грешкама?", - "disable_error_reporting_message": "Искључивање извештавања о грешкама значи да нећемо бити обавештени о падовима или проблемима које доживљавате. Ово може утицати на нашу способност да исправимо грешке.", - "enable_session_replay_title": "Омогућити Репродукцију Сесије?", - "enable_session_replay_message": "Репродукција сесије снима ваш екран када се греške јаве да би нам помогла да разумемо шта се десило. Ово може да захвати видљив садржај на вашем екрану.", - "enable_pii_title": "Омогућити Прикупљање PII?", - "enable_pii_message": "Ово омогућава прикупљање лично идентификабилних информација као што су IP адреса и детаљи уређаја. Ови подаци помажу у дијагностици проблема, али повећавају изложеност приватности.", - "disable_all_title": "Искључити Сву Телеметрију?", - "disable_all_message": "Ово ће искључити сву аналитику, извештавање о грешкама и репродукцију сесије. Нећемо примити никакве податке о коришћењу апликације или падовима.", - "disable_all_button": "Искључи Све", - "all_disabled_title": "Сва Телеметрија Искључена", - "all_disabled_message": "Сво прикупљање подстака је искључено. Промене ће ступити на снагу при следећем покретању апликације.", - "reset_title": "Враћање на Препоручено", - "reset_message": "Поставке приватности су враћене на препоручене подразумеване вредности (извештавање о грешкама омогућено, аналитика искључена).", - "section_analytics": "АНАЛИТИКА", - "analytics_title": "Аналитика Коришћења", - "analytics_description": "Прикупљање анонимних образаца коришћења и приказа екрана", - "section_error_reporting": "ИЗВЕШТАВАЊЕ О ГРЕШКАМА", - "error_reporting_title": "Извештаји о Паду", - "error_reporting_description": "Слање анонимних извештаја о паду за унапређивање стабилности", - "session_replay_title": "Репродукција Сесије", - "session_replay_description": "Снимање екрана када се греške јаве", - "pii_title": "Укључивање Информација о Уређају", - "pii_description": "Слање IP адресе и детаља уређаја са извештајима", - "section_quick_actions": "БРЗЕ АКЦИЈЕ", - "disable_all": "Искључити Сву Телеметрију", - "disable_all_desc": "Искључи сво прикупљање подстака", - "reset_recommended": "Враћање на Препоручено", - "reset_recommended_desc": "Подразумеване вредности усмерене на приватност са извештавањем о грешкама", - "section_learn_more": "САЗНАЈТЕ ВИШЕ", - "privacy_policy": "Политика Приватности", - "current_settings": "Резиме Текућих Поставки", - "summary_analytics": "Аналитика", - "summary_errors": "Извештаји о Грешкама", - "summary_replay": "Репродукција Сесије", - "summary_pii": "Информације о Уређају", - "restart_note_detailed": "* Промене у аналитици и извештавању о грешкама ступају на снагу одмah. Репродукција сесије и PII поставке захтевају поновно покретање апликације." - }, - "ai_settings": { - "title": "AI Асистент", - "info_title": "Ћаскање уз помоћ AI", - "info_desc": "Постављајте питања о било ком филму или епизоди серије користећи напредни AI. Добијте увиде у радњу, ликове, теме, занимљивости и још много тога - све засновано на опсежним TMDB подацима.", - "feature_1": "Контекст и анализа специфични за епизоду", - "feature_2": "Објашњења радње и увиди у ликове", - "feature_3": "Занимљивости и чињенице иза кулиса", - "feature_4": "Ваш сопствени бесплатни OpenRouter API кључ", - "api_key_section": "OPENROUTER API КЉУЧ", - "api_key_label": "API Кључ", - "api_key_desc": "Унесите свој OpenRouter API кључ да омогућите AI функције", - "save_api_key": "Сачувај API кључ", - "saving": "Чување...", - "update": "Ажурирај", - "remove": "Уклони", - "get_free_key": "Преузми бесплатан API кључ са OpenRouter-а", - "enable_chat": "Омогући AI ћаскање", - "enable_chat_desc": "Када је омогућено, дугме 'Питај AI' ће се појавити на страницама садржаја.", - "chat_enabled": "AI ћаскање омогућено", - "chat_enabled_desc": "Сада можете постављати питања о филмовима и серијама. Потражите дугме 'Питај AI' на страницама садржаја!", - "how_it_works": "Како то функционише", - "how_it_works_desc": "• OpenRouter омогућава приступ већем броју AI модела\n• Ваш API кључ остаје приватан и сигуран\n• Бесплатни пакет укључује великодушне лимите коришћења\n• Разговарајте са контекстом о специфичним епизодама/филмовима\n• Добијте детаљне анализе и објашњења", - "error_invalid_key": "Молимо унесите важећи API кључ", - "error_key_format": "OpenRouter API кључеви треба да почињу са \"sk-or-\"", - "success_saved": "OpenRouter API кључ је успешно сачуван!", - "error_save": "Неуспело чување API кључа", - "confirm_remove_title": "Уклони API кључ", - "confirm_remove_msg": "Да ли сте сигурни да желите да уклоните свој OpenRouter API кључ? Ово ће онемогућити AI функције.", - "success_removed": "API кључ је успешно уклоњен", - "error_remove": "Неуспело уклањање API кључа" - }, - "catalog_settings": { - "title": "Каталози", - "layout_phone": "РАСПОРЕД КАТАЛОГА (ТЕЛЕФОН)", - "posters_per_row": "Постера по реду", - "auto": "Аутоматски", - "show_titles": "Прикажи наслове постера", - "show_titles_desc": "Прикажи наслов испод сваког постера", - "phone_only_hint": "Важи само за телефоне. Таблети задржавају прилагодљив распоред.", - "catalogs_group": "Каталози", - "enabled_count": "{{enabled}} од {{total}} омогућено", - "rename_hint": "Држите дуже на каталогу да га преименујете", - "rename_modal_title": "Преименуј каталог", - "rename_placeholder": "Унесите нови назив каталога", - "error_save_name": "Није могуће сачувати прилагођени назив." - }, - "continue_watching_settings": { - "title": "Настави са гледањем", - "playback_behavior": "ПОНАШАЊЕ РЕПРОДУКЦИЈЕ", - "use_cached": "Користи кеширане стримове", - "use_cached_desc": "Када је омогућено, клик на ставке у 'Настави са гледањем' ће директно отворити плејер користећи претходно коришћене стримове. Када је онемогућено, отвара се екран са детаљима садржаја.", - "open_metadata": "Отвори екран са детаљима", - "open_metadata_desc": "Када су кеширани стримови онемогућени, отвори екран са детаљима уместо екрана са изворима. Ово омогућава преглед детаља и ручни избор стрима.", - "card_appearance": "ИЗГЛЕД КАРТИЦЕ", - "card_style": "Стил картице", - "card_style_desc": "Изаберите како ће се ставке за наставак гледања појављивати на почетном екрану", - "wide": "Широко", - "poster": "Постер", - "cache_settings": "ПОДЕШАВАЊА КЕША", - "cache_duration": "Трајање кеша стримова", - "cache_duration_desc": "Колико дуго чувати кеширане линкове стримова пре него што истекну", - "important_note": "Важна напомена", - "important_note_text": "Неће сви линкови стримова остати активни током целог трајања кеша. Дуже време кеширања може довести до истеклих линкова. Ако кеширани линк не успе, апликација ће поново потражити свеже изворе.", - "how_it_works": "Како ово функционише", - "how_it_works_cached": "• Стримови се кеширају након пуштања за изабрано трајање\n• Кеширани стримови се проверавају пре употребе\n• Ако је кеш неважећи или истекао, отвара се екран са садржајем\n• 'Користи кеширане стримове' контролише директно пуштање у односу на навигацију\n• 'Отвори екран са детаљима' се појављује само када су кеширани стримови онемогућени", - "how_it_works_uncached": "• Када су кеширани стримови онемогућени, клик на ставке отвара екран са садржајем\n• Опција 'Отвори екран са детаљима' контролише који ће се екран отворити\n• Екран са детаљима приказује инфо о садржају и омогућава ручни избор\n• Екран са изворима приказује доступне стримове за тренутно пуштање", - "changes_saved": "Промене су сачуване", - "min": "мин", - "hour": "сат", - "hours": "сати" - }, - "contributors": { - "title": "Сарадници", - "special_mentions": "Посебна признања", - "tab_contributors": "Сарадници", - "tab_special": "Посебна признања", - "tab_donors": "Донатори", - "manager_role": "Менаџер заједнице", - "manager_desc": "Управља Discord и Reddit заједницама за Nuvio", - "sponsor_role": "Спонзор сервера", - "sponsor_desc": "Спонзорисао инфраструктуру сервера за Nuvio", - "mod_role": "Discord модератор", - "mod_desc": "Помаже у модерацији Nuvio Discord заједнице", - "loading": "Учитавање...", - "discord_user": "Discord корисник", - "contributions": "доприноса", - "gratitude_title": "Захвални смо за сваки допринос", - "gratitude_desc": "Свака линија кода, пријава грешке и предлог помажу да Nuvio буде бољи за све", - "special_thanks_title": "Посебна захвалност", - "special_thanks_desc": "Ови сјајни људи помажу да Nuvio заједница функционише и да сервери буду на мрежи", - "donors_desc": "Хвала вам што верујете у оно што градимо. Ваша подршка омогућава да Nuvio остане бесплатан и да се стално унапређује.", - "latest_donations": "Најновије", - "leaderboard": "Ранг листа", - "loading_donors": "Учитавање донатора...", - "no_donors": "Још нема донатора", - "error_rate_limit": "Прекорачено ограничење GitHub API-ја. Покушајте касније или освежите страницу.", - "error_failed": "Неуспело учитавање сарадника. Проверите интернет везу.", - "retry": "Покушај поново", - "no_contributors": "Сарадници нису пронађени", - "loading_contributors": "Учитавање сарадника..." - }, - "debrid": { - "title": "Debrid интеграција", - "description_torbox": "Откључајте 4K стримове високог квалитета и муњевите брзине интегрисањем Torbox-а. Унесите свој API кључ испод да бисте одмах унапредили своје искуство гледања.", - "description_torrentio": "Конфигуришите Torrentio да бисте добили торент изворе за филмове и серије. Debrid услуга је неопходна за стримовање садржаја.", - "tab_torbox": "TorBox", - "tab_torrentio": "Torrentio", - "status_connected": "Повезано", - "status_disconnected": "Прекинута веза", - "enable_addon": "Омогући додатак", - "disconnect_button": "Прекини везу и уклони", - "disconnect_loading": "Прекидање везе...", - "account_info": "Информације о налогу", - "plan": "План", - "plan_free": "Бесплатан", - "plan_essential": "Essential ($3/мес)", - "plan_pro": "Pro ($10/мес)", - "plan_standard": "Standard ($5/мес)", - "plan_unknown": "Непознато", - "expires": "Истиче", - "downloaded": "Преузето", - "status_active": "Активан", - "connected_title": "✓ Повезано са TorBox-ом", - "connected_desc": "Ваш TorBox додатак је активан и пружа премијум изворе.", - "configure_title": "Конфигуриши додатак", - "configure_desc": "Прилагодите своје искуство гледања. Сортирајте по квалитету, филтрирајте величине датотека и управљајте осталим подешавањима.", - "open_settings": "Отвори подешавања", - "what_is_debrid": "Шта је Debrid услуга?", - "enter_api_key": "Унесите свој API кључ", - "connect_button": "Повежи и инсталирај", - "connecting": "Повезивање...", - "unlock_speeds_title": "Откључајте премијум брзине", - "unlock_speeds_desc": "Узмите Torbox претплату за приступ кешираним 4K стримовима без баферовања.", - "get_subscription": "Претплати се", - "powered_by": "Покреће", - "disclaimer_torbox": "Nuvio није ни на који начин повезан са Torbox-ом.", - "disclaimer_torrentio": "Nuvio није ни на који начин повезан са Torrentio-м.", - "installed_badge": "✓ ИНСТАЛИРАНО", - "promo_title": "⚡ Треба вам Debrid услуга?", - "promo_desc": "Набавите TorBox за муњевито 4K стримовање без баферовања. Премијум кеширани торенти и тренутна преузимања.", - "promo_button": "Узми TorBox претплату", - "service_label": "Debrid услуга *", - "api_key_label": "API кључ *", - "sorting_label": "Сортирање", - "exclude_qualities": "Искључи квалитете", - "priority_languages": "Приоритетни језици", - "max_results": "Макс. резултата", - "additional_options": "Додатне опције", - "no_download_links": "Не приказуј линкове за преузимање", - "no_debrid_catalog": "Не приказуј debrid каталог", - "install_button": "Инсталирај Torrentio", - "installing": "Инсталирање...", - "update_button": "Ажурирај конфигурацију", - "updating": "Ажурирање...", - "remove_button": "Уклони Torrentio", - "error_api_required": "API кључ је неопходан", - "error_api_required_desc": "Молимо унесите API кључ ваше debrid услуге да бисте инсталирали Torrentio.", - "success_installed": "Torrentio додатак је успешно инсталиран!", - "success_removed": "Torrentio додатак је успешно уклоњен", - "alert_disconnect_title": "Прекини везу са Torbox-ом", - "alert_disconnect_msg": "Да ли сте сигурни да желите да прекинете везу са Torbox-ом? Ово ће уклонити додатак и обрисати ваш сачувани API кључ." - }, - "home_screen": { - "title": "Подешавања почетног екрана", - "changes_applied": "Промене су примењене", - "display_options": "ОПЦИЈЕ ПРИКАЗА", - "show_hero": "Прикажи истакнути одељак", - "show_hero_desc": "Истакнути садржај на врху", - "show_this_week": "Прикажи одељак 'Ове недеље'", - "show_this_week_desc": "Нове епизоде из текуће недеље", - "select_catalogs": "Изабери каталоге", - "all_catalogs": "Сви каталози", - "selected": "изабрано", - "hero_layout": "Распоред истакнутог дела", - "layout_legacy": "Класичан", - "layout_carousel": "Вртешка (Carousel)", - "layout_appletv": "Apple TV", - "layout_desc": "Банер пуне ширине, картице за превлачење или Apple TV стил", - "featured_source": "Извор истакнутог садржаја", - "using_catalogs": "Користе се каталози", - "manage_selected_catalogs": "Управљај изабраним каталозима", - "dynamic_bg": "Динамична позадина", - "dynamic_bg_desc": "Замућени банер иза вртешке", - "performance_note": "Може утицати на перформансе на слабијим уређајима.", - "posters": "Постери", - "show_titles": "Прикажи наслове", - "poster_size": "Величина постера", - "poster_corners": "Ивице постера", - "size_small": "Мали", - "size_medium": "Средњи", - "size_large": "Велики", - "corners_square": "Оштре", - "corners_rounded": "Заобљене", - "corners_pill": "Елипса", - "about_these_settings": "О ОВИМ ПОДЕШАВАЊИМА", - "about_desc": "Ова подешавања контролишу како се садржај приказује на почетном екрану. Промене се примењују одмах.", - "hero_catalogs": { - "title": "Каталози истакнутог одељка", - "select_all": "Изабери све", - "clear_all": "Обриши све", - "info": "Изаберите који ће се каталози приказивати у истакнутом делу. Ако ништа није изабрано, користиће се сви каталози. Не заборавите да сачувате промене.", - "settings_saved": "Подешавања су сачувана", - "error_load": "Неуспело учитавање каталога", - "movies": "Филмови", - "tv_shows": "ТВ серије" - } - }, - "calendar": { - "title": "Календар", - "loading": "Учитавање календара...", - "no_scheduled_episodes": "Нема заказаних епизода", - "check_back_later": "Проверите касније", - "showing_episodes_for": "Приказ епизода за {{date}}", - "show_all_episodes": "Прикажи све епизоде", - "no_episodes_for": "Нема епизода за {{date}}", - "no_upcoming_found": "Нису пронађене надолазеће епизоде", - "add_series_desc": "Додајте серије у своју библиотеку да бисте овде видели њихове нове епизоде" - }, - "mdblist": { - "title": "Извори оцена", - "status_disabled": "MDBList онемогућен", - "status_active": "API кључ активан", - "status_required": "API кључ неопходан", - "status_disabled_desc": "MDBList функционалност је тренутно искључена.", - "status_active_desc": "Оцене са MDBList-а су омогућене.", - "status_required_desc": "Додајте свој кључ испод да омогућите оцене.", - "enable_toggle": "Омогући MDBList", - "enable_toggle_desc": "Укључи/искључи сву MDBList функционалност", - "api_section": "API кључ", - "placeholder": "Залепите свој MDBList API кључ", - "save": "Сачувај", - "clear": "Обриши кључ", - "rating_providers": "Провајдери оцена", - "rating_providers_desc": "Изаберите које ће се оцене приказивати у апликацији", - "how_to": "Како добити API кључ", - "step_1": "Пријавите се на", - "step_1_link": "MDBList веб-сајту", - "step_2": "Идите на", - "step_2_settings": "Подешавања (Settings)", - "step_2_api": "API", - "step_2_end": "одељак.", - "step_3": "Генеришите нови кључ и копирајте га.", - "go_to_website": "Иди на MDBList", - "alert_clear_title": "Обриши API кључ", - "alert_clear_msg": "Да ли сте сигурни да желите да уклоните сачувани API кључ?", - "success_saved": "API кључ је успешно сачуван.", - "error_empty": "API кључ не може бити празан.", - "error_save": "Дошло је до грешке приликом чувања. Покушајте поново.", - "api_key_empty_error": "API кључ не може бити празан.", - "success_cleared": "API кључ је успешно обрисан", - "error_clear": "Неуспело брисање API кључа" - }, - "notification": { - "title": "Подешавања обавештења", - "section_general": "Опште", - "enable_notifications": "Омогући обавештења", - "section_types": "Типови обавештења", - "new_episodes": "Нове епизоде", - "upcoming_shows": "Надолазеће серије", - "reminders": "Подсетници", - "section_timing": "Време обавештавања", - "timing_desc": "Када желите да добијете обавештење пре емитовања епизоде?", - "hours_1": "1 сат", - "hours_suffix": "сати", - "section_status": "Статус обавештења", - "stats_upcoming": "Надолазеће", - "stats_this_week": "Ове недеље", - "stats_total": "Укупно", - "sync_button": "Синхронизуј Библиотеку и Trakt", - "syncing": "Синхронизација...", - "sync_desc": "Аутоматски синхронизује обавештења за све серије у вашој библиотеци и Trakt листи гледања.", - "section_advanced": "Напредно", - "reset_button": "Ресетуј сва обавештења", - "test_button": "Тест обавештење (5 сек)", - "test_notification_in": "Обавештење за {{seconds}}с...", - "test_notification_text": "Обавештење ће се појавити за {{seconds}} секунди", - "alert_reset_title": "Ресетуј обавештења", - "alert_reset_msg": "Ово ће отказати сва заказана обавештења, али неће обрисати ништа из ваше библиотеке. Да ли сте сигурни?", - "alert_reset_success": "Сва обавештења су ресетована", - "alert_sync_complete": "Синхронизација завршена", - "alert_sync_msg": "Успешно синхронизована обавештења за вашу библиотеку и Trakt.\n\nЗаказано: {{upcoming}} надолазећих епизода\nОве недеље: {{thisWeek}} епизода", - "alert_test_scheduled": "Тест обавештење је заказано" - }, - "backup": { - "title": "Резервна копија и враћање", - "options_title": "Опције резервне копије", - "options_desc": "Изаберите шта желите да укључите у резервну копију", - "section_core": "Основни подаци", - "section_addons": "Додаци и интеграције", - "section_settings": "Подешавања и преференце", - "library_label": "Књижница", - "library_desc": "Ваши сачувани филмови и ТВ серије", - "watch_progress_label": "Напредак гледања", - "watch_progress_desc": "Позиције за наставак гледања", - "addons_label": "Додаци", - "addons_desc": "Инсталирани Stremio додаци", - "plugins_label": "Прикључци", - "plugins_desc": "Прилагођене конфигурације скрапера", - "trakt_label": "Trakt интеграција", - "trakt_desc": "Синхронизација података и токени за аутентификацију", - "app_settings_label": "Подешавања апликације", - "app_settings_desc": "Тема, преференце и конфигурације", - "user_prefs_label": "Корисничке преференце", - "user_prefs_desc": "Редослед додатка и подешавања интерфејса", - "catalog_settings_label": "Подешавања каталога", - "catalog_settings_desc": "Филтери каталога и преференце", - "api_keys_label": "API кључеви", - "api_keys_desc": "MDBList и OpenRouter кључеви", - "action_create": "Направи резервну копију", - "action_restore": "Врати из резервне копије", - "section_info": "О резервним копијама", - "info_text": "• Прилагодите шта се чува користећи прекидаче изнад\n• Датотеке резервне копије се чувају локално на вашем уређају\n• Поделите резервну копију за пренос података између уређаја\n• Враћање података ће преписати ваше тренутне податке", - "alert_create_title": "Направи резервну копију", - "alert_no_content": "Није изабран садржај за резервну копију.\n\nМолимо омогућите бар једну опцију у одељку изнад.", - "alert_backup_created_title": "Резервна копија је направљена", - "alert_backup_created_msg": "Ваша резервна копија је направљена и спремна за дељење.", - "alert_backup_failed_title": "Прављење резервне копије није успело", - "alert_restore_confirm_title": "Потврди враћање", - "alert_restore_confirm_msg": "Ово ће вратити ваше податке из резервне копије направљене {{date}}.\n\nОва радња ће преписати ваше тренутне податке. Да ли сте сигурни да желите да наставите?", - "alert_restore_complete_title": "Враћање завршено", - "alert_restore_complete_msg": "Ваши подаци су успешно враћени. Молимо поново покрените апликацију да бисте видели промене.", - "alert_restore_failed_title": "Враћање није успело", - "restart_app": "Поново покрени апликацију", - "alert_restart_failed_title": "Поновно покретање није успело", - "alert_restart_failed_msg": "Неуспело поновно покретање апликације. Молимо ручно затворите и отворите апликацију." - }, - "updates": { - "title": "Ажурирања апликације", - "status_checking": "Провера ажурирања...", - "status_available": "Ажурирање је доступно!", - "status_downloading": "Преузимање ажурирања...", - "status_installing": "Инсталирање ажурирања...", - "status_success": "Ажурирање успешно инсталирано!", - "status_error": "Ажурирање није успело", - "status_ready": "Спремно за проверу ажурирања", - "action_check": "Провери ажурирања", - "action_install": "Инсталирај ажурирање", - "release_notes": "Белешке о верзији:", - "version": "Верзија:", - "last_checked": "Последња провера:", - "current_version": "Тренутна верзија:", - "current_release_notes": "Белешке о тренутној верзији:", - "github_release": "GITHUB ИЗДАЊЕ", - "current": "Тренутно:", - "latest": "Најновије:", - "notes": "Белешке:", - "view_release": "Види издање", - "notification_settings": "ПОДЕШАВАЊА ОБАВЕШТЕЊА", - "ota_alerts_label": "OTA обавештења о ажурирању", - "ota_alerts_desc": "Прикажи обавештења за бежична (over-the-air) ажурирања", - "major_alerts_label": "Обавештења о главним ажурирањима", - "major_alerts_desc": "Прикажи обавештења за нове верзије апликације на GitHub-у", - "alert_disable_ota_title": "Онемогући OTA обавештења?", - "alert_disable_ota_msg": "Више нећете примати аутоматска обавештења за OTA ажурирања.\n\n⚠️ Упозорење: Остати на најновијој верзији је важно за:\n• Исправке грешака и стабилност\n• Нове функције и побољшања\n• Пружање тачних повратних информација\n\nИ даље можете ручно проверити ажурирања на овом екрану.", - "alert_disable_major_title": "Онемогући главна обавештења?", - "alert_disable_major_msg": "Више нећете примати обавештења за главна ажурирања која захтевају поновну инсталацију.\n\n⚠️ Упозорење: Главна ажурирања често укључују:\n• Критичне сигурносне закрпе\n• Велике промене које захтевају реинсталацију\n• Важне исправке компатибилности\n\nИ даље можете ручно проверити ажурирања.", - "warning_note": "Држање обавештења омогућеним осигурава да примате исправке и побољшања.", - "disable": "Онемогући", - "alert_no_update_to_install": "Нема доступног ажурирања за инсталацију", - "alert_install_failed": "Инсталација ажурирања није успела", - "alert_no_update_title": "Нема ажурирања", - "alert_update_applied_msg": "Ажурирање ће бити примењено при следећем покретању апликације" - }, - "player": { - "title": "Видео плејер", - "section_selection": "ИЗБОР ПЛЕЈЕРА", - "internal_title": "Уграђени плејер", - "internal_desc": "Користите подразумевани плејер апликације", - "vlc_title": "VLC", - "vlc_desc": "Отвори стримове у VLC плејеру", - "infuse_title": "Infuse", - "infuse_desc": "Отвори стримове у Infuse плејеру", - "outplayer_title": "OutPlayer", - "outplayer_desc": "Отвори стримове у OutPlayer-у", - "vidhub_title": "VidHub", - "vidhub_desc": "Отвори стримове у VidHub плејеру", - "infuse_live_title": "Infuse Livecontainer", - "infuse_live_desc": "Отвори стримове у Infuse плејеру преко LiveContainer-а", - "external_title": "Спољни плејер", - "external_desc": "Отвори стримове у вашем омиљеном плејеру", - "section_playback": "ОПЦИЈЕ РЕПРОДУКЦИЈЕ", - "skip_intro_settings_title": "Прескочи увод", - "powered_by_introdb": "Покреће IntroDB", - "autoplay_title": "Аутоматски пусти први стрим", - "autoplay_desc": "Аутоматски покрени први стрим приказан на листи.", - "resume_title": "Увек настави", - "resume_desc": "Прескочи питање о наставку и аутоматски настави тамо где сте стали (ако је одгледано мање од 85%).", - "engine_title": "Енџин видео плејера", - "engine_desc": "Ауто користи ExoPlayer са MPV резервом. Неки формати као што су Dolby Vision и HDR можда нису подржани у MPV-у, па се препоручује Ауто.", - "decoder_title": "Режим декодера", - "decoder_desc": "Начин на који се видео декодира. Ауто се препоручује за најбољи баланс.", - "gpu_title": "GPU рендеровање", - "gpu_desc": "GPU-Next нуди бољи HDR и управљање бојама.", - "external_downloads_title": "Спољни плејер за преузимања", - "external_downloads_desc": "Пуштајте преузети садржај у вашем омиљеном спољном плејеру.", - "restart_required": "Потребно поновно покретање", - "restart_msg_decoder": "Молимо поново покрените апликацију да би промене декодера ступиле на снагу.", - "restart_msg_gpu": "Молимо поново покрените апликацију да би промене GPU режима ступиле на снагу.", - "option_auto": "Ауто", - "option_auto_desc_engine": "ExoPlayer + MPV резерва", - "option_mpv": "MPV", - "option_mpv_desc": "Само MPV", - "option_auto_desc_decoder": "Најбољи баланс", - "option_sw": "SW", - "option_sw_desc": "Софтверски", - "option_hw": "HW", - "option_hw_desc": "Хардверски", - "option_hw_plus": "HW+", - "option_hw_plus_desc": "Пуни HW", - "option_gpu_desc": "Стандардно", - "option_gpu_next_desc": "Напредно" - }, - "plugins": { - "title": "Прикључци", - "enable_title": "Омогући прикључке", - "enable_desc": "Омогућите енџин прикључака за решавање спољних извора медија", - "repo_config_title": "Конфигурација рипозиторијума", - "repo_config_desc": "Управљајте спољним рипозиторијумима прикључака. Укључите или искључите сваки испод.", - "your_repos": "Рипозиторијуми", - "your_repos_desc": "Конфигуришите спољне изворе за прикључке.", - "add_repo_button": "Додај рипозиторијум", - "refresh": "Освежи", - "remove": "Уклони", - "enabled": "Омогућено", - "disabled": "Онемогућено", - "updating": "Ажурирање...", - "success": "Успех", - "error": "Грешка", - "alert_repo_added": "Рипозиторијум је додат и прикључци су успешно учитани", - "alert_repo_saved": "URL рипозиторијума је успешно сачуван", - "alert_repo_refreshed": "Рипозиторијум је успешно освежен", - "alert_invalid_url": "Неважећи формат URL-а", - "alert_plugins_cleared": "Сви прикључци су уклоњени", - "alert_cache_cleared": "Кеш рипозиторијума је успешно обрисан", - "unknown": "Непознато", - "active": "Активно", - "available": "Доступно", - "platform_disabled": "Платформа онемогућена", - "limited": "Ограничено", - "clear_all": "Обриши све прикључке", - "clear_all_desc": "Да ли сте сигурни да желите да уклоните све инсталиране прикључке? Ова радња се не може поништити.", - "clear_cache": "Обриши кеш рипозиторијума", - "clear_cache_desc": "Ово ће уклонити сачувани URL рипозиторијума и обрисати све кеширане податке. Мораћете поново да унесете URL.", - "add_new_repo": "Додај нови рипозиторијум", - "available_plugins": "Доступни прикључци ({{count}})", - "placeholder": "Претражи прикључке...", - "all": "Све", - "filter_all": "Сви типови", - "filter_movies": "Филмови", - "filter_tv": "ТВ серије", - "enable_all": "Омогући све", - "disable_all": "Онемогући све", - "no_plugins_found": "Прикључци нису пронађени", - "no_plugins_available": "Нема доступних прикључака", - "no_match_desc": "Ниједан прикључак не одговара упиту \"{{query}}\". Покушајте са другим термином.", - "configure_repo_desc": "Конфигуришите рипозиторијум изнад да бисте видели доступне прикључке.", - "clear_search": "Обриши претрагу", - "no_external_player": "Нема спољног плејера", - "showbox_token": "ShowBox UI Токен", - "showbox_placeholder": "Залепите свој ShowBox UI токен", - "save": "Сачувај", - "clear": "Обриши", - "additional_settings": "Додатна подешавања", - "enable_url_validation": "Омогући валидацију URL-а", - "url_validation_desc": "Провери исправност URL-ова медија пре приказивања (може успорити резултате али побољшава поузданост)", - "group_streams": "Групиши изворе прикључака", - "group_streams_desc": "Када је омогућено, извори су груписани по рипозиторијуму. Када је онемогућено, сваки прикључак се приказује посебно.", - "sort_quality": "Сортирај прво по квалитету", - "sort_quality_desc": "Када је омогућено, извори се прво сортирају по квалитету. Доступно само када је груписање омогућено.", - "show_logos": "Прикажи логотипе прикључака", - "show_logos_desc": "Прикажи логотипе прикључака поред линкова на екрану са изворима.", - "quality_filtering": "Филтрирање квалитета", - "quality_filtering_desc": "Искључите одређене резолуције из резултата претраге. Додирните квалитет да бисте га искључили.", - "excluded_qualities": "Искључени квалитети:", - "language_filtering": "Филтрирање језика", - "language_filtering_desc": "Искључите одређене језике из резултата претраге. Додирните језик да бисте га искључили.", - "note": "Напомена:", - "language_filtering_note": "Овај филтер се примењује само на провајдере који укључују информације о језику.", - "excluded_languages": "Искључени језици:", - "about_title": "О прикључцима", - "about_desc_1": "Прикључци су модуларне компоненте које прилагођавају садржај из различитих спољних протокола. Покрећу се локално на вашем уређају.", - "about_desc_2": "Прикључци означени као \"Ограничено\" могу захтевати специфичне спољне конфигурације.", - "help_title": "Подешавање прикључака", - "help_step_1": "1. **Омогући прикључке** - Укључите главни прекидач", - "help_step_2": "2. **Додај рипозиторијум** - Унесите важећи URL рипозиторијума", - "help_step_3": "3. **Освежи рипозиторијум** - Преузмите доступне прикључке", - "help_step_4": "4. **Активирај** - Омогућите прикључке које желите да користите", - "got_it": "Разумем!", - "repo_format_hint": "Формат: https://raw.githubusercontent.com/корисник/репо/refs/heads/грана", - "cancel": "Откажи", - "add": "Додај" - }, - "theme": { - "title": "Теме апликације", - "select_theme": "ИЗАБЕРИ ТЕМУ", - "create_custom": "Направи прилагођену тему", - "options": "ОПЦИЈЕ", - "use_dominant_color": "Користи доминантну боју са постера", - "categories": { - "all": "Све теме", - "dark": "Тамне теме", - "colorful": "Шарене", - "custom": "Моје теме" - }, - "editor": { - "theme_name_placeholder": "Назив теме", - "save": "Сачувај", - "primary": "Примарна", - "secondary": "Секундарна", - "background": "Позадина", - "invalid_name_title": "Неважећи назив", - "invalid_name_msg": "Молимо унесите важећи назив теме" - }, - "alerts": { - "delete_title": "Обриши тему", - "delete_msg": "Да ли сте сигурни да желите да обришете \"{{name}}\"?", - "ok": "У реду", - "delete": "Обриши", - "cancel": "Откажи", - "back": "Подешавања" - } - }, - "legal": { - "title": "Правне напомене и одрицање одговорности", - "intro_title": "Природа апликације", - "intro_text": "Nuvio је медија плејер и апликација за управљање метаподацима. Он делује искључиво као интерфејс на страни клијента за прегледање јавно доступних метаподатака и пуштање медијских датотека које обезбеђује корисник или додаци трећих страна. Nuvio сам по себи не хостује, не складишти нити дистрибуира било какав медијски садржај.", - "extensions_title": "Прикључци трећих страна", - "extensions_text": "Nuvio користи архитектуру која омогућава корисницима да инсталирају прикључке трећих страна. Ове прикључке развијају независни програмери који нису повезани са Nuvio-м. Немамо контролу над садржајем, законитошћу или функционалношћу било ког прикључка треће стране.", - "user_resp_title": "Одговорност корисника", - "user_resp_text": "Корисници су искључиво одговорни за прикључке које инсталирају и садржај којем приступају. Коришћењем ове апликације, сагласни сте да ћете осигурати да имате законско право на приступ садржају који гледате. Програмери Nuvio-а не подржавају нити подстичу кршење ауторских права.", - "dmca_title": "Ауторска права и DMCA", - "dmca_text": "Поштујемо права интелектуалне својине других. Пошто Nuvio не хостује никакав садржај, не можемо уклонити садржај са интернета. Међутим, ако сматрате да сам интерфејс апликације крши ваша права, контактирајте нас.", - "warranty_title": "Без гаранције", - "warranty_text": "Овај софтвер се испоручује \"какав јесте\", без икакве гаранције. Аутори ни у ком случају неће бити одговорни за било каква потраживања или штету насталу коришћењем овог софтвера." - }, - "plugin_tester": { - "title": "Тестер прикључака", - "subtitle": "Покрените скрапере и пратите логове у реалном времену", - "tabs": { - "individual": "Појединачно", - "repo": "Тестер рипозиторијума", - "code": "Код", - "logs": "Логови", - "results": "Резултати" - }, - "common": { - "error": "Грешка", - "success": "Успех", - "movie": "Филм", - "tv": "ТВ", - "tmdb_id": "TMDB ID", - "season": "Сезона", - "episode": "Епизода", - "running": "Покретање…", - "run_test": "Покрени тест", - "play": "Пусти", - "done": "Готово", - "test": "Тест", - "testing": "Тестирање…" - }, - "individual": { - "load_from_url": "Учитај са URL-а", - "load_from_url_desc": "Залепите сирови GitHub URL или локални IP и додирните преузми.", - "enter_url_error": "Молимо унесите URL", - "code_loaded": "Код је учитан са URL-а", - "fetch_error": "Неуспело преузимање: {{message}}", - "no_code_error": "Нема кода за покретање", - "plugin_code": "Код прикључка", - "focus_editor": "Фокусирај едитор кода", - "code_placeholder": "// Залепите код прикључка овде...", - "test_parameters": "Параметри теста", - "no_logs": "Још нема логова. Покрените тест да бисте видели излаз.", - "no_streams": "Још нема пронађених стримова.", - "streams_found": "Пронађен {{count}} стрим", - "streams_found_plural": "Пронађено {{count}} стримова", - "tap_play_hint": "Додирните 'Пусти' да тестирате стрим у уграђеном плејеру.", - "unnamed_stream": "Неименовани стрим", - "quality": "Квалитет: {{quality}}", - "size": "Величина: {{size}}", - "url_label": "URL: {{url}}", - "headers_info": "Хедери: {{count}} прилагођених хедера", - "find_placeholder": "Пронађи у коду…", - "edit_code_title": "Измени код", - "no_url_stream_error": "Није пронађен URL за овај стрим" - }, - "repo": { - "title": "Тестер рипозиторијума", - "description": "Преузмите рипозиторијум и тестирајте сваког провајдера.", - "enter_repo_url_error": "Молимо унесите URL рипозиторијума", - "invalid_url_title": "Неважећи URL", - "invalid_url_msg": "Користите GitHub raw URL или локални http(s) URL.", - "manifest_build_error": "Није могуће изградити URL манифеста", - "manifest_fetch_error": "Неуспело преузимање манифеста", - "repo_manifest_fetch_error": "Неуспело преузимање манифеста рипозиторијума", - "missing_filename": "Недостаје име датотеке у манифесту", - "scraper_build_error": "Није могуће изградити URL скрапера", - "download_scraper_error": "Неуспело преузимање скрапера", - "test_failed": "Тест није успео", - "test_parameters": "Параметри теста рипозиторијума", - "test_parameters_desc": "Ови параметри се користе само за Тестер рипозиторијума.", - "using_info": "Користи се: {{mediaType}} • TMDB {{tmdbId}}", - "using_info_tv": "Користи се: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", - "providers_title": "Провајдери", - "repository_default": "Рипозиторијум", - "providers_count": "{{count}} провајдера", - "fetch_hint": "Преузмите репо да излистате провајдере.", - "test_all": "Тестирај све", - "status_running": "ПОКРЕНУТО", - "status_ok": "У РЕДУ ({{count}})", - "status_ok_empty": "У РЕДУ (0)", - "status_failed": "НИЈЕ УСПЕЛО", - "status_idle": "МИРОВАЊЕ", - "tried_url": "Покушан URL: {{url}}", - "provider_logs": "Логови провајдера", - "no_logs_captured": "Нема забележених логова." - } - } -} +{ + "common": { + "loading": "Учитавање...", + "cancel": "Одустани", + "save": "Сачувај", + "delete": "Обриши", + "edit": "Уреди", + "search": "Претражи", + "error": "Грешка", + "success": "Успех", + "ok": "У реду", + "unknown": "Непознато", + "retry": "Покушај поново", + "try_again": "Покушај поново", + "go_back": "Иди назад", + "settings": "Подешавања", + "close": "Затвори", + "enable": "Омогући", + "disable": "Искључи", + "show_more": "Прикажи више", + "show_less": "Прикажи мање", + "load_more": "Учитај више", + "unknown_date": "Непознат датум", + "anonymous_user": "Анонимни корисник", + "time": { + "now": "Управо сада", + "minutes_ago": "пре {{count}} мин", + "hours_ago": "пре {{count}} ч", + "days_ago": "пре {{count}} д" + }, + "days_short": { + "sun": "Нед", + "mon": "Пон", + "tue": "Уто", + "wed": "Сре", + "thu": "Чет", + "fri": "Пет", + "sat": "Суб" + }, + "email": "Е-пошта", + "status": "Статус" + }, + "home": { + "categories": { + "movies": "Филмови", + "series": "Серије", + "channels": "Канали" + }, + "movies": "Филмови", + "tv_shows": "ТВ серије", + "load_more_catalogs": "Учитај више каталога", + "no_content": "Садржај није доступан", + "add_catalogs": "Додај каталоге", + "sign_in_available": "Пријава доступна", + "sign_in_desc": "Можете се пријавити било када у Подешавања → Налог", + "view_all": "Види све", + "this_week": "Ове недеље", + "upcoming": "Надолазеће", + "recently_released": "Недавно објављено", + "no_scheduled_episodes": "Серије без заказаних епизода", + "check_back_later": "Проверите касније", + "continue_watching": "Настави са гледањем", + "up_next": "Следеће на реду", + "up_next_caps": "СЛЕДЕЋЕ", + "released": "Објављено", + "new": "Ново", + "tba": "Биће објављено", + "new_episodes": "{{count}} нове епизоде", + "season_short": "С{{season}}", + "episode_short": "Е{{episode}}", + "season": "Сезона {{season}}", + "episode": "Епизода {{episode}}", + "movie": "Филм", + "series": "Серија", + "tv_show": "ТВ серија", + "percent_watched": "{{percent}}% одгледано", + "view_details": "Види детаље", + "remove": "Уклони", + "play": "Пусти", + "play_now": "Пусти одмах", + "resume": "Настави", + "info": "Инфо", + "more_info": "Више информација", + "my_list": "Моја листа", + "save": "Сачувај", + "saved": "Сачувано", + "retry": "Покушај поново", + "install_addons": "Инсталирај додатке", + "settings": "Подешавања", + "no_featured_content": "Нема истакнутог садржаја", + "couldnt_load_featured": "Учитавање истакнутог садржаја није успело", + "no_featured_desc": "Инсталирајте додатке са каталозима или промените извор садржаја у подешавањима.", + "load_error_desc": "Дошло је до проблема при преузимању садржаја. Проверите везу и покушајте поново.", + "no_featured_available": "Нема доступног истакнутог садржаја", + "no_description": "Опис није доступан" + }, + "navigation": { + "home": "Почетна", + "library": "Библиотека", + "search": "Претражи", + "downloads": "Преузимања", + "settings": "Подешавања" + }, + "search": { + "title": "Претражи", + "recent_searches": "Недавне претраге", + "discover": "Откриј", + "movies": "Филмови", + "tv_shows": "ТВ серије", + "select_catalog": "Изабери каталог", + "all_genres": "Сви жанрови", + "discovering": "Откривање садржаја...", + "show_more": "Прикажи више ({{count}})", + "no_content_found": "Садржај није пронађен", + "try_different": "Покушајте други жанр или каталог", + "select_catalog_desc": "Изаберите каталог за истраживање", + "tap_catalog_desc": "Додирните дугме каталога изнад за почетак", + "placeholder": "Претражи филмове, серије...", + "keep_typing": "Наставите са куцањем...", + "type_characters": "Упишите најмање 2 знака за претрагу", + "no_results": "Нема резултата", + "try_keywords": "Покушајте са другим кључним речима", + "select_type": "Изабери тип", + "browse_movies": "Прегледај каталоге филмова", + "browse_tv": "Прегледај каталоге ТВ серија", + "select_genre": "Изабери жанр", + "show_all_content": "Прикажи сав садржај", + "genres_count": "{{count}} жанрова" + }, + "library": { + "title": "Библиотека", + "watched": "Одгледано", + "continue": "Настави", + "watchlist": "Листа за гледање", + "collection": "Колекција", + "rated": "Оцењено", + "items": "ставки", + "trakt_collections": "Trakt колекције", + "trakt_collection": "Trakt колекција", + "no_trakt": "Нема Trakt колекција", + "no_trakt_desc": "Ваше Trakt колекције ће се појавити овде након коришћења Trakt-а", + "load_collections": "Учитај колекције", + "empty_folder": "Нема садржаја у {{folder}}", + "empty_folder_desc": "Ова колекција је празна", + "refresh": "Освежи", + "no_movies": "Још нема филмова", + "no_series": "Још нема ТВ серија", + "no_content": "Још нема садржаја", + "add_content_desc": "Додајте садржај у своју библиотеку да бисте га видели овде", + "find_something": "Пронађи нешто за гледање", + "removed_from_library": "Уклоњено из библиотеке", + "item_removed": "Ставка је уклоњена из ваше библиотеке", + "failed_update_library": "Ажурирање библиотеке није успело", + "unable_remove": "Неуспело уклањање ставке из библиотеке", + "marked_watched": "Означено као одгледано", + "marked_unwatched": "Означено као неодгледано", + "item_marked_watched": "Ставка је означена као одгледана", + "item_marked_unwatched": "Ставка је означена као неодгледана", + "failed_update_watched": "Ажурирање статуса гледања није успело", + "unable_update_watched": "Неуспело ажурирање статуса гледања", + "added_to_library": "Додато у библиотеку", + "item_added": "Додато у вашу локалну библиотеку", + "add_to_library": "Додај у библиотеку", + "remove_from_library": "Уклони из библиотеке", + "mark_watched": "Означи као одгледано", + "mark_unwatched": "Означи као неодгледано", + "share": "Подели", + "add_to_watchlist": "Додај на Trakt листу гледања", + "remove_from_watchlist": "Уклони са Trakt листе гледања", + "added_to_watchlist": "Додато на листу гледања", + "added_to_watchlist_desc": "Додато на вашу Trakt листу гледања", + "removed_from_watchlist": "Уклоњено са листе гледања", + "removed_from_watchlist_desc": "Уклоњено са ваше Trakt листе гледања", + "add_to_collection": "Додај у Trakt колекцију", + "remove_from_collection": "Уклони из Trakt колекције", + "added_to_collection": "Додато у колекцију", + "added_to_collection_desc": "Додато у вашу Trakt колекцију", + "removed_from_collection": "Уклоњено из колекције", + "removed_from_collection_desc": "Уклоњено из ваше Trakt колекције" + }, + "metadata": { + "unable_to_load": "Учитавање садржаја није успело", + "error_code": "Код грешке: {{code}}", + "content_not_found": "Садржај није пронађен", + "content_not_found_desc": "Овај садржај не постоји или је можда уклоњен.", + "server_error": "Грешка сервера", + "server_error_desc": "Сервер је привремено недоступан. Покушајте касније.", + "bad_gateway": "Лош gateway", + "bad_gateway_desc": "Сервер има потешкоћа. Покушајте касније.", + "service_unavailable": "Услуга недоступна", + "service_unavailable_desc": "Услуга је тренутно недоступна због одржавања.", + "too_many_requests": "Превише захтева", + "too_many_requests_desc": "Шаљете превише захтева. Молимо сачекајте тренутак.", + "request_timeout": "Истек захтева", + "request_timeout_desc": "Захтев је трајао предуго. Покушајте поново.", + "network_error": "Мрежна грешка", + "network_error_desc": "Проверите интернет везу и покушајте поново.", + "auth_error": "Грешка у аутентификацији", + "auth_error_desc": "Проверите подешавања налога и покушајте поново.", + "access_denied": "Приступ одбијен", + "access_denied_desc": "Немате дозволу за приступ овом садржају.", + "connection_error": "Грешка у вези", + "streams_unavailable": "Стримови недоступни", + "streams_unavailable_desc": "Извори за стримовање су тренутно недоступни.", + "unknown_error": "Непозната грешка", + "something_went_wrong": "Нешто је пошло по злу. Покушајте поново.", + "cast": "Глумачка постава", + "more_like_this": "Слично овоме", + "collection": "Колекција", + "episodes": "Епизоде", + "seasons": "Сезоне", + "posters": "Постери", + "banners": "Банери", + "specials": "Специјали", + "season_number": "Сезона {{number}}", + "episode_count": "{{count}} епизода", + "episode_count_plural": "{{count}} епизода", + "no_episodes": "Нема доступних епизода", + "no_episodes_for_season": "Нема доступних епизода за сезону {{season}}", + "episodes_not_released": "Епизоде можда још нису објављене", + "no_description": "Опис није доступан", + "episode_label": "ЕПИЗОДА {{number}}", + "watch_again": "Гледај поново", + "completed": "Завршено", + "play_episode": "Пусти С{{season}}Е{{episode}}", + "play": "Пусти", + "watched": "Одгледано", + "watched_on_trakt": "Одгледано на Trakt-у", + "synced_with_trakt": "Синхронизовано са Trakt-ом", + "saved": "Сачувано", + "director": "Режисер", + "directors": "Режисери", + "creator": "Креатор", + "creators": "Креатори", + "production": "Продукција", + "network": "Мрежа", + "mark_watched": "Означи као одгледано", + "mark_unwatched": "Означи као неодгледано", + "marking": "Означавање...", + "removing": "Уклањање...", + "unmark_season": "Одозначи сезону {{season}}", + "mark_season": "Означи сезону {{season}}", + "resume": "Настави", + "spoiler_warning": "Упозорење о спојлерима", + "spoiler_warning_desc": "Овај коментар садржи спојлере. Да ли сте сигурни да желите да га откријете?", + "cancel": "Одустани", + "reveal_spoilers": "Откриј спојлере", + "movie_details": "Детаљи о филму", + "show_details": "Детаљи о серији", + "tagline": "Слоган", + "status": "Статус", + "release_date": "Датум објаве", + "runtime": "Трајање", + "budget": "Буџет", + "revenue": "Приход", + "origin_country": "Земља порекла", + "original_language": "Оригинални језик", + "first_air_date": "Прво емитовање", + "last_air_date": "Последње емитовање", + "total_episodes": "Укупно епизода", + "episode_runtime": "Трајање епизоде", + "created_by": "Креирао", + "backdrop_gallery": "Галерија позадина", + "loading_episodes": "Учитавање епизода...", + "no_episodes_available": "Нема доступних епизода", + "play_next": "Пусти С{{season}}Е{{episode}}", + "play_next_episode": "Пусти следећу епизоду", + "save": "Сачувај", + "percent_watched_trakt": "{{percent}}% одгледано ({{traktPercent}}% на Trakt-у)", + "synced_with_trakt_progress": "Синхронизовано са Trakt-ом", + "using_trakt_progress": "Користи се Trakt напредак", + "added_to_collection_hero": "Додато у колекцију", + "added_to_collection_desc_hero": "Додато у вашу Trakt колекцију", + "removed_from_collection_hero": "Уклоњено из колекције", + "removed_from_collection_desc_hero": "Уклоњено из ваше Trakt колекције", + "mark_as_watched": "Означи као одгледано", + "mark_as_unwatched": "Означи као неодгледано" + }, + "cast": { + "biography": "Биографија", + "known_for": "Познат по", + "personal_info": "Лични подаци", + "born_in": "Рођен у {{place}}", + "filmography": "Филмографија", + "also_known_as": "Познат и као", + "no_info_available": "Додатне информације нису доступне", + "as_character": "као {{character}}", + "loading_details": "Учитавање детаља...", + "years_old": "{{age}} година", + "view_filmography": "Види филмографију", + "filter": "Филтер", + "sort_by": "Сортирај по", + "sort_popular": "Популарно", + "sort_latest": "Најновије", + "sort_upcoming": "Надолазеће", + "upcoming_badge": "НАДОЛАЗЕЋЕ", + "coming_soon": "Ускоро стиже", + "filmography_count": "Филмографија • {{count}} наслова", + "loading_filmography": "Учитавање филмографије...", + "load_more_remaining": "Учитај још ({{count}} преостало)", + "alert_error_title": "Грешка", + "alert_error_message": "Неуспело учитавање \"{{title}}\". Покушајте касније.", + "alert_ok": "У реду", + "no_upcoming": "Нема надолазећих објава за овог глумца", + "no_content": "Нема доступног садржаја за овог глумца", + "no_movies": "Нема доступних филмова за овог глумца", + "no_tv": "Нема доступних ТВ серија за овог глумца" + }, + "comments": { + "title": "Trakt коментари", + "spoiler_warning": "⚠️ Овај коментар садржи спојлере. Додирните да откријете.", + "spoiler": "Спојлер", + "contains_spoilers": "Садржи спојлере", + "reveal": "Откриј", + "vip": "VIP", + "unavailable": "Коментари недоступни", + "no_comments": "Још нема коментара на Trakt-у", + "not_in_database": "Овај садржај можда још није у Trakt бази података", + "check_trakt": "Провери Trakt" + }, + "trailers": { + "title": "Трејлери", + "official_trailers": "Званични трејлери", + "official_trailer": "Званични трејлер", + "teasers": "Тизери", + "teaser": "Тизер", + "clips_scenes": "Клипови и сцене", + "clip": "Клип", + "featurettes": "Кратки филмови о снимању", + "featurette": "Кратки филм о снимању", + "behind_the_scenes": "Иза кулиса", + "no_trailers": "Нема доступних трејлера", + "unavailable": "Трејлер недоступан", + "unavailable_desc": "Овај трејлер није могуће учитати тренутно.", + "unable_to_play": "Није могуће пустити трејлер. Покушајте поново.", + "watch_on_youtube": "Гледај на YouTube-у" + }, + "catalog": { + "no_content_found": "Садржај није пронађен", + "no_content_filters": "Нема садржаја за изабране филтере", + "loading_content": "Учитавање садржаја...", + "back": "Назад", + "in_theaters": "У биоскопима", + "all": "Све", + "failed_tmdb": "Неуспело учитавање садржаја са TMDB", + "movies": "Филмови", + "tv_shows": "ТВ серије", + "channels": "Канали" + }, + "streams": { + "back_to_episodes": "Назад на епизоде", + "back_to_info": "Назад на инфо", + "fetching_from": "Преузимање са:", + "no_sources_available": "Нема доступних извора за стримовање", + "add_sources_desc": "Молимо додајте изворе у подешавањима", + "add_sources": "Додај изворе", + "finding_streams": "Проналажење доступних стримова...", + "finding_best_stream": "Проналажење најбољег стрима за аутоматско пуштање...", + "still_fetching": "Преузимање стримова је још у току...", + "no_streams_available": "Нема доступних стримова", + "starting_best_stream": "Покретање најбољег стрима...", + "loading_more_sources": "Учитавање додатних извора..." + }, + "player_ui": { + "via": "преко {{name}}", + "audio_tracks": "Аудио траке", + "no_audio_tracks": "Нема доступних аудио трака", + "playback_speed": "Брзина репродукције", + "on_hold": "На чекању", + "playback_error": "Грешка при репродукцији", + "unknown_error": "Дошло је до непознате грешке током репродукције.", + "copy_error": "Копирај детаље о грешци", + "copied_to_clipboard": "Копирано у привремени меморију", + "dismiss": "Одбаци", + "continue_watching": "Настави са гледањем", + "start_over": "Крени испочетка", + "resume": "Настави", + "change_source": "Промени извор", + "switching_source": "Промена извора...", + "no_sources_found": "Извори нису пронађени", + "sources": "Извори", + "finding_sources": "Проналажење извора...", + "unknown_source": "Непознат извор", + "sources_limited": "Извори могу бити ограничени због грешака провајдера.", + "episodes": "Епизоде", + "specials": "Специјали", + "season": "Сезона {{season}}", + "stream": "Стрим {{number}}", + "subtitles": "Титлови", + "built_in": "Уграђени", + "addons": "Додаци", + "style": "Стил", + "none": "Ниједан", + "search_online_subtitles": "Претражи титлове на мрежи", + "preview": "Преглед", + "quick_presets": "Брза подешавања", + "default": "Подразумевано", + "yellow": "Жуто", + "high_contrast": "Висок контраст", + "large": "Велико", + "core": "Језгро", + "font_size": "Величина фонта", + "show_background": "Прикажи позадину", + "advanced": "Напредно", + "position": "Позиција", + "text_color": "Боја текста", + "align": "Поравнање", + "bottom_offset": "Размак од дна", + "background_opacity": "Провидност позадине", + "text_shadow": "Сенка текста", + "on": "Укључено", + "off": "Искључено", + "outline_color": "Боја оквира", + "outline": "Оквир", + "outline_width": "Ширина оквира", + "letter_spacing": "Размак између слова", + "line_height": "Висина линије", + "timing_offset": "Временски помак (с)", + "visual_sync": "Визуелна синхронизација", + "timing_hint": "Померите титлове раније (-) или касније (+) за синхронизацију.", + "reset_defaults": "Врати на подразумевано" + }, + "downloads": { + "title": "Преузимања", + "no_downloads": "Још нема преузимања", + "no_downloads_desc": "Преузети садржај ће се појавити овде за гледање ван мреже", + "explore": "Истражи садржај", + "path_copied": "Путања је копирана", + "path_copied_desc": "Локална путања датотеке је копирана у привремену меморију", + "copied": "Копирано", + "incomplete": "Преузимање није завршено", + "incomplete_desc": "Преузимање још увек није комплетно", + "not_available": "Није доступно", + "not_available_desc": "Локална путања је доступна тек након што се преузимање заврши.", + "status_downloading": "Преузимање", + "status_completed": "Завршено", + "status_paused": "Паузирано", + "status_error": "Грешка", + "status_queued": "У реду за чекање", + "status_unknown": "Непознато", + "provider": "Провајдер", + "streaming_playlist_warning": "Можда се неће пустити - стриминг плејлиста", + "remaining": "преостало", + "not_ready": "Преузимање није спремно", + "not_ready_desc": "Молимо сачекајте да се преузимање заврши.", + "filter_all": "Све", + "filter_active": "Активно", + "filter_done": "Завршено", + "filter_paused": "Паузирано", + "no_filter_results": "Нема {{filter}} преузимања", + "try_different_filter": "Покушајте са другим филтером", + "limitations_title": "Ограничења преузимања", + "limitations_msg": "• Датотеке мање од 1MB су обично M3U8 стриминг плејлисте и не могу се преузети за гледање ван мреже. Оне раде само са онлајн стримингом и садрже линкове до делова видеа, а не сам видео садржај.", + "remove_title": "Уклони преузимање", + "remove_confirm": "Уклонити \"{{title}}\"{{season_episode}}?", + "cancel": "Одустани", + "remove": "Уклони" + }, + "addons": { + "title": "Додаци", + "reorder_mode": "Режим преуређивања", + "reorder_info": "Додаци на врху имају већи приоритет приликом учитавања садржаја", + "add_addon_placeholder": "URL додатка", + "add_button": "Додај додатак", + "my_addons": "Моји додаци", + "community_addons": "Додаци заједнице", + "no_addons": "Нема инсталираних додатака", + "uninstall_title": "Деинсталирај додатак", + "uninstall_message": "Да ли сте сигурни да желите да деинсталирате {{name}}?", + "uninstall_button": "Деинсталирај", + "install_success": "Додатак је успешно инсталиран", + "install_error": "Неуспела инсталација додатка", + "load_error": "Неуспело учитавање додатака", + "fetch_error": "Неуспело добављање детаља додатка", + "invalid_url": "Молимо унесите URL додатка", + "configure": "Конфигуриши", + "version": "Верзија: {{version}}", + "installed_addons": "ИНСТАЛИРАНИ ДОДАЦИ", + "reorder_drag_title": "ПРЕВУЦИТЕ ДОДАТКЕ ЗА ПРЕУРЕЂИВАЊЕ", + "install": "Инсталирај", + "config_unavailable_title": "Конфигурација недоступна", + "config_unavailable_msg": "Није могуће одредити URL конфигурације за овај додатак.", + "cannot_open_config_title": "Није могуће отворити конфигурацију", + "cannot_open_config_msg": "URL конфигурације ({{url}}) не може бити отворен. Додатак можда нема страницу за подешавање.", + "description": "Опис", + "supported_types": "Подржани типови", + "catalogs": "Каталози", + "no_description": "Опис није доступан", + "overview": "ПРЕГЛЕД", + "no_categories": "Нема категорија", + "pre_installed": "ПРЕИНСТАЛИРАНО" + }, + "trakt": { + "title": "Trakt подешавања", + "settings_title": "Trakt подешавања", + "connect_title": "Повежи се са Trakt-ом", + "connect_desc": "Синхронизујте историју гледања, листу гледања и колекцију са Trakt.tv", + "sign_in": "Пријави се на Trakt", + "sign_out": "Одјави се", + "sign_out_confirm": "Да ли сте сигурни да желите да се одјавите са свог Trakt налога?", + "joined": "Придружен {{date}}", + "sync_settings_title": "Подешавања синхронизације", + "sync_info": "Када сте повезани са Trakt-ом, комплетна историја се синхронизује директно преко API-ја и не записује се у локалну меморију. Ваша листа 'Настави са гледањем' одражава ваш глобални Trakt напредак.", + "auto_sync_label": "Аутоматска синхронизација напретка", + "auto_sync_desc": "Аутоматски синхронизуј напредак гледања на Trakt", + "import_history_label": "Увези историју гледања", + "import_history_desc": "Користите 'Синхронизуј сада' да увезете своју историју и напредак са Trakt-а", + "sync_now_button": "Синхронизуј сада", + "display_settings_title": "Подешавања приказа", + "show_comments_label": "Прикажи Trakt коментаре", + "show_comments_desc": "Прикажи Trakt коментаре на екранима са метаподацима када су доступни", + "maintenance_title": "Одржавање у току", + "maintenance_unavailable": "Trakt недоступан", + "maintenance_desc": "Trakt интеграција је привремено заустављена због одржавања. Сва синхронизација и аутентификација су онемогућене док се одржавање не заврши.", + "maintenance_button": "Услуга се одржава", + "auth_success_title": "Успешно повезано", + "auth_success_msg": "Ваш Trakt налог је успешно повезан.", + "auth_error_title": "Грешка при аутентификацији", + "auth_error_msg": "Неуспела аутентификација са Trakt-ом.", + "auth_error_generic": "Дошло је до грешке током аутентификације.", + "sign_out_error": "Неуспела одјава са Trakt-а.", + "sync_complete_title": "Синхронизација завршена", + "sync_success_msg": "Ваш напредак је успешно синхронизован са Trakt-ом.", + "sync_error_msg": "Синхронизација није успела. Покушајте поново." + }, + "simkl": { + "title": "Simkl подешавања", + "settings_title": "Simkl подешавања", + "connect_title": "Повежи се са Simkl-ом", + "connect_desc": "Синхронизујте историју гледања и пратите шта гледате", + "sign_in": "Пријави се на Simkl", + "sign_out": "Прекини везу", + "sign_out_confirm": "Да ли сте сигурни да желите да прекинете везу са Simkl-ом?", + "syncing_desc": "Ваше одгледане ставке се синхронизују са Simkl-ом.", + "auth_success_title": "Успешно повезано", + "auth_success_msg": "Ваш Simkl налог је успешно повезан.", + "auth_error_title": "Грешка при аутентификацији", + "auth_error_msg": "Неуспела аутентификација са Simkl-ом.", + "auth_error_generic": "Дошло је до грешке током аутентификације.", + "sign_out_error": "Неуспело прекидање везе са Simkl-ом.", + "config_error_title": "Грешка у конфигурацији", + "config_error_msg": "Simkl Client ID недостаје у системским променљивама.", + "conflict_title": "Конфликт", + "conflict_msg": "Не можете се повезати на Simkl док је Trakt повезан. Прво прекините везу са Trakt-ом.", + "disclaimer": "Nuvio није повезан са Simkl-ом." + }, + "tmdb_settings": { + "title": "TMDb подешавања", + "metadata_enrichment": "Обогаћивање метаподатака", + "metadata_enrichment_desc": "Побољшајте метаподатке садржаја помоћу TMDb података за боље детаље и информације.", + "enable_enrichment": "Омогући обогаћивање", + "enable_enrichment_desc": "Допуњава метаподатке додатака са TMDb подацима за глумце, сертификате, логотипе/постере и информације о продукцији.", + "localized_text": "Локализовани текст", + "localized_text_desc": "Преузми наслове и описе на твом преферираном језику са TMDb-а.", + "language": "Језик", + "change": "Промени", + "logo_preview": "Преглед логотипа", + "logo_preview_desc": "Преглед показује како ће локализовани логотипи изгледати на изабраном језику.", + "example": "Пример:", + "no_logo": "Логотип није доступан", + "enrichment_options": "Опције обогаћивања", + "enrichment_options_desc": "Контролишите који се подаци преузимају са TMDb-а. Онемогућене опције ће користити податке из додатака ако су доступни.", + "cast_crew": "Глумци и екипа", + "cast_crew_desc": "Глумци, режисери, писци са профилним фотографијама", + "title_description": "Наслов и опис", + "title_description_desc": "Користи TMDb локализовани наслов и текст описа", + "title_logos": "Логотипи наслова", + "title_logos_desc": "Висококвалитетне слике наслова", + "banners_backdrops": "Банери и позадине", + "banners_backdrops_desc": "Позадинске слике високе резолуције", + "certification": "Сертификација садржаја", + "certification_desc": "Старосне оцене (PG-13, R, TV-MA, итд.)", + "recommendations": "Препоруке", + "recommendations_desc": "Предлози сличног садржаја", + "episode_data": "Подаци о епизодама", + "episode_data_desc": "Сличице епизода, информације и резервне опције за ТВ серије", + "season_posters": "Постери сезона", + "season_posters_desc": "Слике постера за специфичне сезоне", + "production_info": "Информације о продукцији", + "production_info_desc": "Мреже и продукцијске куће са логотипима", + "movie_details": "Детаљи о филму", + "movie_details_desc": "Буџет, приход, трајање, слоган", + "tv_details": "Детаљи о ТВ серији", + "tv_details_desc": "Статус, број сезона, мреже, креатори", + "movie_collections": "Филмске колекције", + "movie_collections_desc": "Филмске франшизе (Marvel, Star Wars, итд.)", + "api_configuration": "API конфигурација", + "api_configuration_desc": "Конфигуришите свој TMDb API приступ за напредне функције.", + "custom_api_key": "Сопствени API кључ", + "custom_api_key_desc": "Користите сопствени TMDb API кључ за боље перформансе и наменска ограничења.", + "custom_key_active": "Сопствени API кључ је активан", + "api_key_required": "API кључ је неопходан", + "api_key_placeholder": "Залепите свој TMDb API кључ (v3)", + "how_to_get_key": "Како добити TMDb API кључ?", + "built_in_key_msg": "Тренутно се користи уграђени API кључ. Размислите о коришћењу сопственог кључа за боље перформансе.", + "cache_size": "Величина кеш меморије", + "clear_cache": "Обриши кеш", + "cache_days": "TMDB одговори се чувају 7 дана ради бољих перформанси", + "choose_language": "Изабери језик", + "choose_language_desc": "Изаберите преферирани језик за TMDb садржај", + "popular": "Популарно", + "all_languages": "Сви језици", + "search_results": "Резултати претраге", + "no_languages_found": "Није пронађен ниједан језик за \"{{query}}\"", + "clear_search": "Очисти претрагу", + "clear_cache_title": "Обриши TMDB кеш", + "clear_cache_msg": "Ово ће обрисати све кеширане TMDB податке ({{size}}). Ово може привремено успорити учитавање док се кеш поново не изгради.", + "clear_cache_success": "TMDB кеш је успешно обрисан.", + "clear_cache_error": "Неуспело брисање кеша.", + "clear_api_key_title": "Обриши API кључ", + "clear_api_key_msg": "Да ли сте сигурни да желите да уклоните свој API кључ и вратите се на подразумевани?", + "clear_api_key_success": "API кључ успешно обрисан", + "clear_api_key_error": "Неуспело брисање API кључа", + "empty_api_key": "API кључ не може бити празан.", + "invalid_api_key": "Неважећи API кључ. Молимо проверите и покушајте поново.", + "save_error": "Дошло је до грешке приликом чувања. Покушајте поново.", + "using_builtin_key": "Сада се користи уграђени TMDb API кључ.", + "using_custom_key": "Сада се користи ваш сопствени TMDb API кључ.", + "enter_custom_key": "Молимо унесите и сачувајте свој сопствени TMDb API кључ.", + "key_verified": "API кључ је верификован и успешно сачуван." + }, + "settings": { + "language": "Језик", + "select_language": "Изабери језик", + "english": "Енглески", + "portuguese": "Португалски", + "portuguese_br": "Португалски (Бразил)", + "portuguese_pt": "Португалски (Португалија)", + "german": "Немачки", + "arabic": "Арапски", + "spanish": "Шпански", + "french": "Француски", + "italian": "Италијански", + "croatian": "Хрватски", + "chinese": "Кинески (поједностављени)", + "hindi": "Хинди", + "account": "Налог", + "content_discovery": "Садржај и откривање", + "appearance": "Изглед", + "integrations": "Интеграције", + "playback": "Репродукција", + "backup_restore": "Резервна копија и враћање", + "updates": "Ажурирања", + "about": "О апликацији", + "developer": "Програмер", + "cache": "Кеш меморија", + "title": "Подешавања", + "settings_title": "Подешавања", + "sign_in_sync": "Пријавите се за синхронизацију", + "add_catalogs_sources": "Додаци, каталози и извори", + "player_trailers_downloads": "Плејер, трејлери, преузимања", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Провери ажурирања", + "clear_mdblist_cache": "Обриши MDBList кеш", + "cache_management": "УПРАВЉАЊЕ КЕШ МЕМОРИЈОМ", + "downloads_counter": "преузимања и расте", + "made_with_love": "Направљено са ❤️ од стране Tapframe и пријатеља", + "sections": { + "information": "ИНФОРМАЦИЈЕ", + "account": "НАЛОГ", + "theme": "ТЕМА", + "layout": "РАСПОРЕД", + "sources": "ИЗВОРИ", + "catalogs": "КАТАЛОЗИ", + "discovery": "ОТКРИВАЊЕ", + "metadata": "МЕТАПОДАЦИ", + "ai_assistant": "AI АСИСТЕНТ", + "video_player": "ВИДЕО ПЛЕЈЕР", + "audio_subtitles": "АУДИО И ТИТЛОВИ", + "media": "МЕДИЈИ", + "notifications": "ОБАВЕШТЕЊА", + "testing": "ТЕСТИРАЊЕ", + "danger_zone": "ОПАСНА ЗОНА" + }, + "items": { + "legal": "Правне напомене и одрицање одговорности", + "privacy_policy": "Политика приватности", + "report_issue": "Пријави проблем", + "version": "Верзија", + "contributors": "Сарадници", + "view_contributors": "Види све сараднике", + "theme": "Тема", + "episode_layout": "Распоред епизода", + "streams_backdrop": "Позадина стримова", + "streams_backdrop_desc": "Прикажи замућену позадину на мобилним стримовима", + "addons": "Додаци", + "installed": "инсталирано", + "debrid_integration": "Debrid интеграција", + "debrid_desc": "Повежи Torbox", + "plugins": "Прикључци", + "plugins_desc": "Управљање прикључцима и репозиторијумима", + "catalogs": "Каталози", + "active": "активно", + "home_screen": "Почетни екран", + "home_screen_desc": "Распоред и садржај", + "continue_watching": "Настави са гледањем", + "continue_watching_desc": "Кеширање и понашање репродукције", + "show_discover": "Прикажи одељак за откривање", + "show_discover_desc": "Прикажи садржај за откривање у Претрази", + "mdblist": "MDBList", + "mdblist_connected": "Повезано", + "mdblist_desc": "Омогући за приказ оцена и рецензија", + "simkl": "Simkl", + "simkl_connected": "Повезано", + "simkl_desc": "Пратите шта гледате", + "tmdb": "TMDB", + "tmdb_desc": "Извор за метаподатке и логотипе", + "openrouter": "OpenRouter API", + "openrouter_connected": "Повезано", + "openrouter_desc": "Додајте свој API кључ за AI ћаскање", + "video_player": "Видео плејер", + "built_in": "Уграђени", + "external": "Спољни", + "preferred_audio": "Преферирани језик аудија", + "preferred_subtitle": "Преферирани језик титлова", + "subtitle_source": "Приоритет извора титлова", + "auto_select_subs": "Аутоматски изабери титлове", + "auto_select_subs_desc": "Аутоматски изабери титлове који одговарају вашим подешавањима", + "show_trailers": "Прикажи трејлере", + "show_trailers_desc": "Прикажи трејлере у истакнутом одељку", + "enable_downloads": "Омогући преузимања", + "enable_downloads_desc": "Прикажи картицу за преузимања и омогући чување стримова", + "notifications": "Обавештења", + "notifications_desc": "Подсетници за епизоде", + "developer_tools": "Програмерски алати", + "developer_tools_desc": "Опције за тестирање и дебаговање", + "test_onboarding": "Тестирај 'Onboarding'", + "reset_onboarding": "Ресетуј 'Onboarding'", + "test_announcement": "Тестирај објаву", + "test_announcement_desc": "Прикажи прозор шта је ново", + "reset_campaigns": "Ресетуј кампање", + "reset_campaigns_desc": "Обриши приказе кампања", + "clear_all_data": "Обриши све податке", + "clear_all_data_desc": "Ресетуј сва подешавања и кеширане податке" + }, + "options": { + "horizontal": "Хоризонтално", + "vertical": "Вертикално", + "internal_first": "Прво уграђени", + "internal_first_desc": "Предност имају титлови унутар датотеке", + "external_first": "Прво спољни", + "external_first_desc": "Предност имају титлови из додатака", + "any_available": "Било који доступни", + "any_available_desc": "Користи први доступни титл" + }, + "clear_data_desc": "Ово ће ресетовати сва подешавања и обрисати кеш. Да ли сте сигурни?", + "app_updates": "Ажурирања апликације", + "about_nuvio": "О Nuvio апликацији" + }, + "privacy": { + "title": "Приватност и Подаци", + "settings_desc": "Управљајте телеметријом и прикупљањем података", + "info_title": "Ваша Приватност је Важна за Нас", + "info_description": "Управљајте које podatke se prikupljaju i dijele. Аналитика је подразумевано искључена и извештаји о паду су подразумевано анонимни.", + "analytics_enabled_title": "Аналитика Омогућена", + "analytics_enabled_message": "Подаци о коришћењу ће бити прикупљени да помогну унапређивању апликације. Можете то искључити у било ком тренутку.", + "disable_error_reporting_title": "Искључити Извештавање о Грешкама?", + "disable_error_reporting_message": "Искључивање извештавања о грешкама значи да нећемо бити обавештени о падовима или проблемима које доживљавате. Ово може утицати на нашу способност да исправимо грешке.", + "enable_session_replay_title": "Омогућити Репродукцију Сесије?", + "enable_session_replay_message": "Репродукција сесије снима ваш екран када се греške јаве да би нам помогла да разумемо шта се десило. Ово може да захвати видљив садржај на вашем екрану.", + "enable_pii_title": "Омогућити Прикупљање PII?", + "enable_pii_message": "Ово омогућава прикупљање лично идентификабилних информација као што су IP адреса и детаљи уређаја. Ови подаци помажу у дијагностици проблема, али повећавају изложеност приватности.", + "disable_all_title": "Искључити Сву Телеметрију?", + "disable_all_message": "Ово ће искључити сву аналитику, извештавање о грешкама и репродукцију сесије. Нећемо примити никакве податке о коришћењу апликације или падовима.", + "disable_all_button": "Искључи Све", + "all_disabled_title": "Сва Телеметрија Искључена", + "all_disabled_message": "Сво прикупљање подстака је искључено. Промене ће ступити на снагу при следећем покретању апликације.", + "reset_title": "Враћање на Препоручено", + "reset_message": "Поставке приватности су враћене на препоручене подразумеване вредности (извештавање о грешкама омогућено, аналитика искључена).", + "section_analytics": "АНАЛИТИКА", + "analytics_title": "Аналитика Коришћења", + "analytics_description": "Прикупљање анонимних образаца коришћења и приказа екрана", + "section_error_reporting": "ИЗВЕШТАВАЊЕ О ГРЕШКАМА", + "error_reporting_title": "Извештаји о Паду", + "error_reporting_description": "Слање анонимних извештаја о паду за унапређивање стабилности", + "session_replay_title": "Репродукција Сесије", + "session_replay_description": "Снимање екрана када се греške јаве", + "pii_title": "Укључивање Информација о Уређају", + "pii_description": "Слање IP адресе и детаља уређаја са извештајима", + "section_quick_actions": "БРЗЕ АКЦИЈЕ", + "disable_all": "Искључити Сву Телеметрију", + "disable_all_desc": "Искључи сво прикупљање подстака", + "reset_recommended": "Враћање на Препоручено", + "reset_recommended_desc": "Подразумеване вредности усмерене на приватност са извештавањем о грешкама", + "section_learn_more": "САЗНАЈТЕ ВИШЕ", + "privacy_policy": "Политика Приватности", + "current_settings": "Резиме Текућих Поставки", + "summary_analytics": "Аналитика", + "summary_errors": "Извештаји о Грешкама", + "summary_replay": "Репродукција Сесије", + "summary_pii": "Информације о Уређају", + "restart_note_detailed": "* Промене у аналитици и извештавању о грешкама ступају на снагу одмah. Репродукција сесије и PII поставке захтевају поновно покретање апликације." + }, + "ai_settings": { + "title": "AI Асистент", + "info_title": "Ћаскање уз помоћ AI", + "info_desc": "Постављајте питања о било ком филму или епизоди серије користећи напредни AI. Добијте увиде у радњу, ликове, теме, занимљивости и још много тога - све засновано на опсежним TMDB подацима.", + "feature_1": "Контекст и анализа специфични за епизоду", + "feature_2": "Објашњења радње и увиди у ликове", + "feature_3": "Занимљивости и чињенице иза кулиса", + "feature_4": "Ваш сопствени бесплатни OpenRouter API кључ", + "api_key_section": "OPENROUTER API КЉУЧ", + "api_key_label": "API Кључ", + "api_key_desc": "Унесите свој OpenRouter API кључ да омогућите AI функције", + "save_api_key": "Сачувај API кључ", + "saving": "Чување...", + "update": "Ажурирај", + "remove": "Уклони", + "get_free_key": "Преузми бесплатан API кључ са OpenRouter-а", + "enable_chat": "Омогући AI ћаскање", + "enable_chat_desc": "Када је омогућено, дугме 'Питај AI' ће се појавити на страницама садржаја.", + "chat_enabled": "AI ћаскање омогућено", + "chat_enabled_desc": "Сада можете постављати питања о филмовима и серијама. Потражите дугме 'Питај AI' на страницама садржаја!", + "how_it_works": "Како то функционише", + "how_it_works_desc": "• OpenRouter омогућава приступ већем броју AI модела\n• Ваш API кључ остаје приватан и сигуран\n• Бесплатни пакет укључује великодушне лимите коришћења\n• Разговарајте са контекстом о специфичним епизодама/филмовима\n• Добијте детаљне анализе и објашњења", + "error_invalid_key": "Молимо унесите важећи API кључ", + "error_key_format": "OpenRouter API кључеви треба да почињу са \"sk-or-\"", + "success_saved": "OpenRouter API кључ је успешно сачуван!", + "error_save": "Неуспело чување API кључа", + "confirm_remove_title": "Уклони API кључ", + "confirm_remove_msg": "Да ли сте сигурни да желите да уклоните свој OpenRouter API кључ? Ово ће онемогућити AI функције.", + "success_removed": "API кључ је успешно уклоњен", + "error_remove": "Неуспело уклањање API кључа" + }, + "catalog_settings": { + "title": "Каталози", + "layout_phone": "РАСПОРЕД КАТАЛОГА (ТЕЛЕФОН)", + "posters_per_row": "Постера по реду", + "auto": "Аутоматски", + "show_titles": "Прикажи наслове постера", + "show_titles_desc": "Прикажи наслов испод сваког постера", + "phone_only_hint": "Важи само за телефоне. Таблети задржавају прилагодљив распоред.", + "catalogs_group": "Каталози", + "enabled_count": "{{enabled}} од {{total}} омогућено", + "rename_hint": "Држите дуже на каталогу да га преименујете", + "rename_modal_title": "Преименуј каталог", + "rename_placeholder": "Унесите нови назив каталога", + "error_save_name": "Није могуће сачувати прилагођени назив." + }, + "continue_watching_settings": { + "title": "Настави са гледањем", + "playback_behavior": "ПОНАШАЊЕ РЕПРОДУКЦИЈЕ", + "use_cached": "Користи кеширане стримове", + "use_cached_desc": "Када је омогућено, клик на ставке у 'Настави са гледањем' ће директно отворити плејер користећи претходно коришћене стримове. Када је онемогућено, отвара се екран са детаљима садржаја.", + "open_metadata": "Отвори екран са детаљима", + "open_metadata_desc": "Када су кеширани стримови онемогућени, отвори екран са детаљима уместо екрана са изворима. Ово омогућава преглед детаља и ручни избор стрима.", + "card_appearance": "ИЗГЛЕД КАРТИЦЕ", + "card_style": "Стил картице", + "card_style_desc": "Изаберите како ће се ставке за наставак гледања појављивати на почетном екрану", + "wide": "Широко", + "poster": "Постер", + "cache_settings": "ПОДЕШАВАЊА КЕША", + "cache_duration": "Трајање кеша стримова", + "cache_duration_desc": "Колико дуго чувати кеширане линкове стримова пре него што истекну", + "important_note": "Важна напомена", + "important_note_text": "Неће сви линкови стримова остати активни током целог трајања кеша. Дуже време кеширања може довести до истеклих линкова. Ако кеширани линк не успе, апликација ће поново потражити свеже изворе.", + "how_it_works": "Како ово функционише", + "how_it_works_cached": "• Стримови се кеширају након пуштања за изабрано трајање\n• Кеширани стримови се проверавају пре употребе\n• Ако је кеш неважећи или истекао, отвара се екран са садржајем\n• 'Користи кеширане стримове' контролише директно пуштање у односу на навигацију\n• 'Отвори екран са детаљима' се појављује само када су кеширани стримови онемогућени", + "how_it_works_uncached": "• Када су кеширани стримови онемогућени, клик на ставке отвара екран са садржајем\n• Опција 'Отвори екран са детаљима' контролише који ће се екран отворити\n• Екран са детаљима приказује инфо о садржају и омогућава ручни избор\n• Екран са изворима приказује доступне стримове за тренутно пуштање", + "changes_saved": "Промене су сачуване", + "min": "мин", + "hour": "сат", + "hours": "сати" + }, + "contributors": { + "title": "Сарадници", + "special_mentions": "Посебна признања", + "tab_contributors": "Сарадници", + "tab_special": "Посебна признања", + "tab_donors": "Донатори", + "manager_role": "Менаџер заједнице", + "manager_desc": "Управља Discord и Reddit заједницама за Nuvio", + "sponsor_role": "Спонзор сервера", + "sponsor_desc": "Спонзорисао инфраструктуру сервера за Nuvio", + "mod_role": "Discord модератор", + "mod_desc": "Помаже у модерацији Nuvio Discord заједнице", + "loading": "Учитавање...", + "discord_user": "Discord корисник", + "contributions": "доприноса", + "gratitude_title": "Захвални смо за сваки допринос", + "gratitude_desc": "Свака линија кода, пријава грешке и предлог помажу да Nuvio буде бољи за све", + "special_thanks_title": "Посебна захвалност", + "special_thanks_desc": "Ови сјајни људи помажу да Nuvio заједница функционише и да сервери буду на мрежи", + "donors_desc": "Хвала вам што верујете у оно што градимо. Ваша подршка омогућава да Nuvio остане бесплатан и да се стално унапређује.", + "latest_donations": "Најновије", + "leaderboard": "Ранг листа", + "loading_donors": "Учитавање донатора...", + "no_donors": "Још нема донатора", + "error_rate_limit": "Прекорачено ограничење GitHub API-ја. Покушајте касније или освежите страницу.", + "error_failed": "Неуспело учитавање сарадника. Проверите интернет везу.", + "retry": "Покушај поново", + "no_contributors": "Сарадници нису пронађени", + "loading_contributors": "Учитавање сарадника..." + }, + "debrid": { + "title": "Debrid интеграција", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Повезано", + "status_disconnected": "Прекинута веза", + "enable_addon": "Омогући додатак", + "disconnect_button": "Прекини везу и уклони", + "disconnect_loading": "Прекидање везе...", + "account_info": "Информације о налогу", + "plan": "План", + "plan_free": "Бесплатан", + "plan_essential": "Essential ($3/мес)", + "plan_pro": "Pro ($10/мес)", + "plan_standard": "Standard ($5/мес)", + "plan_unknown": "Непознато", + "expires": "Истиче", + "downloaded": "Преузето", + "status_active": "Активан", + "connected_title": "✓ Повезано са TorBox-ом", + "connected_desc": "Ваш TorBox додатак је активан и пружа премијум изворе.", + "configure_title": "Конфигуриши додатак", + "configure_desc": "Прилагодите своје искуство гледања. Сортирајте по квалитету, филтрирајте величине датотека и управљајте осталим подешавањима.", + "open_settings": "Отвори подешавања", + "what_is_debrid": "Шта је Debrid услуга?", + "enter_api_key": "Унесите свој API кључ", + "connect_button": "Повежи и инсталирај", + "connecting": "Повезивање...", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", + "get_subscription": "Претплати се", + "powered_by": "Покреће", + "disclaimer_torbox": "Nuvio није ни на који начин повезан са Torbox-ом.", + "disclaimer_torrentio": "Nuvio није ни на који начин повезан са Torrentio-м.", + "installed_badge": "✓ ИНСТАЛИРАНО", + "promo_title": "⚡ Треба вам Debrid услуга?", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", + "promo_button": "Узми TorBox претплату", + "service_label": "Debrid услуга *", + "api_key_label": "API кључ *", + "sorting_label": "Сортирање", + "exclude_qualities": "Искључи квалитете", + "priority_languages": "Приоритетни језици", + "max_results": "Макс. резултата", + "additional_options": "Додатне опције", + "no_download_links": "Не приказуј линкове за преузимање", + "no_debrid_catalog": "Не приказуј debrid каталог", + "install_button": "Инсталирај Torrentio", + "installing": "Инсталирање...", + "update_button": "Ажурирај конфигурацију", + "updating": "Ажурирање...", + "remove_button": "Уклони Torrentio", + "error_api_required": "API кључ је неопходан", + "error_api_required_desc": "Молимо унесите API кључ ваше debrid услуге да бисте инсталирали Torrentio.", + "success_installed": "Torrentio додатак је успешно инсталиран!", + "success_removed": "Torrentio додатак је успешно уклоњен", + "alert_disconnect_title": "Прекини везу са Torbox-ом", + "alert_disconnect_msg": "Да ли сте сигурни да желите да прекинете везу са Torbox-ом? Ово ће уклонити додатак и обрисати ваш сачувани API кључ." + }, + "home_screen": { + "title": "Подешавања почетног екрана", + "changes_applied": "Промене су примењене", + "display_options": "ОПЦИЈЕ ПРИКАЗА", + "show_hero": "Прикажи истакнути одељак", + "show_hero_desc": "Истакнути садржај на врху", + "show_this_week": "Прикажи одељак 'Ове недеље'", + "show_this_week_desc": "Нове епизоде из текуће недеље", + "select_catalogs": "Изабери каталоге", + "all_catalogs": "Сви каталози", + "selected": "изабрано", + "hero_layout": "Распоред истакнутог дела", + "layout_legacy": "Класичан", + "layout_carousel": "Вртешка (Carousel)", + "layout_appletv": "Apple TV", + "layout_desc": "Банер пуне ширине, картице за превлачење или Apple TV стил", + "featured_source": "Извор истакнутог садржаја", + "using_catalogs": "Користе се каталози", + "manage_selected_catalogs": "Управљај изабраним каталозима", + "dynamic_bg": "Динамична позадина", + "dynamic_bg_desc": "Замућени банер иза вртешке", + "performance_note": "Може утицати на перформансе на слабијим уређајима.", + "posters": "Постери", + "show_titles": "Прикажи наслове", + "poster_size": "Величина постера", + "poster_corners": "Ивице постера", + "size_small": "Мали", + "size_medium": "Средњи", + "size_large": "Велики", + "corners_square": "Оштре", + "corners_rounded": "Заобљене", + "corners_pill": "Елипса", + "about_these_settings": "О ОВИМ ПОДЕШАВАЊИМА", + "about_desc": "Ова подешавања контролишу како се садржај приказује на почетном екрану. Промене се примењују одмах.", + "hero_catalogs": { + "title": "Каталози истакнутог одељка", + "select_all": "Изабери све", + "clear_all": "Обриши све", + "info": "Изаберите који ће се каталози приказивати у истакнутом делу. Ако ништа није изабрано, користиће се сви каталози. Не заборавите да сачувате промене.", + "settings_saved": "Подешавања су сачувана", + "error_load": "Неуспело учитавање каталога", + "movies": "Филмови", + "tv_shows": "ТВ серије" + } + }, + "calendar": { + "title": "Календар", + "loading": "Учитавање календара...", + "no_scheduled_episodes": "Нема заказаних епизода", + "check_back_later": "Проверите касније", + "showing_episodes_for": "Приказ епизода за {{date}}", + "show_all_episodes": "Прикажи све епизоде", + "no_episodes_for": "Нема епизода за {{date}}", + "no_upcoming_found": "Нису пронађене надолазеће епизоде", + "add_series_desc": "Додајте серије у своју библиотеку да бисте овде видели њихове нове епизоде" + }, + "mdblist": { + "title": "Извори оцена", + "status_disabled": "MDBList онемогућен", + "status_active": "API кључ активан", + "status_required": "API кључ неопходан", + "status_disabled_desc": "MDBList функционалност је тренутно искључена.", + "status_active_desc": "Оцене са MDBList-а су омогућене.", + "status_required_desc": "Додајте свој кључ испод да омогућите оцене.", + "enable_toggle": "Омогући MDBList", + "enable_toggle_desc": "Укључи/искључи сву MDBList функционалност", + "api_section": "API кључ", + "placeholder": "Залепите свој MDBList API кључ", + "save": "Сачувај", + "clear": "Обриши кључ", + "rating_providers": "Провајдери оцена", + "rating_providers_desc": "Изаберите које ће се оцене приказивати у апликацији", + "how_to": "Како добити API кључ", + "step_1": "Пријавите се на", + "step_1_link": "MDBList веб-сајту", + "step_2": "Идите на", + "step_2_settings": "Подешавања (Settings)", + "step_2_api": "API", + "step_2_end": "одељак.", + "step_3": "Генеришите нови кључ и копирајте га.", + "go_to_website": "Иди на MDBList", + "alert_clear_title": "Обриши API кључ", + "alert_clear_msg": "Да ли сте сигурни да желите да уклоните сачувани API кључ?", + "success_saved": "API кључ је успешно сачуван.", + "error_empty": "API кључ не може бити празан.", + "error_save": "Дошло је до грешке приликом чувања. Покушајте поново.", + "api_key_empty_error": "API кључ не може бити празан.", + "success_cleared": "API кључ је успешно обрисан", + "error_clear": "Неуспело брисање API кључа" + }, + "notification": { + "title": "Подешавања обавештења", + "section_general": "Опште", + "enable_notifications": "Омогући обавештења", + "section_types": "Типови обавештења", + "new_episodes": "Нове епизоде", + "upcoming_shows": "Надолазеће серије", + "reminders": "Подсетници", + "section_timing": "Време обавештавања", + "timing_desc": "Када желите да добијете обавештење пре емитовања епизоде?", + "hours_1": "1 сат", + "hours_suffix": "сати", + "section_status": "Статус обавештења", + "stats_upcoming": "Надолазеће", + "stats_this_week": "Ове недеље", + "stats_total": "Укупно", + "sync_button": "Синхронизуј Библиотеку и Trakt", + "syncing": "Синхронизација...", + "sync_desc": "Аутоматски синхронизује обавештења за све серије у вашој библиотеци и Trakt листи гледања.", + "section_advanced": "Напредно", + "reset_button": "Ресетуј сва обавештења", + "test_button": "Тест обавештење (5 сек)", + "test_notification_in": "Обавештење за {{seconds}}с...", + "test_notification_text": "Обавештење ће се појавити за {{seconds}} секунди", + "alert_reset_title": "Ресетуј обавештења", + "alert_reset_msg": "Ово ће отказати сва заказана обавештења, али неће обрисати ништа из ваше библиотеке. Да ли сте сигурни?", + "alert_reset_success": "Сва обавештења су ресетована", + "alert_sync_complete": "Синхронизација завршена", + "alert_sync_msg": "Успешно синхронизована обавештења за вашу библиотеку и Trakt.\n\nЗаказано: {{upcoming}} надолазећих епизода\nОве недеље: {{thisWeek}} епизода", + "alert_test_scheduled": "Тест обавештење је заказано" + }, + "backup": { + "title": "Резервна копија и враћање", + "options_title": "Опције резервне копије", + "options_desc": "Изаберите шта желите да укључите у резервну копију", + "section_core": "Основни подаци", + "section_addons": "Додаци и интеграције", + "section_settings": "Подешавања и преференце", + "library_label": "Књижница", + "library_desc": "Ваши сачувани филмови и ТВ серије", + "watch_progress_label": "Напредак гледања", + "watch_progress_desc": "Позиције за наставак гледања", + "addons_label": "Додаци", + "addons_desc": "Инсталирани Stremio додаци", + "plugins_label": "Прикључци", + "plugins_desc": "Прилагођене конфигурације скрапера", + "trakt_label": "Trakt интеграција", + "trakt_desc": "Синхронизација података и токени за аутентификацију", + "app_settings_label": "Подешавања апликације", + "app_settings_desc": "Тема, преференце и конфигурације", + "user_prefs_label": "Корисничке преференце", + "user_prefs_desc": "Редослед додатка и подешавања интерфејса", + "catalog_settings_label": "Подешавања каталога", + "catalog_settings_desc": "Филтери каталога и преференце", + "api_keys_label": "API кључеви", + "api_keys_desc": "MDBList и OpenRouter кључеви", + "action_create": "Направи резервну копију", + "action_restore": "Врати из резервне копије", + "section_info": "О резервним копијама", + "info_text": "• Прилагодите шта се чува користећи прекидаче изнад\n• Датотеке резервне копије се чувају локално на вашем уређају\n• Поделите резервну копију за пренос података између уређаја\n• Враћање података ће преписати ваше тренутне податке", + "alert_create_title": "Направи резервну копију", + "alert_no_content": "Није изабран садржај за резервну копију.\n\nМолимо омогућите бар једну опцију у одељку изнад.", + "alert_backup_created_title": "Резервна копија је направљена", + "alert_backup_created_msg": "Ваша резервна копија је направљена и спремна за дељење.", + "alert_backup_failed_title": "Прављење резервне копије није успело", + "alert_restore_confirm_title": "Потврди враћање", + "alert_restore_confirm_msg": "Ово ће вратити ваше податке из резервне копије направљене {{date}}.\n\nОва радња ће преписати ваше тренутне податке. Да ли сте сигурни да желите да наставите?", + "alert_restore_complete_title": "Враћање завршено", + "alert_restore_complete_msg": "Ваши подаци су успешно враћени. Молимо поново покрените апликацију да бисте видели промене.", + "alert_restore_failed_title": "Враћање није успело", + "restart_app": "Поново покрени апликацију", + "alert_restart_failed_title": "Поновно покретање није успело", + "alert_restart_failed_msg": "Неуспело поновно покретање апликације. Молимо ручно затворите и отворите апликацију." + }, + "updates": { + "title": "Ажурирања апликације", + "status_checking": "Провера ажурирања...", + "status_available": "Ажурирање је доступно!", + "status_downloading": "Преузимање ажурирања...", + "status_installing": "Инсталирање ажурирања...", + "status_success": "Ажурирање успешно инсталирано!", + "status_error": "Ажурирање није успело", + "status_ready": "Спремно за проверу ажурирања", + "action_check": "Провери ажурирања", + "action_install": "Инсталирај ажурирање", + "release_notes": "Белешке о верзији:", + "version": "Верзија:", + "last_checked": "Последња провера:", + "current_version": "Тренутна верзија:", + "current_release_notes": "Белешке о тренутној верзији:", + "github_release": "GITHUB ИЗДАЊЕ", + "current": "Тренутно:", + "latest": "Најновије:", + "notes": "Белешке:", + "view_release": "Види издање", + "notification_settings": "ПОДЕШАВАЊА ОБАВЕШТЕЊА", + "ota_alerts_label": "OTA обавештења о ажурирању", + "ota_alerts_desc": "Прикажи обавештења за бежична (over-the-air) ажурирања", + "major_alerts_label": "Обавештења о главним ажурирањима", + "major_alerts_desc": "Прикажи обавештења за нове верзије апликације на GitHub-у", + "alert_disable_ota_title": "Онемогући OTA обавештења?", + "alert_disable_ota_msg": "Више нећете примати аутоматска обавештења за OTA ажурирања.\n\n⚠️ Упозорење: Остати на најновијој верзији је важно за:\n• Исправке грешака и стабилност\n• Нове функције и побољшања\n• Пружање тачних повратних информација\n\nИ даље можете ручно проверити ажурирања на овом екрану.", + "alert_disable_major_title": "Онемогући главна обавештења?", + "alert_disable_major_msg": "Више нећете примати обавештења за главна ажурирања која захтевају поновну инсталацију.\n\n⚠️ Упозорење: Главна ажурирања често укључују:\n• Критичне сигурносне закрпе\n• Велике промене које захтевају реинсталацију\n• Важне исправке компатибилности\n\nИ даље можете ручно проверити ажурирања.", + "warning_note": "Држање обавештења омогућеним осигурава да примате исправке и побољшања.", + "disable": "Онемогући", + "alert_no_update_to_install": "Нема доступног ажурирања за инсталацију", + "alert_install_failed": "Инсталација ажурирања није успела", + "alert_no_update_title": "Нема ажурирања", + "alert_update_applied_msg": "Ажурирање ће бити примењено при следећем покретању апликације" + }, + "player": { + "title": "Видео плејер", + "section_selection": "ИЗБОР ПЛЕЈЕРА", + "internal_title": "Уграђени плејер", + "internal_desc": "Користите подразумевани плејер апликације", + "vlc_title": "VLC", + "vlc_desc": "Отвори стримове у VLC плејеру", + "infuse_title": "Infuse", + "infuse_desc": "Отвори стримове у Infuse плејеру", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Отвори стримове у OutPlayer-у", + "vidhub_title": "VidHub", + "vidhub_desc": "Отвори стримове у VidHub плејеру", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Отвори стримове у Infuse плејеру преко LiveContainer-а", + "external_title": "Спољни плејер", + "external_desc": "Отвори стримове у вашем омиљеном плејеру", + "section_playback": "ОПЦИЈЕ РЕПРОДУКЦИЈЕ", + "skip_intro_settings_title": "Прескочи увод", + "powered_by_introdb": "Покреће IntroDB", + "autoplay_title": "Аутоматски пусти први стрим", + "autoplay_desc": "Аутоматски покрени први стрим приказан на листи.", + "resume_title": "Увек настави", + "resume_desc": "Прескочи питање о наставку и аутоматски настави тамо где сте стали (ако је одгледано мање од 85%).", + "engine_title": "Енџин видео плејера", + "engine_desc": "Ауто користи ExoPlayer са MPV резервом. Неки формати као што су Dolby Vision и HDR можда нису подржани у MPV-у, па се препоручује Ауто.", + "decoder_title": "Режим декодера", + "decoder_desc": "Начин на који се видео декодира. Ауто се препоручује за најбољи баланс.", + "gpu_title": "GPU рендеровање", + "gpu_desc": "GPU-Next нуди бољи HDR и управљање бојама.", + "external_downloads_title": "Спољни плејер за преузимања", + "external_downloads_desc": "Пуштајте преузети садржај у вашем омиљеном спољном плејеру.", + "restart_required": "Потребно поновно покретање", + "restart_msg_decoder": "Молимо поново покрените апликацију да би промене декодера ступиле на снагу.", + "restart_msg_gpu": "Молимо поново покрените апликацију да би промене GPU режима ступиле на снагу.", + "option_auto": "Ауто", + "option_auto_desc_engine": "ExoPlayer + MPV резерва", + "option_mpv": "MPV", + "option_mpv_desc": "Само MPV", + "option_auto_desc_decoder": "Најбољи баланс", + "option_sw": "SW", + "option_sw_desc": "Софтверски", + "option_hw": "HW", + "option_hw_desc": "Хардверски", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Пуни HW", + "option_gpu_desc": "Стандардно", + "option_gpu_next_desc": "Напредно" + }, + "plugins": { + "title": "Прикључци", + "enable_title": "Омогући прикључке", + "enable_desc": "Омогућите енџин прикључака за решавање спољних извора медија", + "repo_config_title": "Конфигурација рипозиторијума", + "repo_config_desc": "Управљајте спољним рипозиторијумима прикључака. Укључите или искључите сваки испод.", + "your_repos": "Рипозиторијуми", + "your_repos_desc": "Конфигуришите спољне изворе за прикључке.", + "add_repo_button": "Додај рипозиторијум", + "refresh": "Освежи", + "remove": "Уклони", + "enabled": "Омогућено", + "disabled": "Онемогућено", + "updating": "Ажурирање...", + "success": "Успех", + "error": "Грешка", + "alert_repo_added": "Рипозиторијум је додат и прикључци су успешно учитани", + "alert_repo_saved": "URL рипозиторијума је успешно сачуван", + "alert_repo_refreshed": "Рипозиторијум је успешно освежен", + "alert_invalid_url": "Неважећи формат URL-а", + "alert_plugins_cleared": "Сви прикључци су уклоњени", + "alert_cache_cleared": "Кеш рипозиторијума је успешно обрисан", + "unknown": "Непознато", + "active": "Активно", + "available": "Доступно", + "platform_disabled": "Платформа онемогућена", + "limited": "Ограничено", + "clear_all": "Обриши све прикључке", + "clear_all_desc": "Да ли сте сигурни да желите да уклоните све инсталиране прикључке? Ова радња се не може поништити.", + "clear_cache": "Обриши кеш рипозиторијума", + "clear_cache_desc": "Ово ће уклонити сачувани URL рипозиторијума и обрисати све кеширане податке. Мораћете поново да унесете URL.", + "add_new_repo": "Додај нови рипозиторијум", + "available_plugins": "Доступни прикључци ({{count}})", + "placeholder": "Претражи прикључке...", + "all": "Све", + "filter_all": "Сви типови", + "filter_movies": "Филмови", + "filter_tv": "ТВ серије", + "enable_all": "Омогући све", + "disable_all": "Онемогући све", + "no_plugins_found": "Прикључци нису пронађени", + "no_plugins_available": "Нема доступних прикључака", + "no_match_desc": "Ниједан прикључак не одговара упиту \"{{query}}\". Покушајте са другим термином.", + "configure_repo_desc": "Конфигуришите рипозиторијум изнад да бисте видели доступне прикључке.", + "clear_search": "Обриши претрагу", + "no_external_player": "Нема спољног плејера", + "showbox_token": "ShowBox UI Токен", + "showbox_placeholder": "Залепите свој ShowBox UI токен", + "save": "Сачувај", + "clear": "Обриши", + "additional_settings": "Додатна подешавања", + "enable_url_validation": "Омогући валидацију URL-а", + "url_validation_desc": "Провери исправност URL-ова медија пре приказивања (може успорити резултате али побољшава поузданост)", + "group_streams": "Групиши изворе прикључака", + "group_streams_desc": "Када је омогућено, извори су груписани по рипозиторијуму. Када је онемогућено, сваки прикључак се приказује посебно.", + "sort_quality": "Сортирај прво по квалитету", + "sort_quality_desc": "Када је омогућено, извори се прво сортирају по квалитету. Доступно само када је груписање омогућено.", + "show_logos": "Прикажи логотипе прикључака", + "show_logos_desc": "Прикажи логотипе прикључака поред линкова на екрану са изворима.", + "quality_filtering": "Филтрирање квалитета", + "quality_filtering_desc": "Искључите одређене резолуције из резултата претраге. Додирните квалитет да бисте га искључили.", + "excluded_qualities": "Искључени квалитети:", + "language_filtering": "Филтрирање језика", + "language_filtering_desc": "Искључите одређене језике из резултата претраге. Додирните језик да бисте га искључили.", + "note": "Напомена:", + "language_filtering_note": "Овај филтер се примењује само на провајдере који укључују информације о језику.", + "excluded_languages": "Искључени језици:", + "about_title": "О прикључцима", + "about_desc_1": "Прикључци су модуларне компоненте које прилагођавају садржај из различитих спољних протокола. Покрећу се локално на вашем уређају.", + "about_desc_2": "Прикључци означени као \"Ограничено\" могу захтевати специфичне спољне конфигурације.", + "help_title": "Подешавање прикључака", + "help_step_1": "1. **Омогући прикључке** - Укључите главни прекидач", + "help_step_2": "2. **Додај рипозиторијум** - Унесите важећи URL рипозиторијума", + "help_step_3": "3. **Освежи рипозиторијум** - Преузмите доступне прикључке", + "help_step_4": "4. **Активирај** - Омогућите прикључке које желите да користите", + "got_it": "Разумем!", + "repo_format_hint": "Формат: https://raw.githubusercontent.com/корисник/репо/refs/heads/грана", + "cancel": "Откажи", + "add": "Додај" + }, + "theme": { + "title": "Теме апликације", + "select_theme": "ИЗАБЕРИ ТЕМУ", + "create_custom": "Направи прилагођену тему", + "options": "ОПЦИЈЕ", + "use_dominant_color": "Користи доминантну боју са постера", + "categories": { + "all": "Све теме", + "dark": "Тамне теме", + "colorful": "Шарене", + "custom": "Моје теме" + }, + "editor": { + "theme_name_placeholder": "Назив теме", + "save": "Сачувај", + "primary": "Примарна", + "secondary": "Секундарна", + "background": "Позадина", + "invalid_name_title": "Неважећи назив", + "invalid_name_msg": "Молимо унесите важећи назив теме" + }, + "alerts": { + "delete_title": "Обриши тему", + "delete_msg": "Да ли сте сигурни да желите да обришете \"{{name}}\"?", + "ok": "У реду", + "delete": "Обриши", + "cancel": "Откажи", + "back": "Подешавања" + } + }, + "legal": { + "title": "Правне напомене и одрицање одговорности", + "intro_title": "Природа апликације", + "intro_text": "Nuvio је медија плејер и апликација за управљање метаподацима. Он делује искључиво као интерфејс на страни клијента за прегледање јавно доступних метаподатака и пуштање медијских датотека које обезбеђује корисник или додаци трећих страна. Nuvio сам по себи не хостује, не складишти нити дистрибуира било какав медијски садржај.", + "extensions_title": "Прикључци трећих страна", + "extensions_text": "Nuvio користи архитектуру која омогућава корисницима да инсталирају прикључке трећих страна. Ове прикључке развијају независни програмери који нису повезани са Nuvio-м. Немамо контролу над садржајем, законитошћу или функционалношћу било ког прикључка треће стране.", + "user_resp_title": "Одговорност корисника", + "user_resp_text": "Корисници су искључиво одговорни за прикључке које инсталирају и садржај којем приступају. Коришћењем ове апликације, сагласни сте да ћете осигурати да имате законско право на приступ садржају који гледате. Програмери Nuvio-а не подржавају нити подстичу кршење ауторских права.", + "dmca_title": "Ауторска права и DMCA", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", + "warranty_title": "Без гаранције", + "warranty_text": "Овај софтвер се испоручује \"какав јесте\", без икакве гаранције. Аутори ни у ком случају неће бити одговорни за било каква потраживања или штету насталу коришћењем овог софтвера." + }, + "plugin_tester": { + "title": "Тестер прикључака", + "subtitle": "Покрените скрапере и пратите логове у реалном времену", + "tabs": { + "individual": "Појединачно", + "repo": "Тестер рипозиторијума", + "code": "Код", + "logs": "Логови", + "results": "Резултати" + }, + "common": { + "error": "Грешка", + "success": "Успех", + "movie": "Филм", + "tv": "ТВ", + "tmdb_id": "TMDB ID", + "season": "Сезона", + "episode": "Епизода", + "running": "Покретање…", + "run_test": "Покрени тест", + "play": "Пусти", + "done": "Готово", + "test": "Тест", + "testing": "Тестирање…" + }, + "individual": { + "load_from_url": "Учитај са URL-а", + "load_from_url_desc": "Залепите сирови GitHub URL или локални IP и додирните преузми.", + "enter_url_error": "Молимо унесите URL", + "code_loaded": "Код је учитан са URL-а", + "fetch_error": "Неуспело преузимање: {{message}}", + "no_code_error": "Нема кода за покретање", + "plugin_code": "Код прикључка", + "focus_editor": "Фокусирај едитор кода", + "code_placeholder": "// Залепите код прикључка овде...", + "test_parameters": "Параметри теста", + "no_logs": "Још нема логова. Покрените тест да бисте видели излаз.", + "no_streams": "Још нема пронађених стримова.", + "streams_found": "Пронађен {{count}} стрим", + "streams_found_plural": "Пронађено {{count}} стримова", + "tap_play_hint": "Додирните 'Пусти' да тестирате стрим у уграђеном плејеру.", + "unnamed_stream": "Неименовани стрим", + "quality": "Квалитет: {{quality}}", + "size": "Величина: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Хедери: {{count}} прилагођених хедера", + "find_placeholder": "Пронађи у коду…", + "edit_code_title": "Измени код", + "no_url_stream_error": "Није пронађен URL за овај стрим" + }, + "repo": { + "title": "Тестер рипозиторијума", + "description": "Преузмите рипозиторијум и тестирајте сваког провајдера.", + "enter_repo_url_error": "Молимо унесите URL рипозиторијума", + "invalid_url_title": "Неважећи URL", + "invalid_url_msg": "Користите GitHub raw URL или локални http(s) URL.", + "manifest_build_error": "Није могуће изградити URL манифеста", + "manifest_fetch_error": "Неуспело преузимање манифеста", + "repo_manifest_fetch_error": "Неуспело преузимање манифеста рипозиторијума", + "missing_filename": "Недостаје име датотеке у манифесту", + "scraper_build_error": "Није могуће изградити URL скрапера", + "download_scraper_error": "Неуспело преузимање скрапера", + "test_failed": "Тест није успео", + "test_parameters": "Параметри теста рипозиторијума", + "test_parameters_desc": "Ови параметри се користе само за Тестер рипозиторијума.", + "using_info": "Користи се: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Користи се: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Провајдери", + "repository_default": "Рипозиторијум", + "providers_count": "{{count}} провајдера", + "fetch_hint": "Преузмите репо да излистате провајдере.", + "test_all": "Тестирај све", + "status_running": "ПОКРЕНУТО", + "status_ok": "У РЕДУ ({{count}})", + "status_ok_empty": "У РЕДУ (0)", + "status_failed": "НИЈЕ УСПЕЛО", + "status_idle": "МИРОВАЊЕ", + "tried_url": "Покушан URL: {{url}}", + "provider_logs": "Логови провајдера", + "no_logs_captured": "Нема забележених логова." + } + } +} diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 9bb550f5..5c2729fb 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -896,8 +896,8 @@ }, "debrid": { "title": "Debrid 集成", - "description_torbox": "通过集成 Torbox 解锁 4K 高质量流媒体和闪电般的速度。在下方输入您的 API 密钥以立即升级您的流媒体体验。", - "description_torrentio": "配置 Torrentio 以获取电影和电视节目的 Torrent 流。需要 Debrid 服务才能流式传输内容。", + "description_torbox": "Connect Torbox to use your account-based source preferences. Enter your API key below to configure the integration.", + "description_torrentio": "Configure Torrentio as an external source integration. A compatible debrid account may be required depending on your setup.", "tab_torbox": "TorBox", "tab_torrentio": "Torrentio", "status_connected": "已连接", @@ -924,15 +924,15 @@ "enter_api_key": "输入您的 API 密钥", "connect_button": "连接并安装", "connecting": "正在连接...", - "unlock_speeds_title": "解锁高级速度", - "unlock_speeds_desc": "获取 Torbox 订阅以访问零缓冲的缓存高质量流媒体。", + "unlock_speeds_title": "Optional Torbox Subscription", + "unlock_speeds_desc": "Torbox offers account tiers with enhanced performance and availability features.", "get_subscription": "获取订阅", "powered_by": "技术支持", "disclaimer_torbox": "Nuvio 与 Torbox 没有任何关联。", "disclaimer_torrentio": "Nuvio 与 Torrentio 没有任何关联。", "installed_badge": "✓ 已安装", "promo_title": "⚡ 需要 Debrid 服务?", - "promo_desc": "获取 TorBox 以获得零缓冲的闪电般 4K 流媒体。高级缓存 Torrent 和即时下载。", + "promo_desc": "Use TorBox if you want account-managed performance features for supported integrations.", "promo_button": "获取 TorBox 订阅", "service_label": "Debrid 服务 *", "api_key_label": "API 密钥 *", @@ -1324,7 +1324,7 @@ "user_resp_title": "用户责任", "user_resp_text": "用户对其安装的插件和访问的内容负全责。使用本应用程序即表示您同意确保您拥有使用 Nuvio 访问任何内容的合法权利。Nuvio 的开发者不认可或鼓励侵犯版权。", "dmca_title": "版权与 DMCA", - "dmca_text": "我们尊重他人的知识产权。由于 Nuvio 不托管任何内容,我们无法从互联网上移除内容。但是,如果您认为应用程序界面本身侵犯了您的权利,请联系我们。", + "dmca_text": "We respect the intellectual property rights of others. Nuvio does not host media content. If you believe this project's code, assets, or interface infringes your rights, submit a notice through the official project contact channels listed on the website and repository.", "warranty_title": "无担保", "warranty_text": "本软件“按原样”提供,不提供任何明示或暗示的担保。在任何情况下,作者或版权持有人均不对因使用本软件而引起的任何索赔、损害或其他责任负责。" }, diff --git a/src/screens/PluginsScreen.tsx b/src/screens/PluginsScreen.tsx index 626fe0c7..7b3387ee 100644 --- a/src/screens/PluginsScreen.tsx +++ b/src/screens/PluginsScreen.tsx @@ -1085,7 +1085,7 @@ const PluginsScreen: React.FC = () => { if (!url.startsWith('https://raw.githubusercontent.com/') && !url.startsWith('http://')) { openAlert( t('plugins.alert_invalid_url'), - 'Please use a valid GitHub raw URL format:\n\nhttps://raw.githubusercontent.com/username/repo/refs/heads/branch\n\nor include manifest.json:\nhttps://raw.githubusercontent.com/username/repo/refs/heads/branch/manifest.json\n\nExample:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/master' + 'Please use a valid GitHub raw URL format:\n\nhttps://raw.githubusercontent.com/username/repo/refs/heads/branch\n\nor include manifest.json:\nhttps://raw.githubusercontent.com/username/repo/refs/heads/branch/manifest.json\n\nExample:\nhttps://raw.githubusercontent.com/your-username/your-repo/refs/heads/main' ); return; } @@ -1291,7 +1291,7 @@ const PluginsScreen: React.FC = () => { if (!url.startsWith('https://raw.githubusercontent.com/') && !url.startsWith('http://')) { openAlert( 'Invalid URL Format', - 'Please use a valid GitHub raw URL format:\n\nhttps://raw.githubusercontent.com/username/repo/refs/heads/branch\n\nExample:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/master' + 'Please use a valid GitHub raw URL format:\n\nhttps://raw.githubusercontent.com/username/repo/refs/heads/branch\n\nExample:\nhttps://raw.githubusercontent.com/your-username/your-repo/refs/heads/main' ); return; } @@ -1413,11 +1413,6 @@ const PluginsScreen: React.FC = () => { ); }; - const handleUseDefaultRepo = () => { - const defaultUrl = 'https://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main'; - setRepositoryUrl(defaultUrl); - }; - const handleToggleLocalScrapers = async (enabled: boolean) => { await updateSetting('enableLocalScrapers', enabled); @@ -2250,4 +2245,4 @@ const PluginsScreen: React.FC = () => { ); }; -export default PluginsScreen; \ No newline at end of file +export default PluginsScreen; From 8a4aa640742de473ff5540402d5a57c6b49a3f5d Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Thu, 12 Feb 2026 13:02:19 +0530 Subject: [PATCH 212/285] update player icon --- .../player-icons/ic_player_aspect_ratio.svg | 4 +++ .../player-icons/ic_player_audio_filled.svg | 6 ++++ .../player-icons/ic_player_audio_outline.svg | 6 ++++ assets/player-icons/ic_player_episodes.svg | 4 +++ assets/player-icons/ic_player_pause.svg | 5 +++ assets/player-icons/ic_player_play.svg | 4 +++ assets/player-icons/ic_player_source.svg | 4 +++ assets/player-icons/ic_player_subtitles.svg | 4 +++ .../player/controls/PlayerControls.tsx | 36 +++++++++++-------- 9 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 assets/player-icons/ic_player_aspect_ratio.svg create mode 100644 assets/player-icons/ic_player_audio_filled.svg create mode 100644 assets/player-icons/ic_player_audio_outline.svg create mode 100644 assets/player-icons/ic_player_episodes.svg create mode 100644 assets/player-icons/ic_player_pause.svg create mode 100644 assets/player-icons/ic_player_play.svg create mode 100644 assets/player-icons/ic_player_source.svg create mode 100644 assets/player-icons/ic_player_subtitles.svg diff --git a/assets/player-icons/ic_player_aspect_ratio.svg b/assets/player-icons/ic_player_aspect_ratio.svg new file mode 100644 index 00000000..12b2f7b6 --- /dev/null +++ b/assets/player-icons/ic_player_aspect_ratio.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/player-icons/ic_player_audio_filled.svg b/assets/player-icons/ic_player_audio_filled.svg new file mode 100644 index 00000000..2961dd6a --- /dev/null +++ b/assets/player-icons/ic_player_audio_filled.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/player-icons/ic_player_audio_outline.svg b/assets/player-icons/ic_player_audio_outline.svg new file mode 100644 index 00000000..87c64646 --- /dev/null +++ b/assets/player-icons/ic_player_audio_outline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/player-icons/ic_player_episodes.svg b/assets/player-icons/ic_player_episodes.svg new file mode 100644 index 00000000..c09c7205 --- /dev/null +++ b/assets/player-icons/ic_player_episodes.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/player-icons/ic_player_pause.svg b/assets/player-icons/ic_player_pause.svg new file mode 100644 index 00000000..69f83449 --- /dev/null +++ b/assets/player-icons/ic_player_pause.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/player-icons/ic_player_play.svg b/assets/player-icons/ic_player_play.svg new file mode 100644 index 00000000..d375a176 --- /dev/null +++ b/assets/player-icons/ic_player_play.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/player-icons/ic_player_source.svg b/assets/player-icons/ic_player_source.svg new file mode 100644 index 00000000..1e79c2a3 --- /dev/null +++ b/assets/player-icons/ic_player_source.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/player-icons/ic_player_subtitles.svg b/assets/player-icons/ic_player_subtitles.svg new file mode 100644 index 00000000..bf8041e3 --- /dev/null +++ b/assets/player-icons/ic_player_subtitles.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/player/controls/PlayerControls.tsx b/src/components/player/controls/PlayerControls.tsx index 29861710..18084de0 100644 --- a/src/components/player/controls/PlayerControls.tsx +++ b/src/components/player/controls/PlayerControls.tsx @@ -12,6 +12,14 @@ import { useSettings } from '../../../hooks/useSettings'; import { introService } from '../../../services/introService'; import { toastService } from '../../../services/toastService'; +import PlayerAspectRatioIcon from '../../../../assets/player-icons/ic_player_aspect_ratio.svg'; +import PlayerAudioFilledIcon from '../../../../assets/player-icons/ic_player_audio_filled.svg'; +import PlayerAudioOutlineIcon from '../../../../assets/player-icons/ic_player_audio_outline.svg'; +import PlayerEpisodesIcon from '../../../../assets/player-icons/ic_player_episodes.svg'; +import PlayerPauseIcon from '../../../../assets/player-icons/ic_player_pause.svg'; +import PlayerPlayIcon from '../../../../assets/player-icons/ic_player_play.svg'; +import PlayerSourceIcon from '../../../../assets/player-icons/ic_player_source.svg'; +import PlayerSubtitlesIcon from '../../../../assets/player-icons/ic_player_subtitles.svg'; interface PlayerControlsProps { showControls: boolean; @@ -498,11 +506,11 @@ export const PlayerControls: React.FC = ({ {isBuffering ? ( ) : ( - + paused ? ( + + ) : ( + + ) )} @@ -594,7 +602,7 @@ export const PlayerControls: React.FC = ({ {/* Left Side: Aspect Ratio Button */} - + {/* Subtitle Button */} @@ -602,7 +610,7 @@ export const PlayerControls: React.FC = ({ style={styles.iconButton} onPress={() => setShowSubtitleModal(!isSubtitleModalOpen)} > - + {/* Change Source Button */} @@ -611,7 +619,7 @@ export const PlayerControls: React.FC = ({ style={styles.iconButton} onPress={() => setShowSourcesModal(true)} > - + )} @@ -626,11 +634,11 @@ export const PlayerControls: React.FC = ({ onPress={() => setShowAudioModal(true)} disabled={ksAudioTracks.length <= 1} > - + {ksAudioTracks.length <= 1 ? ( + + ) : ( + + )} {/* Submit Intro Button */} @@ -653,7 +661,7 @@ export const PlayerControls: React.FC = ({ style={styles.iconButton} onPress={() => setShowEpisodesModal(true)} > - + )} From 40de18fa7b205215499865096bb325d589bf83fe Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:49:51 +0100 Subject: [PATCH 213/285] Added Romanian lang --- src/i18n/locales/ro.json | 1433 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1433 insertions(+) create mode 100644 src/i18n/locales/ro.json diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json new file mode 100644 index 00000000..c0643d66 --- /dev/null +++ b/src/i18n/locales/ro.json @@ -0,0 +1,1433 @@ +{ + "common": { + "loading": "Se încarcă...", + "cancel": "Anulează", + "save": "Salvează", + "delete": "Șterge", + "edit": "Editează", + "search": "Caută", + "error": "Eroare", + "success": "Succes", + "ok": "OK", + "unknown": "Necunoscut", + "retry": "Reîncearcă", + "try_again": "Încearcă din nou", + "go_back": "Înapoi", + "settings": "Setări", + "close": "Închide", + "enable": "Activează", + "disable": "Dezactivează", + "show_more": "Afișează mai mult", + "show_less": "Afișează mai puțin", + "load_more": "Încarcă mai mult", + "unknown_date": "Dată necunoscută", + "anonymous_user": "Utilizator anonim", + "time": { + "now": "Chiar acum", + "minutes_ago": "Acum {{count}}m", + "hours_ago": "Acum {{count}}h", + "days_ago": "Acum {{count}}z" + }, + "days_short": { + "sun": "Dum", + "mon": "Lun", + "tue": "Mar", + "wed": "Mie", + "thu": "Joi", + "fri": "Vin", + "sat": "Sâm" + }, + "email": "Email", + "status": "Stare" + }, + "home": { + "categories": { + "movies": "Filme", + "series": "Seriale", + "channels": "Canale" + }, + "movies": "Filme", + "tv_shows": "Seriale TV", + "load_more_catalogs": "Încarcă mai multe cataloage", + "no_content": "Niciun conținut disponibil", + "add_catalogs": "Adaugă cataloage", + "sign_in_available": "Autentificare disponibilă", + "sign_in_desc": "Te poți autentifica oricând din Setări → Cont", + "view_all": "Vezi tot", + "this_week": "Săptămâna aceasta", + "upcoming": "Viitoare", + "recently_released": "Lansate recent", + "no_scheduled_episodes": "Seriale fără episoade programate", + "check_back_later": "Revino mai târziu", + "continue_watching": "Continuă vizionarea", + "up_next": "Urmează", + "up_next_caps": "URMEAZĂ", + "released": "Lansat", + "new": "Nou", + "tba": "Va fi anunțat", + "new_episodes": "{{count}} episoade noi", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Sezonul {{season}}", + "episode": "Episodul {{episode}}", + "movie": "Film", + "series": "Serial", + "tv_show": "Serial TV", + "percent_watched": "{{percent}}% vizionat", + "view_details": "Vezi detalii", + "remove": "Elimină", + "play": "Redă", + "play_now": "Redă acum", + "resume": "Reia", + "info": "Info", + "more_info": "Mai multe info", + "my_list": "Lista mea", + "save": "Salvează", + "saved": "Salvat", + "retry": "Reîncearcă", + "install_addons": "Instalează extensii", + "settings": "Setări", + "no_featured_content": "Niciun conținut recomandat", + "couldnt_load_featured": "Nu s-a putut încărca conținutul recomandat", + "no_featured_desc": "Instalează extensii cu cataloage sau schimbă sursa de conținut din setări.", + "load_error_desc": "A apărut o problemă la preluarea conținutului. Te rugăm să verifici conexiunea și să încerci din nou.", + "no_featured_available": "Niciun conținut recomandat disponibil", + "no_description": "Nicio descriere disponibilă" + }, + "navigation": { + "home": "Acasă", + "library": "Bibliotecă", + "search": "Căutare", + "downloads": "Descărcări", + "settings": "Setări" + }, + "search": { + "title": "Căutare", + "recent_searches": "Căutări recente", + "discover": "Descoperă", + "movies": "Filme", + "tv_shows": "Seriale TV", + "select_catalog": "Selectează catalogul", + "all_genres": "Toate genurile", + "discovering": "Se descoperă conținut...", + "show_more": "Arată mai mult ({{count}})", + "no_content_found": "Niciun conținut găsit", + "try_different": "Încearcă un alt gen sau catalog", + "select_catalog_desc": "Selectează un catalog pentru a descoperi", + "tap_catalog_desc": "Apasă pe cipul catalogului de mai sus pentru a începe", + "placeholder": "Caută filme, seriale...", + "keep_typing": "Continuă să scrii...", + "type_characters": "Scrie cel puțin 2 caractere pentru a căuta", + "no_results": "Niciun rezultat găsit", + "try_keywords": "Încearcă alte cuvinte cheie sau verifică ortografia", + "select_type": "Selectează tipul", + "browse_movies": "Răsfoiește cataloage de filme", + "browse_tv": "Răsfoiește cataloage de seriale TV", + "select_genre": "Selectează genul", + "show_all_content": "Arată tot conținutul", + "genres_count": "{{count}} genuri" + }, + "library": { + "title": "Bibliotecă", + "watched": "Vizonate", + "continue": "Continuă", + "watchlist": "Listă de vizionare", + "collection": "Colecție", + "rated": "Apreciate", + "items": "elemente", + "trakt_collections": "Colecții Trakt", + "trakt_collection": "Colecție Trakt", + "no_trakt": "Nicio colecție Trakt", + "no_trakt_desc": "Colecțiile tale Trakt vor apărea aici după ce începi să folosești Trakt", + "load_collections": "Încarcă colecțiile", + "empty_folder": "Niciun conținut în {{folder}}", + "empty_folder_desc": "Această colecție este goală", + "refresh": "Reîmprospătează", + "no_movies": "Încă nu sunt filme", + "no_series": "Încă nu sunt seriale", + "no_content": "Încă nu există conținut", + "add_content_desc": "Adaugă conținut în bibliotecă pentru a-l vedea aici", + "find_something": "Găsește ceva de vizionat", + "removed_from_library": "Eliminat din bibliotecă", + "item_removed": "Element eliminat din bibliotecă", + "failed_update_library": "Eșec la actualizarea bibliotecii", + "unable_remove": "Nu s-a putut elimina elementul din bibliotecă", + "marked_watched": "Marcat ca vizionat", + "marked_unwatched": "Marcat ca nevizionat", + "item_marked_watched": "Element marcat ca vizionat", + "item_marked_unwatched": "Element marcat ca nevizionat", + "failed_update_watched": "Eșec la actualizarea stării de vizionare", + "unable_update_watched": "Nu s-a putut actualiza starea de vizionare", + "added_to_library": "Adăugat în bibliotecă", + "item_added": "Adăugat în biblioteca locală", + "add_to_library": "Adaugă în bibliotecă", + "remove_from_library": "Elimină din bibliotecă", + "mark_watched": "Marchează ca vizionat", + "mark_unwatched": "Marchează ca nevizionat", + "share": "Partajează", + "add_to_watchlist": "Adaugă în Watchlist Trakt", + "remove_from_watchlist": "Elimină din Watchlist Trakt", + "added_to_watchlist": "Adăugat în Watchlist", + "added_to_watchlist_desc": "Adăugat în lista de vizionare Trakt", + "removed_from_watchlist": "Eliminat din Watchlist", + "removed_from_watchlist_desc": "Eliminat din lista de vizionare Trakt", + "add_to_collection": "Adaugă în Colecția Trakt", + "remove_from_collection": "Elimină din Colecția Trakt", + "added_to_collection": "Adăugat în Colecție", + "added_to_collection_desc": "Adăugat în colecția ta Trakt", + "removed_from_collection": "Eliminat din Colecție", + "removed_from_collection_desc": "Eliminat din colecția ta Trakt" + }, + "metadata": { + "unable_to_load": "Nu s-a putut încărca conținutul", + "error_code": "Cod eroare: {{code}}", + "content_not_found": "Conținut negăsit", + "content_not_found_desc": "Acest conținut nu există sau a fost eliminat.", + "server_error": "Eroare de server", + "server_error_desc": "Serverul este temporar indisponibil. Te rugăm să încerci mai târziu.", + "bad_gateway": "Bad gateway", + "bad_gateway_desc": "Serverul întâmpină probleme. Te rugăm să încerci mai târziu.", + "service_unavailable": "Serviciu indisponibil", + "service_unavailable_desc": "Serviciul este în mentenanță. Te rugăm să încerci mai târziu.", + "too_many_requests": "Prea multe cereri", + "too_many_requests_desc": "Efectuezi prea multe cereri. Te rugăm să aștepți un moment.", + "request_timeout": "Cerere expirată", + "request_timeout_desc": "Cererea a durat prea mult. Te rugăm să încerci din nou.", + "network_error": "Eroare de rețea", + "network_error_desc": "Te rugăm să verifici conexiunea la internet.", + "auth_error": "Eroare de autentificare", + "auth_error_desc": "Te rugăm să verifici setările contului.", + "access_denied": "Acces respins", + "access_denied_desc": "Nu ai permisiunea de a accesa acest conținut.", + "connection_error": "Eroare de conexiune", + "streams_unavailable": "Surse indisponibile", + "streams_unavailable_desc": "Sursele de streaming sunt momentan indisponibile.", + "unknown_error": "Eroare necunoscută", + "something_went_wrong": "Ceva nu a mers bine. Încearcă din nou.", + "cast": "Distribuție", + "more_like_this": "Recomandări similare", + "collection": "Colecție", + "episodes": "Episoade", + "seasons": "Sezoane", + "posters": "Postere", + "banners": "Bannere", + "specials": "Speciale", + "season_number": "Sezonul {{number}}", + "episode_count": "{{count}} Episod", + "episode_count_plural": "{{count}} Episoade", + "no_episodes": "Niciun episod disponibil", + "no_episodes_for_season": "Niciun episod disponibil pentru Sezonul {{season}}", + "episodes_not_released": "Episoadele s-ar putea să nu fie lansate încă", + "no_description": "Nicio descriere disponibilă", + "episode_label": "EPISODUL {{number}}", + "watch_again": "Vizionează din nou", + "completed": "Finalizat", + "play_episode": "Redă S{{season}}E{{episode}}", + "play": "Redă", + "watched": "Vizionat", + "watched_on_trakt": "Vizionat pe Trakt", + "synced_with_trakt": "Sincronizat cu Trakt", + "saved": "Salvat", + "director": "Regizor", + "directors": "Regizori", + "creator": "Creator", + "creators": "Creatori", + "production": "Producție", + "network": "Rețea", + "mark_watched": "Marchează ca vizionat", + "mark_unwatched": "Marchează ca nevizionat", + "marking": "Se marchează...", + "removing": "Se elimină...", + "unmark_season": "Anulează marcarea Sezonului {{season}}", + "mark_season": "Marchează Sezonul {{season}}", + "resume": "Reia", + "spoiler_warning": "Avertisment Spoiler", + "spoiler_warning_desc": "Acest comentariu conține spoilere. Ești sigur că vrei să-l vezi?", + "cancel": "Anulează", + "reveal_spoilers": "Dezvăluie spoilere", + "movie_details": "Detalii Film", + "show_details": "Detalii Serial", + "tagline": "Slogan", + "status": "Stare", + "release_date": "Data lansării", + "runtime": "Durată", + "budget": "Buget", + "revenue": "Încasări", + "origin_country": "Țara de origine", + "original_language": "Limba originală", + "first_air_date": "Prima difuzare", + "last_air_date": "Ultima difuzare", + "total_episodes": "Total episoade", + "episode_runtime": "Durată episod", + "created_by": "Creat de", + "backdrop_gallery": "Galerie fundaluri", + "loading_episodes": "Se încarcă episoadele...", + "no_episodes_available": "Niciun episod disponibil", + "play_next": "Redă S{{season}}E{{episode}}", + "play_next_episode": "Redă următorul episod", + "save": "Salvează", + "percent_watched": "{{percent}}% vizionat", + "percent_watched_trakt": "{{percent}}% vizionat ({{traktPercent}}% pe Trakt)", + "synced_with_trakt_progress": "Sincronizat cu Trakt", + "using_trakt_progress": "Se folosește progresul Trakt", + "added_to_collection_hero": "Adăugat în Colecție", + "added_to_collection_desc_hero": "Adăugat în colecția ta Trakt", + "removed_from_collection_hero": "Eliminat din Colecție", + "removed_from_collection_desc_hero": "Eliminat din colecția ta Trakt", + "mark_as_watched": "Marchează ca vizionat", + "mark_as_unwatched": "Marchează ca nevizionat" + }, + "cast": { + "biography": "Biografie", + "known_for": "Cunoscut pentru", + "personal_info": "Informații personale", + "born_in": "Născut în {{place}}", + "filmography": "Filmografie", + "also_known_as": "Cunoscut și ca", + "no_info_available": "Nicio informație suplimentară disponibilă", + "as_character": "ca {{character}}", + "loading_details": "Se încarcă detaliile...", + "years_old": "{{age}} ani", + "view_filmography": "Vezi filmografia", + "filter": "Filtru", + "sort_by": "Sortează după", + "sort_popular": "Populare", + "sort_latest": "Ultimele", + "sort_upcoming": "Viitoare", + "upcoming_badge": "VIITOARE", + "coming_soon": "În curând", + "filmography_count": "Filmografie • {{count}} titluri", + "loading_filmography": "Se încarcă filmografia...", + "load_more_remaining": "Încarcă mai mult ({{count}} rămase)", + "alert_error_title": "Eroare", + "alert_error_message": "Nu s-a putut încărca \"{{title}}\". Încearcă mai târziu.", + "alert_ok": "OK", + "no_upcoming": "Nicio lansare viitoare disponibilă pentru acest actor", + "no_content": "Niciun conținut disponibil pentru acest actor", + "no_movies": "Niciun film disponibil pentru acest actor", + "no_tv": "Niciun serial disponibil pentru acest actor" + }, + "comments": { + "title": "Comentarii Trakt", + "spoiler_warning": "⚠️ Acest comentariu conține spoilere. Apasă pentru a vedea.", + "spoiler": "Spoiler", + "contains_spoilers": "Conține spoilere", + "reveal": "Dezvăluie", + "vip": "VIP", + "unavailable": "Comentarii indisponibile", + "no_comments": "Încă nu sunt comentarii pe Trakt", + "not_in_database": "Acest conținut s-ar putea să nu fie încă în baza de date Trakt", + "check_trakt": "Verifică Trakt" + }, + "trailers": { + "title": "Trailere", + "official_trailers": "Trailere Oficiale", + "official_trailer": "Trailer Oficial", + "teasers": "Teasere", + "teaser": "Teaser", + "clips_scenes": "Clipuri și Scene", + "clip": "Clip", + "featurettes": "Featurettes", + "featurette": "Featurette", + "behind_the_scenes": "În spatele scenelor", + "no_trailers": "Niciun trailer disponibil", + "unavailable": "Trailer Indisponibil", + "unavailable_desc": "Acest trailer nu a putut fi încărcat. Te rugăm să încerci mai târziu.", + "unable_to_play": "Nu s-a putut reda trailerul. Încearcă din nou.", + "watch_on_youtube": "Vizionează pe YouTube" + }, + "catalog": { + "no_content_found": "Niciun conținut găsit", + "no_content_filters": "Niciun conținut găsit pentru filtrele selectate", + "loading_content": "Se încarcă conținutul...", + "back": "Înapoi", + "in_theaters": "În cinematografe", + "all": "Toate", + "failed_tmdb": "Eșec la încărcarea conținutului de pe TMDB", + "movies": "Filme", + "tv_shows": "Seriale TV", + "channels": "Canale" + }, + "streams": { + "back_to_episodes": "Înapoi la Episoade", + "back_to_info": "Înapoi la Info", + "fetching_from": "Se preia de la:", + "no_sources_available": "Nicio sursă de streaming disponibilă", + "add_sources_desc": "Te rugăm să adaugi surse de streaming în setări", + "add_sources": "Adaugă surse", + "finding_streams": "Se caută fluxuri disponibile...", + "finding_best_stream": "Se caută cel mai bun flux pentru redare automată...", + "still_fetching": "Încă se preiau fluxurile…", + "no_streams_available": "Niciun flux disponibil", + "starting_best_stream": "Se pornește cel mai bun flux...", + "loading_more_sources": "Se încarcă mai multe surse..." + }, + "player_ui": { + "via": "prin {{name}}", + "audio_tracks": "Piste Audio", + "no_audio_tracks": "Nicio pistă audio disponibilă", + "playback_speed": "Viteză de redare", + "on_hold": "În așteptare", + "playback_error": "Eroare de redare", + "unknown_error": "A apărut o eroare necunoscută în timpul redării.", + "copy_error": "Copiază detaliile erorii", + "copied_to_clipboard": "Copiat în clipboard", + "dismiss": "Închide", + "continue_watching": "Continuă vizionarea", + "start_over": "O ia de la început", + "resume": "Reia", + "change_source": "Schimbă sursa", + "switching_source": "Se schimbă sursa...", + "no_sources_found": "Nicio sursă găsită", + "sources": "Surse", + "finding_sources": "Se caută surse...", + "unknown_source": "Sursă necunoscută", + "sources_limited": "Sursele pot fi limitate din cauza erorilor de furnizor.", + "episodes": "Episoade", + "specials": "Speciale", + "season": "Sezonul {{season}}", + "stream": "Flux {{number}}", + "subtitles": "Subtitrări", + "built_in": "Integrate", + "addons": "Extensii", + "style": "Stil", + "none": "Niciuna", + "search_online_subtitles": "Caută subtitrări online", + "preview": "Previzualizare", + "quick_presets": "Presetări rapide", + "default": "Implicit", + "yellow": "Galben", + "high_contrast": "Contrast ridicat", + "large": "Mare", + "core": "Core", + "font_size": "Dimensiune font", + "show_background": "Arată fundalul", + "advanced": "Avansat", + "position": "Poziție", + "text_color": "Culoare text", + "align": "Aliniere", + "bottom_offset": "Compensare jos", + "background_opacity": "Opacitate fundal", + "text_shadow": "Umbră text", + "on": "Pornit", + "off": "Oprit", + "outline_color": "Culoare contur", + "outline": "Contur", + "outline_width": "Grosime contur", + "letter_spacing": "Spațiere litere", + "line_height": "Înălțime rând", + "timing_offset": "Decalaj timp (s)", + "visual_sync": "Sincronizare vizuală", + "timing_hint": "Ajustează subtitrarea mai devreme (-) sau mai târziu (+) pentru sincronizare.", + "reset_defaults": "Resetează la implicite", + "mark_intro_start": "Marchează început intro", + "mark_intro_end": "Marchează sfârșit intro", + "intro_start_marked": "Început intro marcat", + "intro_submitted": "Intro trimis cu succes", + "intro_submit_failed": "Eșec la trimiterea intro-ului" + }, + "downloads": { + "title": "Descărcări", + "no_downloads": "Nicio descărcare încă", + "no_downloads_desc": "Conținutul descărcat va apărea aici pentru vizionare offline", + "explore": "Explorează conținut", + "path_copied": "Calea a fost copiată", + "path_copied_desc": "Calea fișierului local a fost copiată în clipboard", + "copied": "Copiat", + "incomplete": "Descărcare incompletă", + "incomplete_desc": "Descărcarea nu este încă finalizată", + "not_available": "Nu este disponibil", + "not_available_desc": "Calea fișierului local este disponibilă doar după finalizarea descărcării.", + "status_downloading": "Se descarcă", + "status_completed": "Finalizat", + "status_paused": "Pauzat", + "status_error": "Eroare", + "status_queued": "În coadă", + "status_unknown": "Necunoscut", + "provider": "Furnizor", + "streaming_playlist_warning": "S-ar putea să nu ruleze - playlist de streaming", + "remaining": "rămas", + "not_ready": "Descărcarea nu este gata", + "not_ready_desc": "Te rugăm să aștepți până când descărcarea se termină.", + "filter_all": "Toate", + "filter_active": "Active", + "filter_done": "Gata", + "filter_paused": "Pauzate", + "no_filter_results": "Nicio descărcare {{filter}}", + "try_different_filter": "Încearcă să selectezi un alt filtru", + "limitations_title": "Limitări descărcare", + "limitations_msg": "• Fișierele mai mici de 1MB sunt de obicei playlist-uri M3U8 și nu pot fi descărcate pentru vizionare offline. Acestea funcționează doar online.", + "remove_title": "Elimină descărcarea", + "remove_confirm": "Elimini \"{{title}}\"{{season_episode}}?", + "cancel": "Anulează", + "remove": "Elimină" + }, + "addons": { + "title": "Extensii", + "reorder_mode": "Mod Reordonare", + "reorder_info": "Extensiile de sus au prioritate mai mare la încărcarea conținutului", + "add_addon_placeholder": "URL Extensie", + "add_button": "Adaugă Extensie", + "my_addons": "Extensiile mele", + "community_addons": "Extensii comunitate", + "no_addons": "Nicio extensie instalată", + "uninstall_title": "Dezinstalează Extensia", + "uninstall_message": "Ești sigur că vrei să dezinstalezi {{name}}?", + "uninstall_button": "Dezinstalează", + "install_success": "Extensie instalată cu succes", + "install_error": "Eșec la instalarea extensiei", + "load_error": "Eșec la încărcarea extensiilor", + "fetch_error": "Eșec la preluarea detaliilor extensiei", + "invalid_url": "Te rugăm să introduci un URL de extensie valid", + "configure": "Configurează", + "version": "Versiune: {{version}}", + "installed_addons": "EXTENSII INSTALATE", + "reorder_drag_title": "TRAGE EXTENSIILE PENTRU REORDONARE", + "install": "Instalează", + "config_unavailable_title": "Configurare indisponibilă", + "config_unavailable_msg": "Nu s-a putut determina URL-ul de configurare pentru această extensie.", + "cannot_open_config_title": "Nu se poate deschide configurarea", + "cannot_open_config_msg": "URL-ul de configurare ({{url}}) nu poate fi deschis.", + "description": "Descriere", + "supported_types": "Tipuri suportate", + "catalogs": "Cataloage", + "no_description": "Nicio descriere disponibilă", + "overview": "PREZENTARE GENERALĂ", + "no_categories": "Nicio categorie", + "pre_installed": "PREINSTALAT" + }, + "trakt": { + "title": "Setări Trakt", + "settings_title": "Setări Trakt", + "connect_title": "Conectează-te cu Trakt", + "connect_desc": "Sincronizează istoricul, lista de vizionare și colecția cu Trakt.tv", + "sign_in": "Autentificare cu Trakt", + "sign_out": "Deconectare", + "sign_out_confirm": "Ești sigur că vrei să te deconectezi de la contul Trakt?", + "joined": "Membru din {{date}}", + "sync_settings_title": "Setări Sincronizare", + "sync_info": "Când ești conectat la Trakt, istoricul complet este sincronizat direct din API. Lista 'Continuă vizionarea' reflectă progresul tău global Trakt.", + "auto_sync_label": "Sincronizare automată progres", + "auto_sync_desc": "Sincronizează automat progresul vizionării cu Trakt", + "import_history_label": "Importă istoricul vizionărilor", + "import_history_desc": "Folosește \"Sincronizează acum\" pentru a importa istoricul de pe Trakt", + "sync_now_button": "Sincronizează acum", + "display_settings_title": "Setări Afișare", + "show_comments_label": "Arată comentariile Trakt", + "show_comments_desc": "Afișează comentariile Trakt în ecranele de detalii", + "maintenance_title": "În mentenanță", + "maintenance_unavailable": "Trakt Indisponibil", + "maintenance_desc": "Integrarea Trakt este temporar suspendată pentru mentenanță.", + "maintenance_button": "Serviciu în mentenanță", + "auth_success_title": "Conectat cu succes", + "auth_success_msg": "Contul tău Trakt a fost conectat cu succes.", + "auth_error_title": "Eroare de autentificare", + "auth_error_msg": "Eșec la finalizarea autentificării cu Trakt.", + "auth_error_generic": "A apărut o eroare în timpul autentificării.", + "sign_out_error": "Eșec la deconectarea de la Trakt.", + "sync_complete_title": "Sincronizare completă", + "sync_success_msg": "Sincronizarea progresului cu Trakt a fost realizată cu succes.", + "sync_error_msg": "Sincronizare eșuată. Te rugăm să încerci din nou." + }, + "simkl": { + "title": "Setări Simkl", + "settings_title": "Setări Simkl", + "connect_title": "Conectează-te cu Simkl", + "connect_desc": "Sincronizează istoricul de vizionare și urmărește ce vizionezi", + "sign_in": "Autentificare cu Simkl", + "sign_out": "Deconectare", + "sign_out_confirm": "Ești sigur că vrei să te deconectezi de la Simkl?", + "syncing_desc": "Elementele vizionate se sincronizează cu Simkl.", + "auth_success_title": "Conectat cu succes", + "auth_success_msg": "Contul tău Simkl a fost conectat cu succes.", + "auth_error_title": "Eroare de autentificare", + "auth_error_msg": "Eșec la finalizarea autentificării cu Simkl.", + "auth_error_generic": "A apărut o eroare în timpul autentificării.", + "sign_out_error": "Eșec la deconectarea de la Simkl.", + "config_error_title": "Eroare de configurare", + "config_error_msg": "Simkl Client ID lipsește din variabilele de mediu.", + "conflict_title": "Conflict", + "conflict_msg": "Nu te poți conecta la Simkl în timp ce Trakt este conectat. Te rugăm să deconectezi Trakt mai întâi.", + "disclaimer": "Nuvio nu este afiliat cu Simkl." + }, + "tmdb_settings": { + "title": "Setări TMDb", + "metadata_enrichment": "Îmbogățire Metadate", + "metadata_enrichment_desc": "Îmbunătățește metadatele conținutului cu date de la TMDb pentru detalii mai bune.", + "enable_enrichment": "Activează îmbogățirea", + "enable_enrichment_desc": "Completează metadatele extensiilor cu info despre distribuție, rating-uri, logo-uri și postere de la TMDb.", + "localized_text": "Text localizat", + "localized_text_desc": "Preia titlurile și descrierile în limba preferată de pe TMDb.", + "language": "Limbă", + "change": "Schimbă", + "logo_preview": "Previzualizare Logo", + "logo_preview_desc": "Previzualizarea arată cum vor apărea logo-urile localizate în limba selectată.", + "example": "Exemplu:", + "no_logo": "Niciun logo disponibil", + "enrichment_options": "Opțiuni de îmbogățire", + "enrichment_options_desc": "Controlează ce date sunt preluate de pe TMDb.", + "cast_crew": "Distribuție și Echipă", + "cast_crew_desc": "Actori, regizori, scriitori cu fotografii de profil", + "title_description": "Titlu și Descriere", + "title_description_desc": "Folosește titlul și descrierea localizată TMDb", + "title_logos": "Logo-uri titlu", + "title_logos_desc": "Imagini de înaltă calitate pentru titluri", + "banners_backdrops": "Bannere și Fundaluri", + "banners_backdrops_desc": "Imagini de fundal la rezoluție mare", + "certification": "Certificare conținut", + "certification_desc": "Clasificări de vârstă (PG-13, R, etc.)", + "recommendations": "Recomandări", + "recommendations_desc": "Sugestii de conținut similar", + "episode_data": "Date episoade", + "episode_data_desc": "Miniaturi episoade, info și variante de rezervă", + "season_posters": "Postere sezoane", + "season_posters_desc": "Imagini specifice pentru posterele de sezon", + "production_info": "Info Producție", + "production_info_desc": "Rețele și companii de producție cu logo-uri", + "movie_details": "Detalii Film", + "movie_details_desc": "Buget, încasări, durată, slogan", + "tv_details": "Detalii Serial TV", + "tv_details_desc": "Stare, număr sezoane, rețele, creatori", + "movie_collections": "Colecții de Filme", + "movie_collections_desc": "Filme din francize (Marvel, Star Wars, etc.)", + "api_configuration": "Configurare API", + "api_configuration_desc": "Configurează accesul API TMDb pentru funcționalitate sporită.", + "custom_api_key": "Cheie API personalizată", + "custom_api_key_desc": "Folosește propria cheie API TMDb pentru performanță mai bună.", + "custom_key_active": "Cheie API personalizată activă", + "api_key_required": "Cheie API obligatorie", + "api_key_placeholder": "Lipește cheia API TMDb (v3)", + "how_to_get_key": "Cum obțin o cheie API TMDb?", + "built_in_key_msg": "Se folosește cheia API integrată. Recomandăm folosirea propriei chei.", + "cache_size": "Dimensiune Cache", + "clear_cache": "Șterge Cache", + "cache_days": "Răspunsurile TMDb sunt stocate 7 zile pentru a îmbunătăți performanța", + "choose_language": "Alege Limba", + "choose_language_desc": "Selectează limba preferată pentru conținutul TMDb", + "popular": "Populare", + "all_languages": "Toate limbile", + "search_results": "Rezultate căutare", + "no_languages_found": "Nicio limbă găsită pentru \"{{query}}\"", + "clear_search": "Șterge căutarea", + "clear_cache_title": "Șterge Cache TMDB", + "clear_cache_msg": "Această acțiune va șterge toate datele TMDB stocate ({{size}}).", + "clear_cache_success": "Cache-ul TMDB a fost șters cu succes.", + "clear_cache_error": "Eșec la ștergerea cache-ului.", + "clear_api_key_title": "Șterge cheia API", + "clear_api_key_msg": "Ești sigur că vrei să elimini cheia personalizată și să revii la cea implicită?", + "clear_api_key_success": "Cheia API a fost ștearsă cu succes", + "clear_api_key_error": "Eșec la ștergerea cheii API", + "empty_api_key": "Cheia API nu poate fi goală.", + "invalid_api_key": "Cheie API invalidă. Te rugăm să verifici.", + "save_error": "A apărut o eroare la salvare. Încearcă din nou.", + "using_builtin_key": "Se folosește cheia API TMDb integrată.", + "using_custom_key": "Se folosește cheia ta personalizată TMDb.", + "enter_custom_key": "Te rugăm să introduci și să salvezi cheia personalizată.", + "key_verified": "Cheia API a fost verificată și salvată cu succes." + }, + { + "settings": { + "language": "Limbă", + "select_language": "Selectează limba", + "english": "Engleză", + "portuguese": "Portugheză", + "portuguese_br": "Portugheză (Brazilia)", + "portuguese_pt": "Portugheză (Portugalia)", + "german": "Germană", + "arabic": "Arabă", + "spanish": "Spaniolă", + "french": "Franceză", + "italian": "Italiană", + "croatian": "Croată", + "chinese": "Chineză (Simplificată)", + "hindi": "Hindi", + "serbian": "Sârbă", + "hebrew": "Ebraică", + "bulgarian": "Bulgară", + "polish": "Poloneză", + "czech": "Cehă", + "turkish": "Turcă", + "slovenian": "Slovenă", + "macedonian": "Macedoneană", + "russian": "Rusă", + "filipino": "Filipineză", + "dutch_nl": "Olandeză (Olanda)", + "romanian": "Română", + "account": "Cont", + "content_discovery": "Conținut și Descoperire", + "appearance": "Aspect", + "integrations": "Integrări", + "playback": "Redare", + "backup_restore": "Backup și Restaurare", + "updates": "Actualizări", + "about": "Despre", + "developer": "Dezvoltator", + "cache": "Cache", + "title": "Setări", + "settings_title": "Setări", + "sign_in_sync": "Autentifică-te pentru sincronizare", + "add_catalogs_sources": "Extensii, cataloage și surse", + "player_trailers_downloads": "Player, trailere, descărcări", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Verifică actualizări", + "clear_mdblist_cache": "Șterge Cache MDBList", + "cache_management": "GESTIONARE CACHE", + "downloads_counter": "descărcări și numărătoarea continuă", + "made_with_love": "Creat cu ❤️ de Tapframe și prietenii", + "sections": { + "information": "INFORMAȚII", + "account": "CONT", + "theme": "TEMĂ", + "layout": "DIAGRAMĂ", + "sources": "SURSE", + "catalogs": "CATALOAGE", + "discovery": "DESCOPERIRE", + "metadata": "METADATE", + "ai_assistant": "ASISTENT AI", + "video_player": "VIDEO PLAYER", + "audio_subtitles": "AUDIO ȘI SUBTITRĂRI", + "media": "MEDIA", + "notifications": "NOTIFICĂRI", + "testing": "TESTARE", + "danger_zone": "ZONĂ PERICULOASĂ" + }, + "items": { + "legal": "Juridic și Declinarea responsabilității", + "privacy_policy": "Politica de confidențialitate", + "report_issue": "Raportează o problemă", + "version": "Versiune", + "contributors": "Contribuitori", + "view_contributors": "Vezi toți contribuitorii", + "theme": "Temă", + "episode_layout": "Layout episoade", + "streams_backdrop": "Fundal fluxuri", + "streams_backdrop_desc": "Arată fundal încețoșat pe fluxurile mobile", + "addons": "Extensii", + "installed": "instalate", + "debrid_integration": "Integrare Debrid", + "debrid_desc": "Conectează Torbox", + "plugins": "Module", + "plugins_desc": "Gestionare module și depozite", + "catalogs": "Cataloage", + "active": "active", + "home_screen": "Ecran principal", + "home_screen_desc": "Layout și conținut", + "continue_watching": "Continuă vizionarea", + "continue_watching_desc": "Comportament cache și redare", + "show_discover": "Arată secțiunea Descoperă", + "show_discover_desc": "Afișează conținut de descoperit în Căutare", + "mdblist": "MDBList", + "mdblist_connected": "Conectat", + "mdblist_desc": "Activează pentru a adăuga evaluări și recenzii", + "simkl": "Simkl", + "simkl_connected": "Conectat", + "simkl_desc": "Urmărește ce vizionezi", + "tmdb": "TMDB", + "tmdb_desc": "Furnizor de metadate și logo-uri", + "openrouter": "OpenRouter API", + "openrouter_connected": "Conectat", + "openrouter_desc": "Adaugă cheia API pentru a activa chat-ul AI", + "video_player": "Video Player", + "built_in": "Integrat", + "external": "Extern", + "preferred_audio": "Limba audio preferată", + "preferred_subtitle": "Limba subtitrare preferată", + "subtitle_source": "Prioritate sursă subtitrare", + "auto_select_subs": "Selectare automată subtitrări", + "auto_select_subs_desc": "Selectează automat subtitrările care se potrivesc preferințelor tale", + "show_trailers": "Arată trailere", + "show_trailers_desc": "Afișează trailere în secțiunea hero", + "enable_downloads": "Activează descărcările", + "enable_downloads_desc": "Arată fila Descărcări și activează salvarea fluxurilor", + "notifications": "Notificări", + "notifications_desc": "Mementouri episoade", + "developer_tools": "Instrumente dezvoltator", + "developer_tools_desc": "Opțiuni de testare și depanare", + "test_onboarding": "Testează Onboarding", + "reset_onboarding": "Resetează Onboarding", + "test_announcement": "Testează Anunț", + "test_announcement_desc": "Arată suprapunerea cu noutăți", + "reset_campaigns": "Resetează Campanii", + "reset_campaigns_desc": "Șterge impresiile campaniilor", + "clear_all_data": "Șterge toate datele", + "clear_all_data_desc": "Resetează toate setările și datele cache" + }, + "options": { + "horizontal": "Orizontal", + "vertical": "Vertical", + "internal_first": "Mai întâi interne", + "internal_first_desc": "Preferă subtitrările încorporate, apoi cele externe", + "external_first": "Mai întâi externe", + "external_first_desc": "Preferă subtitrările din extensii, apoi cele încorporate", + "any_available": "Oricare disponibilă", + "any_available_desc": "Folosește prima pistă de subtitrare găsită" + }, + "clear_data_desc": "Această acțiune va reseta toate setările și va șterge toate datele cache. Ești sigur?", + "app_updates": "Actualizări aplicație", + "about_nuvio": "Despre Nuvio" + }, + "privacy": { + "title": "Confidențialitate și Date", + "settings_desc": "Control telemetrie și colectare date", + "info_title": "Confidențialitatea ta contează", + "info_description": "Controlează ce date sunt colectate și partajate. Analizele sunt dezactivate implicit, iar rapoartele de eroare sunt anonime.", + "analytics_enabled_title": "Analize activate", + "analytics_enabled_message": "Datele de utilizare vor fi colectate pentru a ajuta la îmbunătățirea aplicației. Poți dezactiva asta oricând.", + "disable_error_reporting_title": "Dezactivezi raportarea erorilor?", + "disable_error_reporting_message": "Dezactivarea raportării înseamnă că nu vom fi notificați de erorile sau problemele întâmpinate. Acest lucru poate afecta capacitatea noastră de a repara bug-urile.", + "enable_session_replay_title": "Activezi Reluarea Sesiunii?", + "enable_session_replay_message": "Reluarea sesiunii înregistrează ecranul când apar erori pentru a ne ajuta să înțelegem ce s-a întâmplat. Acest lucru poate capta conținut vizibil pe ecran.", + "enable_pii_title": "Activezi colectarea PII?", + "enable_pii_message": "Acest lucru permite colectarea informațiilor de identificare personală, cum ar fi adresa IP și detaliile dispozitivului. Aceste date ajută la diagnosticarea problemelor, dar cresc expunerea confidențialității.", + "disable_all_title": "Dezactivezi toată telemetria?", + "disable_all_message": "Acest lucru va dezactiva toate analizele, raportarea erorilor și reluarea sesiunii. Nu vom primi nicio dată despre utilizarea aplicației sau erori.", + "disable_all_button": "Dezactivează Tot", + "all_disabled_title": "Toată telemetria a fost dezactivată", + "all_disabled_message": "Colectarea datelor a fost oprită. Modificările intră în vigoare la următoarea repornire a aplicației.", + "reset_title": "Resetează la Recomandat", + "reset_message": "Setările de confidențialitate au fost resetate la valorile implicite (raportare erori activată, analize dezactivate).", + "section_analytics": "ANALIZE", + "analytics_title": "Analize de utilizare", + "analytics_description": "Colectează tipare de utilizare anonime și vizualizări de ecran", + "section_error_reporting": "RAPORTARE ERORI", + "error_reporting_title": "Rapoarte de eroare", + "error_reporting_description": "Trimite rapoarte de eroare anonime pentru a îmbunătăți stabilitatea", + "session_replay_title": "Reluare Sesiune", + "session_replay_description": "Înregistrează ecranul când apar erori", + "pii_title": "Include info dispozitiv", + "pii_description": "Trimite adresa IP și detaliile dispozitivului împreună cu rapoartele", + "section_quick_actions": "ACȚIUNI RAPIDE", + "disable_all": "Dezactivează toată telemetria", + "disable_all_desc": "Oprește orice colectare de date", + "reset_recommended": "Resetează la recomandat", + "reset_recommended_desc": "Valori implicite axate pe confidențialitate", + "section_learn_more": "AFLĂ MAI MULTE", + "privacy_policy": "Politica de confidențialitate", + "current_settings": "Rezumat setări actuale", + "summary_analytics": "Analize", + "summary_errors": "Rapoarte erori", + "summary_replay": "Reluare Sesiune", + "summary_pii": "Info Dispozitiv", + "restart_note_detailed": "* Modificările pentru analize și rapoarte de eroare intră în vigoare imediat. Setările pentru reluarea sesiunii și PII necesită repornirea aplicației." + }, + "ai_settings": { + "title": "Asistent AI", + "info_title": "Chat asistat de AI", + "info_desc": "Pune întrebări despre orice film sau episod de serial folosind AI avansat. Obține detalii despre intrigă, personaje, teme, curiozități și multe altele - totul bazat pe datele TMDB.", + "feature_1": "Context și analiză specifică episodului", + "feature_2": "Explicații despre intrigă și detalii personaje", + "feature_3": "Curiozități și fapte din spatele scenelor", + "feature_4": "Propria ta cheie API OpenRouter gratuită", + "api_key_section": "CHEIE API OPENROUTER", + "api_key_label": "Cheie API", + "api_key_desc": "Introdu cheia API OpenRouter pentru a activa funcțiile de chat AI", + "save_api_key": "Salvează Cheia API", + "saving": "Se salvează...", + "update": "Actualizează", + "remove": "Elimină", + "get_free_key": "Obține o cheie API gratuită de la OpenRouter", + "enable_chat": "Activează Chat AI", + "enable_chat_desc": "Când este activat, butonul „Întreabă AI” va apărea pe paginile de conținut.", + "chat_enabled": "Chat AI activat", + "chat_enabled_desc": "Acum poți pune întrebări despre filme și seriale. Caută butonul „Întreabă AI” pe paginile de conținut!", + "how_it_works": "Cum funcționează", + "how_it_works_desc": "• OpenRouter oferă acces la mai multe modele AI\n• Cheia ta API rămâne privată și sigură\n• Nivelul gratuit include limite de utilizare generoase\n• Conversați cu context despre episoade/filme specifice\n• Obțineți analize și explicații detaliate", + "error_invalid_key": "Te rugăm să introduci o cheie API validă", + "error_key_format": "Cheile API OpenRouter trebuie să înceapă cu „sk-or-”", + "success_saved": "Cheia API OpenRouter a fost salvată cu succes!", + "error_save": "Eșec la salvarea cheii API", + "confirm_remove_title": "Elimină Cheia API", + "confirm_remove_msg": "Ești sigur că vrei să elimini cheia API OpenRouter? Acest lucru va dezactiva funcțiile de chat AI.", + "success_removed": "Cheia API a fost eliminată cu succes", + "error_remove": "Eșec la eliminarea cheii API" + }, + "catalog_settings": { + "title": "Cataloage", + "layout_phone": "LAYOUT ECRAN CATALOG (TELEFON)", + "posters_per_row": "Postere pe rând", + "auto": "Auto", + "show_titles": "Arată titlurile posterelor", + "show_titles_desc": "Afișează textul titlului sub fiecare poster", + "phone_only_hint": "Se aplică doar telefoanelor. Tabletele păstrează layout-ul adaptiv.", + "catalogs_group": "Cataloage", + "enabled_count": "{{enabled}} din {{total}} activate", + "rename_hint": "Apasă lung pe un catalog pentru a-l redenumi", + "rename_modal_title": "Redenumește Catalogul", + "rename_placeholder": "Introdu noul nume al catalogului", + "error_save_name": "Nu s-a putut salva numele personalizat." + }, + "continue_watching_settings": { + "title": "Continuă vizionarea", + "playback_behavior": "COMPORTAMENT REDARE", + "use_cached": "Folosește fluxuri stocate (Cache)", + "use_cached_desc": "Când este activat, apăsarea pe elementele din „Continuă vizionarea” va deschide player-ul direct folosind fluxurile redate anterior. Când este dezactivat, deschide ecranul de conținut.", + "open_metadata": "Deschide ecranul de metadate", + "open_metadata_desc": "Când fluxurile cache sunt dezactivate, deschide ecranul de metadate în locul celui de fluxuri. Acesta arată detalii și permite selecția manuală.", + "card_appearance": "ASPECT CARD", + "card_style": "Stil card", + "card_style_desc": "Alege cum apar elementele „Continuă vizionarea” pe ecranul principal", + "wide": "Lat", + "poster": "Poster", + "cache_settings": "SETĂRI CACHE", + "cache_duration": "Durată Cache Flux", + "cache_duration_desc": "Cât timp să fie păstrate link-urile de flux înainte de a expira", + "important_note": "Notă importantă", + "important_note_text": "Nu toate link-urile de flux rămân active pe toată durata cache-ului. Timpii mai lungi pot duce la link-uri expirate. Dacă un link eșuează, aplicația va prelua fluxuri noi.", + "how_it_works": "Cum funcționează", + "how_it_works_cached": "• Fluxurile sunt stocate pentru durata selectată după redare\n• Fluxurile cache sunt validate înainte de utilizare\n• Dacă cache-ul este invalid sau expirat, revine la ecranul de conținut\n• „Folosește fluxuri stocate” controlează navigarea directă în player\n• „Deschide ecranul de metadate” apare doar când cache-ul este dezactivat", + "how_it_works_uncached": "• Când cache-ul este dezactivat, apăsarea pe elemente deschide ecranele de conținut\n• Opțiunea „Deschide ecranul de metadate” controlează ce ecran se deschide\n• Ecranul de metadate arată detalii și permite selecția manuală\n• Ecranul de fluxuri arată sursele disponibile pentru redare imediată", + "changes_saved": "Modificări salvate", + "min": "min", + "hour": "oră", + "hours": "ore" + }, + "contributors": { + "title": "Contribuitori", + "special_mentions": "Mențiuni Speciale", + "tab_contributors": "Contribuitori", + "tab_special": "Mențiuni Speciale", + "tab_donors": "Donatori", + "manager_role": "Community Manager", + "manager_desc": "Gestionează comunitățile Discord și Reddit pentru Nuvio", + "sponsor_role": "Sponsor Server", + "sponsor_desc": "A sponsorizat infrastructura de servere pentru Nuvio", + "mod_role": "Mod Discord", + "mod_desc": "Ajută la moderarea comunității Nuvio pe Discord", + "loading": "Se încarcă...", + "discord_user": "Utilizator Discord", + "contributions": "contribuții", + "gratitude_title": "Suntem recunoscători pentru fiecare contribuție", + "gratitude_desc": "Fiecare linie de cod, raport de eroare și sugestie ajută la îmbunătățirea Nuvio pentru toți", + "special_thanks_title": "Mulțumiri Speciale", + "special_thanks_desc": "Acești oameni minunați ajută la menținerea comunității Nuvio și a serverelor online", + "donors_desc": "Vă mulțumim pentru că credeți în ceea ce construim. Sprijinul vostru menține Nuvio gratuit și în continuă îmbunătățire.", + "latest_donations": "Ultimele", + "leaderboard": "Clasament", + "loading_donors": "Se încarcă donatorii…", + "no_donors": "Încă nu sunt donatori", + "error_rate_limit": "Limita API GitHub a fost depășită. Reîncearcă mai târziu.", + "error_failed": "Eșec la încărcarea contribuitorilor. Verifică conexiunea la internet.", + "retry": "Încearcă din nou", + "no_contributors": "Niciun contribuitor găsit", + "loading_contributors": "Se încarcă contribuitorii..." + }, + "debrid": { + "title": "Integrare Debrid", + "description_torbox": "Deblochează fluxuri 4K de înaltă calitate și viteze fulgerătoare prin integrarea Torbox. Introdu cheia API mai jos pentru a-ți îmbunătăți experiența de streaming.", + "description_torrentio": "Configurează Torrentio pentru a obține fluxuri torrent pentru filme și seriale. Un serviciu debrid este necesar pentru redarea conținutului.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Conectat", + "status_disconnected": "Deconectat", + "enable_addon": "Activează Extensia", + "disconnect_button": "Deconectează și Elimină", + "disconnect_loading": "Se deconectează...", + "account_info": "Informații Cont", + "plan": "Plan", + "plan_free": "Gratuit", + "plan_essential": "Essential ($3/lună)", + "plan_pro": "Pro ($10/lună)", + "plan_standard": "Standard ($5/lună)", + "plan_unknown": "Necunoscut", + "expires": "Expiră", + "downloaded": "Descărcat", + "status_active": "Activ", + "connected_title": "✓ Conectat la TorBox", + "connected_desc": "Extensia ta TorBox este activă și oferă fluxuri premium.", + "configure_title": "Configurează Extensia", + "configure_desc": "Personalizează experiența de streaming. Sortează după calitate, filtrează dimensiunile fișierelor și gestionează alte setări.", + "open_settings": "Deschide Setările", + "what_is_debrid": "Ce este un serviciu Debrid?", + "enter_api_key": "Introdu cheia API", + "connect_button": "Conectează și Instalează", + "connecting": "Se conectează...", + "unlock_speeds_title": "Deblochează viteze premium", + "unlock_speeds_desc": "Obține un abonament Torbox pentru a accesa fluxuri cache de înaltă calitate fără buffering.", + "get_subscription": "Obține abonament", + "powered_by": "Powered by", + "disclaimer_torbox": "Nuvio nu este afiliat cu Torbox în niciun fel.", + "disclaimer_torrentio": "Nuvio nu este afiliat cu Torrentio în niciun fel.", + "installed_badge": "✓ INSTALAT", + "promo_title": "⚡ Ai nevoie de un serviciu Debrid?", + "promo_desc": "Obține TorBox pentru streaming 4K rapid. Torrente cache premium și descărcări instantanee.", + "promo_button": "Obține abonament TorBox", + "service_label": "Serviciu Debrid *", + "api_key_label": "Cheie API *", + "sorting_label": "Sortare", + "exclude_qualities": "Exclude Calități", + "priority_languages": "Limbi Prioritare", + "max_results": "Rezultate Maxime", + "additional_options": "Opțiuni adiționale", + "no_download_links": "Nu afișa link-uri de descărcare", + "no_debrid_catalog": "Nu afișa catalogul debrid", + "install_button": "Instalează Torrentio", + "installing": "Se instalează...", + "update_button": "Actualizează Configurația", + "updating": "Se actualizează...", + "remove_button": "Elimină Torrentio", + "error_api_required": "Cheie API obligatorie", + "error_api_required_desc": "Te rugăm să introduci cheia API debrid pentru a instala Torrentio.", + "success_installed": "Extensia Torrentio a fost instalată cu succes!", + "success_removed": "Extensia Torrentio a fost eliminată cu succes", + "alert_disconnect_title": "Deconectează Torbox", + "alert_disconnect_msg": "Ești sigur că vrei să deconectezi Torbox? Această acțiune va elimina extensia și cheia API salvată." + }, + "home_screen": { + "title": "Setări Ecran Principal", + "changes_applied": "Modificări aplicate", + "display_options": "OPȚIUNI AFIȘARE", + "show_hero": "Arată secțiunea Hero", + "show_hero_desc": "Conținut recomandat în partea de sus", + "show_this_week": "Arată secțiunea Săptămâna aceasta", + "show_this_week_desc": "Episoade noi din săptămâna curentă", + "select_catalogs": "Selectează Cataloage", + "all_catalogs": "Toate cataloagele", + "selected": "selectate", + "hero_layout": "Layout Hero", + "layout_legacy": "Clasic", + "layout_carousel": "Carusel", + "layout_appletv": "Apple TV", + "layout_desc": "Banner pe toată lățimea, carduri glisante sau stil Apple TV", + "featured_source": "Sursă recomandate", + "using_catalogs": "Se folosesc cataloage", + "manage_selected_catalogs": "Gestionează cataloagele selectate", + "dynamic_bg": "Fundal Hero Dinamic", + "dynamic_bg_desc": "Banner încețoșat în spatele caruselului", + "performance_note": "Poate afecta performanța pe dispozitivele mai slabe.", + "posters": "Postere", + "show_titles": "Arată Titlurile", + "poster_size": "Dimensiune Poster", + "poster_corners": "Colțuri Poster", + "size_small": "Mic", + "size_medium": "Mediu", + "size_large": "Mare", + "corners_square": "Pătrat", + "corners_rounded": "Rotunjit", + "corners_pill": "Pastilă", + "about_these_settings": "DESPRE ACESTE SETĂRI", + "about_desc": "Aceste setări controlează modul în care conținutul este afișat pe ecranul principal. Modificările se aplică imediat.", + "hero_catalogs": { + "title": "Cataloage Secțiune Hero", + "select_all": "Selectează Tot", + "clear_all": "Șterge Tot", + "info": "Selectează ce cataloage să apară în secțiunea hero. Dacă nu selectezi niciunul, vor fi folosite toate. Nu uita să apeși Salvează.", + "settings_saved": "Setări Salvate", + "error_load": "Eșec la încărcarea cataloagelor", + "movies": "Filme", + "tv_shows": "Seriale TV" + } + }, + "calendar": { + "title": "Calendar", + "loading": "Se încarcă calendarul...", + "no_scheduled_episodes": "Niciun episod programat", + "check_back_later": "Revino mai târziu", + "showing_episodes_for": "Se afișează episoadele pentru {{date}}", + "show_all_episodes": "Arată toate episoadele", + "no_episodes_for": "Niciun episod pentru {{date}}", + "no_upcoming_found": "Niciun episod viitor găsit", + "add_series_desc": "Adaugă seriale în bibliotecă pentru a vedea episoadele lor viitoare aici" + }, + { + "mdblist": { + "title": "Surse de evaluare", + "status_disabled": "MDBList dezactivat", + "status_active": "Cheie API activă", + "status_required": "Cheie API obligatorie", + "status_disabled_desc": "Funcționalitatea MDBList este momentan dezactivată.", + "status_active_desc": "Evaluările de la MDBList sunt activate.", + "status_required_desc": "Adaugă cheia mai jos pentru a activa evaluările.", + "enable_toggle": "Activează MDBList", + "enable_toggle_desc": "Pornește/oprește toate funcțiile MDBList", + "api_section": "Cheie API", + "placeholder": "Lipește cheia API MDBList", + "save": "Salvează", + "clear": "Șterge cheia", + "rating_providers": "Furnizori de evaluări", + "rating_providers_desc": "Alege ce evaluări să fie afișate în aplicație", + "how_to": "Cum obții o cheie API", + "step_1": "Autentifică-te pe", + "step_1_link": "site-ul MDBList", + "step_2": "Mergi la secțiunea", + "step_2_settings": "Settings", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Generează o cheie nouă și copiază-o.", + "go_to_website": "Mergi la MDBList", + "alert_clear_title": "Șterge Cheia API", + "alert_clear_msg": "Ești sigur că vrei să elimini cheia API salvată?", + "success_saved": "Cheia API a fost salvată cu succes.", + "error_empty": "Cheia API nu poate fi goală.", + "error_save": "A apărut o eroare la salvare. Te rugăm să încerci din nou.", + "api_key_empty_error": "Cheia API nu poate fi goală.", + "success_cleared": "Cheia API a fost ștearsă cu succes", + "error_clear": "Eșec la ștergerea cheii API" + }, + "notification": { + "title": "Setări notificări", + "section_general": "General", + "enable_notifications": "Activează notificările", + "section_types": "Tipuri de notificări", + "new_episodes": "Episoade noi", + "upcoming_shows": "Seriale viitoare", + "reminders": "Mementouri", + "section_timing": "Sincronizare notificări", + "timing_desc": "Cu cât timp înainte de difuzare să fii notificat?", + "hours_1": "1 oră", + "hours_suffix": "ore", + "section_status": "Status notificări", + "stats_upcoming": "Viitoare", + "stats_this_week": "Săptămâna aceasta", + "stats_total": "Total", + "sync_button": "Sincronizează Biblioteca și Trakt", + "syncing": "Se sincronizează...", + "sync_desc": "Sincronizează automat notificările pentru serialele din bibliotecă și watchlist-ul Trakt.", + "section_advanced": "Avansat", + "reset_button": "Resetează toate notificările", + "test_button": "Testează notificarea (5 sec)", + "test_notification_in": "Notificare în {{seconds}}s...", + "test_notification_text": "Notificarea va apărea în {{seconds}} secunde", + "alert_reset_title": "Resetează notificările", + "alert_reset_msg": "Această acțiune va anula toate notificările programate, dar nu va șterge nimic din bibliotecă. Ești sigur?", + "alert_reset_success": "Toate notificările au fost resetate", + "alert_sync_complete": "Sincronizare finalizată", + "alert_sync_msg": "S-au sincronizat notificările pentru bibliotecă și Trakt.\n\nProgramate: {{upcoming}} episoade viitoare\nSăptămâna aceasta: {{thisWeek}} episoade", + "alert_test_scheduled": "Notificarea de test a fost programată" + }, + "backup": { + "title": "Backup și Restaurare", + "options_title": "Opțiuni Backup", + "options_desc": "Alege ce dorești să incluzi în backup", + "section_core": "Date de bază", + "section_addons": "Extensii și Integrări", + "section_settings": "Setări și Preferințe", + "library_label": "Bibliotecă", + "library_desc": "Filmele și serialele tale salvate", + "watch_progress_label": "Progres vizionare", + "watch_progress_desc": "Pozițiile de unde ai rămas", + "addons_label": "Extensii", + "addons_desc": "Extensiile Stremio instalate", + "plugins_label": "Module", + "plugins_desc": "Configurații personalizate de scannere", + "trakt_label": "Integrare Trakt", + "trakt_desc": "Sincronizare date și token-uri de autentificare", + "app_settings_label": "Setări Aplicație", + "app_settings_desc": "Temă, preferințe și configurații", + "user_prefs_label": "Preferințe Utilizator", + "user_prefs_desc": "Ordinea extensiilor și setări UI", + "catalog_settings_label": "Setări Catalog", + "catalog_settings_desc": "Filtre de catalog și preferințe", + "api_keys_label": "Chei API", + "api_keys_desc": "Cheile MDBList și OpenRouter", + "action_create": "Creează Backup", + "action_restore": "Restaurează din Backup", + "section_info": "Despre Backup-uri", + "info_text": "• Personalizează backup-ul folosind comutatoarele de mai sus\n• Fișierele de backup sunt stocate local pe dispozitiv\n• Trimite fișierul de backup pentru a transfera datele pe alt dispozitiv\n• Restaurarea va suprascrie datele tale actuale", + "alert_create_title": "Creează Backup", + "alert_no_content": "Niciun conținut selectat pentru backup.\n\nTe rugăm să activezi cel puțin o opțiune de mai sus.", + "alert_backup_created_title": "Backup Creat", + "alert_backup_created_msg": "Backup-ul a fost creat și este gata de a fi trimis.", + "alert_backup_failed_title": "Eșec Backup", + "alert_restore_confirm_title": "Confirmă Restaurarea", + "alert_restore_confirm_msg": "Această acțiune va restaura datele dintr-un backup creat pe {{date}}.\n\nDatele actuale vor fi suprascrise. Ești sigur că vrei să continui?", + "alert_restore_complete_title": "Restaurare Completă", + "alert_restore_complete_msg": "Datele au fost restaurate cu succes. Te rugăm să repornești aplicația.", + "alert_restore_failed_title": "Eșec Restaurare", + "restart_app": "Repornește Aplicația", + "alert_restart_failed_title": "Repornire eșuată", + "alert_restart_failed_msg": "Aplicația nu a putut fi repornită automat. Te rugăm să o închizi și să o redeschizi manual." + }, + "updates": { + "title": "Actualizări Aplicație", + "status_checking": "Se caută actualizări...", + "status_available": "Actualizare disponibilă!", + "status_downloading": "Se descarcă actualizarea...", + "status_installing": "Se instalează actualizarea...", + "status_success": "Actualizare instalată cu succes!", + "status_error": "Actualizarea a eșuat", + "status_ready": "Gata pentru verificare", + "action_check": "Verifică Actualizări", + "action_install": "Instalează Actualizarea", + "release_notes": "Notele ediției:", + "version": "Versiune:", + "last_checked": "Ultima verificare:", + "current_version": "Versiunea curentă:", + "current_release_notes": "Notele versiunii actuale:", + "github_release": "VERSIUNE GITHUB", + "current": "Curentă:", + "latest": "Ultima:", + "notes": "Note:", + "view_release": "Vezi detalii", + "notification_settings": "SETĂRI NOTIFICĂRI", + "ota_alerts_label": "Alerte actualizări OTA", + "ota_alerts_desc": "Arată notificări pentru actualizările over-the-air", + "major_alerts_label": "Alerte actualizări majore", + "major_alerts_desc": "Arată notificări pentru versiuni noi de aplicație pe GitHub", + "alert_disable_ota_title": "Dezactivezi alertele OTA?", + "alert_disable_ota_msg": "Nu vei mai primi notificări automate pentru actualizările OTA.\n\n⚠️ Atenție: Este important să fii pe ultima versiune pentru:\n• Corecții și stabilitate\n• Funcții noi\n• Raportare corectă a erorilor", + "alert_disable_major_title": "Dezactivezi alertele majore?", + "alert_disable_major_msg": "Nu vei mai primi notificări pentru actualizările care necesită reinstalare.\n\n⚠️ Atenție: Actualizările majore includ adesea:\n• Patch-uri critice de securitate\n• Modificări structurale\n• Fix-uri de compatibilitate", + "warning_note": "Păstrarea alertelor activate te asigură că primești rapid corecțiile de bug-uri.", + "disable": "Dezactivează", + "alert_no_update_to_install": "Nicio actualizare disponibilă pentru instalare", + "alert_install_failed": "Eșec la instalarea actualizării", + "alert_no_update_title": "Fără actualizări", + "alert_update_applied_msg": "Actualizarea va fi aplicată la următoarea repornire" + }, + "player": { + "title": "Video Player", + "section_selection": "SELECȚIE PLAYER", + "internal_title": "Player integrat", + "internal_desc": "Folosește player-ul implicit al aplicației", + "vlc_title": "VLC", + "vlc_desc": "Deschide fluxurile în VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Deschide fluxurile în player-ul Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Deschide fluxurile în OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Deschide fluxurile în player-ul VidHub", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Deschide fluxurile în Infuse LiveContainer", + "external_title": "Player extern", + "external_desc": "Deschide fluxurile în player-ul tău preferat", + "section_playback": "OPȚIUNI REDARE", + "skip_intro_settings_title": "Sari peste Intro", + "powered_by_introdb": "Pus la dispoziție de IntroDB", + "autoplay_title": "Redare automată primului flux", + "autoplay_desc": "Începe automat primul flux din listă.", + "resume_title": "Reluare automată", + "resume_desc": "Sari peste confirmarea de reluare și continuă automat unde ai rămas (dacă ai vizionat sub 85%).", + "engine_title": "Motor Video Player", + "engine_desc": "Auto folosește ExoPlayer cu rezervă MPV. Unele formate ca Dolby Vision pot necesita modul Auto pentru compatibilitate maximă.", + "decoder_title": "Mod Decodor", + "decoder_desc": "Modul în care este decodat video. Auto este recomandat.", + "gpu_title": "Randare GPU", + "gpu_desc": "GPU-Next oferă un management mai bun al culorilor și HDR.", + "external_downloads_title": "Player extern pentru descărcări", + "external_downloads_desc": "Redă conținutul descărcat într-un player extern.", + "restart_required": "Repornire obligatorie", + "restart_msg_decoder": "Te rugăm să repornești aplicația pentru ca schimbarea decodorului să fie aplicată.", + "restart_msg_gpu": "Te rugăm să repornești aplicația pentru ca schimbarea modului GPU să fie aplicată.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + rezervă MPV", + "option_mpv": "MPV", + "option_mpv_desc": "Doar MPV", + "option_auto_desc_decoder": "Cel mai bun echilibru", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Hardware Complet", + "option_gpu_desc": "Standard", + "option_gpu_next_desc": "Avansat" + }, + "plugins": { + "title": "Module", + "enable_title": "Activează Modulele", + "enable_desc": "Activează motorul de module pentru a prelua surse media externe", + "repo_config_title": "Configurare depozite", + "repo_config_desc": "Gestionează depozitele externe. Comută fiecare depozit pornit sau oprit.", + "your_repos": "Depozite", + "your_repos_desc": "Configurează sursele externe pentru module.", + "add_repo_button": "Adaugă Depozit", + "refresh": "Împrospătează", + "remove": "Elimină", + "enabled": "Activat", + "disabled": "Dezactivat", + "updating": "Se actualizează...", + "success": "Succes", + "error": "Eroare", + "alert_repo_added": "Depozitul a fost adăugat și modulele au fost încărcate", + "alert_repo_saved": "URL-ul depozitului a fost salvat", + "alert_repo_refreshed": "Depozit împrospătat cu succes", + "alert_invalid_url": "Format URL invalid", + "alert_plugins_cleared": "Toate modulele au fost eliminate", + "alert_cache_cleared": "Cache depozit șters cu succes", + "unknown": "Necunoscut", + "active": "Activ", + "available": "Disponibil", + "platform_disabled": "Platformă dezactivată", + "limited": "Limitat", + "clear_all": "Șterge toate modulele", + "clear_all_desc": "Ești sigur că vrei să elimini toate modulele instalate? Această acțiune este ireversibilă.", + "clear_cache": "Șterge Cache Depozit", + "clear_cache_desc": "Această acțiune va șterge URL-ul salvat și toate datele cache. Va trebui să introduci din nou URL-ul depozitului.", + "add_new_repo": "Adaugă depozit nou", + "available_plugins": "Module disponibile ({{count}})", + "placeholder": "Caută module...", + "all": "Toate", + "filter_all": "Toate tipurile", + "filter_movies": "Filme", + "filter_tv": "Seriale TV", + "enable_all": "Activează tot", + "disable_all": "Dezactivează tot", + "no_plugins_found": "Niciun modul găsit", + "no_plugins_available": "Niciun modul disponibil", + "no_match_desc": "Niciun modul nu se potrivește cu „{{query}}”.", + "configure_repo_desc": "Configurează un depozit mai sus pentru a vedea modulele disponibile.", + "clear_search": "Șterge căutarea", + "no_external_player": "Fără player extern", + "showbox_token": "Token UI ShowBox", + "showbox_placeholder": "Lipește token-ul UI ShowBox", + "save": "Salvează", + "clear": "Șterge", + "additional_settings": "Setări adiționale", + "enable_url_validation": "Activează validarea URL", + "url_validation_desc": "Validează link-urile media înainte de a le returna (poate încetini rezultatele, dar crește fiabilitatea)", + "group_streams": "Grupează sursele modulelor", + "group_streams_desc": "Sursele sunt grupate după depozit.", + "sort_quality": "Sortează după calitate mai întâi", + "sort_quality_desc": "Valabil doar când gruparea este activată.", + "show_logos": "Arată logo-urile modulelor", + "show_logos_desc": "Afișează pictograma modulului lângă link-urile media.", + "quality_filtering": "Filtrare calitate", + "quality_filtering_desc": "Exclude rezoluții specifice din rezultate. Apasă pe o calitate pentru a o exclude.", + "excluded_qualities": "Calități excluse:", + "language_filtering": "Filtrare limbă", + "language_filtering_desc": "Exclude limbi specifice din rezultate.", + "note": "Notă:", + "language_filtering_note": "Acest filtru se aplică doar furnizorilor care oferă informații despre limbă.", + "excluded_languages": "Limbi excluse:", + "about_title": "Despre Module", + "about_desc_1": "Modulele sunt componente care adaptează conținutul din diverse protocoale externe. Rulează local și pot fi instalate din depozite de încredere.", + "about_desc_2": "Modulele marcate ca „Limitat” pot necesita configurații externe specifice.", + "help_title": "Configurare Module", + "help_step_1": "1. **Activează Modulele** - Pornește comutatorul principal", + "help_step_2": "2. **Adaugă Depozit** - Introdu un URL de depozit valid", + "help_step_3": "3. **Împrospătează** - Descarcă lista de module", + "help_step_4": "4. **Activează** - Pornește modulele dorite", + "got_it": "Am înțeles!", + "repo_format_hint": "Format: https://raw.githubusercontent.com/user/repo/branch", + "cancel": "Anulează", + "add": "Adaugă" + }, + "theme": { + "title": "Teme Aplicație", + "select_theme": "SELECTEAZĂ TEMA", + "create_custom": "Creează Temă Personalizată", + "options": "OPȚIUNI", + "use_dominant_color": "Folosește culoarea dominantă din artwork", + "categories": { + "all": "Toate temele", + "dark": "Teme întunecate", + "colorful": "Colorate", + "custom": "Temele mele" + }, + "editor": { + "theme_name_placeholder": "Nume temă", + "save": "Salvează", + "primary": "Primară", + "secondary": "Secundară", + "background": "Fundal", + "invalid_name_title": "Nume invalid", + "invalid_name_msg": "Te rugăm să introduci un nume valid" + }, + "alerts": { + "delete_title": "Șterge Tema", + "delete_msg": "Ești sigur că vrei să ștergi „{{name}}”?", + "ok": "OK", + "delete": "Șterge", + "cancel": "Anulează", + "back": "Setări" + } + }, + "legal": { + "title": "Juridic și Declinarea responsabilității", + "intro_title": "Natura Aplicației", + "intro_text": "Nuvio este un player media și o aplicație de gestionare a metadatelor. Acționează exclusiv ca o interfață pentru navigarea metadatelor publice și redarea fișierelor oferite de utilizator sau extensii terțe. Nuvio nu găzduiește, stochează sau distribuie conținut media.", + "extensions_title": "Module Terțe", + "extensions_text": "Nuvio permite instalarea modulelor dezvoltate de terți. Acestea nu sunt afiliate cu Nuvio. Nu ne asumăm responsabilitatea pentru conținutul sau legalitatea acestora.", + "user_resp_title": "Responsabilitatea Utilizatorului", + "user_resp_text": "Utilizatorii sunt singurii responsabili pentru modulele instalate. Prin utilizarea aplicației, confirmi că ai dreptul legal de a accesa conținutul vizionat.", + "dmca_title": "Drepturi de autor și DMCA", + "dmca_text": "Respectăm proprietatea intelectuală. Deoarece Nuvio nu găzduiește conținut, nu îl putem elimina de pe internet. Dacă interfața aplicației îți încalcă drepturile, te rugăm să ne contactezi.", + "warranty_title": "Fără Garanție", + "warranty_text": "Software-ul este oferit „ca atare”, fără nicio garanție expresă sau implicită." + }, + "plugin_tester": { + "title": "Tester Module", + "subtitle": "Rulează scannere și verifică log-urile în timp real", + "tabs": { + "individual": "Individual", + "repo": "Tester Depozit", + "code": "Cod", + "logs": "Log-uri", + "results": "Rezultate" + }, + "common": { + "error": "Eroare", + "success": "Succes", + "movie": "Film", + "tv": "Serial", + "tmdb_id": "TMDB ID", + "season": "Sezon", + "episode": "Episod", + "running": "Se execută...", + "run_test": "Rulează Test", + "play": "Redă", + "done": "Gata", + "test": "Test", + "testing": "Se testează..." + }, + "individual": { + "load_from_url": "Încarcă din URL", + "load_from_url_desc": "Lipește un URL brut de GitHub sau IP local.", + "enter_url_error": "Te rugăm să introduci un URL", + "code_loaded": "Cod încărcat din URL", + "fetch_error": "Eșec la preluare: {{message}}", + "no_code_error": "Niciun cod de rulat", + "plugin_code": "Cod Modul", + "focus_editor": "Focalizează editorul", + "code_placeholder": "// Lipește codul modului aici...", + "test_parameters": "Parametri Test", + "no_logs": "Niciun log momentan. Rulează un test.", + "no_streams": "Niciun flux găsit.", + "streams_found": "{{count}} flux găsit", + "streams_found_plural": "{{count}} fluxuri găsite", + "tap_play_hint": "Apasă Redă pentru a testa fluxul.", + "unnamed_stream": "Flux fără nume", + "quality": "Calitate: {{quality}}", + "size": "Dimensiune: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Header-e: {{count}} personalizate", + "find_placeholder": "Caută în cod...", + "edit_code_title": "Editează Codul", + "no_url_stream_error": "Nu s-a găsit URL pentru acest flux" + }, + "repo": { + "title": "Tester Depozit", + "description": "Preia un depozit și testează fiecare furnizor.", + "enter_repo_url_error": "Introdu un URL de depozit", + "invalid_url_title": "URL Invalid", + "invalid_url_msg": "Folosește un URL brut GitHub sau local.", + "manifest_build_error": "Nu s-a putut construi URL-ul manifestului", + "manifest_fetch_error": "Eșec la preluarea manifestului", + "repo_manifest_fetch_error": "Eșec la preluarea manifestului depozitului", + "missing_filename": "Nume fișier lipsă în manifest", + "scraper_build_error": "Nu s-a putut construi URL-ul scannerului", + "download_scraper_error": "Eșec la descărcarea scannerului", + "test_failed": "Test eșuat", + "test_parameters": "Parametri Test Depozit", + "test_parameters_desc": "Acești parametri sunt folosiți doar în Testerul de Depozit.", + "using_info": "Folosind: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Folosind: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Furnizori", + "repository_default": "Depozit", + "providers_count": "{{count}} furnizori", + "fetch_hint": "Preia un depozit pentru a vedea furnizorii.", + "test_all": "Testează tot", + "status_running": "RULEAZĂ", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "EȘUAT", + "status_idle": "INACTIV", + "tried_url": "S-a încercat: {{url}}", + "provider_logs": "Log-uri furnizor", + "no_logs_captured": "Niciun log capturat." + } + } +} + + From 7a7cf9847cfec040fc5eee9f0fbfa94132fb9c0f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:51:01 +0100 Subject: [PATCH 214/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 0d489da8..3b588970 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -21,6 +21,7 @@ import mk from './locales/mk.json'; import ru from './locales/ru.json'; import fil from './locales/fil.json'; import nlNL from './locales/nl-NL.json'; +import ro from './locales/ro.json'; export const resources = { en: { translation: en }, @@ -45,4 +46,5 @@ export const resources = { ru: { translation: ru }, fil: { translation: fil }, 'nl-NL': { translation: nlNL }, + ro: { translation: ro }, }; From 5b4800b8567d6f5a6bc16133691be8eb5b6f83c8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:51:46 +0100 Subject: [PATCH 215/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 25bd4927..2a6e9a98 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -21,4 +21,5 @@ export const LOCALES = [ { code: 'ru', key: 'russian' }, { code: 'fil', key: 'filipino' }, { code: 'nl-NL', key: 'dutch_nl' }, + { code: 'ro', key: 'romanian' }, ]; From 19f438792350d9fe88a5dbf5be679460df2dcf8d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:53:02 +0100 Subject: [PATCH 216/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index ef888413..b85e9fd8 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -646,6 +646,7 @@ "russian": "الروسية", "filipino": "الفلبينية", "dutch_nl": "الهولندية (هولندا)", + "romanian": "روماني", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From db1d34bb377571d15986a04d734fcf0c247b92eb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:54:12 +0100 Subject: [PATCH 217/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index ccfad262..9db71ff5 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -651,6 +651,7 @@ "russian": "Руски", "filipino": "Филипински", "dutch_nl": "Нидерландски (Нидерландия)", + "romanian": "Румънски", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1434,3 +1435,4 @@ + From 2eb5c607b4e14ffa08c31c9f51fa623d8b44a67f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:56:16 +0100 Subject: [PATCH 218/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index a9d39fad..6427d7e1 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -641,6 +641,7 @@ "russian": "Ruština", "filipino": "Filipínština", "dutch_nl": "Nizozemština (Nizozemsko)", + "romanian": "Rumanština", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1422,3 +1423,4 @@ + From b13f107aa23eda3737caead0492f46405315b445 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:57:02 +0100 Subject: [PATCH 219/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index f112b591..e640ca6c 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -646,6 +646,7 @@ "russian": "Russisch", "filipino": "Philippinisch", "dutch_nl": "Niederländisch (Niederlande)", + "romanian": "Rumänisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From ad4aefcdf801f98888c5b1109dd7ec2dc0d1b8d9 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:57:49 +0100 Subject: [PATCH 220/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index f597b6e4..d416b3e1 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -651,6 +651,7 @@ "russian": "Russian", "filipino": "Filipino", "dutch_nl": "Dutch (Netherlands)", + "romanian": "Romanian", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 948cccca5e6e4708815a10710be93772ebbd9369 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:58:40 +0100 Subject: [PATCH 221/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index d6cc309e..6e9e0149 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -646,6 +646,7 @@ "russian": "Ruso", "filipino": "Filipino", "dutch_nl": "Holandés (Países Bajos)", + "romanian": "Rumano", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From 4b700c8efd7a663622cba007760033a61170ced6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 20:59:35 +0100 Subject: [PATCH 222/285] Update fil.json --- src/i18n/locales/fil.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/fil.json b/src/i18n/locales/fil.json index d40ea57b..d7334d9a 100644 --- a/src/i18n/locales/fil.json +++ b/src/i18n/locales/fil.json @@ -651,6 +651,7 @@ "russian": "Ruso", "filipino": "Filipino", "dutch_nl": "Dutch (Netherlands)", + "romanian": "Romanyano", "account": "Account", "content_discovery": "Content at Discovery", "appearance": "Appearance", @@ -1428,3 +1429,4 @@ } + From 1f2bef724f6debf2c8ce6ec3a6507a1ab3a25f77 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:00:24 +0100 Subject: [PATCH 223/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 74f17159..6062e694 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -646,6 +646,7 @@ "russian": "Russe", "filipino": "Philippin", "dutch_nl": "Néerlandais (Pays-Bas)", + "romanian": "Roumain", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From bd10151702acd618565e2b4bfe5cfa9fbd87c76d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:01:54 +0100 Subject: [PATCH 224/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 90efa63d..c4cb7eb5 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -651,6 +651,7 @@ "russian": "רוסית", "filipino": "פיליפינית", "dutch_nl": "הולנדית (הולנד)", + "romanian": "רומנית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1435,3 +1436,4 @@ + From 760ac969fcfd85bfbeb9b240501f03d2e011566e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:03:02 +0100 Subject: [PATCH 225/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index ccc6877d..f3a8d902 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -646,6 +646,7 @@ "russian": "रूसी", "filipino": "फ़िलिपिनो", "dutch_nl": "डच (नीदरलैंड)", + "romanian": "रोमानियाई", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From 6dd1f62cd9179c393a0195d489933fcca1e6ab04 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:03:57 +0100 Subject: [PATCH 226/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index e61d9fe5..8e89ccee 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -646,6 +646,7 @@ "russian": "Russo", "filipino": "Filippino", "dutch_nl": "Olandese (Paesi Bassi)", + "romanian": "Rumeno", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From 93daa44c0dec666b5ec6be8a66e0ed5ddf12f4ae Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:05:03 +0100 Subject: [PATCH 227/285] Update mk.json --- src/i18n/locales/mk.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/mk.json b/src/i18n/locales/mk.json index 32834bfc..cbf59f36 100644 --- a/src/i18n/locales/mk.json +++ b/src/i18n/locales/mk.json @@ -651,6 +651,7 @@ "russian": "Руски", "filipino": "Филипински", "dutch_nl": "Холандски (Холандија)", + "romanian": "Романски", "account": "Сметка", "content_discovery": "Содржина и откривање", "appearance": "Изглед", @@ -1428,3 +1429,4 @@ + From 483b838746d99f4c9d80dfff3496dd8c83734ed2 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:06:08 +0100 Subject: [PATCH 228/285] Update nl-NL.json --- src/i18n/locales/nl-NL.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/nl-NL.json b/src/i18n/locales/nl-NL.json index 88a903e2..7d15293f 100644 --- a/src/i18n/locales/nl-NL.json +++ b/src/i18n/locales/nl-NL.json @@ -652,6 +652,7 @@ "russian": "Russisch", "filipino": "Filipijns" "dutch_nl": "Nederlands (Nederland)", + "romanian": "Roemeens", "account": "Account", "content_discovery": "Inhoud & Ontdekken", "appearance": "Uiterlijk", @@ -1431,3 +1432,4 @@ + From e95d39526e4d6991e9c035b9e6e3327b769850c7 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:06:58 +0100 Subject: [PATCH 229/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 0b45f460..2b55a9dd 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -651,6 +651,7 @@ "russian": "Rosyjski", "filipino": "Filipiński", "dutch_nl": "Holenderski (Niderlandy)", + "romanian": "Rumuński", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1434,3 +1435,4 @@ + From a24b491477936b2f2b210ce43605c056e2bd76f0 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:07:42 +0100 Subject: [PATCH 230/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 0c316edf..6d17c089 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -660,6 +660,7 @@ "russian": "Russo", "filipino": "Filipino", "dutch_nl": "Holandês (Países Baixos)", + "romanian": "Romeno", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From d17140e6f897f9b0ee1537682ae7c893ce328f7c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:08:09 +0100 Subject: [PATCH 231/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 0bd6c6c5..44f0e7ef 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -658,6 +658,7 @@ "russian": "Russo", "filipino": "Filipino", "dutch_nl": "Holandês (Países Baixos)", + "Romanian": "Romeno", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From e366f77dd1a159bb6d6866f87f1dd11056214a8f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:09:42 +0100 Subject: [PATCH 232/285] Update ru.json --- src/i18n/locales/ru.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 1235a467..1ce8df51 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -651,6 +651,7 @@ "russian": "Русский", "filipino": "Филиппинский", "dutch_nl": "Нидерландский (Нидерланды)", + "romanian": "Румынский", "account": "Аккаунт", "content_discovery": "Контент и поиск", "appearance": "Внешний вид", @@ -1429,3 +1430,4 @@ + From 6d8a8579317c2b41d4b259e2fefaab96e3204bfb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:11:29 +0100 Subject: [PATCH 233/285] Update sl.json --- src/i18n/locales/sl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 4b6cb73e..d5e564e8 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -651,6 +651,7 @@ "russian": "Ruščina", "filipino": "Filipinščina", "dutch_nl": "Nizozemščina (Nizozemska)", + "romanian": "Romunščina", "account": "Račun", "content_discovery": "Vsebina in odkrivanje", "appearance": "Videz", @@ -1430,3 +1431,4 @@ + From 48400248c7c3a0784753a5c43b35a2a51e460f23 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:12:45 +0100 Subject: [PATCH 234/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 3fddcb6c..5dc00101 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -645,6 +645,7 @@ "russian": "Руски", "filipino": "Филипински", "dutch_nl": "Холандски (Холандија)", + "romanian": "Румунски", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1432,3 +1433,4 @@ + From 720610186cd64f7e56f687f354298c4ca4e0f89d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:13:46 +0100 Subject: [PATCH 235/285] Update tr.json --- src/i18n/locales/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 48955c62..6250948d 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -651,6 +651,7 @@ "russian": "Rusça", "filipino": "Filipince", "dutch_nl": "Felemenkçe (Hollanda)", + "romanian": "Rumence", "account": "Hesap", "content_discovery": "İçerik ve Keşif", "appearance": "Görünüm", @@ -1431,3 +1432,4 @@ + From ad1d404310ba2a5d558223d40e1ac3e15d504254 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:14:46 +0100 Subject: [PATCH 236/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 004bb78d..0141c7a9 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -646,6 +646,7 @@ "russian": "俄语", "filipino": "菲律宾语", "dutch_nl": "荷兰语 (荷兰)", + "romanian": "罗马尼亚语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From 65b7403abcbffb370b7c03c4079d971fb9d237a4 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:27:56 +0100 Subject: [PATCH 237/285] Added Albanian lang --- src/i18n/locales/sq.json | 1434 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1434 insertions(+) create mode 100644 src/i18n/locales/sq.json diff --git a/src/i18n/locales/sq.json b/src/i18n/locales/sq.json new file mode 100644 index 00000000..37882c0a --- /dev/null +++ b/src/i18n/locales/sq.json @@ -0,0 +1,1434 @@ +{ + "common": { + "loading": "Duke u ngarkuar...", + "cancel": "Anulo", + "save": "Ruaj", + "delete": "Fshi", + "edit": "Redakto", + "search": "Kërko", + "error": "Gabim", + "success": "Sukses", + "ok": "OK", + "unknown": "I panjohur", + "retry": "Riprovo", + "try_again": "Provo përsëri", + "go_back": "Kthehu pas", + "settings": "Cilësimet", + "close": "Mbyll", + "enable": "Aktivizo", + "disable": "Çaktivizo", + "show_more": "Shfaq më shumë", + "show_less": "Shfaq më pak", + "load_more": "Ngarko më shumë", + "unknown_date": "Datë e panjohur", + "anonymous_user": "Përdorues Anonim", + "time": { + "now": "Tani", + "minutes_ago": "{{count}}m më parë", + "hours_ago": "{{count}}h më parë", + "days_ago": "{{count}}d më parë" + }, + "days_short": { + "sun": "Die", + "mon": "Hën", + "tue": "Mar", + "wed": "Mër", + "thu": "Enj", + "fri": "Pre", + "sat": "Sht" + }, + "email": "Email", + "status": "Statusi" + }, + "home": { + "categories": { + "movies": "Filma", + "series": "Seriale", + "channels": "Kanale" + }, + "movies": "Filma", + "tv_shows": "Emisione TV", + "load_more_catalogs": "Ngarko më shumë katalogë", + "no_content": "Asnjë përmbajtje e disponueshme", + "add_catalogs": "Shto Katalogë", + "sign_in_available": "Hyrja e disponueshme", + "sign_in_desc": "Mund të hyni në çdo kohë nga Cilësimet → Llogaria", + "view_all": "Shiko të gjitha", + "this_week": "Këtë javë", + "upcoming": "Së shpejti", + "recently_released": "Publikuar së fundmi", + "no_scheduled_episodes": "Seriale pa episode të planifikuara", + "check_back_later": "Kontrollo përsëri më vonë", + "continue_watching": "Vazhdo shikimin", + "up_next": "Radha e", + "up_next_caps": "RADHA E", + "released": "Publikuar", + "new": "I ri", + "tba": "Do të njoftohet", + "new_episodes": "{{count}} Episode të reja", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Sezoni {{season}}", + "episode": "Episodi {{episode}}", + "movie": "Film", + "series": "Serial", + "tv_show": "Emision TV", + "percent_watched": "{{percent}}% e shikuar", + "view_details": "Shiko detajet", + "remove": "Hiq", + "play": "Luaj", + "play_now": "Luaj tani", + "resume": "Vazhdo", + "info": "Informacion", + "more_info": "Më shumë info", + "my_list": "Lista ime", + "save": "Ruaj", + "saved": "Ruajtur", + "retry": "Riprovo", + "install_addons": "Instalo Shtojcat", + "settings": "Cilësimet", + "no_featured_content": "Asnjë përmbajtje e veçuar", + "couldnt_load_featured": "Nuk u mundësua ngarkimi i përmbajtjes së veçuar", + "no_featured_desc": "Instaloni shtojca me katalogë ose ndryshoni burimin e përmbajtjes në cilësimet tuaja.", + "load_error_desc": "Pati një problem gjatë marrjes së përmbajtjes. Ju lutem kontrolloni lidhjen tuaj dhe provoni përsëri.", + "no_featured_available": "Asnjë përmbajtje e veçuar e disponueshme", + "no_description": "Asnjë përshkrim i disponueshëm" + }, + "navigation": { + "home": "Kreu", + "library": "Biblioteka", + "search": "Kërko", + "downloads": "Shkarkimet", + "settings": "Cilësimet" + }, + "search": { + "title": "Kërko", + "recent_searches": "Kërkimet e fundit", + "discover": "Zbulo", + "movies": "Filma", + "tv_shows": "Emisione TV", + "select_catalog": "Zgjidh Katalogun", + "all_genres": "Të gjitha Zhanret", + "discovering": "Duke zbuluar përmbajtje...", + "show_more": "Shfaq më shumë ({{count}})", + "no_content_found": "Nuk u gjet asnjë përmbajtje", + "try_different": "Provoni një zhanër ose katalog tjetër", + "select_catalog_desc": "Zgjidhni një katalog për të zbuluar", + "tap_catalog_desc": "Prekni skedën e katalogut më lart për të filluar", + "placeholder": "Kërko filma, emisione...", + "keep_typing": "Vazhdo të shkruash...", + "type_characters": "Shkruani të paktën 2 karaktere për të kërkuar", + "no_results": "Asnjë rezultat nuk u gjet", + "try_keywords": "Provoni fjalë kyçe të tjera ose kontrolloni drejtshkrimin", + "select_type": "Zgjidh Llojin", + "browse_movies": "Shfleto katalogët e filmave", + "browse_tv": "Shfleto katalogët e serialeve TV", + "select_genre": "Zgjidh Zhanrin", + "show_all_content": "Shfaq të gjithë përmbajtjen", + "genres_count": "{{count}} zhanre" + }, + "library": { + "title": "Biblioteka", + "watched": "Të shikuara", + "continue": "Vazhdo", + "watchlist": "Lista e shikimit", + "collection": "Koleksioni", + "rated": "Të vlerësuara", + "items": "artikuj", + "trakt_collections": "Koleksionet Trakt", + "trakt_collection": "Koleksion Trakt", + "no_trakt": "Asnjë koleksion Trakt", + "no_trakt_desc": "Koleksionet tuaja Trakt do të shfaqen këtu pasi të filloni të përdorni Trakt", + "load_collections": "Ngarko Koleksionet", + "empty_folder": "Asnjë përmbajtje në {{folder}}", + "empty_folder_desc": "Ky koleksion është i zbrazët", + "refresh": "Rifresko", + "no_movies": "Ende asnjë film", + "no_series": "Ende asnjë emision TV", + "no_content": "Ende asnjë përmbajtje", + "add_content_desc": "Shto përmbajtje në bibliotekën tënde për ta parë këtu", + "find_something": "Gjej diçka për të parë", + "removed_from_library": "U hoq nga Biblioteka", + "item_removed": "Artikulli u hoq nga biblioteka juaj", + "failed_update_library": "Përditësimi i Bibliotekës dështoi", + "unable_remove": "Nuk mund të hiqet artikulli nga biblioteka", + "marked_watched": "U shënua si i shikuar", + "marked_unwatched": "U shënua si i pashikuar", + "item_marked_watched": "Artikulli u shënua si i shikuar", + "item_marked_unwatched": "Artikulli u shënua si i pashikuar", + "failed_update_watched": "Dështoi përditësimi i statusit të shikimit", + "unable_update_watched": "Nuk mund të përditësohet statusi i shikimit", + "added_to_library": "U shtua në Bibliotekë", + "item_added": "U shtua në bibliotekën tuaj lokale", + "add_to_library": "Shto në Bibliotekë", + "remove_from_library": "Hiq nga Biblioteka", + "mark_watched": "Shëno si i shikuar", + "mark_unwatched": "Shëno si i pashikuar", + "share": "Shpërndaj", + "add_to_watchlist": "Shto në Trakt Watchlist", + "remove_from_watchlist": "Hiq nga Trakt Watchlist", + "added_to_watchlist": "U shtua në Listën e Shikimit", + "added_to_watchlist_desc": "U shtua në listën tuaj të shikimit në Trakt", + "removed_from_watchlist": "U hoq nga Lista e Shikimit", + "removed_from_watchlist_desc": "U hoq nga lista juaj e shikimit në Trakt", + "add_to_collection": "Shto në Koleksionin Trakt", + "remove_from_collection": "Hiq nga Koleksioni Trakt", + "added_to_collection": "U shtua në Koleksion", + "added_to_collection_desc": "U shtua në koleksionin tuaj në Trakt", + "removed_from_collection": "U hoq nga Koleksioni", + "removed_from_collection_desc": "U hoq nga koleksioni tuaj në Trakt" + }, + "metadata": { + "unable_to_load": "Nuk mund të ngarkohet përmbajtja", + "error_code": "Kodi i gabimit: {{code}}", + "content_not_found": "Përmbajtja nuk u gjet", + "content_not_found_desc": "Kjo përmbajtje nuk ekziston ose mund të jetë hequr.", + "server_error": "Gabim serveri", + "server_error_desc": "Serveri është përkohësisht i padisponueshëm. Ju lutem provoni përsëri më vonë.", + "bad_gateway": "Portë e gabuar", + "bad_gateway_desc": "Serveri po përjeton probleme. Ju lutem provoni përsëri më vonë.", + "service_unavailable": "Shërbimi i padisponueshëm", + "service_unavailable_desc": "Shërbimi është aktualisht jashtë funksionit për mirëmbajtje.", + "too_many_requests": "Shumë kërkesa", + "too_many_requests_desc": "Po bëni shumë kërkesa. Ju lutem prisni një moment dhe provoni përsëri.", + "request_timeout": "Kërkesës i kaloi koha", + "request_timeout_desc": "Kërkesa zgjati shumë. Ju lutem provoni përsëri.", + "network_error": "Gabim rrjeti", + "network_error_desc": "Ju lutem kontrolloni lidhjen tuaj të internetit dhe provoni përsëri.", + "auth_error": "Gabim autentikimi", + "auth_error_desc": "Ju lutem kontrolloni cilësimet e llogarisë suaj.", + "access_denied": "Akses i mohuar", + "access_denied_desc": "Nuk keni leje për të aksesuar këtë përmbajtje.", + "connection_error": "Gabim lidhjeje", + "streams_unavailable": "Burimet nuk gjenden", + "streams_unavailable_desc": "Burimet e transmetimit janë aktualisht të padisponueshme.", + "unknown_error": "Gabim i panjohur", + "something_went_wrong": "Diçka shkoi keq. Ju lutem provoni përsëri.", + "cast": "Aktorët", + "more_like_this": "Më shumë si kjo", + "collection": "Koleksioni", + "episodes": "Episode", + "seasons": "Sezone", + "posters": "Postera", + "banners": "Bannera", + "specials": "Speciale", + "season_number": "Sezoni {{number}}", + "episode_count": "{{count}} Episod", + "episode_count_plural": "{{count}} Episode", + "no_episodes": "Asnjë episod i disponueshëm", + "no_episodes_for_season": "Asnjë episod i disponueshëm për Sezonin {{season}}", + "episodes_not_released": "Episodet mund të mos jenë publikuar ende", + "no_description": "Asnjë përshkrim i disponueshëm", + "episode_label": "EPISODI {{number}}", + "watch_again": "Shiko përsëri", + "completed": "Përfunduar", + "play_episode": "Luaj S{{season}}E{{episode}}", + "play": "Luaj", + "watched": "E shikuar", + "watched_on_trakt": "E shikuar në Trakt", + "synced_with_trakt": "Sinkronizuar me Trakt", + "saved": "Ruajtur", + "director": "Regjisori", + "directors": "Regjisorët", + "creator": "Krijuesi", + "creators": "Krijuesit", + "production": "Produksioni", + "network": "Rrjeti", + "mark_watched": "Shëno si i shikuar", + "mark_unwatched": "Shëno si i pashikuar", + "marking": "Duke shënuar...", + "removing": "Duke hequr...", + "unmark_season": "Hiq shënimin për Sezonin {{season}}", + "mark_season": "Shëno Sezonin {{season}}", + "resume": "Vazhdo", + "spoiler_warning": "Paralajmërim Spoiler", + "spoiler_warning_desc": "Ky koment përmban spoiler. Jeni të sigurt që dëshironi ta shfaqni?", + "cancel": "Anulo", + "reveal_spoilers": "Shfaq Spoiler-at", + "movie_details": "Detajet e Filmit", + "show_details": "Detajet e Serialit", + "tagline": "Slogani", + "status": "Statusi", + "release_date": "Data e Publikimit", + "runtime": "Kohëzgjatja", + "budget": "Buxheti", + "revenue": "Të ardhurat", + "origin_country": "Vendi i origjinës", + "original_language": "Gjuha origjinale", + "first_air_date": "Data e parë e transmetimit", + "last_air_date": "Data e fundit e transmetimit", + "total_episodes": "Gjithsej Episode", + "episode_runtime": "Kohëzgjatja e episodit", + "created_by": "Krijuar nga", + "backdrop_gallery": "Galeria e sfondeve", + "loading_episodes": "Duke ngarkuar episodet...", + "no_episodes_available": "Asnjë episod i disponueshëm", + "play_next": "Luaj S{{season}}E{{episode}}", + "play_next_episode": "Luaj Episodin e Radhës", + "save": "Ruaj", + "percent_watched": "{{percent}}% e shikuar", + "percent_watched_trakt": "{{percent}}% e shikuar ({{traktPercent}}% në Trakt)", + "synced_with_trakt_progress": "Sinkronizuar me Trakt", + "using_trakt_progress": "Duke përdorur progresin e Trakt", + "added_to_collection_hero": "Shtuar në Koleksion", + "added_to_collection_desc_hero": "Shtuar në koleksionin tuaj në Trakt", + "removed_from_collection_hero": "Hequr nga Koleksioni", + "removed_from_collection_desc_hero": "Hequr nga koleksioni tuaj në Trakt", + "mark_as_watched": "Shëno si i shikuar", + "mark_as_unwatched": "Shëno si i pashikuar" + }, + "cast": { + "biography": "Biografia", + "known_for": "I njohur për", + "personal_info": "Info Personale", + "born_in": "Lindur në {{place}}", + "filmography": "Filmografia", + "also_known_as": "I njohur edhe si", + "no_info_available": "Asnjë informacion shtesë i disponueshëm", + "as_character": "si {{character}}", + "loading_details": "Duke ngarkuar detajet...", + "years_old": "{{age}} vjeç", + "view_filmography": "Shiko Filmografinë", + "filter": "Filtro", + "sort_by": "Rendit sipas", + "sort_popular": "Popullore", + "sort_latest": "Të fundit", + "sort_upcoming": "Së shpejti", + "upcoming_badge": "SË SHPEJTI", + "coming_soon": "Vjen së shpejti", + "filmography_count": "Filmografia • {{count}} tituj", + "loading_filmography": "Duke ngarkuar filmografinë...", + "load_more_remaining": "Ngarko më shumë (edhe {{count}})", + "alert_error_title": "Gabim", + "alert_error_message": "Nuk mund të ngarkohej \"{{title}}\". Ju lutem provoni përsëri më vonë.", + "alert_ok": "OK", + "no_upcoming": "Asnjë publikim i ardhshëm për këtë aktor", + "no_content": "Asnjë përmbajtje e disponueshme për këtë aktor", + "no_movies": "Asnjë film i disponueshëm për këtë aktor", + "no_tv": "Asnjë emision TV për këtë aktor" + }, + "comments": { + "title": "Komentet në Trakt", + "spoiler_warning": "⚠️ Ky koment përmban spoiler. Prekni për ta shfaqur.", + "spoiler": "Spoiler", + "contains_spoilers": "Përmban spoiler", + "reveal": "Shfaq", + "vip": "VIP", + "unavailable": "Komentet nuk disponohen", + "no_comments": "Ende asnjë koment në Trakt", + "not_in_database": "Kjo përmbajtje mund të mos jetë ende në bazën e të dhënave të Trakt", + "check_trakt": "Kontrollo në Trakt" + }, + "trailers": { + "title": "Trailer-at", + "official_trailers": "Trailer-at Zyrtarë", + "official_trailer": "Trailer-i Zyrtar", + "teasers": "Teaser-at", + "teaser": "Teaser", + "clips_scenes": "Klip-e & Skena", + "clip": "Klip", + "featurettes": "Featurettes", + "featurette": "Featurette", + "behind_the_scenes": "Prapaskenat", + "no_trailers": "Asnjë trailer i disponueshëm", + "unavailable": "Trailer-i i padisponueshëm", + "unavailable_desc": "Ky trailer nuk mund të ngarkohej tani. Ju lutem provoni përsëri më vonë.", + "unable_to_play": "Nuk mund të luhet trailer-i. Ju lutem provoni përsëri.", + "watch_on_youtube": "Shiko në YouTube" + }, + "catalog": { + "no_content_found": "Nuk u gjet asnjë përmbajtje", + "no_content_filters": "Nuk u gjet asnjë përmbajtje për filtrat e zgjedhur", + "loading_content": "Duke ngarkuar përmbajtjen...", + "back": "Pas", + "in_theaters": "Në Kinema", + "all": "Të gjitha", + "failed_tmdb": "Dështoi ngarkimi i përmbajtjes nga TMDB", + "movies": "Filma", + "tv_shows": "Emisione TV", + "channels": "Kanale" + }, + "streams": { + "back_to_episodes": "Kthehu tek Episodet", + "back_to_info": "Kthehu tek Info", + "fetching_from": "Duke marrë nga:", + "no_sources_available": "Asnjë burim transmetimi i disponueshëm", + "add_sources_desc": "Ju lutem shtoni burime transmetimi në cilësime", + "add_sources": "Shto Burime", + "finding_streams": "Duke kërkuar burime...", + "finding_best_stream": "Duke kërkuar burimin më të mirë...", + "still_fetching": "Ende duke kërkuar burime…", + "no_streams_available": "Asnjë burim i disponueshëm", + "starting_best_stream": "Duke nisur burimin më të mirë...", + "loading_more_sources": "Duke ngarkuar më shumë burime..." + }, + "player_ui": { + "via": "përmes {{name}}", + "audio_tracks": "Gjurmët Audio", + "no_audio_tracks": "Asnjë gjurmë audio e disponueshme", + "playback_speed": "Shpejtësia e Riprodhimit", + "on_hold": "Në pritje", + "playback_error": "Gabim gjatë riprodhimit", + "unknown_error": "Ndodhi një gabim i panjohur gjatë riprodhimit.", + "copy_error": "Kopjo detajet e gabimit", + "copied_to_clipboard": "U kopjua në clipboard", + "dismiss": "Largo", + "continue_watching": "Vazhdo shikimin", + "start_over": "Fillo nga fillimi", + "resume": "Vazhdo", + "change_source": "Ndrysho Burimin", + "switching_source": "Duke ndërruar burimin...", + "no_sources_found": "Nuk u gjet asnjë burim", + "sources": "Burimet", + "finding_sources": "Duke kërkuar burime...", + "unknown_source": "Burim i panjohur", + "sources_limited": "Burimet mund të jenë të kufizuara për shkak të gabimeve të ofruesit.", + "episodes": "Episode", + "specials": "Speciale", + "season": "Sezoni {{season}}", + "stream": "Burimi {{number}}", + "subtitles": "Titrat", + "built_in": "Të integruara", + "addons": "Shtojcat", + "style": "Stili", + "none": "Asnjë", + "search_online_subtitles": "Kërko Titra Online", + "preview": "Parashikim", + "quick_presets": "Paracaktimet e Shpejta", + "default": "Paracaktuar", + "yellow": "E verdhë", + "high_contrast": "Kontrast i lartë", + "large": "Të mëdha", + "core": "Bazë", + "font_size": "Madhësia e shkrimit", + "show_background": "Shfaq sfondin", + "advanced": "Të avancuara", + "position": "Pozicioni", + "text_color": "Ngjyra e tekstit", + "align": "Rreshtimi", + "bottom_offset": "Largësia nga fundi", + "background_opacity": "Opaciteti i sfondit", + "text_shadow": "Hija e tekstit", + "on": "Aktiv", + "off": "Joaktiv", + "outline_color": "Ngjyra e konturit", + "outline": "Konturi", + "outline_width": "Trashësia e konturit", + "letter_spacing": "Hapësira midis shkronjave", + "line_height": "Lartësia e rreshtit", + "timing_offset": "Vonesa e kohës (s)", + "visual_sync": "Sinkronizim vizual", + "timing_hint": "Lëvizni titrat më herët (-) ose më vonë (+) për sinkronizim.", + "reset_defaults": "Rikthe vlerat fillestare", + "mark_intro_start": "Shëno fillimin e hyrjes", + "mark_intro_end": "Shëno fundin e hyrjes", + "intro_start_marked": "Fillimi i hyrjes u shënua", + "intro_submitted": "Hyrja u dërgua me sukses", + "intro_submit_failed": "Dështoi dërgimi i hyrjes" + }, + "downloads": { + "title": "Shkarkimet", + "no_downloads": "Ende asnjë shkarkim", + "no_downloads_desc": "Përmbajtja e shkarkuar do të shfaqet këtu për shikim offline", + "explore": "Eksploro Përmbajtjen", + "path_copied": "Shtegu u kopjua", + "path_copied_desc": "Shtegu i skedarit lokal u kopjua", + "copied": "U kopjua", + "incomplete": "Shkarkim i papërfunduar", + "incomplete_desc": "Shkarkimi nuk ka përfunduar ende", + "not_available": "Nuk disponohet", + "not_available_desc": "Shtegu lokal është i disponueshëm vetëm pas përfundimit të shkarkimit.", + "status_downloading": "Duke u shkarkuar", + "status_completed": "Përfunduar", + "status_paused": "Në pauzë", + "status_error": "Gabim", + "status_queued": "Në pritje", + "status_unknown": "I panjohur", + "provider": "Ofruesi", + "streaming_playlist_warning": "Mund të mos luhet - listë transmetimi", + "remaining": "mbetur", + "not_ready": "Shkarkimi nuk është gati", + "not_ready_desc": "Ju lutem prisni deri sa të përfundojë shkarkimi.", + "filter_all": "Të gjitha", + "filter_active": "Aktive", + "filter_done": "Të kryera", + "filter_paused": "Në pauzë", + "no_filter_results": "Asnjë shkarkim {{filter}}", + "try_different_filter": "Provoni të zgjidhni një filtër tjetër", + "limitations_title": "Kufizimet e shkarkimit", + "limitations_msg": "• Skedarët më të vegjël se 1MB janë zakonisht lista transmetimi M3U8 dhe nuk mund të shkarkohen për shikim offline.", + "remove_title": "Hiq Shkarkimin", + "remove_confirm": "Dëshironi të hiqni \"{{title}}\"{{season_episode}}?", + "cancel": "Anulo", + "remove": "Hiq" + }, + "addons": { + "title": "Shtojcat", + "reorder_mode": "Mënyra e rirenditjes", + "reorder_info": "Shtojcat në krye kanë prioritet më të lartë gjatë ngarkimit", + "add_addon_placeholder": "URL e shtojcës", + "add_button": "Shto Shtojcë", + "my_addons": "Shtojcat e Mia", + "community_addons": "Shtojcat e Komunitetit", + "no_addons": "Asnjë shtojcë e instaluar", + "uninstall_title": "Çinstalo Shtojcën", + "uninstall_message": "Jeni të sigurt që dëshironi të çinstaloni {{name}}?", + "uninstall_button": "Çinstalo", + "install_success": "Shtojca u instalua me sukses", + "install_error": "Dështoi instalimi i shtojcës", + "load_error": "Dështoi ngarkimi i shtojcave", + "fetch_error": "Dështoi marrja e detajeve të shtojcës", + "invalid_url": "Ju lutem jepni një URL të vlefshme", + "configure": "Konfiguro", + "version": "Versioni: {{version}}", + "installed_addons": "SHTOJCAT E INSTALUARA", + "reorder_drag_title": "TËRHIQ SHTOJCAT PËR RIRENDITJE", + "install": "Instalo", + "config_unavailable_title": "Konfigurimi nuk disponohet", + "config_unavailable_msg": "Nuk u gjet URL-ja e konfigurimit për këtë shtojcë.", + "cannot_open_config_title": "Nuk mund të hapet konfigurimi", + "cannot_open_config_msg": "URL-ja e konfigurimit ({{url}}) nuk mund të hapet.", + "description": "Përshkrimi", + "supported_types": "Llojet e mbështetura", + "catalogs": "Katalogët", + "no_description": "Asnjë përshkrim i disponueshëm", + "overview": "PËRMBLEDHJE", + "no_categories": "Asnjë kategori", + "pre_installed": "TË PARA-INSTALUARA" + }, + "trakt": { + "title": "Cilësimet e Trakt", + "settings_title": "Cilësimet e Trakt", + "connect_title": "Lidhu me Trakt", + "connect_desc": "Sinkronizo historinë, listën e shikimit dhe koleksionin me Trakt.tv", + "sign_in": "Hyr me Trakt", + "sign_out": "Dil", + "sign_out_confirm": "Jeni të sigurt që dëshironi të dilni nga llogaria Trakt?", + "joined": "Anëtarësuar më {{date}}", + "sync_settings_title": "Cilësimet e Sinkronizimit", + "sync_info": "Kur lidheni me Trakt, historia sinkronizohet direkt nga API.", + "auto_sync_label": "Sinkronizim automatik i progresit", + "auto_sync_desc": "Sinkronizo progresin automatikisht në Trakt", + "import_history_label": "Importo historinë", + "import_history_desc": "Përdorni \"Sinkronizo Tani\" për të importuar historinë nga Trakt", + "sync_now_button": "Sinkronizo Tani", + "display_settings_title": "Cilësimet e Shfaqjes", + "show_comments_label": "Shfaq Komentet e Trakt", + "show_comments_desc": "Shfaq komentet në ekranet e informacionit", + "maintenance_title": "Në Mirëmbajtje", + "maintenance_unavailable": "Trakt i padisponueshëm", + "maintenance_desc": "Integrimi me Trakt është ndalur përkohësisht për mirëmbajtje.", + "maintenance_button": "Shërbimi në Mirëmbajtje", + "auth_success_title": "U lidh me sukses", + "auth_success_msg": "Llogaria juaj Trakt u lidh me sukses.", + "auth_error_title": "Gabim Autentikimi", + "auth_error_msg": "Dështoi autentikimi me Trakt.", + "auth_error_generic": "Ndodhi një gabim gjatë autentikimit.", + "sign_out_error": "Dështoi dalja nga Trakt.", + "sync_complete_title": "Sinkronizimi u krye", + "sync_success_msg": "Progresi u sinkronizua me sukses me Trakt.", + "sync_error_msg": "Sinkronizimi dështoi. Ju lutem provoni përsëri." + }, + "simkl": { + "title": "Cilësimet e Simkl", + "settings_title": "Cilësimet e Simkl", + "connect_title": "Lidhu me Simkl", + "connect_desc": "Sinkronizo historinë dhe ndiq atë që po shikon", + "sign_in": "Hyr me Simkl", + "sign_out": "Shkëputu", + "sign_out_confirm": "Jeni të sigurt që dëshironi të shkëputeni nga Simkl?", + "syncing_desc": "Artikujt tuaj po sinkronizohen me Simkl.", + "auth_success_title": "U lidh me sukses", + "auth_success_msg": "Llogaria juaj Simkl u lidh me sukses.", + "auth_error_title": "Gabim Autentikimi", + "auth_error_msg": "Dështoi autentikimi me Simkl.", + "auth_error_generic": "Ndodhi një gabim gjatë autentikimit.", + "sign_out_error": "Dështoi shkëputja nga Simkl.", + "config_error_title": "Gabim Konfigurimi", + "config_error_msg": "Client ID i Simkl mungon.", + "conflict_title": "Konflikt", + "conflict_msg": "Nuk mund të lidheni me Simkl ndërkohë që Trakt është i lidhur. Ju lutem shkëputni Trakt më parë.", + "disclaimer": "Nuvio nuk është i lidhur me Simkl." + }, + "tmdb_settings": { + "title": "Cilësimet e TMDb", + "metadata_enrichment": "Pasurimi i Metadhenave", + "metadata_enrichment_desc": "Përmirësoni detajet e përmbajtjes me të dhëna nga TMDb.", + "enable_enrichment": "Aktivizo Pasurimin", + "enable_enrichment_desc": "Shton aktorët, certifikimet dhe logot nga TMDb.", + "localized_text": "Tekst i Lokalizuar", + "localized_text_desc": "Merr titujt dhe përshkrimet në gjuhën tënde të preferuar.", + "language": "Gjuha", + "change": "Ndrysho", + "logo_preview": "Parashikimi i Logos", + "logo_preview_desc": "Tregon se si do të duken logot në gjuhën e zgjedhur.", + "example": "Shembull:", + "no_logo": "Asnjë logo e disponueshme", + "enrichment_options": "Opsionet e Pasurimit", + "enrichment_options_desc": "Kontrollo cilat të dhëna merren nga TMDb.", + "cast_crew": "Aktorët & Ekipi", + "cast_crew_desc": "Aktorët, regjisorët, skenaristët me foto", + "title_description": "Titulli & Përshkrimi", + "title_description_desc": "Përdor titullin dhe përshkrimin e lokalizuar të TMDb", + "title_logos": "Logot e Titullit", + "title_logos_desc": "Imazhe të cilësisë së lartë për titujt", + "banners_backdrops": "Bannera & Sfonde", + "banners_backdrops_desc": "Imazhe sfondi me rezolucion të lartë", + "certification": "Certifikimi i Përmbajtjes", + "certification_desc": "Vlerësimet e moshës (PG-13, R, etj.)", + "recommendations": "Rekomandime", + "recommendations_desc": "Sugjerime për përmbajtje të ngjashme", + "episode_data": "Të dhënat e Episodit", + "episode_data_desc": "Imazhet dhe info e episodeve për serialet", + "season_posters": "Posterat e Sezonit", + "season_posters_desc": "Imazhe posterash për çdo sezon", + "production_info": "Info e Produksionit", + "production_info_desc": "Rrjetet dhe kompanitë e produksionit", + "movie_details": "Detajet e Filmit", + "movie_details_desc": "Buxheti, të ardhurat, kohëzgjatja", + "tv_details": "Detajet e Serialit", + "tv_details_desc": "Statusi, numri i sezoneve, krijuesit", + "movie_collections": "Koleksionet e Filmave", + "movie_collections_desc": "Filmat e sagave (Marvel, Star Wars, etj.)", + "api_configuration": "Konfigurimi i API", + "api_configuration_desc": "Konfiguro aksesin tuaj në TMDb API.", + "custom_api_key": "Çelës API Personal", + "custom_api_key_desc": "Përdor çelësin tënd për performancë më të mirë.", + "custom_key_active": "Çelësi API personal është aktiv", + "api_key_required": "Kërkohet çelësi API", + "api_key_placeholder": "Ngjit çelësin tënd TMDb API (v3)", + "how_to_get_key": "Si të marr një çelës TMDb API?", + "built_in_key_msg": "Aktualisht po përdoret çelësi i integruar.", + "cache_size": "Madhësia e Cache", + "clear_cache": "Pastro Cache", + "cache_days": "Përgjigjet e TMDB ruhen për 7 ditë.", + "choose_language": "Zgjidh Gjuhën", + "choose_language_desc": "Zgjidh gjuhën tënde për përmbajtjen e TMDb", + "popular": "Popullore", + "all_languages": "Të gjitha gjuhët", + "search_results": "Rezultatet e kërkimit", + "no_languages_found": "Nuk u gjet asnjë gjuhë për \"{{query}}\"", + "clear_search": "Pastro kërkimin", + "clear_cache_title": "Pastro Cache-in e TMDB", + "clear_cache_msg": "Kjo do të fshijë të gjitha të dhënat e ruajtura ({{size}}).", + "clear_cache_success": "Cache-i i TMDB u pastrua me sukses.", + "clear_cache_error": "Dështoi pastrimi i cache-it.", + "clear_api_key_title": "Fshi Çelësin API", + "clear_api_key_msg": "Jeni të sigurt që dëshironi të hiqni çelësin tuaj personal?", + "clear_api_key_success": "Çelësi API u fshi me sukses", + "clear_api_key_error": "Dështoi fshirja e çelësit API", + "empty_api_key": "Çelësi API nuk mund të jetë i zbrazët.", + "invalid_api_key": "Çelës API i pavlefshëm.", + "save_error": "Ndodhi një gabim gjatë ruajtjes.", + "using_builtin_key": "Tani po përdorni çelësin e integruar të TMDb.", + "using_custom_key": "Tani po përdorni çelësin tuaj personal TMDb.", + "enter_custom_key": "Ju lutem jepni dhe ruani çelësin tuaj personal.", + "key_verified": "Çelësi API u verifikua dhe u ruajt me sukses." + }, + { + "settings": { + "language": "Gjuha", + "select_language": "Zgjidh Gjuhën", + "english": "Anglisht", + "portuguese": "Portugalisht", + "portuguese_br": "Portugalisht (Brazil)", + "portuguese_pt": "Portugalisht (Portugali)", + "german": "Gjermanisht", + "arabic": "Arabisht", + "spanish": "Spanjisht", + "french": "Frëngjisht", + "italian": "Italisht", + "croatian": "Kroatisht", + "chinese": "Kinezisht (E thjeshtuar)", + "hindi": "Hindisht", + "serbian": "Serbisht", + "hebrew": "Hebraike", + "bulgarian": "Bullgare", + "polish": "Polake", + "czech": "Çeke", + "turkish": "Turke", + "slovenian": "Sllovene", + "macedonian": "Maqedonase", + "russian": "Ruse", + "filipino": "Filipine", + "dutch_nl": "Holandeze", + "romanian": "Rumune", + "albanian": "Shqipe", + "account": "Llogaria", + "content_discovery": "Përmbajtja & Zbulimi", + "appearance": "Pamja", + "integrations": "Integrimet", + "playback": "Riprodhimi", + "backup_restore": "Rezervimi & Rikthimi", + "updates": "Përditësimet", + "about": "Rreth nesh", + "developer": "Zhvilluesi", + "cache": "Cache", + "title": "Cilësimet", + "settings_title": "Cilësimet", + "sign_in_sync": "Hyni për sinkronizim", + "add_catalogs_sources": "Shtojcat, katalogët dhe burimet", + "player_trailers_downloads": "Player-i, trailer-at, shkarkimet", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Kontrollo për përditësime", + "clear_mdblist_cache": "Pastro Cache-in e MDBList", + "cache_management": "MENAXHIMI I CACHE", + "downloads_counter": "shkarkime dhe po vazhdojnë", + "made_with_love": "Punuar me ❤️ nga Tapframe dhe miqtë", + "sections": { + "information": "INFORMACION", + "account": "LLOGARIA", + "theme": "TEMA", + "layout": "PAMJA (LAYOUT)", + "sources": "BURIMET", + "catalogs": "KATALOGËT", + "discovery": "ZBULIMI", + "metadata": "METADHENAT", + "ai_assistant": "ASISTENTI AI", + "video_player": "VIDEO PLAYER", + "audio_subtitles": "AUDIO & TITRAT", + "media": "MEDIA", + "notifications": "NJOFTIMET", + "testing": "TESTIMI", + "danger_zone": "ZONA E RREZIKUT" + }, + "items": { + "legal": "Ligjore & Mohimi i përgjegjësisë", + "privacy_policy": "Politika e Privatësisë", + "report_issue": "Raporto një problem", + "version": "Versioni", + "contributors": "Kontribuesit", + "view_contributors": "Shiko të gjithë kontribuesit", + "theme": "Tema", + "episode_layout": "Pamja e Episodit", + "streams_backdrop": "Sfondi i burimeve", + "streams_backdrop_desc": "Shfaq sfond të turbullt në burimet mobile", + "addons": "Shtojcat", + "installed": "të instaluara", + "debrid_integration": "Integrimi Debrid", + "debrid_desc": "Lidhu me Torbox", + "plugins": "Shtojcat (Plugins)", + "plugins_desc": "Menaxho shtojcat dhe depot (repositories)", + "catalogs": "Katalogët", + "active": "aktiv", + "home_screen": "Ekrani Kryesor", + "home_screen_desc": "Pamja dhe përmbajtja", + "continue_watching": "Vazhdo Shikimin", + "continue_watching_desc": "Sjellja e cache dhe riprodhimit", + "show_discover": "Shfaq Seksionin e Zbulimit", + "show_discover_desc": "Shfaq përmbajtjen e zbulimit në Kërkim", + "mdblist": "MDBList", + "mdblist_connected": "I lidhur", + "mdblist_desc": "Aktivizo për të shtuar vlerësime & komente", + "simkl": "Simkl", + "simkl_connected": "I lidhur", + "simkl_desc": "Ndiq atë që po shikon", + "tmdb": "TMDB", + "tmdb_desc": "Ofruesi i metadhenave dhe logove", + "openrouter": "OpenRouter API", + "openrouter_connected": "I lidhur", + "openrouter_desc": "Shto çelësin API për bisedën me AI", + "video_player": "Video Player", + "built_in": "I integruar", + "external": "I jashtëm", + "preferred_audio": "Gjuha e preferuar e Audios", + "preferred_subtitle": "Gjuha e preferuar e Titrave", + "subtitle_source": "Prioriteti i Burimit të Titrave", + "auto_select_subs": "Zgjidh Titrat Automatikisht", + "auto_select_subs_desc": "Zgjidh automatikisht titrat që përputhen me preferencat tuaja", + "show_trailers": "Shfaq Trailer-at", + "show_trailers_desc": "Shfaq trailer-at në seksionin kryesor", + "enable_downloads": "Aktivizo Shkarkimet", + "enable_downloads_desc": "Shfaq skedën e shkarkimeve dhe aktivizo ruajtjen e burimeve", + "notifications": "Njoftimet", + "notifications_desc": "Kujtesat për episode", + "developer_tools": "Mjetet e Zhvilluesit", + "developer_tools_desc": "Opsionet e testimit dhe korrigjimit", + "test_onboarding": "Testo Mirëseardhjen", + "reset_onboarding": "Rifillo Mirëseardhjen", + "test_announcement": "Testo Njoftimin", + "test_announcement_desc": "Shfaq njoftimin për risitë", + "reset_campaigns": "Rifillo Fushatat", + "reset_campaigns_desc": "Pastro përshtypjet e fushatave", + "clear_all_data": "Pastro të gjitha të dhënat", + "clear_all_data_desc": "Rifillo të gjitha cilësimet dhe të dhënat e cache" + }, + "options": { + "horizontal": "Horizontal", + "vertical": "Vertikal", + "internal_first": "Të brendshmet paratë", + "internal_first_desc": "Prefero titrat e integruar, pastaj ato të jashtëm", + "external_first": "Të jashtmet paratë", + "external_first_desc": "Prefero titrat nga shtojcat, pastaj ato të integruar", + "any_available": "Çdo gjë e disponueshme", + "any_available_desc": "Përdor gjurmën e parë të disponueshme të titrave" + }, + "clear_data_desc": "Kjo do të rikthejë të gjitha cilësimet dhe do të fshijë të gjithë cache-in. Jeni të sigurt?", + "app_updates": "Përditësimet e Aplikacionit", + "about_nuvio": "Rreth Nuvio" + }, + "privacy": { + "title": "Privatësia & Të dhënat", + "settings_desc": "Kontrollo telemetrinë dhe mbledhjen e të dhënave", + "info_title": "Privatësia Juaj ka Rëndësi", + "info_description": "Kontrolloni cilat të dhëna mblidhen dhe shpërndahen. Analitika është e çaktivizuar si parazgjedhje dhe raportet e gabimeve janë anonime.", + "analytics_enabled_title": "Analitika u Aktivizua", + "analytics_enabled_message": "Të dhënat e përdorimit do të mblidhen për të përmirësuar aplikacionin. Mund ta çaktivizoni këtë në çdo kohë.", + "disable_error_reporting_title": "Çaktivizo Raportimin e Gabimeve?", + "disable_error_reporting_message": "Nëse e çaktivizoni, ne nuk do të njoftohemi për mbylljet e papritura apo problemet. Kjo mund të ndikojë në aftësinë tonë për të rregulluar gabimet.", + "enable_session_replay_title": "Aktivizo Rishikimin e Sesionit?", + "enable_session_replay_message": "Rishikimi i sesionit regjistron ekranin tuaj kur ndodhin gabime. Kjo mund të kapë përmbajtje të dukshme në ekranin tuaj.", + "enable_pii_title": "Aktivizo Mbledhjen e PII?", + "enable_pii_message": "Kjo lejon mbledhjen e të dhënave identifikuese si adresa IP dhe detajet e pajisjes për të diagnostikuar problemet.", + "disable_all_title": "Çaktivizo të gjithë Telemetrinë?", + "disable_all_message": "Kjo do të çaktivizojë analitikën, raportimin e gabimeve dhe rishikimin e sesionit.", + "disable_all_button": "Çaktivizo të Gjitha", + "all_disabled_title": "Telemetria u Çaktivizua", + "all_disabled_message": "Mbledhja e të dhënave është çaktivizuar. Ndryshimet do të hyjnë në fuqi pas rinisjes së aplikacionit.", + "reset_title": "Rikthe te të Rekomanduarat", + "reset_message": "Cilësimet e privatësisë janë rikthyer në vlerat e rekomanduara (raportimi i gabimeve aktiv, analitika joaktive).", + "section_analytics": "ANALITIKA", + "analytics_title": "Analitika e Përdorimit", + "analytics_description": "Mblidh modele anonime të përdorimit", + "section_error_reporting": "RAPORTIMI I GABIMEVE", + "error_reporting_title": "Raportet e Gabimeve", + "error_reporting_description": "Dërgo raporte anonime për të përmirësuar stabilitetin", + "session_replay_title": "Rishikimi i Sesionit", + "session_replay_description": "Regjistro ekranin kur ndodhin gabime", + "pii_title": "Përfshi Info e Pajisjes", + "pii_description": "Dërgo adresën IP dhe detajet e pajisjes me raporte", + "section_quick_actions": "VEPRIME TË SHPEJTA", + "disable_all": "Çaktivizo të gjithë Telemetrinë", + "disable_all_desc": "Fikni çdo mbledhje të dhënash", + "reset_recommended": "Rikthe te të Rekomanduarat", + "reset_recommended_desc": "Parazgjedhje për privatësi me raportim gabimesh", + "section_learn_more": "MËSO MË SHUMË", + "privacy_policy": "Politika e Privatësisë", + "current_settings": "Përmbledhja e Cilësimeve Aktuale", + "summary_analytics": "Analitika", + "summary_errors": "Raportet e Gabimeve", + "summary_replay": "Rishikimi i Sesionit", + "summary_pii": "Info e Pajisjes", + "restart_note_detailed": "* Analitika dhe raportimi i gabimeve hyjnë në fuqi menjëherë. Rishikimi i sesionit dhe PII kërkojnë rinisje të aplikacionit." + }, + "ai_settings": { + "title": "Asistenti AI", + "info_title": "Bisedë e Fuqizuar nga AI", + "info_desc": "Bëni pyetje për çdo film apo episod duke përdorur AI të avancuar. Merrni informacione për subjektin, personazhet, temat dhe më shumë.", + "feature_1": "Kontekst dhe analizë specifike për episodin", + "feature_2": "Shpjegime të subjektit dhe njohuri për personazhet", + "feature_3": "Kuriozitete dhe fakte nga prapaskenat", + "feature_4": "Çelësi juaj falas OpenRouter API", + "api_key_section": "ÇELËSI OPENROUTER API", + "api_key_label": "Çelësi API", + "api_key_desc": "Jepni çelësin tuaj OpenRouter API për të aktivizuar AI", + "save_api_key": "Ruaj Çelësin API", + "saving": "Duke u ruajtur...", + "update": "Përditëso", + "remove": "Hiq", + "get_free_key": "Merr Çelës API Falas nga OpenRouter", + "enable_chat": "Aktivizo AI Chat", + "enable_chat_desc": "Kur aktivizohet, butoni \"Pyet AI\" do të shfaqet në faqet e përmbajtjes.", + "chat_enabled": "AI Chat u Aktivizua", + "chat_enabled_desc": "Tani mund të bëni pyetje. Kërkoni butonin \"Pyet AI\"!", + "how_it_works": "Si funksionon", + "how_it_works_desc": "• OpenRouter ofron akses në modele të shumta AI\n• Çelësi juaj mbetet privat dhe i sigurt\n• Paketa falas përfshin limite bujare përdorimi\n• Bisedoni me kontekst për episode/filma specifikë", + "error_invalid_key": "Ju lutem jepni një çelës API të vlefshëm", + "error_key_format": "Çelësat OpenRouter duhet të fillojnë me \"sk-or-\"", + "success_saved": "Çelësi OpenRouter u ruajt me sukses!", + "error_save": "Dështoi ruajtja e çelësit API", + "confirm_remove_title": "Hiq Çelësin API", + "confirm_remove_msg": "Jeni të sigurt? Kjo do të çaktivizojë veçoritë e AI.", + "success_removed": "Çelësi API u hoq me sukses", + "error_remove": "Dështoi heqja e çelësit API" + }, + "catalog_settings": { + "title": "Katalogët", + "layout_phone": "PAMJA E EKRANIT TË KATALOGUT (TELEFON)", + "posters_per_row": "Postera për rresht", + "auto": "Auto", + "show_titles": "Shfaq Titujt e Posterave", + "show_titles_desc": "Shfaq tekstin e titullit poshtë çdo posteri", + "phone_only_hint": "Vlen vetëm për telefonat. Tabletat mbajnë pamjen adaptive.", + "catalogs_group": "Katalogët", + "enabled_count": "{{enabled}} nga {{total}} të aktivizuar", + "rename_hint": "Shtypni gjatë një katalog për ta riemërtuar", + "rename_modal_title": "Riemërto Katalogun", + "rename_placeholder": "Jepni emrin e ri të katalogut", + "error_save_name": "Nuk u mundësua ruajtja e emrit të personalizuar." + }, + "continue_watching_settings": { + "title": "Vazhdo Shikimin", + "playback_behavior": "SJELLJA E RIPRODHIMIT", + "use_cached": "Përdor Burimet e Ruajtura (Cache)", + "use_cached_desc": "Kur aktivizohet, klikimi te \"Vazhdo Shikimin\" hap direkt player-in me burimin e fundit. Kur çaktivizohet, hap ekranin e përmbajtjes.", + "open_metadata": "Hap Ekranin e Metadhenave", + "open_metadata_desc": "Hap detajet e përmbajtjes në vend të listës së burimeve.", + "card_appearance": "PAMJA E KARTËS", + "card_style": "Stili i Kartës", + "card_style_desc": "Zgjidhni si do të shfaqen artikujt në ekranin kryesor", + "wide": "E gjerë", + "poster": "Poster", + "cache_settings": "CILËSIMET E CACHE", + "cache_duration": "Kohëzgjatja e Cache të Burimit", + "cache_duration_desc": "Sa gjatë do të ruhen linqet e burimeve para se të skadojnë", + "important_note": "Shënim i Rëndësishëm", + "important_note_text": "Linqet mund të skadojnë më shpejt se kohëzgjatja e cache. Nëse një link dështon, aplikacioni do të kërkojë burime të reja.", + "how_it_works": "Si funksionon", + "how_it_works_cached": "• Burimet ruhen në cache për kohën e zgjedhur\n• Burimet validohen para përdorimit\n• Nëse cache skadon, kthehet te ekrani i përmbajtjes", + "how_it_works_uncached": "• Kur cache është i fikur, hapet ekrani i informacionit\n• Ju lejon të zgjidhni burimin manualisht", + "changes_saved": "Ndryshimet u ruajtën", + "min": "min", + "hour": "orë", + "hours": "orë" + }, + "contributors": { + "title": "Kontribuesit", + "special_mentions": "Përmendje Speciale", + "tab_contributors": "Kontribuesit", + "tab_special": "Speciale", + "tab_donors": "Dhuruesit", + "manager_role": "Menaxher i Komunitetit", + "manager_desc": "Menaxhon komunitetet në Discord & Reddit", + "sponsor_role": "Sponsor i Serverit", + "sponsor_desc": "Sponsorizoi infrastrukturën e serverit", + "mod_role": "Moderator Discord", + "mod_desc": "Ndihmon në moderimin e komunitetit", + "loading": "Duke u ngarkuar...", + "discord_user": "Përdorues Discord", + "contributions": "kontribute", + "gratitude_title": "Jemi mirënjohës për çdo kontribut", + "gratitude_desc": "Çdo rresht kodi dhe sugjerim ndihmon Nuvio-n të rritet", + "special_thanks_title": "Falënderime të Veçanta", + "special_thanks_desc": "Këta njerëz mahnitës mbajnë gjallë komunitetin dhe serverat tanë", + "donors_desc": "Faleminderit që besoni në projektin tonë. Mbështetja juaj e mban Nuvio-n falas.", + "latest_donations": "Të fundit", + "leaderboard": "Tabela e Nderit", + "loading_donors": "Duke ngarkuar dhuruesit...", + "no_donors": "Ende asnjë dhurues", + "error_rate_limit": "U kalua limiti i API të GitHub. Provoni më vonë.", + "error_failed": "Dështoi ngarkimi i kontribuesve.", + "retry": "Riprovo", + "no_contributors": "Nuk u gjet asnjë kontribues", + "loading_contributors": "Duke ngarkuar kontribuesit..." + }, + "debrid": { + "title": "Integrimi Debrid", + "description_torbox": "Zhbllokoni burimet 4K dhe shpejtësitë maksimale duke integruar Torbox.", + "description_torrentio": "Konfiguro Torrentio për të marrë burime torrent. Kërkohet një shërbim debrid.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "I lidhur", + "status_disconnected": "I shkëputur", + "enable_addon": "Aktivizo Shtojcën", + "disconnect_button": "Shkëputu & Hiq", + "disconnect_loading": "Duke u shkëputur...", + "account_info": "Informacioni i Llogarisë", + "plan": "Plani", + "plan_free": "Falas", + "plan_essential": "Essential ($3/muaj)", + "plan_pro": "Pro ($10/muaj)", + "plan_standard": "Standard ($5/muaj)", + "plan_unknown": "I panjohur", + "expires": "Skadon", + "downloaded": "Shkarkuar", + "status_active": "Aktiv", + "connected_title": "✓ Lidhur me TorBox", + "connected_desc": "Shtojca TorBox është aktive dhe ofron burime premium.", + "configure_title": "Konfiguro Shtojcën", + "configure_desc": "Personalizoni përvojën tuaj të transmetimit.", + "open_settings": "Hap Cilësimet", + "what_is_debrid": "Çfarë është një Shërbim Debrid?", + "enter_api_key": "Jepni çelësin API", + "connect_button": "Lidhu & Instalo", + "connecting": "Duke u lidhur...", + "unlock_speeds_title": "Zhblloko Shpejtësitë Premium", + "unlock_speeds_desc": "Merrni një pajtim në Torbox për transmetim pa buffering.", + "get_subscription": "Merr Pajtimin", + "powered_by": "Fuqizuar nga", + "disclaimer_torbox": "Nuvio nuk është i lidhur me Torbox.", + "disclaimer_torrentio": "Nuvio nuk është i lidhur me Torrentio.", + "installed_badge": "✓ I INSTALUAR", + "promo_title": "⚡ Keni nevojë për Shërbim Debrid?", + "promo_desc": "Merrni TorBox për transmetim 4K jashtëzakonisht të shpejtë.", + "promo_button": "Merr Pajtimin në TorBox", + "service_label": "Shërbimi Debrid *", + "api_key_label": "Çelësi API *", + "sorting_label": "Renditja", + "exclude_qualities": "Përjashto Cilësitë", + "priority_languages": "Gjuhët Prioritare", + "max_results": "Maksimumi i Rezultateve", + "additional_options": "Opsione Shtesë", + "no_download_links": "Mos shfaq linqet e shkarkimit", + "no_debrid_catalog": "Mos shfaq katalogun debrid", + "install_button": "Instalo Torrentio", + "installing": "Duke u instaluar...", + "update_button": "Përditëso Konfigurimin", + "updating": "Duke u përditësuar...", + "remove_button": "Hiq Torrentio", + "error_api_required": "Kërkohet Çelësi API", + "error_api_required_desc": "Ju lutem jepni çelësin API për të instaluar Torrentio.", + "success_installed": "Shtojca Torrentio u instaluar me sukses!", + "success_removed": "Shtojca Torrentio u hoq me sukses", + "alert_disconnect_title": "Shkëput Torbox", + "alert_disconnect_msg": "Jeni të sigurt? Kjo do të fshijë çelësin API të ruajtur." + }, + { + "home_screen": { + "title": "Cilësimet e Ekranit Kryesor", + "changes_applied": "Ndryshimet u aplikuan", + "display_options": "OPSIONET E SHFAQJES", + "show_hero": "Shfaq Seksionin Hero", + "show_hero_desc": "Përmbajtja e sugjeruar në krye", + "show_this_week": "Shfaq Seksionin 'Këtë Javë'", + "show_this_week_desc": "Episodet e reja nga java aktuale", + "select_catalogs": "Zgjidh Katalogët", + "all_catalogs": "Të gjithë katalogët", + "selected": "të zgjedhur", + "hero_layout": "Pamja e Seksionit Hero", + "layout_legacy": "Klasike", + "layout_carousel": "Karuzel", + "layout_appletv": "Apple TV", + "layout_desc": "Banner me gjerësi të plotë, karta rrëshqitëse ose stili Apple TV", + "featured_source": "Burimi i Sugjeruar", + "using_catalogs": "Duke përdorur Katalogët", + "manage_selected_catalogs": "Menaxho katalogët e zgjedhur", + "dynamic_bg": "Sfond Dinamik për Hero", + "dynamic_bg_desc": "Banner i turbullt pas karuzelit", + "performance_note": "Mund të ndikojë në performancë në pajisjet e vjetra.", + "posters": "Posterat", + "show_titles": "Shfaq Titujt", + "poster_size": "Madhësia e Posterit", + "poster_corners": "Këndet e Posterit", + "size_small": "Vogël", + "size_medium": "Mesme", + "size_large": "Madhe", + "corners_square": "Katror", + "corners_rounded": "Rrumbullakosur", + "corners_pill": "Kapsulë (Pill)", + "about_these_settings": "RRETH KËTYRE CILËSIMEVE", + "about_desc": "Këto cilësime kontrollojnë shfaqjen e përmbajtjes në ekranin kryesor. Ndryshimet aplikohen menjëherë.", + "hero_catalogs": { + "title": "Katalogët e Seksionit Hero", + "select_all": "Zgjidh të Gjitha", + "clear_all": "Pastro të Gjitha", + "info": "Zgjidh cilët katalogë do të shfaqen në seksionin hero. Nëse nuk zgjidhet asnjë, do të përdoren të gjithë. Mos harroni të shtypni Ruaj.", + "settings_saved": "Cilësimet u ruajtën", + "error_load": "Dështoi ngarkimi i katalogëve", + "movies": "Filma", + "tv_shows": "Serialet" + } + }, + "calendar": { + "title": "Kalendari", + "loading": "Duke ngarkuar kalendarin...", + "no_scheduled_episodes": "Nuk ka episode të planifikuara", + "check_back_later": "Kontrolloni përsëri më vonë", + "showing_episodes_for": "Duke shfaqur episodet për {{date}}", + "show_all_episodes": "Shfaq të Gjithë Episodet", + "no_episodes_for": "Nuk ka episode për {{date}}", + "no_upcoming_found": "Nuk u gjet asnjë episod i ardhshëm", + "add_series_desc": "Shtoni seriale në bibliotekë për të parë episodet e tyre të ardhshme këtu" + }, + "mdblist": { + "title": "Burimet e Vlerësimit", + "status_disabled": "MDBList u çaktivizua", + "status_active": "Çelësi API Aktiv", + "status_required": "Kërkohet Çelësi API", + "status_disabled_desc": "Funksionaliteti i MDBList është aktualisht i fikur.", + "status_active_desc": "Vlerësimet nga MDBList janë aktive.", + "status_required_desc": "Shtoni çelësin tuaj më poshtë për të aktivizuar vlerësimet.", + "enable_toggle": "Aktivizo MDBList", + "enable_toggle_desc": "Ndez/Fik të gjithë funksionalitetin e MDBList", + "api_section": "Çelësi API", + "placeholder": "Ngjisni çelësin tuaj API të MDBList", + "save": "Ruaj", + "clear": "Fshi Çelësin", + "rating_providers": "Ofruesit e Vlerësimeve", + "rating_providers_desc": "Zgjidhni cilat vlerësime të shfaqen në aplikacion", + "how_to": "Si të merrni një çelës API", + "step_1": "Hyni në faqen e", + "step_1_link": "MDBList", + "step_2": "Shkoni te seksioni", + "step_2_settings": "Cilësimet (Settings)", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Gjeneroni një çelës të ri dhe kopjojeni atë.", + "go_to_website": "Shko te MDBList", + "alert_clear_title": "Fshi Çelësin API", + "alert_clear_msg": "Jeni të sigurt që dëshironi të hiqni çelësin API të ruajtur?", + "success_saved": "Çelësi API u ruajt me sukses.", + "error_empty": "Çelësi API nuk mund të jetë bosh.", + "error_save": "Ndodhi një gabim gjatë ruajtjes. Provoni përsëri.", + "api_key_empty_error": "Çelësi API nuk mund të jetë bosh.", + "success_cleared": "Çelësi API u fshi me sukses", + "error_clear": "Dështoi fshirja e çelësit API" + }, + "notification": { + "title": "Cilësimet e Njoftimeve", + "section_general": "Të përgjithshme", + "enable_notifications": "Aktivizo Njoftimet", + "section_types": "Llojet e Njoftimeve", + "new_episodes": "Episode të Reja", + "upcoming_shows": "Serialet e Ardhshme", + "reminders": "Kujtesat", + "section_timing": "Koha e Njoftimit", + "timing_desc": "Kur dëshironi të njoftoheni para transmetimit të episodit?", + "hours_1": "1 orë", + "hours_suffix": "orë", + "section_status": "Statusi i Njoftimeve", + "stats_upcoming": "Të ardhshme", + "stats_this_week": "Këtë javë", + "stats_total": "Totali", + "sync_button": "Sinkronizo Bibliotekën & Trakt", + "syncing": "Duke u sinkronizuar...", + "sync_desc": "Sinkronizon automatikisht njoftimet për bibliotekën tuaj dhe listat e Trakt.", + "section_advanced": "Të avancuara", + "reset_button": "Rifillo të gjitha njoftimet", + "test_button": "Testo Njoftimin (5 sek)", + "test_notification_in": "Njoftimi pas {{seconds}}s...", + "test_notification_text": "Njoftimi do të shfaqet pas {{seconds}} sekondash", + "alert_reset_title": "Rifillo Njoftimet", + "alert_reset_msg": "Kjo do të anulojë të gjitha njoftimet e planifikuara. Jeni të sigurt?", + "alert_reset_success": "Të gjitha njoftimet janë rifilluar", + "alert_sync_complete": "Sinkronizimi u krye", + "alert_sync_msg": "Njoftimet u sinkronizuan me sukses.\n\nPlanifikuar: {{upcoming}} episode\nKëtë javë: {{thisWeek}} episode", + "alert_test_scheduled": "Njoftimi i testimit u planifikua" + }, + "backup": { + "title": "Rezervimi & Rikthimi", + "options_title": "Opsionet e Rezervimit", + "options_desc": "Zgjidhni çfarë të përfshini në rezervimin tuaj", + "section_core": "Të dhënat kryesore", + "section_addons": "Shtojcat & Integrimet", + "section_settings": "Cilësimet & Preferencat", + "library_label": "Biblioteka", + "library_desc": "Filmat dhe serialet tuaja të ruajtura", + "watch_progress_label": "Progresi i Shikimit", + "watch_progress_desc": "Pozicionet e fundit të shikimit", + "addons_label": "Shtojcat (Addons)", + "addons_desc": "Shtojcat e instaluara të Stremio", + "plugins_label": "Plugins", + "plugins_desc": "Konfigurimet e personalizuara të skraperëve", + "trakt_label": "Integrimi Trakt", + "trakt_desc": "Të dhënat e sinkronizimit dhe token-at", + "app_settings_label": "Cilësimet e Aplikacionit", + "app_settings_desc": "Tema, preferencat dhe konfigurimet", + "user_prefs_label": "Preferencat e Përdoruesit", + "user_prefs_desc": "Renditja e shtojcave dhe cilësimet e UI", + "catalog_settings_label": "Cilësimet e Katalogut", + "catalog_settings_desc": "Filtrat dhe preferencat e katalogut", + "api_keys_label": "Çelësat API", + "api_keys_desc": "Çelësat e MDBList dhe OpenRouter", + "action_create": "Krijo Rezervim (Backup)", + "action_restore": "Rikthe nga Rezervimi", + "section_info": "Rreth Rezervimeve", + "info_text": "• Skedarët e rezervimit ruhen lokalisht në pajisje\n• Mund ta ndani rezervimin për të transferuar të dhënat\n• Rikthimi do të fshijë të dhënat tuaja aktuale", + "alert_create_title": "Krijo Rezervim", + "alert_no_content": "Asnjë opsion nuk është zgjedhur për rezervim.", + "alert_backup_created_title": "Rezervimi u krijua", + "alert_backup_created_msg": "Rezervimi juaj është gati për t'u ndarë.", + "alert_backup_failed_title": "Rezervimi dështoi", + "alert_restore_confirm_title": "Konfirmo Rikthimin", + "alert_restore_confirm_msg": "Kjo do të rikthejë të dhënat nga rezervimi i datës {{date}}. Kjo do të mbishkruajë të dhënat aktuale. Vazhdoni?", + "alert_restore_complete_title": "Rikthimi u krye", + "alert_restore_complete_msg": "Të dhënat u rikthyen me sukses. Ju lutem rinisni aplikacionin.", + "alert_restore_failed_title": "Rikthimi dështoi", + "restart_app": "Rinis Aplikacionin", + "alert_restart_failed_title": "Rinisja dështoi", + "alert_restart_failed_msg": "Mbylleni dhe hapeni aplikacionin manualisht për të parë ndryshimet." + }, + "updates": { + "title": "Përditësimet", + "status_checking": "Duke kërkuar për përditësime...", + "status_available": "Përditësim i ri i disponueshëm!", + "status_downloading": "Duke shkarkuar përditësimin...", + "status_installing": "Duke instaluar përditësimin...", + "status_success": "Përditësimi u instalua me sukses!", + "status_error": "Përditësimi dështoi", + "status_ready": "Gati për të kërkuar përditësime", + "action_check": "Kontrollo për Përditësime", + "action_install": "Instalo Përditësimin", + "release_notes": "Shënimet e versionit:", + "version": "Versioni:", + "last_checked": "Kontrolli i fundit:", + "current_version": "Versioni aktual:", + "current_release_notes": "Shënimet e versionit aktual:", + "github_release": "VERSIONI NË GITHUB", + "current": "Aktual:", + "latest": "I fundit:", + "notes": "Shënime:", + "view_release": "Shiko Versionin", + "notification_settings": "CILËSIMET E NJOFTIMEVE", + "ota_alerts_label": "Njoftimet OTA", + "ota_alerts_desc": "Shfaq njoftime për përditësimet 'over-the-air'", + "major_alerts_label": "Njoftime për Versionet Kryesore", + "major_alerts_desc": "Shfaq njoftime për versione të reja në GitHub", + "alert_disable_ota_title": "Çaktivizo njoftimet OTA?", + "alert_disable_ota_msg": "Nuk do të merrni më njoftime automatike. Përditësimet janë të rëndësishme për rregullimin e gabimeve dhe stabilitetin.", + "alert_disable_major_title": "Çaktivizo njoftimet kryesore?", + "alert_disable_major_msg": "Versionet kryesore shpesh përfshijnë arnime sigurie dhe veçori të reja.", + "warning_note": "Mbajtja e njoftimeve aktive ju siguron që të keni gjithmonë versionin më të sigurt.", + "disable": "Çaktivizo", + "alert_no_update_to_install": "Nuk ka asnjë përditësim për të instaluar", + "alert_install_failed": "Dështoi instalimi i përditësimit", + "alert_no_update_title": "Asnjë përditësim", + "alert_update_applied_msg": "Përditësimi do të aplikohet në rinisjen e radhës" + }, + "player": { + "title": "Video Player", + "section_selection": "ZGJEDHJA E PLAYER-IT", + "internal_title": "Player i Integruar", + "internal_desc": "Përdor player-in e paracaktuar të aplikacionit", + "vlc_title": "VLC", + "vlc_desc": "Hap burimet në VLC media player", + "infuse_title": "Infuse", + "infuse_desc": "Hap burimet në Infuse player", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Hap burimet në OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Hap burimet në VidHub player", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Hap burimet në Infuse player LiveContainer", + "external_title": "Player i Jashtëm", + "external_desc": "Hap burimet në player-in tuaj të preferuar", + "section_playback": "OPSIONET E RIPRODHIMIT", + "skip_intro_settings_title": "Anashkalo Intron", + "powered_by_introdb": "Mundësuar nga IntroDB", + "autoplay_title": "Luaj Automatikisht Burimin e Parë", + "autoplay_desc": "Fillo automatikisht burimin e parë në listë.", + "resume_title": "Vazhdo Gjithmonë", + "resume_desc": "Vazhdo automatikisht aty ku e keni lënë pa pyetur.", + "engine_title": "Motori i Video Player-it", + "engine_desc": "Auto përdor ExoPlayer me rikthim në MPV. Rekomandohet për pajtueshmëri më të mirë.", + "decoder_title": "Mënyra e Dekoderit", + "decoder_desc": "Si dekodohet videoja. Auto rekomandohet.", + "gpu_title": "Renderimi me GPU", + "gpu_desc": "GPU-Next ofron menaxhim më të mirë të HDR dhe ngjyrave.", + "external_downloads_title": "Player i Jashtëm për Shkarkimet", + "external_downloads_desc": "Luaj përmbajtjen e shkarkuar në një player të jashtëm.", + "restart_required": "Kërkohet Rinisja", + "restart_msg_decoder": "Rinisni aplikacionin që ndryshimi i dekoderit të hyjë në fuqi.", + "restart_msg_gpu": "Rinisni aplikacionin që ndryshimi i GPU-së të hyjë në fuqi.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + rikthim në MPV", + "option_mpv": "MPV", + "option_mpv_desc": "Vetëm MPV", + "option_auto_desc_decoder": "Ekuilibri më i mirë", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Hardware i Plotë", + "option_gpu_desc": "Standarde", + "option_gpu_next_desc": "Avancuar" + }, + "plugins": { + "title": "Plugins", + "enable_title": "Aktivizo Plugins", + "enable_desc": "Aktivizo motorin e plugin-eve për të gjetur burime mediash", + "repo_config_title": "Konfigurimi i Repositorit", + "repo_config_desc": "Menaxho repositoret e jashtme të plugin-eve.", + "your_repos": "Repositoret", + "your_repos_desc": "Konfiguro burimet e jashtme për plugin-et.", + "add_repo_button": "Shto Repositor", + "refresh": "Rinfresko", + "remove": "Hiq", + "enabled": "Aktivizuar", + "disabled": "Çaktivizuar", + "updating": "Duke u përditësuar...", + "success": "Sukses", + "error": "Gabim", + "alert_repo_added": "Repositori u shtua dhe plugin-et u ngarkuan", + "alert_repo_saved": "URL e repositorit u ruajt me sukses", + "alert_repo_refreshed": "Repositori u rinfreskua me sukses", + "alert_invalid_url": "Format i pavlefshëm i URL-së", + "alert_plugins_cleared": "Të gjithë plugin-et janë hequr", + "alert_cache_cleared": "Cache i repositorit u pastrua", + "unknown": "I panjohur", + "active": "Aktiv", + "available": "I disponueshëm", + "platform_disabled": "Platformë e Çaktivizuar", + "limited": "I kufizuar", + "clear_all": "Fshi të Gjithë Plugin-et", + "clear_all_desc": "Jeni të sigurt? Ky veprim nuk mund të kthehet mbrapa.", + "clear_cache": "Pastro Cache-in e Repositorit", + "clear_cache_desc": "Kjo do të fshijë URL-në dhe të dhënat e ruajtura.", + "add_new_repo": "Shto Repositor të Ri", + "available_plugins": "Plugin-e të disponueshëm ({{count}})", + "placeholder": "Kërko plugin-e...", + "all": "Të gjithë", + "filter_all": "Të gjitha llojet", + "filter_movies": "Filma", + "filter_tv": "Seriale", + "enable_all": "Aktivizo të Gjitha", + "disable_all": "Çaktivizo të Gjitha", + "no_plugins_found": "Nuk u gjet asnjë plugin", + "no_plugins_available": "Nuk ka plugin-e të disponueshëm", + "no_match_desc": "Asnjë plugin nuk përputhet me \"{{query}}\".", + "configure_repo_desc": "Konfiguroni një repositor për të parë plugin-et.", + "clear_search": "Pastro Kërkimin", + "no_external_player": "Asnjë player i jashtëm", + "showbox_token": "Token-i i UI të ShowBox", + "showbox_placeholder": "Ngjisni token-in tuaj këtu", + "save": "Ruaj", + "clear": "Pastro", + "additional_settings": "Cilësime Shtesë", + "enable_url_validation": "Aktivizo Validimin e URL-së", + "url_validation_desc": "Validon linqet para shfaqjes (mund të jetë më i ngadaltë).", + "group_streams": "Grupo Burimet e Plugin-eve", + "group_streams_desc": "Burimet grupohen sipas repositorit.", + "sort_quality": "Rendit sipas Cilësisë", + "sort_quality_desc": "Burimet renditen së pari sipas rezolucionit.", + "show_logos": "Shfaq Logot e Plugin-eve", + "show_logos_desc": "Shfaq ikonat e plugin-eve pranë linqeve.", + "quality_filtering": "Filtrimi i Cilësisë", + "quality_filtering_desc": "Përjashto rezolucione specifike nga rezultatet.", + "excluded_qualities": "Cilësitë e përjashtuara:", + "language_filtering": "Filtrimi i Gjuhës", + "language_filtering_desc": "Përjashto gjuhë specifike nga kërkimi.", + "note": "Shënim:", + "language_filtering_note": "Ky filtër vlen vetëm për ofruesit që japin info për gjuhën.", + "excluded_languages": "Gjuhët e përjashtuara:", + "about_title": "Rreth Plugin-eve", + "about_desc_1": "Plugin-et janë komponentë që përshtatin përmbajtjen nga burime të jashtme. Ato funksionojnë lokalisht.", + "about_desc_2": "Plugin-et e shënuar si \"Limited\" mund të kërkojnë konfigurim shtesë.", + "help_title": "Konfigurimi i Plugin-eve", + "help_step_1": "1. **Aktivizo Plugin-et** - Ndizni çelësin kryesor", + "help_step_2": "2. **Shto Repositor** - Shtoni një URL të vlefshme", + "help_step_3": "3. **Rinfresko** - Ngarkoni plugin-et e disponueshëm", + "help_step_4": "4. **Aktivizo** - Ndizni plugin-et që dëshironi", + "got_it": "U kuptua!", + "repo_format_hint": "Formati: https://raw.githubusercontent.com/përdoruesi/repo/branch", + "cancel": "Anulo", + "add": "Shto" + }, + "theme": { + "title": "Temat e Aplikacionit", + "select_theme": "ZGJIDH TEMËN", + "create_custom": "Krijo Temë të Personalizuar", + "options": "OPSIONET", + "use_dominant_color": "Përdor Ngjyrën Dominante nga Arti", + "categories": { + "all": "Të gjitha temat", + "dark": "Tema të Erreta", + "colorful": "Me Ngjyra", + "custom": "Temat e Mia" + }, + "editor": { + "theme_name_placeholder": "Emri i temës", + "save": "Ruaj", + "primary": "Primare", + "secondary": "Sekondare", + "background": "Sfondi", + "invalid_name_title": "Emër i Pavlefshëm", + "invalid_name_msg": "Ju lutem jepni një emër të vlefshëm" + }, + "alerts": { + "delete_title": "Fshi Temën", + "delete_msg": "Jeni të sigurt që dëshironi të fshini \"{{name}}\"?", + "ok": "OK", + "delete": "Fshi", + "cancel": "Anulo", + "back": "Cilësimet" + } + }, + "legal": { + "title": "Ligjore & Mohimi i Përgjegjësisë", + "intro_title": "Natyra e Aplikacionit", + "intro_text": "Nuvio është një player mediash dhe mjet menaxhimi metadhenash. Ai shërben vetëm si ndërfaqe për shfletimin e metadhenave publike. Nuvio nuk mban, nuk shpërndan dhe nuk indekson asnjë përmbajtje mediatike.", + "extensions_title": "Plugins nga Palët e Treta", + "extensions_text": "Nuvio lejon instalimin e plugin-eve nga zhvillues të pavarur. Ne nuk kemi kontroll dhe nuk mbajmë përgjegjësi për ligjshmërinë apo funksionalitetin e tyre.", + "user_resp_title": "Përgjegjësia e Përdoruesit", + "user_resp_text": "Përdoruesit janë përgjegjësit e vetëm për plugin-et që instalojnë. Duke përdorur aplikacionin, ju pranoni që keni të drejtën ligjore për të hyrë në përmbajtjen që shikoni.", + "dmca_title": "E Drejta e Autorit & DMCA", + "dmca_text": "Ne respektojmë pronësinë intelektuale. Meqenëse Nuvio nuk mban përmbajtje, ne nuk mund të fshijmë materiale nga interneti.", + "warranty_title": "Asnjë Garanci", + "warranty_text": "Ky softuer ofrohet \"siç është\", pa asnjë lloj garancie, të shprehur apo të nënkuptuar." + }, + "plugin_tester": { + "title": "Testuesi i Plugin-eve", + "subtitle": "Ekzekutoni skraperët dhe kontrolloni loget", + "tabs": { + "individual": "Individual", + "repo": "Testuesi i Repos", + "code": "Kodi", + "logs": "Loget", + "results": "Rezultatet" + }, + "common": { + "error": "Gabim", + "success": "Sukses", + "movie": "Film", + "tv": "TV", + "tmdb_id": "ID e TMDB", + "season": "Sezoni", + "episode": "Episodi", + "running": "Duke u ekzekutuar...", + "run_test": "Nis Testin", + "play": "Luaj", + "done": "U krye", + "test": "Test", + "testing": "Duke testuar..." + }, + "individual": { + "load_from_url": "Ngarko nga URL", + "load_from_url_desc": "Ngjisni një URL të GitHub ose IP lokale.", + "enter_url_error": "Ju lutem jepni një URL", + "code_loaded": "Kodi u ngarkua nga URL", + "fetch_error": "Dështoi marrja: {{message}}", + "no_code_error": "Nuk ka kod për të ekzekutuar", + "plugin_code": "Kodi i Plugin-it", + "focus_editor": "Fokuso te kodi", + "code_placeholder": "// Ngjisni kodin e plugin-it këtu...", + "test_parameters": "Parametrat e Testit", + "no_logs": "Nuk ka loge ende.", + "no_streams": "Nuk u gjet asnjë burim.", + "streams_found": "{{count}} Burim u gjet", + "streams_found_plural": "{{count}} Burime u gjetën", + "tap_play_hint": "Shtypni Luaj për të testuar burimin në player.", + "unnamed_stream": "Burim pa emër", + "quality": "Cilësia: {{quality}}", + "size": "Madhësia: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Headers: {{count}} të personalizuar", + "find_placeholder": "Gjej në kod...", + "edit_code_title": "Edito Kodin", + "no_url_stream_error": "Nuk u gjet asnjë URL për këtë burim" + }, + "repo": { + "title": "Testuesi i Repos", + "description": "Testoni çdo ofrues nga një repositor.", + "enter_repo_url_error": "Ju lutem jepni një URL repositori", + "invalid_url_title": "URL e Pavlefshme", + "invalid_url_msg": "Përdorni një URL 'raw' të GitHub.", + "manifest_build_error": "Nuk u mundësua ndërtimi i manifestit", + "manifest_fetch_error": "Dështoi marrja e manifestit", + "repo_manifest_fetch_error": "Dështoi marrja e manifestit të repositorit", + "missing_filename": "Mungon emri i skedarit në manifest", + "scraper_build_error": "Nuk u mundësua ndërtimi i skraperit", + "download_scraper_error": "Dështoi shkarkimi i skraperit", + "test_failed": "Testi dështoi", + "test_parameters": "Parametrat e Testit të Repos", + "test_parameters_desc": "Këto vlejnë vetëm për Testuesin e Repos.", + "using_info": "Duke përdorur: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Duke përdorur: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Ofruesit", + "repository_default": "Repositori", + "providers_count": "{{count}} ofrues", + "fetch_hint": "Ngarkoni një repo për të listuar ofruesit.", + "test_all": "Testo të Gjitha", + "status_running": "DUKE U EKZEKUTUAR", + "status_ok": "OK ({{count}})", + "status_ok_empty": "OK (0)", + "status_failed": "DËSHTOI", + "status_idle": "GATI", + "tried_url": "Provuar: {{url}}", + "provider_logs": "Loget e Ofruesit", + "no_logs_captured": "Nuk u kap asnjë log." + } + } +} + + From 69eb15942f5221b5971d8d8e2792837c19c75b4a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:29:02 +0100 Subject: [PATCH 238/285] Update resources.ts --- src/i18n/resources.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 3b588970..3be6d915 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -22,6 +22,7 @@ import ru from './locales/ru.json'; import fil from './locales/fil.json'; import nlNL from './locales/nl-NL.json'; import ro from './locales/ro.json'; +import sq from './locales/sq.json'; export const resources = { en: { translation: en }, @@ -47,4 +48,5 @@ export const resources = { fil: { translation: fil }, 'nl-NL': { translation: nlNL }, ro: { translation: ro }, + sq: { translation: sq }, }; From af55172cb235354d79000fd868afd51071b6a125 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:29:58 +0100 Subject: [PATCH 239/285] Update locales.ts --- src/constants/locales.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 2a6e9a98..b0845091 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -22,4 +22,5 @@ export const LOCALES = [ { code: 'fil', key: 'filipino' }, { code: 'nl-NL', key: 'dutch_nl' }, { code: 'ro', key: 'romanian' }, + { code: 'sq', key: 'albanian' }, ]; From c8f5606a03646288f1fbcdca45e62683b7fad4a1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:30:58 +0100 Subject: [PATCH 240/285] Update ar.json --- src/i18n/locales/ar.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index b85e9fd8..d11e8c89 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -647,6 +647,7 @@ "filipino": "الفلبينية", "dutch_nl": "الهولندية (هولندا)", "romanian": "روماني", + "albanian": "ألباني", "account": "الحساب", "content_discovery": "المحتوى والاكتشاف", "appearance": "المظهر", From 5bfe3815e472da1b32289fe01c3e065c6d99d0f1 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:32:08 +0100 Subject: [PATCH 241/285] Update bg.json --- src/i18n/locales/bg.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index 9db71ff5..1d57def1 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -652,6 +652,7 @@ "filipino": "Филипински", "dutch_nl": "Нидерландски (Нидерландия)", "romanian": "Румънски", + "albanian": "Албански", "account": "Профил", "content_discovery": "Съдържание и откриване", "appearance": "Външен вид", @@ -1436,3 +1437,4 @@ + From dd2fb6996e9f471743f3fd3eb99fc45d72101989 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:32:53 +0100 Subject: [PATCH 242/285] Update cs.json --- src/i18n/locales/cs.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 6427d7e1..6189a7ed 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -642,6 +642,7 @@ "filipino": "Filipínština", "dutch_nl": "Nizozemština (Nizozemsko)", "romanian": "Rumanština", + "albanian": "Albánština", "account": "Účet", "content_discovery": "Obsah a objevování", "appearance": "Vzhled", @@ -1424,3 +1425,4 @@ + From 831a528131df4d700d39fb00cf70f75242e45f6e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:33:49 +0100 Subject: [PATCH 243/285] Update de.json --- src/i18n/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index e640ca6c..9f8070f0 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -647,6 +647,7 @@ "filipino": "Philippinisch", "dutch_nl": "Niederländisch (Niederlande)", "romanian": "Rumänisch", + "albanian": "Albanisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", From 3c142a1349f64b0b19d4f802d28ed4919feb062c Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:34:54 +0100 Subject: [PATCH 244/285] Update en.json --- src/i18n/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index d416b3e1..6d2bf409 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -652,6 +652,7 @@ "filipino": "Filipino", "dutch_nl": "Dutch (Netherlands)", "romanian": "Romanian", + "albanian": "Albanian", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", From 8f0393bc2a4ceb1283d81e4fb5dfcd5427d4e851 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:35:50 +0100 Subject: [PATCH 245/285] Update es.json --- src/i18n/locales/es.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 6e9e0149..b8e0fd0a 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -647,6 +647,7 @@ "filipino": "Filipino", "dutch_nl": "Holandés (Países Bajos)", "romanian": "Rumano", + "albanian": "Albanés", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", From c6f52a2937b6d650fb2f12e324af71802d5804a8 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:36:56 +0100 Subject: [PATCH 246/285] Update fil.json --- src/i18n/locales/fil.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/fil.json b/src/i18n/locales/fil.json index d7334d9a..2e5a8cae 100644 --- a/src/i18n/locales/fil.json +++ b/src/i18n/locales/fil.json @@ -652,6 +652,7 @@ "filipino": "Filipino", "dutch_nl": "Dutch (Netherlands)", "romanian": "Romanyano", + "albanian": "Albano", "account": "Account", "content_discovery": "Content at Discovery", "appearance": "Appearance", @@ -1430,3 +1431,4 @@ + From f6208c0a0282163bada9bc6603ae4bfed7ceeb8d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:37:43 +0100 Subject: [PATCH 247/285] Update fr.json --- src/i18n/locales/fr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 6062e694..c054f96f 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -647,6 +647,7 @@ "filipino": "Philippin", "dutch_nl": "Néerlandais (Pays-Bas)", "romanian": "Roumain", + "albanian": "Albanais", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", From c34e5a5c17acfb86260da8574ccd89fafbb5ddbb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:39:00 +0100 Subject: [PATCH 248/285] Update he.json --- src/i18n/locales/he.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index c4cb7eb5..170fa28e 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -652,6 +652,7 @@ "filipino": "פיליפינית", "dutch_nl": "הולנדית (הולנד)", "romanian": "רומנית", + "albanian": "אלבנית", "account": "חשבון", "content_discovery": "תוכן וגילוי", "appearance": "מראה", @@ -1437,3 +1438,4 @@ + From d0b577648b23dee298d1fb5421beb172f01959c5 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:40:37 +0100 Subject: [PATCH 249/285] Update hi.json --- src/i18n/locales/hi.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index f3a8d902..9833649c 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -647,6 +647,7 @@ "filipino": "फ़िलिपिनो", "dutch_nl": "डच (नीदरलैंड)", "romanian": "रोमानियाई", + "albanian": "अल्बानियाई", "account": "खाता", "content_discovery": "सामग्री और खोज", "appearance": "दिखावट", From f44f7327f67fa00703870b0f813640e1a709e394 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:41:17 +0100 Subject: [PATCH 250/285] Update it.json --- src/i18n/locales/it.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 8e89ccee..3d8cf357 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -647,6 +647,7 @@ "filipino": "Filippino", "dutch_nl": "Olandese (Paesi Bassi)", "romanian": "Rumeno", + "albanian": "Albanese", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", From d4b82c42912cd9ca72102e23b69d01a4be3e0a2f Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:43:09 +0100 Subject: [PATCH 251/285] Update mk.json --- src/i18n/locales/mk.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/mk.json b/src/i18n/locales/mk.json index cbf59f36..e4ba38b2 100644 --- a/src/i18n/locales/mk.json +++ b/src/i18n/locales/mk.json @@ -652,6 +652,7 @@ "filipino": "Филипински", "dutch_nl": "Холандски (Холандија)", "romanian": "Романски", + "albanian": "Албански", "account": "Сметка", "content_discovery": "Содржина и откривање", "appearance": "Изглед", @@ -1430,3 +1431,4 @@ + From f28290b23d9928cbaac921bc1640df1b9a7e8b02 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:45:00 +0100 Subject: [PATCH 252/285] Update nl-NL.json --- src/i18n/locales/nl-NL.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/nl-NL.json b/src/i18n/locales/nl-NL.json index 7d15293f..074ed269 100644 --- a/src/i18n/locales/nl-NL.json +++ b/src/i18n/locales/nl-NL.json @@ -653,6 +653,7 @@ "filipino": "Filipijns" "dutch_nl": "Nederlands (Nederland)", "romanian": "Roemeens", + "albanian": "Albanees", "account": "Account", "content_discovery": "Inhoud & Ontdekken", "appearance": "Uiterlijk", @@ -1433,3 +1434,4 @@ + From 251b1444093151ebd55ea308aecd7c2cdd9cb4de Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:46:22 +0100 Subject: [PATCH 253/285] Update pl.json --- src/i18n/locales/pl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 2b55a9dd..e86c6ade 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -652,6 +652,7 @@ "filipino": "Filipiński", "dutch_nl": "Holenderski (Niderlandy)", "romanian": "Rumuński", + "albanian": "Albański", "account": "Konto", "content_discovery": "Treści i odkrywanie", "appearance": "Wygląd", @@ -1436,3 +1437,4 @@ + From 2922e1f137494837d907bb1e864eefb4dab53c7d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:47:13 +0100 Subject: [PATCH 254/285] Update pt-BR.json --- src/i18n/locales/pt-BR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 6d17c089..aa3983db 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -661,6 +661,7 @@ "filipino": "Filipino", "dutch_nl": "Holandês (Países Baixos)", "romanian": "Romeno", + "albanian": "Albanês", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From f10ac01cfc3de38710bf34d01f1428deb24d393d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:47:53 +0100 Subject: [PATCH 255/285] Update pt-PT.json --- src/i18n/locales/pt-PT.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 44f0e7ef..b70e7815 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -659,6 +659,7 @@ "filipino": "Filipino", "dutch_nl": "Holandês (Países Baixos)", "Romanian": "Romeno", + "albanian": "Albanês", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", From 3f5336a71a3d4014a104e646bd420d25a48448a6 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:49:24 +0100 Subject: [PATCH 256/285] Update ro.json --- src/i18n/locales/ro.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json index c0643d66..cd092acc 100644 --- a/src/i18n/locales/ro.json +++ b/src/i18n/locales/ro.json @@ -653,6 +653,7 @@ "filipino": "Filipineză", "dutch_nl": "Olandeză (Olanda)", "romanian": "Română", + "albanian": "Albaneză", "account": "Cont", "content_discovery": "Conținut și Descoperire", "appearance": "Aspect", @@ -1431,3 +1432,4 @@ } + From 79f8d42e44787081edbd9749263060a6ffeda142 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:50:23 +0100 Subject: [PATCH 257/285] Update ru.json --- src/i18n/locales/ru.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 1ce8df51..6ac93d7d 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -652,6 +652,7 @@ "filipino": "Филиппинский", "dutch_nl": "Нидерландский (Нидерланды)", "romanian": "Румынский", + "albanian": "Албанский", "account": "Аккаунт", "content_discovery": "Контент и поиск", "appearance": "Внешний вид", @@ -1431,3 +1432,4 @@ + From e6afbc9e4b47bb2052d501e24ea7fbfb78012902 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:51:09 +0100 Subject: [PATCH 258/285] Update sl.json --- src/i18n/locales/sl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index d5e564e8..2b8b9736 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -652,6 +652,7 @@ "filipino": "Filipinščina", "dutch_nl": "Nizozemščina (Nizozemska)", "romanian": "Romunščina", + "albanian": "Albanski", "account": "Račun", "content_discovery": "Vsebina in odkrivanje", "appearance": "Videz", @@ -1432,3 +1433,4 @@ + From 9ff8217f53e48ad06a8a61a21b22d6835374cdc3 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:53:41 +0100 Subject: [PATCH 259/285] Update sr.json --- src/i18n/locales/sr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 5dc00101..6b8f8125 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -646,6 +646,7 @@ "filipino": "Филипински", "dutch_nl": "Холандски (Холандија)", "romanian": "Румунски", + "albanian": "Албански", "account": "Налог", "content_discovery": "Садржај и откривање", "appearance": "Изглед", @@ -1434,3 +1435,4 @@ + From 8ab5e8bc700c803edf5d15c571364314b8247597 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:55:21 +0100 Subject: [PATCH 260/285] Update tr.json --- src/i18n/locales/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 6250948d..66536673 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -652,6 +652,7 @@ "filipino": "Filipince", "dutch_nl": "Felemenkçe (Hollanda)", "romanian": "Rumence", + "albanian": "Arnavutça", "account": "Hesap", "content_discovery": "İçerik ve Keşif", "appearance": "Görünüm", @@ -1433,3 +1434,4 @@ + From f7ebe5e9b6650f971d432809596b36e583abfe4d Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 21:56:30 +0100 Subject: [PATCH 261/285] Update zh-CN.json --- src/i18n/locales/zh-CN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 0141c7a9..b7283dc9 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -647,6 +647,7 @@ "filipino": "菲律宾语", "dutch_nl": "荷兰语 (荷兰)", "romanian": "罗马尼亚语", + "albanian": "阿尔巴尼亚语", "account": "账户", "content_discovery": "内容与发现", "appearance": "外观", From fdd0461234f5be01efcf9e4edcea5f5301700cbb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 23:32:15 +0100 Subject: [PATCH 262/285] Update TMDBSettingsScreen.tsx --- src/screens/TMDBSettingsScreen.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/screens/TMDBSettingsScreen.tsx b/src/screens/TMDBSettingsScreen.tsx index 010c5a19..57f0dd4a 100644 --- a/src/screens/TMDBSettingsScreen.tsx +++ b/src/screens/TMDBSettingsScreen.tsx @@ -1180,7 +1180,8 @@ const TMDBSettingsScreen = () => { { code: 'bg', label: 'български', native: 'Bulgarian' }, { code: 'sl', label: 'Slovenščina', native: 'Slovenian' }, { code: 'mk', label: 'Македонски', native: 'Macedonian' }, - { code: 'fil', label: 'Filipino', native: 'Filipino' }, + { code: 'fil', label: 'Filipino', native: 'Filipino' }, + { code: 'sq', label: 'Shqipe', native: 'Albanian' }, ]; const filteredLanguages = languages.filter(({ label, code, native }) => From e0391bc79c66f5811ee411e0dea52f71baec3fdf Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Thu, 12 Feb 2026 23:36:03 +0100 Subject: [PATCH 263/285] Update PlaybackSettingsScreen.tsx --- src/screens/settings/PlaybackSettingsScreen.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/screens/settings/PlaybackSettingsScreen.tsx b/src/screens/settings/PlaybackSettingsScreen.tsx index a43af4ca..2c7e888f 100644 --- a/src/screens/settings/PlaybackSettingsScreen.tsx +++ b/src/screens/settings/PlaybackSettingsScreen.tsx @@ -59,7 +59,9 @@ const AVAILABLE_LANGUAGES = [ { code: 'bg', name: 'Bulgarian' }, { code: 'sl', name: 'Slovenian' }, { code: 'mk', name: 'Macedonian' }, - { code: 'fil', name: 'Filipino' }, + { code: 'fil', name: 'Filipino' }, + { code: 'ro', name: 'Romanian' }, + { code: 'sq', name: 'Albanian' }, ]; const SUBTITLE_SOURCE_OPTIONS = [ From 81ff3dff10bc3b7b8a38b0c55918c4d03db1e3cc Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 09:44:02 +0100 Subject: [PATCH 264/285] Update he.json --- src/i18n/locales/he.json | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 170fa28e..153ecc86 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -1427,15 +1427,4 @@ "no_logs_captured": "לא נלכדו לוגים." } } - -} - - - - - - - - - - +} \ No newline at end of file From eefd50e9d59601ee5e989774ea489e310da67851 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 10:25:01 +0100 Subject: [PATCH 265/285] Update bg.json --- src/i18n/locales/bg.json | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index 1d57def1..23394570 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -1427,14 +1427,4 @@ "no_logs_captured": "Няма уловени логове." } } -} - - - - - - - - - - +} \ No newline at end of file From eeafa1065f2c349631c6bb395ca3e5f6a11e1fc5 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 14:02:15 +0100 Subject: [PATCH 266/285] Update cs.json --- src/i18n/locales/cs.json | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 6189a7ed..3b5675ef 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -1417,12 +1417,4 @@ "no_logs_captured": "Nebyly zachyceny žádné logy." } } -} - - - - - - - - +} \ No newline at end of file From 7e023607c33766ea6746504d77cb9ffed279c812 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 14:03:12 +0100 Subject: [PATCH 267/285] Update fil.json --- src/i18n/locales/fil.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/i18n/locales/fil.json b/src/i18n/locales/fil.json index 2e5a8cae..ff2092b6 100644 --- a/src/i18n/locales/fil.json +++ b/src/i18n/locales/fil.json @@ -1427,8 +1427,4 @@ "no_logs_captured": "Walang logs na nakuha." } } -} - - - - +} \ No newline at end of file From 89e307e5f7452586e7121f8bee052f36ca4b9466 Mon Sep 17 00:00:00 2001 From: wrs92 <53734042+wrs92@users.noreply.github.com> Date: Mon, 16 Feb 2026 15:15:29 +0100 Subject: [PATCH 268/285] Update pl.json --- src/i18n/locales/pl.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index e86c6ade..5c4f3048 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -1,7 +1,7 @@ { "common": { "loading": "Ładowanie...", - "cancel": "Annuluj", + "cancel": "Anuluj", "save": "Zapisz", "delete": "Usuń", "edit": "Edytuj", @@ -242,9 +242,9 @@ "mark_season": "Oznacz sezon {{season}}", "resume": "Wznów", "spoiler_warning": "Ostrzeżenie o spojlerach", - "spoiler_warning_desc": "Ten komentarz zawiera spojlery. Czy na pewno chcesz go wyświetlić?", + "spoiler_warning_desc": "Ten komentarz zawiera spoilery. Czy na pewno chcesz go wyświetlić?", "cancel": "Anuluj", - "reveal_spoilers": "Pokaż spojlery", + "reveal_spoilers": "Pokaż spoilery", "movie_details": "Szczegóły filmu", "show_details": "Pokaż szczegóły", "tagline": "Hasło", @@ -309,7 +309,7 @@ }, "comments": { "title": "Komentarze Trakt", - "spoiler_warning": "⚠️ Ten komentarz zawiera spojlery. Stuknij, aby odkryć.", + "spoiler_warning": "⚠️ Ten komentarz zawiera spoilery. Stuknij, aby odkryć.", "spoiler": "Spojler", "contains_spoilers": "Zawiera spojlery", "reveal": "Odkryj", @@ -328,7 +328,7 @@ "clips_scenes": "Klipy i sceny", "clip": "Klip", "featurettes": "Materiały dodatkowe", - "featurette": "Featurette", + "featurette": "Materiał dodatkowy", "behind_the_scenes": "Za kulisami", "no_trailers": "Brak dostępnych zwiastunów", "unavailable": "Zwiastun niedostępny", @@ -384,7 +384,7 @@ "unknown_source": "Nieznane źródło", "sources_limited": "Liczba źródeł może być ograniczona z powodu błędów dostawcy.", "episodes": "Odcinki", - "specials": "Specials", + "specials": "Odcinki specjalne", "season": "Sezon {{season}}", "stream": "Strumień {{number}}", "subtitles": "Napisy", @@ -446,8 +446,8 @@ "status_unknown": "Nieznany", "provider": "Dostawca", "streaming_playlist_warning": "Może nie działać – lista odtwarzania strumieniowego", - "remaining": "pozostało", - "not_ready": "Pobieranie niegotowe", + "remaining": "Pozostało", + "not_ready": "Pobieranie nie jest jeszcze gotowe", "not_ready_desc": "Proszę czekać na zakończenie pobierania.", "filter_all": "Wszystkie", "filter_active": "Aktywne", @@ -601,7 +601,7 @@ "built_in_key_msg": "Obecnie używasz wbudowanego klucza API. Rozważ użycie własnego klucza dla lepszej wydajności.", "cache_size": "Rozmiar pamięci podręcznej", "clear_cache": "Wyczyść pamięć podręczną", - "cache_days": "Odpowiedzi TMDB są przechowywane przez 7 dni w celu poprawy wydajności", + "cache_days": "Dane z TMDb są przechowywane przez 7 dni w celu poprawy wydajności", "choose_language": "Wybierz język", "choose_language_desc": "Wybierz preferowany język dla treści z TMDb", "popular": "Popularne", @@ -1438,3 +1438,4 @@ + From e27b6de2023844e0d8f825770dd6178cc9f5669c Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:39:41 +0530 Subject: [PATCH 269/285] acc sync init --- App.tsx | 12 +- docs/SUPABASE_SYNC.md | 1254 ++++++++++++++++++ src/components/metadata/.HeroSection.tsx.swp | Bin 16384 -> 16384 bytes src/contexts/AccountContext.tsx | 11 +- src/navigation/AppNavigator.tsx | 10 +- src/screens/AuthScreen.tsx | 60 +- src/screens/SettingsScreen.tsx | 56 +- src/screens/SyncSettingsScreen.tsx | 467 +++++++ src/services/AccountService.ts | 60 +- src/services/pluginService.ts | 18 +- src/services/supabaseSyncService.ts | 1145 ++++++++++++++++ src/services/watchedService.ts | 201 ++- 12 files changed, 3217 insertions(+), 77 deletions(-) create mode 100644 docs/SUPABASE_SYNC.md create mode 100644 src/screens/SyncSettingsScreen.tsx create mode 100644 src/services/supabaseSyncService.ts diff --git a/App.tsx b/App.tsx index 5bd5ff19..7ce219f0 100644 --- a/App.tsx +++ b/App.tsx @@ -48,6 +48,7 @@ import { ToastProvider } from './src/contexts/ToastContext'; import { mmkvStorage } from './src/services/mmkvStorage'; import { CampaignManager } from './src/components/promotions/CampaignManager'; import { isErrorReportingEnabledSync } from './src/services/telemetryService'; +import { supabaseSyncService } from './src/services/supabaseSyncService'; // Initialize Sentry with privacy-first defaults // Settings are loaded from telemetryService and can be controlled by user @@ -180,6 +181,15 @@ const ThemedApp = () => { const onboardingCompleted = await mmkvStorage.getItem('hasCompletedOnboarding'); setHasCompletedOnboarding(onboardingCompleted === 'true'); + // Initialize Supabase auth/session and start background sync. + // This is intentionally non-blocking for app startup UX. + supabaseSyncService + .initialize() + .then(() => supabaseSyncService.startupSync()) + .catch((error) => { + console.warn('[App] Supabase sync bootstrap failed:', error); + }); + // Initialize update service await UpdateService.initialize(); @@ -314,4 +324,4 @@ const styles = StyleSheet.create({ }, }); -export default Sentry.wrap(App); \ No newline at end of file +export default Sentry.wrap(App); diff --git a/docs/SUPABASE_SYNC.md b/docs/SUPABASE_SYNC.md new file mode 100644 index 00000000..494c2ddc --- /dev/null +++ b/docs/SUPABASE_SYNC.md @@ -0,0 +1,1254 @@ +# NuvioTV Supabase Sync Documentation + +This document describes the complete Supabase backend used by NuvioTV for cross-device data synchronization. It covers database schema, RPC functions, authentication, device linking, and integration patterns. + +--- + +## Table of Contents + +1. [Overview](#overview) +2. [Prerequisites](#prerequisites) +3. [Database Schema](#database-schema) +4. [RPC Functions](#rpc-functions) +5. [Integration Guide](#integration-guide) +6. [Data Models](#data-models) +7. [Sync Behavior & Restrictions](#sync-behavior--restrictions) +8. [Error Handling](#error-handling) + +--- + +## Overview + +NuvioTV syncs the following data to Supabase so linked devices share the same state: + +| Data | Description | Trakt Override | +|------|-------------|----------------| +| **Plugins** | JavaScript plugin repository URLs | No (always syncs) | +| **Addons** | Stremio-compatible addon manifest URLs | No (always syncs) | +| **Watch Progress** | Per-movie/episode playback position | Yes (skipped when Trakt connected) | +| **Library** | Saved movies & TV shows | Yes (skipped when Trakt connected) | +| **Watched Items** | Permanent watched history (movies & episodes) | Yes (skipped when Trakt connected) | + +### Authentication Model + +- **Anonymous**: Auto-created account, can generate/claim sync codes +- **Email/Password**: Full account with permanent data storage +- **Linked Device**: A device linked to another account via sync code; reads/writes the owner's data + +### Security Model + +All data operations use **SECURITY DEFINER** RPC functions that call `get_sync_owner()` to resolve the effective user ID. This allows linked devices to transparently access the owner's data without needing direct RLS access. + +--- + +## Prerequisites + +- Supabase project with: + - **Auth** enabled (anonymous sign-in + email/password) + - **pgcrypto** extension enabled (for `crypt()`, `gen_salt()`) +- Environment variables: + - `SUPABASE_URL` — Your Supabase project URL + - `SUPABASE_ANON_KEY` — Your Supabase anonymous/public key + +--- + +## Database Schema + +### Tables + +#### `sync_codes` + +Temporary codes for device linking, protected by a bcrypt-hashed PIN. + +```sql +CREATE TABLE sync_codes ( + id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY, + owner_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + code TEXT NOT NULL, + pin_hash TEXT NOT NULL, + is_active BOOLEAN NOT NULL DEFAULT true, + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), + expires_at TIMESTAMPTZ DEFAULT 'infinity'::TIMESTAMPTZ +); + +ALTER TABLE sync_codes ENABLE ROW LEVEL SECURITY; + +CREATE POLICY "Users can manage own sync codes" + ON sync_codes FOR ALL + USING (auth.uid() = owner_id) + WITH CHECK (auth.uid() = owner_id); +``` + +#### `linked_devices` + +Maps a child device's user ID to a parent (owner) user ID. + +```sql +CREATE TABLE linked_devices ( + id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY, + owner_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + device_user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + device_name TEXT, + linked_at TIMESTAMPTZ NOT NULL DEFAULT now(), + UNIQUE(owner_id, device_user_id) +); + +ALTER TABLE linked_devices ENABLE ROW LEVEL SECURITY; + +CREATE POLICY "Owners can read their linked devices" + ON linked_devices FOR SELECT + USING (auth.uid() = owner_id); + +CREATE POLICY "Devices can read their own link" + ON linked_devices FOR SELECT + USING (auth.uid() = device_user_id); +``` + +#### `plugins` + +Plugin repository URLs synced across devices. + +```sql +CREATE TABLE plugins ( + id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY, + user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + url TEXT NOT NULL, + name TEXT, + enabled BOOLEAN NOT NULL DEFAULT true, + sort_order INTEGER NOT NULL DEFAULT 0, + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT now() +); + +CREATE INDEX idx_plugins_user_id ON plugins(user_id); +ALTER TABLE plugins ENABLE ROW LEVEL SECURITY; + +CREATE POLICY "Users can manage own plugins" + ON plugins FOR ALL + USING (auth.uid() = user_id) + WITH CHECK (auth.uid() = user_id); +``` + +#### `addons` + +Addon manifest URLs synced across devices. + +```sql +CREATE TABLE addons ( + id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY, + user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + url TEXT NOT NULL, + name TEXT, + enabled BOOLEAN NOT NULL DEFAULT true, + sort_order INTEGER NOT NULL DEFAULT 0, + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT now() +); + +CREATE INDEX idx_addons_user_id ON addons(user_id); +ALTER TABLE addons ENABLE ROW LEVEL SECURITY; + +CREATE POLICY "Users can manage own addons" + ON addons FOR ALL + USING (auth.uid() = user_id) + WITH CHECK (auth.uid() = user_id); +``` + +#### `watch_progress` + +Per-movie or per-episode playback progress. + +```sql +CREATE TABLE watch_progress ( + id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY, + user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + content_id TEXT NOT NULL, + content_type TEXT NOT NULL, + video_id TEXT NOT NULL, + season INTEGER, + episode INTEGER, + position BIGINT NOT NULL DEFAULT 0, + duration BIGINT NOT NULL DEFAULT 0, + last_watched BIGINT NOT NULL DEFAULT 0, + progress_key TEXT NOT NULL +); + +CREATE INDEX idx_watch_progress_user_id ON watch_progress(user_id); +ALTER TABLE watch_progress ENABLE ROW LEVEL SECURITY; + +CREATE POLICY "Users can manage own watch progress" + ON watch_progress FOR ALL + USING (auth.uid() = user_id) + WITH CHECK (auth.uid() = user_id); +``` + +#### `library_items` + +Saved movies and TV shows (bookmarks/favorites). + +```sql +CREATE TABLE library_items ( + id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY, + user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + content_id TEXT NOT NULL, + content_type TEXT NOT NULL, + name TEXT NOT NULL DEFAULT '', + poster TEXT, + poster_shape TEXT NOT NULL DEFAULT 'POSTER', + background TEXT, + description TEXT, + release_info TEXT, + imdb_rating REAL, + genres TEXT[] DEFAULT '{}', + addon_base_url TEXT, + added_at BIGINT NOT NULL DEFAULT 0, + created_at TIMESTAMPTZ DEFAULT now(), + updated_at TIMESTAMPTZ DEFAULT now(), + UNIQUE(user_id, content_id, content_type) +); + +CREATE INDEX idx_library_items_user_id ON library_items(user_id); +ALTER TABLE library_items ENABLE ROW LEVEL SECURITY; + +CREATE POLICY "Users can manage own library items" + ON library_items FOR ALL + USING (auth.uid() = user_id) + WITH CHECK (auth.uid() = user_id); +``` + +#### `watched_items` + +Permanent watched history. Unlike `watch_progress` (which is capped and stores playback position), this table is a permanent record of everything the user has watched or marked as watched. Used to determine if a movie or episode should show a "watched" checkmark. + +```sql +CREATE TABLE watched_items ( + id UUID DEFAULT gen_random_uuid() PRIMARY KEY, + user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, + content_id TEXT NOT NULL, + content_type TEXT NOT NULL, + title TEXT NOT NULL DEFAULT '', + season INTEGER, + episode INTEGER, + watched_at BIGINT NOT NULL, + created_at TIMESTAMPTZ DEFAULT now() +); + +CREATE UNIQUE INDEX idx_watched_items_unique + ON watched_items (user_id, content_id, COALESCE(season, -1), COALESCE(episode, -1)); + +CREATE INDEX idx_watched_items_user_id ON watched_items(user_id); + +ALTER TABLE watched_items ENABLE ROW LEVEL SECURITY; + +CREATE POLICY "Users can manage own watched items" + ON watched_items FOR ALL + USING (auth.uid() = user_id) + WITH CHECK (auth.uid() = user_id); +``` + +> **Note:** The unique index uses `COALESCE(season, -1)` and `COALESCE(episode, -1)` because PostgreSQL treats NULLs as distinct in unique constraints. Movies have `NULL` season/episode, so without COALESCE, multiple entries for the same movie would be allowed. + +### Triggers + +```sql +-- Auto-update updated_at timestamp +CREATE OR REPLACE FUNCTION set_updated_at() +RETURNS TRIGGER +LANGUAGE plpgsql +AS $$ +BEGIN + NEW.updated_at = now(); + RETURN NEW; +END; +$$; + +-- Apply to tables with updated_at +CREATE TRIGGER set_updated_at BEFORE UPDATE ON plugins FOR EACH ROW EXECUTE FUNCTION set_updated_at(); +CREATE TRIGGER set_updated_at BEFORE UPDATE ON addons FOR EACH ROW EXECUTE FUNCTION set_updated_at(); +CREATE TRIGGER set_updated_at BEFORE UPDATE ON sync_codes FOR EACH ROW EXECUTE FUNCTION set_updated_at(); +``` + +--- + +## RPC Functions + +### Core: `get_sync_owner()` + +Resolves the effective user ID. If the current user is a linked device, returns the owner's ID. Otherwise returns the caller's own ID. This is the foundation of the linked-device sync model. + +```sql +CREATE OR REPLACE FUNCTION get_sync_owner() +RETURNS UUID +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_owner_id uuid; +BEGIN + SELECT owner_id INTO v_owner_id + FROM linked_devices + WHERE device_user_id = auth.uid() + LIMIT 1; + + RETURN COALESCE(v_owner_id, auth.uid()); +END; +$$; + +GRANT EXECUTE ON FUNCTION get_sync_owner() TO authenticated; +``` + +### Core: `can_access_user_data(p_user_id UUID)` + +Helper to check if the current user can access another user's data (either they are that user, or they are a linked device). + +```sql +CREATE OR REPLACE FUNCTION can_access_user_data(p_user_id UUID) +RETURNS BOOLEAN +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +BEGIN + IF auth.uid() = p_user_id THEN + RETURN true; + END IF; + + IF EXISTS ( + SELECT 1 FROM public.linked_devices + WHERE owner_id = p_user_id + AND device_user_id = auth.uid() + ) THEN + RETURN true; + END IF; + + RETURN false; +END; +$$; + +GRANT EXECUTE ON FUNCTION can_access_user_data(UUID) TO authenticated; +``` + +### Device Linking: `generate_sync_code(p_pin TEXT)` + +Generates a sync code for the current user. If a code already exists, updates the PIN. The code format is `XXXX-XXXX-XXXX-XXXX-XXXX` (uppercase hex). PIN is bcrypt-hashed. + +```sql +CREATE OR REPLACE FUNCTION generate_sync_code(p_pin TEXT) +RETURNS TABLE(code TEXT) +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_user_id uuid; + v_existing_code text; + v_new_code text; + v_pin_hash text; +BEGIN + v_user_id := auth.uid(); + + IF v_user_id IS NULL THEN + RAISE EXCEPTION 'Not authenticated'; + END IF; + + SELECT sc.code INTO v_existing_code + FROM sync_codes sc + WHERE sc.owner_id = v_user_id + ORDER BY sc.created_at DESC + LIMIT 1; + + IF v_existing_code IS NOT NULL THEN + v_pin_hash := crypt(p_pin, gen_salt('bf')); + UPDATE sync_codes + SET pin_hash = v_pin_hash + WHERE sync_codes.owner_id = v_user_id + AND sync_codes.code = v_existing_code; + RETURN QUERY SELECT v_existing_code; + RETURN; + END IF; + + v_new_code := upper( + substr(md5(random()::text || clock_timestamp()::text), 1, 4) || '-' || + substr(md5(random()::text || clock_timestamp()::text), 5, 4) || '-' || + substr(md5(random()::text || clock_timestamp()::text), 9, 4) || '-' || + substr(md5(random()::text || clock_timestamp()::text), 13, 4) || '-' || + substr(md5(random()::text || clock_timestamp()::text), 17, 4) + ); + + v_pin_hash := crypt(p_pin, gen_salt('bf')); + + INSERT INTO sync_codes (owner_id, code, pin_hash) + VALUES (v_user_id, v_new_code, v_pin_hash); + + RETURN QUERY SELECT v_new_code; +END; +$$; + +GRANT EXECUTE ON FUNCTION generate_sync_code(TEXT) TO authenticated; +``` + +### Device Linking: `get_sync_code(p_pin TEXT)` + +Retrieves the existing sync code for the current user, validated by PIN. + +```sql +CREATE OR REPLACE FUNCTION get_sync_code(p_pin TEXT) +RETURNS TABLE(code TEXT) +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_user_id uuid; + v_existing_code text; + v_existing_pin_hash text; +BEGIN + v_user_id := auth.uid(); + + IF v_user_id IS NULL THEN + RAISE EXCEPTION 'Not authenticated'; + END IF; + + SELECT sc.code, sc.pin_hash + INTO v_existing_code, v_existing_pin_hash + FROM sync_codes sc + WHERE sc.owner_id = v_user_id + ORDER BY sc.created_at DESC + LIMIT 1; + + IF v_existing_code IS NULL THEN + RAISE EXCEPTION 'No sync code found. Generate one first.'; + END IF; + + IF v_existing_pin_hash != crypt(p_pin, v_existing_pin_hash) THEN + RAISE EXCEPTION 'Incorrect PIN'; + END IF; + + RETURN QUERY SELECT v_existing_code; +END; +$$; + +GRANT EXECUTE ON FUNCTION get_sync_code(TEXT) TO authenticated; +``` + +### Device Linking: `claim_sync_code(p_code TEXT, p_pin TEXT, p_device_name TEXT)` + +Links the current device to the owner of the sync code. Validates the PIN, then creates a `linked_devices` row. + +```sql +CREATE OR REPLACE FUNCTION claim_sync_code(p_code TEXT, p_pin TEXT, p_device_name TEXT DEFAULT NULL) +RETURNS TABLE(result_owner_id UUID, success BOOLEAN, message TEXT) +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_owner_id uuid; + v_pin_hash text; +BEGIN + SELECT sc.owner_id, sc.pin_hash + INTO v_owner_id, v_pin_hash + FROM sync_codes sc + WHERE sc.code = p_code; + + IF v_owner_id IS NULL THEN + RETURN QUERY SELECT NULL::uuid, false, 'Sync code not found'::text; + RETURN; + END IF; + + IF crypt(p_pin, v_pin_hash) != v_pin_hash THEN + RETURN QUERY SELECT NULL::uuid, false, 'Incorrect PIN'::text; + RETURN; + END IF; + + INSERT INTO linked_devices (owner_id, device_user_id, device_name) + VALUES (v_owner_id, auth.uid(), p_device_name) + ON CONFLICT (owner_id, device_user_id) DO UPDATE + SET device_name = EXCLUDED.device_name; + + RETURN QUERY SELECT v_owner_id, true, 'Device linked successfully'::text; +END; +$$; + +GRANT EXECUTE ON FUNCTION claim_sync_code(TEXT, TEXT, TEXT) TO authenticated; +``` + +### Device Linking: `unlink_device(p_device_user_id UUID)` + +Removes a linked device. Only the owner can unlink their devices. + +```sql +CREATE OR REPLACE FUNCTION unlink_device(p_device_user_id UUID) +RETURNS VOID +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +BEGIN + DELETE FROM linked_devices + WHERE (owner_id = auth.uid() AND device_user_id = p_device_user_id) + OR (device_user_id = auth.uid() AND device_user_id = p_device_user_id); +END; +$$; + +GRANT EXECUTE ON FUNCTION unlink_device(UUID) TO authenticated; +``` + +### Sync: `sync_push_plugins(p_plugins JSONB)` + +Full-replace push of plugin repository URLs. + +```sql +CREATE OR REPLACE FUNCTION sync_push_plugins(p_plugins JSONB) +RETURNS VOID +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id uuid; + v_plugin jsonb; +BEGIN + SELECT get_sync_owner() INTO v_effective_user_id; + + DELETE FROM plugins WHERE user_id = v_effective_user_id; + + FOR v_plugin IN SELECT * FROM jsonb_array_elements(p_plugins) + LOOP + INSERT INTO plugins (user_id, url, name, enabled, sort_order) + VALUES ( + v_effective_user_id, + v_plugin->>'url', + v_plugin->>'name', + COALESCE((v_plugin->>'enabled')::boolean, true), + (v_plugin->>'sort_order')::int + ); + END LOOP; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_push_plugins(JSONB) TO authenticated; +``` + +### Sync: `sync_push_addons(p_addons JSONB)` + +Full-replace push of addon manifest URLs. + +```sql +CREATE OR REPLACE FUNCTION sync_push_addons(p_addons JSONB) +RETURNS VOID +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id uuid; + v_addon jsonb; +BEGIN + SELECT get_sync_owner() INTO v_effective_user_id; + + DELETE FROM addons WHERE user_id = v_effective_user_id; + + FOR v_addon IN SELECT * FROM jsonb_array_elements(p_addons) + LOOP + INSERT INTO addons (user_id, url, sort_order) + VALUES ( + v_effective_user_id, + v_addon->>'url', + (v_addon->>'sort_order')::int + ); + END LOOP; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_push_addons(JSONB) TO authenticated; +``` + +### Sync: `sync_push_watch_progress(p_entries JSONB)` + +Full-replace push of watch progress entries. + +```sql +CREATE OR REPLACE FUNCTION sync_push_watch_progress(p_entries JSONB) +RETURNS VOID +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id UUID; +BEGIN + v_effective_user_id := get_sync_owner(); + + DELETE FROM watch_progress WHERE user_id = v_effective_user_id; + + INSERT INTO watch_progress ( + user_id, content_id, content_type, video_id, + season, episode, position, duration, last_watched, progress_key + ) + SELECT + v_effective_user_id, + (entry->>'content_id'), + (entry->>'content_type'), + (entry->>'video_id'), + (entry->>'season')::INTEGER, + (entry->>'episode')::INTEGER, + (entry->>'position')::BIGINT, + (entry->>'duration')::BIGINT, + (entry->>'last_watched')::BIGINT, + (entry->>'progress_key') + FROM jsonb_array_elements(p_entries) AS entry; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_push_watch_progress(JSONB) TO authenticated; +``` + +### Sync: `sync_pull_watch_progress()` + +Returns all watch progress for the effective user (owner or linked device's owner). + +```sql +CREATE OR REPLACE FUNCTION sync_pull_watch_progress() +RETURNS SETOF watch_progress +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id UUID; +BEGIN + v_effective_user_id := get_sync_owner(); + RETURN QUERY SELECT * FROM watch_progress WHERE user_id = v_effective_user_id; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_pull_watch_progress() TO authenticated; +``` + +### Sync: `sync_push_library(p_items JSONB)` + +Full-replace push of library items. + +```sql +CREATE OR REPLACE FUNCTION sync_push_library(p_items JSONB) +RETURNS VOID +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id UUID; +BEGIN + v_effective_user_id := get_sync_owner(); + + DELETE FROM library_items WHERE user_id = v_effective_user_id; + + INSERT INTO library_items ( + user_id, content_id, content_type, name, poster, poster_shape, + background, description, release_info, imdb_rating, genres, + addon_base_url, added_at + ) + SELECT + v_effective_user_id, + (item->>'content_id'), + (item->>'content_type'), + COALESCE(item->>'name', ''), + (item->>'poster'), + COALESCE(item->>'poster_shape', 'POSTER'), + (item->>'background'), + (item->>'description'), + (item->>'release_info'), + (item->>'imdb_rating')::REAL, + COALESCE( + (SELECT array_agg(g::TEXT) FROM jsonb_array_elements_text(item->'genres') AS g), + '{}' + ), + (item->>'addon_base_url'), + COALESCE((item->>'added_at')::BIGINT, EXTRACT(EPOCH FROM now())::BIGINT * 1000) + FROM jsonb_array_elements(p_items) AS item; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_push_library(JSONB) TO authenticated; +``` + +### Sync: `sync_pull_library()` + +Returns all library items for the effective user. + +```sql +CREATE OR REPLACE FUNCTION sync_pull_library() +RETURNS SETOF library_items +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id UUID; +BEGIN + v_effective_user_id := get_sync_owner(); + RETURN QUERY SELECT * FROM library_items WHERE user_id = v_effective_user_id; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_pull_library() TO authenticated; +``` + +### Sync: `sync_push_watched_items(p_items JSONB)` + +Full-replace push of watched items (permanent watched history). + +```sql +CREATE OR REPLACE FUNCTION sync_push_watched_items(p_items JSONB) +RETURNS VOID +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id UUID; +BEGIN + v_effective_user_id := get_sync_owner(); + DELETE FROM watched_items WHERE user_id = v_effective_user_id; + INSERT INTO watched_items (user_id, content_id, content_type, title, season, episode, watched_at) + SELECT + v_effective_user_id, + (item->>'content_id'), + (item->>'content_type'), + COALESCE(item->>'title', ''), + (item->>'season')::INTEGER, + (item->>'episode')::INTEGER, + (item->>'watched_at')::BIGINT + FROM jsonb_array_elements(p_items) AS item; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_push_watched_items(JSONB) TO authenticated; +``` + +### Sync: `sync_pull_watched_items()` + +Returns all watched items for the effective user. + +```sql +CREATE OR REPLACE FUNCTION sync_pull_watched_items() +RETURNS SETOF watched_items +LANGUAGE plpgsql +SECURITY DEFINER +AS $$ +DECLARE + v_effective_user_id UUID; +BEGIN + v_effective_user_id := get_sync_owner(); + RETURN QUERY SELECT * FROM watched_items WHERE user_id = v_effective_user_id; +END; +$$; + +GRANT EXECUTE ON FUNCTION sync_pull_watched_items() TO authenticated; +``` + +--- + +## Integration Guide + +### 1. Authentication + +All API calls require a Supabase auth session. Initialize the Supabase client and authenticate: + +``` +POST {SUPABASE_URL}/auth/v1/signup +Headers: apikey: {SUPABASE_ANON_KEY} +Body: { "email": "user@example.com", "password": "..." } +``` + +Or for anonymous sign-in: + +``` +POST {SUPABASE_URL}/auth/v1/signup +Headers: apikey: {SUPABASE_ANON_KEY} +Body: {} +``` + +All subsequent requests include: +``` +Headers: + apikey: {SUPABASE_ANON_KEY} + Authorization: Bearer {ACCESS_TOKEN} +``` + +### 2. Calling RPC Functions + +All RPCs are called via the Supabase PostgREST endpoint: + +``` +POST {SUPABASE_URL}/rest/v1/rpc/{function_name} +Headers: + apikey: {SUPABASE_ANON_KEY} + Authorization: Bearer {ACCESS_TOKEN} + Content-Type: application/json +Body: { ...parameters... } +``` + +### 3. Device Linking Flow + +**Device A (Parent) — Generate Sync Code:** + +```json +// POST /rest/v1/rpc/generate_sync_code +{ "p_pin": "1234" } + +// Response: +[{ "code": "A1B2-C3D4-E5F6-G7H8-I9J0" }] +``` + +**Device B (Child) — Claim Sync Code:** + +```json +// POST /rest/v1/rpc/claim_sync_code +{ + "p_code": "A1B2-C3D4-E5F6-G7H8-I9J0", + "p_pin": "1234", + "p_device_name": "Living Room TV" +} + +// Response: +[{ + "result_owner_id": "uuid-of-device-a-user", + "success": true, + "message": "Device linked successfully" +}] +``` + +After claiming, Device B's `get_sync_owner()` will return Device A's user ID, so all push/pull operations operate on the shared data. + +**Retrieve Existing Code (with PIN):** + +```json +// POST /rest/v1/rpc/get_sync_code +{ "p_pin": "1234" } + +// Response: +[{ "code": "A1B2-C3D4-E5F6-G7H8-I9J0" }] +``` + +**Get Linked Devices:** + +``` +GET {SUPABASE_URL}/rest/v1/linked_devices?select=*&owner_id=eq.{your_user_id} +``` + +**Unlink a Device:** + +```json +// POST /rest/v1/rpc/unlink_device +{ "p_device_user_id": "uuid-of-device-to-unlink" } +``` + +### 4. Pushing Data + +All push RPCs use a **full-replace** strategy: existing data for the effective user is deleted, then the new data is inserted. This means you must always push the **complete** local dataset, not just changes. + +#### Push Plugins + +```json +// POST /rest/v1/rpc/sync_push_plugins +{ + "p_plugins": [ + { + "url": "https://example.com/plugin-repo", + "name": "My Plugin Repo", + "enabled": true, + "sort_order": 0 + } + ] +} +``` + +#### Push Addons + +```json +// POST /rest/v1/rpc/sync_push_addons +{ + "p_addons": [ + { + "url": "https://example.com/addon/manifest.json", + "sort_order": 0 + } + ] +} +``` + +#### Push Watch Progress + +```json +// POST /rest/v1/rpc/sync_push_watch_progress +{ + "p_entries": [ + { + "content_id": "tt1234567", + "content_type": "movie", + "video_id": "tt1234567", + "season": null, + "episode": null, + "position": 3600000, + "duration": 7200000, + "last_watched": 1700000000000, + "progress_key": "tt1234567" + }, + { + "content_id": "tt7654321", + "content_type": "series", + "video_id": "tt7654321:2:5", + "season": 2, + "episode": 5, + "position": 1800000, + "duration": 3600000, + "last_watched": 1700000000000, + "progress_key": "tt7654321_s2e5" + } + ] +} +``` + +| Field | Type | Description | +|-------|------|-------------| +| `content_id` | string | IMDB ID or content identifier | +| `content_type` | string | `"movie"` or `"series"` | +| `video_id` | string | Video stream identifier | +| `season` | int/null | Season number (null for movies) | +| `episode` | int/null | Episode number (null for movies) | +| `position` | long | Playback position in milliseconds | +| `duration` | long | Total duration in milliseconds | +| `last_watched` | long | Unix timestamp in milliseconds | +| `progress_key` | string | Unique key: `contentId` for movies, `contentId_s{S}e{E}` for episodes | + +#### Push Library Items + +```json +// POST /rest/v1/rpc/sync_push_library +{ + "p_items": [ + { + "content_id": "tt1234567", + "content_type": "movie", + "name": "Example Movie", + "poster": "https://image.tmdb.org/t/p/w500/poster.jpg", + "poster_shape": "POSTER", + "background": "https://image.tmdb.org/t/p/original/backdrop.jpg", + "description": "A great movie about...", + "release_info": "2024", + "imdb_rating": 8.5, + "genres": ["Action", "Thriller"], + "addon_base_url": "https://example.com/addon" + } + ] +} +``` + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `content_id` | string | Yes | IMDB ID or content identifier | +| `content_type` | string | Yes | `"movie"` or `"series"` | +| `name` | string | No | Display name (defaults to `""`) | +| `poster` | string | No | Poster image URL | +| `poster_shape` | string | No | `"POSTER"`, `"LANDSCAPE"`, or `"SQUARE"` (defaults to `"POSTER"`) | +| `background` | string | No | Background/backdrop image URL | +| `description` | string | No | Content description | +| `release_info` | string | No | Release year or date string | +| `imdb_rating` | float | No | IMDB rating (0.0-10.0) | +| `genres` | string[] | No | Genre list (defaults to `[]`) | +| `addon_base_url` | string | No | Source addon base URL | +| `added_at` | long | No | Timestamp in ms (defaults to current time) | + +#### Push Watched Items + +```json +// POST /rest/v1/rpc/sync_push_watched_items +{ + "p_items": [ + { + "content_id": "tt1234567", + "content_type": "movie", + "title": "Example Movie", + "season": null, + "episode": null, + "watched_at": 1700000000000 + }, + { + "content_id": "tt7654321", + "content_type": "series", + "title": "Example Series", + "season": 2, + "episode": 5, + "watched_at": 1700000000000 + } + ] +} +``` + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `content_id` | string | Yes | IMDB ID or content identifier | +| `content_type` | string | Yes | `"movie"` or `"series"` | +| `title` | string | No | Display name (defaults to `""`) | +| `season` | int/null | No | Season number (null for movies) | +| `episode` | int/null | No | Episode number (null for movies) | +| `watched_at` | long | Yes | Unix timestamp in milliseconds | + +### 5. Pulling Data + +#### Pull Watch Progress + +```json +// POST /rest/v1/rpc/sync_pull_watch_progress +{} + +// Response: array of watch_progress rows +[ + { + "id": "uuid", + "user_id": "uuid", + "content_id": "tt1234567", + "content_type": "movie", + "video_id": "tt1234567", + "season": null, + "episode": null, + "position": 3600000, + "duration": 7200000, + "last_watched": 1700000000000, + "progress_key": "tt1234567" + } +] +``` + +#### Pull Library Items + +```json +// POST /rest/v1/rpc/sync_pull_library +{} + +// Response: array of library_items rows +[ + { + "id": "uuid", + "user_id": "uuid", + "content_id": "tt1234567", + "content_type": "movie", + "name": "Example Movie", + "poster": "https://...", + "poster_shape": "POSTER", + "background": "https://...", + "description": "...", + "release_info": "2024", + "imdb_rating": 8.5, + "genres": ["Action", "Thriller"], + "addon_base_url": "https://...", + "added_at": 1700000000000, + "created_at": "2024-01-01T00:00:00Z", + "updated_at": "2024-01-01T00:00:00Z" + } +] +``` + +#### Pull Watched Items + +```json +// POST /rest/v1/rpc/sync_pull_watched_items +{} + +// Response: array of watched_items rows +[ + { + "id": "uuid", + "user_id": "uuid", + "content_id": "tt1234567", + "content_type": "movie", + "title": "Example Movie", + "season": null, + "episode": null, + "watched_at": 1700000000000, + "created_at": "2024-01-01T00:00:00Z" + } +] +``` + +#### Pull Plugins/Addons (Direct Table Query) + +Plugins and addons are pulled via direct table queries using the effective user ID: + +``` +// First, get the effective user ID +POST /rest/v1/rpc/get_sync_owner +{} +// Response: "uuid-of-effective-owner" + +// Then query tables +GET /rest/v1/addons?select=*&user_id=eq.{effective_user_id}&order=sort_order +GET /rest/v1/plugins?select=*&user_id=eq.{effective_user_id}&order=sort_order +``` + +--- + +## Data Models + +### Plugin + +```json +{ + "url": "string (required)", + "name": "string (optional)", + "enabled": "boolean (default: true)", + "sort_order": "integer (default: 0)" +} +``` + +### Addon + +```json +{ + "url": "string (required)", + "sort_order": "integer (default: 0)" +} +``` + +### Watch Progress Entry + +```json +{ + "content_id": "string (required)", + "content_type": "string (required) - 'movie' | 'series'", + "video_id": "string (required)", + "season": "integer (optional, null for movies)", + "episode": "integer (optional, null for movies)", + "position": "long (required) - playback position in ms", + "duration": "long (required) - total duration in ms", + "last_watched": "long (required) - unix timestamp in ms", + "progress_key": "string (required) - unique key per entry" +} +``` + +### Library Item + +```json +{ + "content_id": "string (required)", + "content_type": "string (required) - 'movie' | 'series'", + "name": "string (default: '')", + "poster": "string (optional) - poster image URL", + "poster_shape": "string (default: 'POSTER') - 'POSTER' | 'LANDSCAPE' | 'SQUARE'", + "background": "string (optional) - backdrop image URL", + "description": "string (optional)", + "release_info": "string (optional) - release year/date", + "imdb_rating": "float (optional) - 0.0 to 10.0", + "genres": "string[] (default: []) - list of genre names", + "addon_base_url": "string (optional) - source addon URL", + "added_at": "long (default: current time) - unix timestamp in ms" +} +``` + +### Watched Item + +```json +{ + "content_id": "string (required)", + "content_type": "string (required) - 'movie' | 'series'", + "title": "string (default: '') - display name", + "season": "integer (optional, null for movies)", + "episode": "integer (optional, null for movies)", + "watched_at": "long (required) - unix timestamp in ms" +} +``` + +### Linked Device + +```json +{ + "owner_id": "uuid (required) - parent account user ID", + "device_user_id": "uuid (required) - this device's user ID", + "device_name": "string (optional) - human-readable device name", + "linked_at": "timestamptz (auto-set)" +} +``` + +### Sync Code + +```json +{ + "owner_id": "uuid - user who generated the code", + "code": "string - format: XXXX-XXXX-XXXX-XXXX-XXXX", + "pin_hash": "string - bcrypt hash of the PIN", + "is_active": "boolean (default: true)", + "expires_at": "timestamptz (default: infinity)" +} +``` + +--- + +## Sync Behavior & Restrictions + +### Startup Sync Flow + +When the app starts and the user is authenticated (anonymous or full account): + +1. **Pull plugins** from remote → install any new ones locally +2. **Pull addons** from remote → install any new ones locally +3. If Trakt is **NOT** connected: + - **Pull watch progress** → merge into local (additive) + - **Push watch progress** → so linked devices can pull + - **Pull library items** → merge into local (additive) + - **Push library items** → so linked devices can pull + - **Pull watched items** → merge into local (additive) + - **Push watched items** → so linked devices can pull + +### On-Demand Sync + +- **Plugins/Addons**: Pushed to remote immediately when added or removed +- **Watch Progress**: Pushed with a 2-second debounce after any playback position update +- **Library Items**: Pushed with a 2-second debounce after add or remove +- **Watched Items**: Pushed with a 2-second debounce after mark/unmark as watched + +### Merge Strategy + +- **Push**: Full-replace. The entire local dataset replaces the remote dataset. +- **Pull (merge)**: Additive. Remote items not already present locally are added. Existing local items are preserved. Match keys vary by data type: `content_id` + `content_type` for library, `content_id` + `season` + `episode` for watched items. + +### Trakt Override + +When Trakt is connected: +- **Watch progress**, **library**, and **watched items** sync via Supabase is **completely skipped** +- Trakt becomes the source of truth for these data types +- **Plugins** and **addons** always sync regardless of Trakt status + +### Push on Account Events + +| Event | Action | +|-------|--------| +| Sign up (email) | Push all local data to remote | +| Sign in (email) | Pull all remote data to local | +| Generate sync code | Push all local data to remote, then generate code | +| Claim sync code | Pull all remote data from owner to local | + +--- + +## Error Handling + +### Sync Code Errors + +| Error Message | Cause | +|---------------|-------| +| `Not authenticated` | No auth session | +| `No sync code found. Generate one first.` | Calling `get_sync_code` before generating | +| `Incorrect PIN` | Wrong PIN for `get_sync_code` or `claim_sync_code` | +| `Sync code not found` | Invalid or non-existent code in `claim_sync_code` | +| `Device linked successfully` | Success response from `claim_sync_code` | + +### Auth Errors + +| Error Message | Cause | +|---------------|-------| +| `Invalid login credentials` | Wrong email or password | +| `Email not confirmed` | Email verification pending | +| `User already registered` | Duplicate email signup | +| `Password is too short/weak` | Password policy violation | +| `Signup is disabled` | Admin disabled signups | +| `Rate limit` / `Too many requests` | Too many auth attempts | + +### Network Errors + +| Error Message | Cause | +|---------------|-------| +| `Unable to resolve host` | No internet | +| `Timeout` / `Timed out` | Connection timeout | +| `Connection refused` | Server unreachable | +| `404` | RPC function not found (missing migration) | +| `400` / `Bad request` | Invalid parameters | diff --git a/src/components/metadata/.HeroSection.tsx.swp b/src/components/metadata/.HeroSection.tsx.swp index 6a8c4627e1749cc50a75056595b826f85ba0b4a3..64b827bede67f318ea6708367bbd0f939cf15cd0 100644 GIT binary patch delta 1823 zcmZA0TWl0n7zgk(^hRBKqXlV0VQdpOU>9~brI*ca8)^xcmKd%jXlZ7*v)jSlnK}$^ zo2Hpnc_2m~;6St?;UXrO05Q1Q0KRF&_(BNEgGyoz52zF^iK4Y_@IO1>CY_n&*O@*4 zbG~!toM|Q_WHLfs)W2`r4zYcGfZ?iSY)m<(v|sEk`0ItMbt@``aUQ7jnh&iImtf!6 z!c+S?K)<(Bkk98SS1JFM%MuTkzT za8B?K<@pyl;mV&-zBf0lk+Er4hrg*qKTWWSk5;V_&hQER_3-OeYs|4C=ai3WM2tp! z@5*OfOKL54j{lSLS7`ikSN;d(`|R9g)2_v1g^F&JMp(haM_0nVntcDJ!bM&naFi-Zz(Ez+F^54Fm8Ze1%n5D>(%x zAqBgj1vbKJ5MTyxdk3z;2XF*-f)9$}9=7`vI0~=Be&~X=Pz6s4S&aQy$k;770dK$p zPW>KShYN5D-hu(JKB*aecHhAyoCXv6Aq3CC0`~Sk`~p+(vv536ovmu{m#kI~CnZDC zRB>F4>sm_m>ar9wd`h5Al}C*1hP8K#&1-o7d218#f0^I32NhT%+fu0BnXJ)ItqB_AvGX+=TbxO&Eq(AqaJzZk#M0=AU8gC-@dVg$Xzb z21H>Sv_b>aLoKWXYv<-lvqItIQocOgSTNqicqCj~t_@2u#TX5V{`GBWx)HADN5hp| zh*a~B!)3W{Xe*Cvs?jGai6J8-dRzGU&YFT|bblIdC~ye-q1=bj%8Td#7jbE_)KRS%XuO zo={Y08x`!8<5-NNpQCBfo3-=zI@^4E@F|7FG1SG&Tg4O7u&Y3qW*Ay3BnJI_s$&KJ zuw#{Z=*VG1iI2X74Ukpq?PIvfy4NldPs$^Gx>d)U#%)n+x1!52>zhWTYw28KNYSKh zY>`!6w(3cWD(j9F8Cc?`q>``(+4Jz*;gUt0)og7R_eSb>57B7^g0ux`d)IR}aUITc rqqRhP$~}salzX*==9n#s`L|M;X6tZp(#x?xyxwl>v#<`$m#gzXpgX<} delta 1367 zcmZA0Ur19?90%}o)oJFY)6&WiPmQ#wxy{OQH?Zl06xBnLBKF7Su6oODvfUsHyDNMM zLIiIw20;o*P!P5rw8u&atTcQG=|L!n%q+9NmRa9zzd^ePKHI(L`}>`H@7Y}_B!ogj z{z-f7zJt8H#KADkjODGZkhS44VJK@TKhG?vn!{YI&P75DA@;@o{EdxTIzK=`JYS;x zH01-j{5Rzdl$(-b2l4)2l()pDRo1F2SfqkRT3}q4|D;@^+?E_Wh+p6b{Dq zUK7nNjLqu`zEQz(TA)hn$SxH6wLW}iY9rZ&>IFmMB|lS#hdN&B@_EYZC>K)``#(|M zNO`X=|42DKlFAlz1#?tzg%&uJmUw{=ln+oorORh2zeV}^6^Z@tDZdk)#-3Ty6ANaj zz(xyegZe) zA{>Jm<3QRdMp-GP}K)*7~n)N2KkQ y(?V^6SfCY%>$IKXR_%nCs|CdztxH^^T@&ruxUsW!vPWrk@?Ca2`odG = ({ child user, loading, signIn: async (email: string, password: string) => { - const { error } = await accountService.signInWithEmail(email, password); + const { user: signedInUser, error } = await accountService.signInWithEmail(email, password); + if (!error && signedInUser) { + setUser(signedInUser); + } return error || null; }, signUp: async (email: string, password: string) => { - const { error } = await accountService.signUpWithEmail(email, password); + const { user: signedUpUser, error } = await accountService.signUpWithEmail(email, password); + if (!error && signedUpUser) { + setUser(signedUpUser); + } return error || null; }, signOut: async () => { @@ -107,4 +113,3 @@ export const useAccount = (): AccountContextValue => { }; export default AccountContext; - diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index ec219b70..a818fcf2 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -39,6 +39,7 @@ if (Platform.OS === 'ios') { import HomeScreen from '../screens/HomeScreen'; import LibraryScreen from '../screens/LibraryScreen'; import SettingsScreen from '../screens/SettingsScreen'; +import SyncSettingsScreen from '../screens/SyncSettingsScreen'; import DownloadsScreen from '../screens/DownloadsScreen'; import MetadataScreen from '../screens/MetadataScreen'; import KSPlayerCore from '../components/player/KSPlayerCore'; @@ -105,6 +106,7 @@ export type RootStackParamList = { Home: undefined; Library: undefined; Settings: undefined; + SyncSettings: undefined; Update: undefined; Search: undefined; Calendar: undefined; @@ -1854,7 +1856,12 @@ const InnerNavigator = ({ initialRouteName }: { initialRouteName?: keyof RootSta }, }} /> - + + @@ -1924,7 +1931,6 @@ const ConditionalPostHogProvider: React.FC<{ children: React.ReactNode }> = ({ c apiKey="phc_sk6THCtV3thEAn6cTaA9kL2cHuKDBnlYiSL40ywdS6C" options={{ host: "https://us.i.posthog.com", - autocapture: analyticsEnabled, // Start opted out if analytics is disabled defaultOptIn: analyticsEnabled, }} diff --git a/src/screens/AuthScreen.tsx b/src/screens/AuthScreen.tsx index c890208f..d19b8d21 100644 --- a/src/screens/AuthScreen.tsx +++ b/src/screens/AuthScreen.tsx @@ -27,7 +27,6 @@ const AuthScreen: React.FC = () => { const [showPassword, setShowPassword] = useState(false); const [showConfirm, setShowConfirm] = useState(false); const [mode, setMode] = useState<'signin' | 'signup'>('signin'); - const signupDisabled = true; // Signup disabled due to upcoming system replacement const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const [showWarningDetails, setShowWarningDetails] = useState(false); @@ -145,16 +144,7 @@ const AuthScreen: React.FC = () => { const handleSubmit = async () => { if (loading) return; - - // Prevent signup if disabled - if (mode === 'signup' && signupDisabled) { - const msg = 'Sign up is currently disabled due to upcoming system changes'; - setError(msg); - showError('Sign Up Disabled', 'Sign up is currently disabled due to upcoming system changes'); - Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error).catch(() => {}); - return; - } - + if (!isEmailValid) { const msg = 'Enter a valid email address'; setError(msg); @@ -404,21 +394,17 @@ const AuthScreen: React.FC = () => { !signupDisabled && setMode('signup')} - activeOpacity={signupDisabled ? 1 : 0.8} - disabled={signupDisabled} + style={styles.switchButton} + onPress={() => setMode('signup')} + activeOpacity={0.8} > - Sign Up {signupDisabled && '(Disabled)'} + Sign Up @@ -583,29 +569,18 @@ const AuthScreen: React.FC = () => { {/* Switch Mode */} - {!signupDisabled && ( - setMode(mode === 'signin' ? 'signup' : 'signin')} - activeOpacity={0.7} - style={{ marginTop: 16 }} - > - - {mode === 'signin' ? "Don't have an account? " : 'Already have an account? '} - - {mode === 'signin' ? 'Sign up' : 'Sign in'} - + setMode(mode === 'signin' ? 'signup' : 'signin')} + activeOpacity={0.7} + style={{ marginTop: 16 }} + > + + {mode === 'signin' ? "Don't have an account? " : 'Already have an account? '} + + {mode === 'signin' ? 'Sign up' : 'Sign in'} - - )} - - {/* Signup disabled message */} - {signupDisabled && mode === 'signin' && ( - - - New account creation is temporarily disabled - - - )} + + {/* Skip sign in - more prominent when coming from onboarding */} { if (item && item.visible === false) return false; return true; }; + const showTraktItem = isItemVisible('trakt'); + const showSimklItem = isItemVisible('simkl'); + const showCloudSyncItem = isItemVisible('cloud_sync'); // Filter categories based on conditions const visibleCategories = SETTINGS_CATEGORIES.filter(category => { @@ -376,24 +379,35 @@ const SettingsScreen: React.FC = () => { case 'account': return ( - {isItemVisible('trakt') && ( - } + {showTraktItem && ( + } renderControl={() => } onPress={() => navigation.navigate('TraktSettings')} - isLast={!isItemVisible('simkl')} + isLast={!showSimklItem && !showCloudSyncItem} isTablet={isTablet} /> )} - {isItemVisible('simkl') && ( - } + {showSimklItem && ( + } renderControl={() => } onPress={() => navigation.navigate('SimklSettings')} + isLast={!showCloudSyncItem} + isTablet={isTablet} + /> + )} + {showCloudSyncItem && ( + } + onPress={() => (navigation as any).navigate('SyncSettings')} isLast={true} isTablet={isTablet} /> @@ -682,25 +696,35 @@ const SettingsScreen: React.FC = () => { contentContainerStyle={styles.scrollContent} > {/* Account */} - {(settingsConfig?.categories?.['account']?.visible !== false) && (isItemVisible('trakt') || isItemVisible('simkl')) && ( + {(settingsConfig?.categories?.['account']?.visible !== false) && (showTraktItem || showSimklItem || showCloudSyncItem) && ( - {isItemVisible('trakt') && ( + {showTraktItem && ( } renderControl={() => } onPress={() => navigation.navigate('TraktSettings')} - isLast={!isItemVisible('simkl')} + isLast={!showSimklItem && !showCloudSyncItem} /> )} - {isItemVisible('simkl') && ( + {showSimklItem && ( } renderControl={() => } onPress={() => navigation.navigate('SimklSettings')} + isLast={!showCloudSyncItem} + /> + )} + {showCloudSyncItem && ( + } + onPress={() => (navigation as any).navigate('SyncSettings')} isLast={true} /> )} @@ -1211,4 +1235,4 @@ const styles = StyleSheet.create({ }, }); -export default SettingsScreen; \ No newline at end of file +export default SettingsScreen; diff --git a/src/screens/SyncSettingsScreen.tsx b/src/screens/SyncSettingsScreen.tsx new file mode 100644 index 00000000..c33f5c38 --- /dev/null +++ b/src/screens/SyncSettingsScreen.tsx @@ -0,0 +1,467 @@ +import React, { useCallback, useMemo, useState } from 'react'; +import { + ActivityIndicator, + ScrollView, + StatusBar, + StyleSheet, + Text, + TextInput, + TouchableOpacity, + View, +} from 'react-native'; +import { NavigationProp, useFocusEffect, useNavigation } from '@react-navigation/native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { RootStackParamList } from '../navigation/AppNavigator'; +import ScreenHeader from '../components/common/ScreenHeader'; +import { useTheme } from '../contexts/ThemeContext'; +import CustomAlert from '../components/CustomAlert'; +import { supabaseSyncService, SupabaseUser, LinkedDevice } from '../services/supabaseSyncService'; +import { useAccount } from '../contexts/AccountContext'; + +const SyncSettingsScreen: React.FC = () => { + const { currentTheme } = useTheme(); + const navigation = useNavigation>(); + const insets = useSafeAreaInsets(); + const { user, signOut } = useAccount(); + + const [loading, setLoading] = useState(false); + const [syncCodeLoading, setSyncCodeLoading] = useState(false); + const [sessionUser, setSessionUser] = useState(null); + const [ownerId, setOwnerId] = useState(null); + const [linkedDevices, setLinkedDevices] = useState([]); + const [lastCode, setLastCode] = useState(''); + const [pin, setPin] = useState(''); + const [claimCode, setClaimCode] = useState(''); + const [claimPin, setClaimPin] = useState(''); + const [deviceName, setDeviceName] = useState(''); + + const [alertVisible, setAlertVisible] = useState(false); + const [alertTitle, setAlertTitle] = useState(''); + const [alertMessage, setAlertMessage] = useState(''); + const [alertActions, setAlertActions] = useState void; style?: object }>>([]); + + const openAlert = useCallback( + (title: string, message: string, actions?: Array<{ label: string; onPress: () => void; style?: object }>) => { + setAlertTitle(title); + setAlertMessage(message); + setAlertActions(actions && actions.length > 0 ? actions : [{ label: 'OK', onPress: () => {} }]); + setAlertVisible(true); + }, + [] + ); + + const loadSyncState = useCallback(async () => { + setLoading(true); + try { + await supabaseSyncService.initialize(); + setSessionUser(supabaseSyncService.getCurrentSessionUser()); + const owner = await supabaseSyncService.getEffectiveOwnerId(); + setOwnerId(owner); + const devices = await supabaseSyncService.getLinkedDevices(); + setLinkedDevices(devices); + } catch (error: any) { + openAlert('Sync Error', error?.message || 'Failed to load sync state'); + } finally { + setLoading(false); + } + }, [openAlert]); + + useFocusEffect( + useCallback(() => { + loadSyncState(); + }, [loadSyncState]) + ); + + const authLabel = useMemo(() => { + if (!supabaseSyncService.isConfigured()) return 'Supabase not configured'; + if (!sessionUser) return 'Not authenticated'; + return `Email session${sessionUser.email ? ` (${sessionUser.email})` : ''}`; + }, [sessionUser]); + + const handleGenerateCode = async () => { + if (!pin.trim()) { + openAlert('PIN Required', 'Enter a PIN before generating a sync code.'); + return; + } + setSyncCodeLoading(true); + try { + const result = await supabaseSyncService.generateSyncCode(pin.trim()); + if (result.error || !result.code) { + openAlert('Generate Failed', result.error || 'Unable to generate sync code'); + } else { + setLastCode(result.code); + openAlert('Sync Code Ready', `Code: ${result.code}`); + await loadSyncState(); + } + } finally { + setSyncCodeLoading(false); + } + }; + + const handleGetCode = async () => { + if (!pin.trim()) { + openAlert('PIN Required', 'Enter your PIN to retrieve the current sync code.'); + return; + } + setSyncCodeLoading(true); + try { + const result = await supabaseSyncService.getSyncCode(pin.trim()); + if (result.error || !result.code) { + openAlert('Fetch Failed', result.error || 'Unable to fetch sync code'); + } else { + setLastCode(result.code); + openAlert('Current Sync Code', `Code: ${result.code}`); + } + } finally { + setSyncCodeLoading(false); + } + }; + + const handleClaimCode = async () => { + if (!claimCode.trim() || !claimPin.trim()) { + openAlert('Missing Details', 'Enter both sync code and PIN to claim.'); + return; + } + setSyncCodeLoading(true); + try { + const result = await supabaseSyncService.claimSyncCode( + claimCode.trim().toUpperCase(), + claimPin.trim(), + deviceName.trim() || undefined + ); + if (!result.success) { + openAlert('Claim Failed', result.message); + } else { + openAlert('Device Linked', result.message); + setClaimCode(''); + setClaimPin(''); + await loadSyncState(); + } + } finally { + setSyncCodeLoading(false); + } + }; + + const handleManualSync = async () => { + setSyncCodeLoading(true); + try { + await supabaseSyncService.syncNow(); + openAlert('Sync Complete', 'Manual sync completed successfully.'); + await loadSyncState(); + } catch (error: any) { + openAlert('Sync Failed', error?.message || 'Manual sync failed'); + } finally { + setSyncCodeLoading(false); + } + }; + + const handleUnlinkDevice = (deviceUserId: string) => { + openAlert('Unlink Device', 'Are you sure you want to unlink this device?', [ + { label: 'Cancel', onPress: () => {} }, + { + label: 'Unlink', + onPress: async () => { + setSyncCodeLoading(true); + try { + const result = await supabaseSyncService.unlinkDevice(deviceUserId); + if (!result.success) { + openAlert('Unlink Failed', result.error || 'Unable to unlink device'); + } else { + await loadSyncState(); + } + } finally { + setSyncCodeLoading(false); + } + }, + }, + ]); + }; + + const handleSignOut = async () => { + setSyncCodeLoading(true); + try { + await signOut(); + await loadSyncState(); + } catch (error: any) { + openAlert('Sign Out Failed', error?.message || 'Failed to sign out'); + } finally { + setSyncCodeLoading(false); + } + }; + + if (loading) { + return ( + + + navigation.goBack()} /> + + + + + ); + } + + return ( + + + navigation.goBack()} /> + + + + Account + + {user?.email ? `Signed in as ${user.email}` : 'Not signed in'} + + + {!user ? ( + navigation.navigate('Account')} + > + Sign In / Sign Up + + ) : ( + <> + navigation.navigate('AccountManage')} + > + Manage Account + + + Sign Out + + + )} + + + + + Connection Status + {authLabel} + + Effective owner: {ownerId || 'Unavailable'} + + {!supabaseSyncService.isConfigured() && ( + + Set EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY to enable sync. + + )} + + + + Sync Code + + {!!lastCode && ( + + Latest code: {lastCode} + + )} + + + Generate Code + + + Get Existing Code + + + + + + Claim Sync Code + + + + + Claim Code + + + + + Linked Devices + {linkedDevices.length === 0 && ( + No linked devices. + )} + {linkedDevices.map((device) => ( + + + + {device.device_name || 'Unnamed device'} + + + {device.device_user_id} + + + handleUnlinkDevice(device.device_user_id)} + > + Unlink + + + ))} + + + + {syncCodeLoading ? ( + + ) : ( + Sync Now + )} + + + + setAlertVisible(false)} + /> + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + loadingContainer: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, + content: { + padding: 16, + gap: 16, + }, + card: { + borderWidth: 1, + borderRadius: 14, + padding: 14, + gap: 10, + }, + cardTitle: { + fontSize: 16, + fontWeight: '700', + }, + cardText: { + fontSize: 13, + lineHeight: 18, + }, + warning: { + fontSize: 12, + marginTop: 4, + }, + input: { + borderWidth: 1, + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 14, + }, + buttonRow: { + flexDirection: 'row', + gap: 10, + }, + button: { + flex: 1, + borderRadius: 10, + minHeight: 42, + justifyContent: 'center', + alignItems: 'center', + paddingHorizontal: 12, + }, + buttonText: { + color: '#fff', + fontWeight: '700', + fontSize: 13, + }, + codeText: { + fontSize: 13, + fontWeight: '600', + }, + deviceRow: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + gap: 12, + paddingVertical: 6, + }, + deviceInfo: { + flex: 1, + }, + deviceName: { + fontSize: 14, + fontWeight: '600', + }, + deviceMeta: { + fontSize: 12, + marginTop: 2, + }, + unlinkButton: { + borderWidth: 1, + borderRadius: 8, + paddingHorizontal: 10, + paddingVertical: 6, + }, + unlinkText: { + fontSize: 12, + fontWeight: '700', + }, + syncNowButton: { + minHeight: 48, + borderRadius: 12, + justifyContent: 'center', + alignItems: 'center', + }, +}); + +export default SyncSettingsScreen; diff --git a/src/services/AccountService.ts b/src/services/AccountService.ts index 32dc943f..f17d8c66 100644 --- a/src/services/AccountService.ts +++ b/src/services/AccountService.ts @@ -1,4 +1,6 @@ import { mmkvStorage } from './mmkvStorage'; +import { supabaseSyncService, SupabaseUser } from './supabaseSyncService'; +import { logger } from '../utils/logger'; export type AuthUser = { id: string; @@ -19,23 +21,72 @@ class AccountService { return AccountService.instance; } + private mapSupabaseUser(user: SupabaseUser): AuthUser { + return { + id: user.id, + email: user.email, + displayName: user.user_metadata?.display_name as string | undefined, + avatarUrl: user.user_metadata?.avatar_url as string | undefined, + }; + } + + private async persistUser(user: AuthUser): Promise { + await mmkvStorage.setItem(USER_DATA_KEY, JSON.stringify(user)); + await mmkvStorage.setItem(USER_SCOPE_KEY, 'local'); + } + async signUpWithEmail(email: string, password: string): Promise<{ user?: AuthUser; error?: string }> { - // Since signup is disabled, always return error - return { error: 'Sign up is currently disabled due to upcoming system changes' }; + const result = await supabaseSyncService.signUpWithEmail(email, password); + if (result.error || !result.user) { + return { error: result.error || 'Sign up failed' }; + } + + const mapped = this.mapSupabaseUser(result.user); + await this.persistUser(mapped); + + try { + await supabaseSyncService.onSignUpPushAll(); + } catch (error) { + logger.error('[AccountService] Sign-up push-all failed:', error); + } + + return { user: mapped }; } async signInWithEmail(email: string, password: string): Promise<{ user?: AuthUser; error?: string }> { - // Since signin is disabled, always return error - return { error: 'Authentication is currently disabled' }; + const result = await supabaseSyncService.signInWithEmail(email, password); + if (result.error || !result.user) { + return { error: result.error || 'Sign in failed' }; + } + + const mapped = this.mapSupabaseUser(result.user); + await this.persistUser(mapped); + + try { + await supabaseSyncService.onSignInPullAll(); + } catch (error) { + logger.error('[AccountService] Sign-in pull-all failed:', error); + } + + return { user: mapped }; } async signOut(): Promise { + await supabaseSyncService.signOut(); await mmkvStorage.removeItem(USER_DATA_KEY); await mmkvStorage.setItem(USER_SCOPE_KEY, 'local'); } async getCurrentUser(): Promise { try { + await supabaseSyncService.initialize(); + const sessionUser = supabaseSyncService.getCurrentSessionUser(); + if (sessionUser) { + const mapped = this.mapSupabaseUser(sessionUser); + await this.persistUser(mapped); + return mapped; + } + const userData = await mmkvStorage.getItem(USER_DATA_KEY); if (!userData) return null; return JSON.parse(userData); @@ -69,4 +120,3 @@ class AccountService { export const accountService = AccountService.getInstance(); export default accountService; - diff --git a/src/services/pluginService.ts b/src/services/pluginService.ts index 8c7e2b25..a84437f4 100644 --- a/src/services/pluginService.ts +++ b/src/services/pluginService.ts @@ -6,6 +6,7 @@ import { Stream } from '../types/streams'; import { cacheService } from './cacheService'; import CryptoJS from 'crypto-js'; import { safeAxiosConfig, createSafeAxiosConfig } from '../utils/axiosConfig'; +import EventEmitter from 'eventemitter3'; const MAX_CONCURRENT_SCRAPERS = 5; const MAX_INFLIGHT_KEYS = 30; @@ -24,6 +25,12 @@ const VIDEO_CONTENT_TYPES = [ const MAX_PREFLIGHT_SIZE = 50 * 1024 * 1024; +export const PLUGIN_SYNC_EVENTS = { + CHANGED: 'changed', +} as const; + +const pluginSyncEmitter = new EventEmitter(); + // Types for local scrapers export interface ScraperManifest { name: string; @@ -176,6 +183,10 @@ class LocalScraperService { return LocalScraperService.instance; } + public getPluginSyncEventEmitter(): EventEmitter { + return pluginSyncEmitter; + } + private async initialize(): Promise { if (this.initialized) return; @@ -367,6 +378,7 @@ class LocalScraperService { }; this.repositories.set(id, newRepo); await this.saveRepositories(); + pluginSyncEmitter.emit(PLUGIN_SYNC_EVENTS.CHANGED, { action: 'add_repository', id: newRepo.id }); logger.log('[LocalScraperService] Added repository:', newRepo.name); return id; } @@ -386,6 +398,7 @@ class LocalScraperService { this.repositoryUrl = updatedRepo.url; this.repositoryName = updatedRepo.name; } + pluginSyncEmitter.emit(PLUGIN_SYNC_EVENTS.CHANGED, { action: 'update_repository', id }); logger.log('[LocalScraperService] Updated repository:', updatedRepo.name); } @@ -424,6 +437,7 @@ class LocalScraperService { this.repositories.delete(id); await this.saveRepositories(); await this.saveInstalledScrapers(); + pluginSyncEmitter.emit(PLUGIN_SYNC_EVENTS.CHANGED, { action: 'remove_repository', id }); logger.log('[LocalScraperService] Removed repository:', id); } @@ -450,6 +464,7 @@ class LocalScraperService { } logger.log('[LocalScraperService] Switched to repository:', repo.name); + pluginSyncEmitter.emit(PLUGIN_SYNC_EVENTS.CHANGED, { action: 'set_current_repository', id }); } getCurrentRepositoryId(): string { @@ -553,6 +568,7 @@ class LocalScraperService { this.repositories.set(id, repo); await this.saveRepositories(); + pluginSyncEmitter.emit(PLUGIN_SYNC_EVENTS.CHANGED, { action: 'toggle_repository_enabled', id, enabled }); logger.log('[LocalScraperService] Toggled repository', repo.name, 'to', enabled ? 'enabled' : 'disabled'); } @@ -1777,4 +1793,4 @@ class LocalScraperService { export const localScraperService = LocalScraperService.getInstance(); export const pluginService = localScraperService; // Alias for UI consistency -export default localScraperService; \ No newline at end of file +export default localScraperService; diff --git a/src/services/supabaseSyncService.ts b/src/services/supabaseSyncService.ts new file mode 100644 index 00000000..6eae07cb --- /dev/null +++ b/src/services/supabaseSyncService.ts @@ -0,0 +1,1145 @@ +import { AppState, Platform } from 'react-native'; +import { mmkvStorage } from './mmkvStorage'; +import { logger } from '../utils/logger'; +import { localScraperService, PLUGIN_SYNC_EVENTS } from './pluginService'; +import { stremioService, addonEmitter, ADDON_EVENTS, Manifest } from './stremioService'; +import { catalogService, StreamingContent } from './catalogService'; +import { storageService } from './storageService'; +import { watchedService, LocalWatchedItem } from './watchedService'; +import { TraktService } from './traktService'; + +const SUPABASE_SESSION_KEY = '@supabase:session'; +const DEFAULT_SYNC_DEBOUNCE_MS = 2000; + +type Nullable = T | null; + +export type SupabaseUser = { + id: string; + email?: string; + user_metadata?: { + display_name?: string; + avatar_url?: string; + [key: string]: unknown; + }; + app_metadata?: { + provider?: string; + [key: string]: unknown; + }; +}; + +type SupabaseSession = { + access_token: string; + refresh_token: string; + expires_at?: number; + expires_in?: number; + token_type?: string; + user: SupabaseUser; +}; + +type PluginRow = { + url: string; + name?: string; + enabled?: boolean; + sort_order?: number; +}; + +type AddonRow = { + url: string; + sort_order: number; +}; + +type WatchProgressRow = { + content_id: string; + content_type: 'movie' | 'series'; + video_id: string; + season: Nullable; + episode: Nullable; + position: number; + duration: number; + last_watched: number; + progress_key: string; +}; + +type LibraryRow = { + content_id: string; + content_type: string; + name?: string; + poster?: string; + poster_shape?: string; + background?: string; + description?: string; + release_info?: string; + imdb_rating?: number; + genres?: string[]; + addon_base_url?: string; + added_at?: number; +}; + +type WatchedRow = { + content_id: string; + content_type: string; + title?: string; + season: Nullable; + episode: Nullable; + watched_at: number; +}; + +type RpcClaimSyncCodeRow = { + result_owner_id: Nullable; + success: boolean; + message: string; +}; + +export type LinkedDevice = { + owner_id: string; + device_user_id: string; + device_name?: string; + linked_at: string; +}; + +type PushTarget = 'plugins' | 'addons' | 'watch_progress' | 'library' | 'watched_items'; + +class SupabaseSyncService { + private static instance: SupabaseSyncService; + + private readonly supabaseUrl: string; + private readonly anonKey: string; + private session: SupabaseSession | null = null; + private initializePromise: Promise | null = null; + private startupSyncPromise: Promise | null = null; + private listenersRegistered = false; + private suppressPushes = false; + private appStateSub: { remove: () => void } | null = null; + private lastForegroundPullAt = 0; + private readonly foregroundPullCooldownMs = 30000; + + private pendingPushTimers: Record | null> = { + plugins: null, + addons: null, + watch_progress: null, + library: null, + watched_items: null, + }; + + private constructor() { + this.supabaseUrl = (process.env.EXPO_PUBLIC_SUPABASE_URL || '').replace(/\/$/, ''); + this.anonKey = process.env.EXPO_PUBLIC_SUPABASE_ANON_KEY || ''; + } + + static getInstance(): SupabaseSyncService { + if (!SupabaseSyncService.instance) { + SupabaseSyncService.instance = new SupabaseSyncService(); + } + return SupabaseSyncService.instance; + } + + public isConfigured(): boolean { + return Boolean(this.supabaseUrl && this.anonKey); + } + + public getCurrentSessionUser(): SupabaseUser | null { + return this.session?.user || null; + } + + public isAnonymousSession(): boolean { + return this.session?.user?.app_metadata?.provider === 'anonymous'; + } + + public async initialize(): Promise { + if (!this.isConfigured()) { + logger.warn('[SupabaseSyncService] Missing Supabase env vars; sync disabled.'); + return; + } + + if (this.initializePromise) { + await this.initializePromise; + return; + } + + this.initializePromise = (async () => { + await this.loadStoredSession(); + await this.ensureValidSession(); + this.registerSyncListeners(); + })(); + + try { + await this.initializePromise; + } finally { + this.initializePromise = null; + } + } + + public async signUpWithEmail(email: string, password: string): Promise<{ user?: SupabaseUser; error?: string }> { + if (!this.isConfigured()) { + return { error: 'Supabase is not configured' }; + } + + try { + const response = await this.requestAuth<{ user?: SupabaseUser; session?: SupabaseSession }>('/auth/v1/signup', { + method: 'POST', + body: { email, password }, + }); + + if (response.session) { + await this.setSession(response.session); + } + + if (!response.user) { + return { error: 'Signup failed: user not returned by Supabase' }; + } + + return { user: response.user }; + } catch (error: any) { + return { error: this.extractErrorMessage(error, 'Signup failed') }; + } + } + + public async signInWithEmail(email: string, password: string): Promise<{ user?: SupabaseUser; error?: string }> { + if (!this.isConfigured()) { + return { error: 'Supabase is not configured' }; + } + + try { + const response = await this.requestAuth('/auth/v1/token?grant_type=password', { + method: 'POST', + body: { email, password }, + }); + await this.setSession(response); + return { user: response.user }; + } catch (error: any) { + return { error: this.extractErrorMessage(error, 'Sign in failed') }; + } + } + + public async signOut(): Promise { + if (!this.isConfigured()) return; + const token = await this.getValidAccessToken(); + + if (token) { + try { + await this.request('/auth/v1/logout', { + method: 'POST', + authToken: token, + }); + } catch (error) { + logger.warn('[SupabaseSyncService] Supabase logout request failed, clearing local session:', error); + } + } + + this.session = null; + await mmkvStorage.removeItem(SUPABASE_SESSION_KEY); + } + + public async startupSync(): Promise { + if (!this.isConfigured()) return; + await this.initialize(); + logger.log('[SupabaseSyncService] startupSync: begin'); + + if (this.startupSyncPromise) { + await this.startupSyncPromise; + return; + } + + this.startupSyncPromise = this.runStartupSync(); + try { + await this.startupSyncPromise; + logger.log('[SupabaseSyncService] startupSync: complete'); + } finally { + this.startupSyncPromise = null; + } + } + + public async onSignUpPushAll(): Promise { + await this.pushAllLocalData(); + } + + public async onSignInPullAll(): Promise { + await this.pullAllToLocal(); + } + + public async syncNow(): Promise { + await this.startupSync(); + } + + public async pushAllLocalData(): Promise { + await this.initialize(); + logger.log('[SupabaseSyncService] pushAllLocalData: begin'); + + await this.pushPluginsFromLocal(); + await this.pushAddonsFromLocal(); + + const traktConnected = await this.isTraktConnected(); + if (traktConnected) { + return; + } + + await this.pushWatchProgressFromLocal(); + await this.pushLibraryFromLocal(); + await this.pushWatchedItemsFromLocal(); + logger.log('[SupabaseSyncService] pushAllLocalData: complete'); + } + + public async pullAllToLocal(): Promise { + await this.initialize(); + logger.log('[SupabaseSyncService] pullAllToLocal: begin'); + + await this.withSuppressedPushes(async () => { + await this.pullPluginsToLocal(); + await this.pullAddonsToLocal(); + + const traktConnected = await this.isTraktConnected(); + if (traktConnected) { + return; + } + + await this.pullWatchProgressToLocal(); + await this.pullLibraryToLocal(); + await this.pullWatchedItemsToLocal(); + }); + logger.log('[SupabaseSyncService] pullAllToLocal: complete'); + } + + public async generateSyncCode(pin: string): Promise<{ code?: string; error?: string }> { + try { + await this.pushAllLocalData(); + const response = await this.callRpc>('generate_sync_code', { p_pin: pin }); + const code = response?.[0]?.code; + if (!code) return { error: 'Failed to generate sync code' }; + return { code }; + } catch (error: any) { + return { error: this.extractErrorMessage(error, 'Failed to generate sync code') }; + } + } + + public async getSyncCode(pin: string): Promise<{ code?: string; error?: string }> { + try { + const response = await this.callRpc>('get_sync_code', { p_pin: pin }); + const code = response?.[0]?.code; + if (!code) return { error: 'No sync code found' }; + return { code }; + } catch (error: any) { + return { error: this.extractErrorMessage(error, 'Failed to fetch sync code') }; + } + } + + public async claimSyncCode(code: string, pin: string, deviceName?: string): Promise<{ success: boolean; message: string }> { + try { + const response = await this.callRpc('claim_sync_code', { + p_code: code, + p_pin: pin, + p_device_name: deviceName || `Nuvio ${Platform.OS}`, + }); + const result = response?.[0]; + if (!result || !result.success) { + return { + success: false, + message: result?.message || 'Failed to claim sync code', + }; + } + + await this.pullAllToLocal(); + + return { + success: true, + message: result.message || 'Device linked successfully', + }; + } catch (error: any) { + return { + success: false, + message: this.extractErrorMessage(error, 'Failed to claim sync code'), + }; + } + } + + public async getLinkedDevices(): Promise { + try { + const token = await this.getValidAccessToken(); + if (!token) return []; + + const ownerId = await this.getEffectiveOwnerId(); + if (!ownerId) return []; + + return await this.request( + `/rest/v1/linked_devices?select=owner_id,device_user_id,device_name,linked_at&owner_id=eq.${encodeURIComponent(ownerId)}&order=linked_at.desc`, + { + method: 'GET', + authToken: token, + } + ); + } catch (error) { + logger.error('[SupabaseSyncService] Failed to fetch linked devices:', error); + return []; + } + } + + public async unlinkDevice(deviceUserId: string): Promise<{ success: boolean; error?: string }> { + try { + await this.callRpc('unlink_device', { p_device_user_id: deviceUserId }); + return { success: true }; + } catch (error: any) { + return { + success: false, + error: this.extractErrorMessage(error, 'Failed to unlink device'), + }; + } + } + + public async getEffectiveOwnerId(): Promise { + try { + const response = await this.callRpc('get_sync_owner', {}); + if (typeof response === 'string') return response; + if (Array.isArray(response)) { + const first = response[0]; + if (typeof first === 'string') return first; + if (first && typeof first === 'object') { + const candidate = (first as any).get_sync_owner || (first as any).id; + return typeof candidate === 'string' ? candidate : null; + } + } + if (response && typeof response === 'object') { + const candidate = (response as any).get_sync_owner || (response as any).id; + return typeof candidate === 'string' ? candidate : null; + } + return null; + } catch (error) { + logger.error('[SupabaseSyncService] Failed to resolve effective owner id:', error); + return null; + } + } + + private async runStartupSync(): Promise { + logger.log('[SupabaseSyncService] runStartupSync: step=pull_plugins:start'); + const pluginPullOk = await this.safeRun('pull_plugins', async () => { + await this.withSuppressedPushes(async () => { + await this.pullPluginsToLocal(); + }); + }); + logger.log(`[SupabaseSyncService] runStartupSync: step=pull_plugins:done ok=${pluginPullOk}`); + + logger.log('[SupabaseSyncService] runStartupSync: step=pull_addons:start'); + const addonPullOk = await this.safeRun('pull_addons', async () => { + await this.withSuppressedPushes(async () => { + await this.pullAddonsToLocal(); + }); + }); + logger.log(`[SupabaseSyncService] runStartupSync: step=pull_addons:done ok=${addonPullOk}`); + + if (pluginPullOk) { + logger.log('[SupabaseSyncService] runStartupSync: step=push_plugins:start'); + await this.safeRun('push_plugins', async () => { + await this.pushPluginsFromLocal(); + }); + logger.log('[SupabaseSyncService] runStartupSync: step=push_plugins:done'); + } + + if (addonPullOk) { + logger.log('[SupabaseSyncService] runStartupSync: step=push_addons:start'); + await this.safeRun('push_addons', async () => { + await this.pushAddonsFromLocal(); + }); + logger.log('[SupabaseSyncService] runStartupSync: step=push_addons:done'); + } + + const traktConnected = await this.isTraktConnected(); + if (traktConnected) { + logger.log('[SupabaseSyncService] Trakt is connected; skipping progress/library/watched Supabase sync.'); + return; + } + + const watchPullOk = await this.safeRun('pull_watch_progress', async () => { + await this.withSuppressedPushes(async () => { + await this.pullWatchProgressToLocal(); + }); + }); + + const libraryPullOk = await this.safeRun('pull_library', async () => { + await this.withSuppressedPushes(async () => { + await this.pullLibraryToLocal(); + }); + }); + + const watchedPullOk = await this.safeRun('pull_watched_items', async () => { + await this.withSuppressedPushes(async () => { + await this.pullWatchedItemsToLocal(); + }); + }); + + if (watchPullOk) { + await this.safeRun('push_watch_progress', async () => { + await this.pushWatchProgressFromLocal(); + }); + } + + if (libraryPullOk) { + await this.safeRun('push_library', async () => { + await this.pushLibraryFromLocal(); + }); + } + + if (watchedPullOk) { + await this.safeRun('push_watched_items', async () => { + await this.pushWatchedItemsFromLocal(); + }); + } + } + + private async safeRun(step: string, task: () => Promise): Promise { + try { + await task(); + return true; + } catch (error) { + logger.error(`[SupabaseSyncService] Sync step failed (${step}):`, error); + return false; + } + } + + private registerSyncListeners(): void { + if (this.listenersRegistered) return; + this.listenersRegistered = true; + + addonEmitter.on(ADDON_EVENTS.ADDON_ADDED, () => this.schedulePush('addons')); + addonEmitter.on(ADDON_EVENTS.ADDON_REMOVED, () => this.schedulePush('addons')); + addonEmitter.on(ADDON_EVENTS.ORDER_CHANGED, () => this.schedulePush('addons')); + + localScraperService.getPluginSyncEventEmitter().on(PLUGIN_SYNC_EVENTS.CHANGED, () => this.schedulePush('plugins')); + + catalogService.onLibraryAdd(() => this.schedulePush('library')); + catalogService.onLibraryRemove(() => this.schedulePush('library')); + + storageService.subscribeToWatchProgressUpdates(() => this.schedulePush('watch_progress')); + storageService.onWatchProgressRemoved(() => this.schedulePush('watch_progress')); + + watchedService.subscribeToWatchedUpdates(() => this.schedulePush('watched_items')); + + if (!this.appStateSub) { + this.appStateSub = AppState.addEventListener('change', (state) => { + if (state === 'active') { + this.onAppForeground().catch((error) => { + logger.warn('[SupabaseSyncService] Foreground pull failed:', error); + }); + } + }); + } + } + + private async onAppForeground(): Promise { + if (!this.isConfigured()) return; + if (this.suppressPushes) return; + + const now = Date.now(); + if (now - this.lastForegroundPullAt < this.foregroundPullCooldownMs) return; + this.lastForegroundPullAt = now; + logger.log('[SupabaseSyncService] App foreground: triggering pullAllToLocal'); + + await this.initialize(); + if (!this.session) return; + + await this.safeRun('foreground_pull_all', async () => { + await this.pullAllToLocal(); + }); + } + + private schedulePush(target: PushTarget): void { + if (!this.isConfigured() || this.suppressPushes) { + return; + } + + const existing = this.pendingPushTimers[target]; + if (existing) clearTimeout(existing); + logger.log(`[SupabaseSyncService] schedulePush: target=${target} delayMs=${DEFAULT_SYNC_DEBOUNCE_MS}`); + + this.pendingPushTimers[target] = setTimeout(() => { + this.pendingPushTimers[target] = null; + this.executeScheduledPush(target).catch((error) => { + logger.error(`[SupabaseSyncService] Scheduled push failed (${target}):`, error); + }); + }, DEFAULT_SYNC_DEBOUNCE_MS); + } + + private async executeScheduledPush(target: PushTarget): Promise { + await this.initialize(); + if (!this.session) return; + logger.log(`[SupabaseSyncService] executeScheduledPush: target=${target}:start`); + + if (target === 'plugins') { + await this.pushPluginsFromLocal(); + logger.log(`[SupabaseSyncService] executeScheduledPush: target=${target}:done`); + return; + } + + if (target === 'addons') { + await this.pushAddonsFromLocal(); + logger.log(`[SupabaseSyncService] executeScheduledPush: target=${target}:done`); + return; + } + + const traktConnected = await this.isTraktConnected(); + if (traktConnected) { + return; + } + + if (target === 'watch_progress') { + await this.pushWatchProgressFromLocal(); + logger.log(`[SupabaseSyncService] executeScheduledPush: target=${target}:done`); + return; + } + if (target === 'library') { + await this.pushLibraryFromLocal(); + logger.log(`[SupabaseSyncService] executeScheduledPush: target=${target}:done`); + return; + } + + await this.pushWatchedItemsFromLocal(); + logger.log(`[SupabaseSyncService] executeScheduledPush: target=${target}:done`); + } + + private async withSuppressedPushes(task: () => Promise): Promise { + this.suppressPushes = true; + try { + await task(); + } finally { + this.suppressPushes = false; + } + } + + private async loadStoredSession(): Promise { + try { + const raw = await mmkvStorage.getItem(SUPABASE_SESSION_KEY); + if (!raw) { + this.session = null; + return; + } + this.session = JSON.parse(raw) as SupabaseSession; + } catch (error) { + logger.error('[SupabaseSyncService] Failed to load stored session:', error); + this.session = null; + await mmkvStorage.removeItem(SUPABASE_SESSION_KEY); + } + } + + private async setSession(session: SupabaseSession): Promise { + this.session = session; + await mmkvStorage.setItem(SUPABASE_SESSION_KEY, JSON.stringify(session)); + } + + private isSessionExpired(session: SupabaseSession): boolean { + if (!session.expires_at) return false; + const now = Math.floor(Date.now() / 1000); + return now >= (session.expires_at - 30); + } + + private async refreshSession(refreshToken: string): Promise { + return await this.requestAuth('/auth/v1/token?grant_type=refresh_token', { + method: 'POST', + body: { refresh_token: refreshToken }, + }); + } + + private async ensureValidSession(): Promise { + if (!this.session) return false; + if (!this.session.access_token || !this.session.refresh_token) return false; + + if (!this.isSessionExpired(this.session)) return true; + + try { + const refreshed = await this.refreshSession(this.session.refresh_token); + await this.setSession(refreshed); + return true; + } catch (error) { + logger.error('[SupabaseSyncService] Failed to refresh session:', error); + this.session = null; + await mmkvStorage.removeItem(SUPABASE_SESSION_KEY); + return false; + } + } + + private async getValidAccessToken(): Promise { + await this.initialize(); + if (!this.session) return null; + + if (this.isSessionExpired(this.session)) { + try { + const refreshed = await this.refreshSession(this.session.refresh_token); + await this.setSession(refreshed); + } catch (error) { + logger.error('[SupabaseSyncService] Token refresh failed:', error); + this.session = null; + await mmkvStorage.removeItem(SUPABASE_SESSION_KEY); + return null; + } + } + + return this.session?.access_token || null; + } + + private async requestAuth(path: string, options: { method: string; body?: unknown }): Promise { + return await this.request(path, { + method: options.method, + body: options.body, + authToken: null, + }); + } + + private async request( + path: string, + options: { + method: string; + body?: unknown; + authToken: string | null; + } + ): Promise { + if (!this.isConfigured()) { + throw new Error('Supabase is not configured'); + } + + const headers: Record = { + apikey: this.anonKey, + }; + if (options.authToken) { + headers.Authorization = `Bearer ${options.authToken}`; + } + if (options.body !== undefined) { + headers['Content-Type'] = 'application/json'; + } + + const response = await fetch(`${this.supabaseUrl}${path}`, { + method: options.method, + headers, + body: options.body === undefined ? undefined : JSON.stringify(options.body), + }); + + const raw = await response.text(); + const parsed = this.parsePayload(raw); + + if (!response.ok) { + throw this.buildRequestError(response.status, parsed, raw); + } + + return parsed as T; + } + + private parsePayload(raw: string): unknown { + if (!raw) return null; + try { + return JSON.parse(raw); + } catch { + return raw; + } + } + + private buildRequestError(status: number, parsed: unknown, raw: string): Error { + if (parsed && typeof parsed === 'object') { + const message = (parsed as any).message || (parsed as any).error_description || (parsed as any).error; + if (typeof message === 'string' && message.trim().length > 0) { + return new Error(message); + } + } + if (raw && raw.trim().length > 0) { + return new Error(raw); + } + return new Error(`Supabase request failed with status ${status}`); + } + + private extractErrorMessage(error: unknown, fallback: string): string { + if (error instanceof Error && error.message) { + return error.message; + } + return fallback; + } + + private async callRpc(functionName: string, payload?: Record): Promise { + const token = await this.getValidAccessToken(); + if (!token) { + throw new Error('Not authenticated'); + } + + return await this.request(`/rest/v1/rpc/${functionName}`, { + method: 'POST', + body: payload || {}, + authToken: token, + }); + } + + private normalizeUrl(url: string): string { + return url.trim().toLowerCase(); + } + + private toBigIntNumber(value: unknown): number { + const n = Number(value); + if (!Number.isFinite(n) || n <= 0) return 0; + return Math.trunc(n); + } + + private secondsToMsLong(value: unknown): number { + const n = Number(value); + if (!Number.isFinite(n) || n <= 0) return 0; + return Math.trunc(n * 1000); + } + + private normalizeEpochMs(value: unknown): number { + const n = Number(value); + if (!Number.isFinite(n) || n <= 0) return 0; + // If value looks like seconds, convert to milliseconds. + if (n < 1_000_000_000_000) { + return Math.trunc(n * 1000); + } + return Math.trunc(n); + } + + private msToSeconds(value: unknown): number { + const n = Number(value); + if (!Number.isFinite(n) || n <= 0) return 0; + return n / 1000; + } + + private addonManifestUrl(addon: Manifest): string | null { + const raw = (addon.originalUrl || addon.url || '').trim(); + if (!raw) return null; + if (raw.includes('manifest.json')) return raw; + return `${raw.replace(/\/$/, '')}/manifest.json`; + } + + private parseWatchProgressKey(key: string): { + contentType: 'movie' | 'series'; + contentId: string; + season: number | null; + episode: number | null; + videoId: string; + progressKey: string; + } | null { + const parts = key.split(':'); + if (parts.length < 2) return null; + + const contentType: 'movie' | 'series' = parts[0] === 'movie' ? 'movie' : 'series'; + const contentId = parts[1]; + const episodeId = parts.length > 2 ? parts.slice(2).join(':') : ''; + let season: number | null = null; + let episode: number | null = null; + + if (episodeId) { + const match = episodeId.match(/:(\d+):(\d+)$/); + if (match) { + season = Number(match[1]); + episode = Number(match[2]); + } + } + + const videoId = episodeId || contentId; + const progressKey = contentType === 'movie' + ? contentId + : (season != null && episode != null ? `${contentId}_s${season}e${episode}` : `${contentId}_${videoId}`); + + return { + contentType, + contentId, + season, + episode, + videoId, + progressKey, + }; + } + + private toStreamingContent(item: LibraryRow): StreamingContent { + const type = item.content_type === 'movie' ? 'movie' : 'series'; + const posterShape = (item.poster_shape || 'POSTER').toLowerCase() as 'poster' | 'square' | 'landscape'; + + return { + id: item.content_id, + type, + name: item.name || '', + poster: item.poster || '', + posterShape, + banner: item.background, + description: item.description, + releaseInfo: item.release_info, + imdbRating: item.imdb_rating != null ? String(item.imdb_rating) : undefined, + genres: item.genres || [], + addonId: item.addon_base_url, + addedToLibraryAt: item.added_at, + inLibrary: true, + }; + } + + private toWatchedItem(row: WatchedRow): LocalWatchedItem { + return { + content_id: row.content_id, + content_type: row.content_type === 'movie' ? 'movie' : 'series', + title: row.title || '', + season: row.season == null ? null : Number(row.season), + episode: row.episode == null ? null : Number(row.episode), + watched_at: Number(row.watched_at || Date.now()), + }; + } + + private async isTraktConnected(): Promise { + try { + return await TraktService.getInstance().isAuthenticated(); + } catch { + return false; + } + } + + private async pullPluginsToLocal(): Promise { + const token = await this.getValidAccessToken(); + if (!token) return; + const ownerId = await this.getEffectiveOwnerId(); + if (!ownerId) return; + + const rows = await this.request( + `/rest/v1/plugins?select=url,name,enabled,sort_order&user_id=eq.${encodeURIComponent(ownerId)}&order=sort_order.asc`, + { + method: 'GET', + authToken: token, + } + ); + logger.log(`[SupabaseSyncService] pullPluginsToLocal: remoteCount=${rows?.length || 0}`); + + const localRepos = await localScraperService.getRepositories(); + const byUrl = new Map(localRepos.map((repo) => [this.normalizeUrl(repo.url), repo])); + + for (const row of rows || []) { + if (!row.url) continue; + const normalized = this.normalizeUrl(row.url); + const existing = byUrl.get(normalized); + + if (!existing) { + await localScraperService.addRepository({ + name: row.name || localScraperService.extractRepositoryName(row.url), + url: row.url, + enabled: row.enabled !== false, + description: 'Synced from cloud', + }); + continue; + } + + const shouldUpdate = + (row.name && row.name !== existing.name) || + (typeof row.enabled === 'boolean' && row.enabled !== existing.enabled); + + if (shouldUpdate) { + await localScraperService.updateRepository(existing.id, { + name: row.name || existing.name, + enabled: typeof row.enabled === 'boolean' ? row.enabled : existing.enabled, + }); + } + } + } + + private async pushPluginsFromLocal(): Promise { + const repos = await localScraperService.getRepositories(); + logger.log(`[SupabaseSyncService] pushPluginsFromLocal: localCount=${repos.length}`); + const payload: PluginRow[] = repos.map((repo, index) => ({ + url: repo.url, + name: repo.name, + enabled: repo.enabled !== false, + sort_order: index, + })); + await this.callRpc('sync_push_plugins', { p_plugins: payload }); + } + + private async pullAddonsToLocal(): Promise { + const token = await this.getValidAccessToken(); + if (!token) return; + const ownerId = await this.getEffectiveOwnerId(); + if (!ownerId) return; + + const rows = await this.request( + `/rest/v1/addons?select=url,sort_order&user_id=eq.${encodeURIComponent(ownerId)}&order=sort_order.asc`, + { + method: 'GET', + authToken: token, + } + ); + logger.log(`[SupabaseSyncService] pullAddonsToLocal: remoteCount=${rows?.length || 0}`); + + const installed = await stremioService.getInstalledAddonsAsync(); + logger.log(`[SupabaseSyncService] pullAddonsToLocal: localInstalledBefore=${installed.length}`); + const remoteSet = new Set( + (rows || []) + .map((row) => (row?.url ? this.normalizeUrl(row.url) : null)) + .filter((url): url is string => Boolean(url)) + ); + const installedUrls = new Set( + installed + .map((addon) => this.addonManifestUrl(addon)) + .filter((url): url is string => Boolean(url)) + .map((url) => this.normalizeUrl(url)) + ); + + for (const row of rows || []) { + if (!row.url) continue; + const normalized = this.normalizeUrl(row.url); + if (installedUrls.has(normalized)) continue; + + try { + await stremioService.installAddon(row.url); + installedUrls.add(normalized); + } catch (error) { + logger.warn('[SupabaseSyncService] Failed to install synced addon:', row.url, error); + } + } + + // Reconcile removals only when remote has at least one entry to avoid wiping local + // data if backend temporarily returns an empty set. + if (remoteSet.size > 0) { + let removedCount = 0; + for (const addon of installed) { + const url = this.addonManifestUrl(addon); + const normalized = url ? this.normalizeUrl(url) : null; + if (!normalized || remoteSet.has(normalized)) continue; + if (!addon.installationId) continue; + try { + await stremioService.removeAddon(addon.installationId); + removedCount += 1; + } catch (error) { + logger.warn('[SupabaseSyncService] Failed to remove local addon missing in remote set:', addon.name, error); + } + } + logger.log(`[SupabaseSyncService] pullAddonsToLocal: removedLocalExtras=${removedCount}`); + } else { + logger.log('[SupabaseSyncService] pullAddonsToLocal: remote set empty, skipped local prune'); + } + } + + private async pushAddonsFromLocal(): Promise { + const addons = await stremioService.getInstalledAddonsAsync(); + logger.log(`[SupabaseSyncService] pushAddonsFromLocal: localInstalledRaw=${addons.length}`); + const seen = new Set(); + const payload: AddonRow[] = addons.reduce((acc, addon) => { + const url = this.addonManifestUrl(addon); + if (!url) return acc; + const normalized = this.normalizeUrl(url); + if (seen.has(normalized)) return acc; + seen.add(normalized); + acc.push({ + url, + sort_order: acc.length, + }); + return acc; + }, []); + logger.log(`[SupabaseSyncService] pushAddonsFromLocal: payloadDeduped=${payload.length}`); + + await this.callRpc('sync_push_addons', { p_addons: payload }); + } + + private async pullWatchProgressToLocal(): Promise { + const rows = await this.callRpc('sync_pull_watch_progress', {}); + + for (const row of rows || []) { + if (!row.content_id) continue; + const type = row.content_type === 'movie' ? 'movie' : 'series'; + const season = row.season == null ? null : Number(row.season); + const episode = row.episode == null ? null : Number(row.episode); + + const episodeId = type === 'series' && season != null && episode != null + ? `${row.content_id}:${season}:${episode}` + : undefined; + + const local = await storageService.getWatchProgress(row.content_id, type, episodeId); + const remoteLastWatched = this.normalizeEpochMs(row.last_watched); + if (local && Number(local.lastUpdated || 0) >= remoteLastWatched) { + continue; + } + + await storageService.setWatchProgress( + row.content_id, + type, + { + ...(local || {}), + currentTime: this.msToSeconds(row.position), + duration: this.msToSeconds(row.duration), + lastUpdated: remoteLastWatched || Date.now(), + }, + episodeId, + { + preserveTimestamp: true, + forceWrite: true, + } + ); + } + } + + private async pushWatchProgressFromLocal(): Promise { + const all = await storageService.getAllWatchProgress(); + const entries: WatchProgressRow[] = Object.entries(all).reduce((acc, [key, value]) => { + const parsed = this.parseWatchProgressKey(key); + if (!parsed) return acc; + acc.push({ + content_id: parsed.contentId, + content_type: parsed.contentType, + video_id: parsed.videoId, + season: parsed.season, + episode: parsed.episode, + position: this.secondsToMsLong(value.currentTime), + duration: this.secondsToMsLong(value.duration), + last_watched: this.normalizeEpochMs(value.lastUpdated || Date.now()), + progress_key: parsed.progressKey, + }); + return acc; + }, []); + + await this.callRpc('sync_push_watch_progress', { p_entries: entries }); + } + + private async pullLibraryToLocal(): Promise { + const rows = await this.callRpc('sync_pull_library', {}); + const localItems = await catalogService.getLibraryItems(); + const existing = new Set(localItems.map((item) => `${item.type}:${item.id}`)); + + for (const row of rows || []) { + if (!row.content_id || !row.content_type) continue; + const type = row.content_type === 'movie' ? 'movie' : 'series'; + const key = `${type}:${row.content_id}`; + if (existing.has(key)) continue; + + try { + await catalogService.addToLibrary(this.toStreamingContent(row)); + existing.add(key); + } catch (error) { + logger.warn('[SupabaseSyncService] Failed to merge library item from sync:', key, error); + } + } + } + + private async pushLibraryFromLocal(): Promise { + const items = await catalogService.getLibraryItems(); + const payload: LibraryRow[] = items.map((item) => ({ + content_id: item.id, + content_type: item.type === 'movie' ? 'movie' : 'series', + name: item.name, + poster: item.poster, + poster_shape: (item.posterShape || 'poster').toUpperCase(), + background: item.banner || (item as any).background, + description: item.description, + release_info: item.releaseInfo, + imdb_rating: item.imdbRating != null ? Number(item.imdbRating) : undefined, + genres: item.genres || [], + addon_base_url: item.addonId, + added_at: item.addedToLibraryAt, + })); + + await this.callRpc('sync_push_library', { p_items: payload }); + } + + private async pullWatchedItemsToLocal(): Promise { + const rows = await this.callRpc('sync_pull_watched_items', {}); + const mapped = (rows || []).map((row) => this.toWatchedItem(row)); + await watchedService.mergeRemoteWatchedItems(mapped); + } + + private async pushWatchedItemsFromLocal(): Promise { + const items = await watchedService.getAllWatchedItems(); + const payload: WatchedRow[] = items.map((item) => ({ + content_id: item.content_id, + content_type: item.content_type, + title: item.title, + season: item.season, + episode: item.episode, + watched_at: item.watched_at, + })); + await this.callRpc('sync_push_watched_items', { p_items: payload }); + } +} + +export const supabaseSyncService = SupabaseSyncService.getInstance(); +export default supabaseSyncService; diff --git a/src/services/watchedService.ts b/src/services/watchedService.ts index 50218aeb..71344e08 100644 --- a/src/services/watchedService.ts +++ b/src/services/watchedService.ts @@ -4,10 +4,19 @@ import { storageService } from './storageService'; import { mmkvStorage } from './mmkvStorage'; import { logger } from '../utils/logger'; +export interface LocalWatchedItem { + content_id: string; + content_type: 'movie' | 'series'; + title: string; + season: number | null; + episode: number | null; + watched_at: number; +} + /** * WatchedService - Manages "watched" status for movies, episodes, and seasons. * Handles both local storage and Trakt sync transparently. - * + * * When Trakt is authenticated, it syncs to Trakt. * When not authenticated, it stores locally. */ @@ -15,6 +24,8 @@ class WatchedService { private static instance: WatchedService; private traktService: TraktService; private simklService: SimklService; + private readonly WATCHED_ITEMS_KEY = '@user:local:watched_items'; + private watchedSubscribers: Array<() => void> = []; private constructor() { this.traktService = TraktService.getInstance(); @@ -28,6 +39,133 @@ class WatchedService { return WatchedService.instance; } + private watchedKey(item: Pick): string { + return `${item.content_id}::${item.season ?? -1}::${item.episode ?? -1}`; + } + + private normalizeWatchedItem(item: LocalWatchedItem): LocalWatchedItem { + return { + content_id: String(item.content_id || ''), + content_type: item.content_type === 'movie' ? 'movie' : 'series', + title: item.title || '', + season: item.season == null ? null : Number(item.season), + episode: item.episode == null ? null : Number(item.episode), + watched_at: Number(item.watched_at || Date.now()), + }; + } + + private notifyWatchedSubscribers(): void { + if (this.watchedSubscribers.length === 0) return; + this.watchedSubscribers.forEach((cb) => cb()); + } + + public subscribeToWatchedUpdates(callback: () => void): () => void { + this.watchedSubscribers.push(callback); + return () => { + const index = this.watchedSubscribers.indexOf(callback); + if (index > -1) { + this.watchedSubscribers.splice(index, 1); + } + }; + } + + private async loadWatchedItems(): Promise { + try { + const json = await mmkvStorage.getItem(this.WATCHED_ITEMS_KEY); + if (!json) return []; + const parsed = JSON.parse(json); + if (!Array.isArray(parsed)) return []; + + const deduped = new Map(); + parsed.forEach((raw) => { + if (!raw || typeof raw !== 'object') return; + const normalized = this.normalizeWatchedItem(raw as LocalWatchedItem); + if (!normalized.content_id) return; + const key = this.watchedKey(normalized); + const existing = deduped.get(key); + if (!existing || normalized.watched_at > existing.watched_at) { + deduped.set(key, normalized); + } + }); + + return Array.from(deduped.values()); + } catch (error) { + logger.error('[WatchedService] Failed to load local watched items:', error); + return []; + } + } + + private async saveWatchedItems(items: LocalWatchedItem[]): Promise { + try { + await mmkvStorage.setItem(this.WATCHED_ITEMS_KEY, JSON.stringify(items)); + } catch (error) { + logger.error('[WatchedService] Failed to save local watched items:', error); + } + } + + public async getAllWatchedItems(): Promise { + return await this.loadWatchedItems(); + } + + private async upsertLocalWatchedItems(items: LocalWatchedItem[]): Promise { + if (items.length === 0) return; + + const current = await this.loadWatchedItems(); + const byKey = new Map( + current.map((item) => [this.watchedKey(item), item]) + ); + + let changed = false; + for (const raw of items) { + const normalized = this.normalizeWatchedItem(raw); + if (!normalized.content_id) continue; + + const key = this.watchedKey(normalized); + const existing = byKey.get(key); + if (!existing || normalized.watched_at > existing.watched_at || (normalized.title && normalized.title !== existing.title)) { + byKey.set(key, normalized); + changed = true; + } + } + + if (changed) { + await this.saveWatchedItems(Array.from(byKey.values())); + this.notifyWatchedSubscribers(); + } + } + + private async removeLocalWatchedItems(items: Array>): Promise { + if (items.length === 0) return; + + const current = await this.loadWatchedItems(); + const toRemove = new Set(items.map((item) => this.watchedKey({ content_id: item.content_id, season: item.season ?? null, episode: item.episode ?? null }))); + const filtered = current.filter((item) => !toRemove.has(this.watchedKey(item))); + + if (filtered.length !== current.length) { + await this.saveWatchedItems(filtered); + this.notifyWatchedSubscribers(); + } + } + + public async mergeRemoteWatchedItems(items: LocalWatchedItem[]): Promise { + const normalized = items + .map((item) => this.normalizeWatchedItem(item)) + .filter((item) => Boolean(item.content_id)); + + await this.upsertLocalWatchedItems(normalized); + + for (const item of normalized) { + if (item.content_type === 'movie') { + await this.setLocalWatchedStatus(item.content_id, 'movie', true, undefined, new Date(item.watched_at)); + continue; + } + + if (item.season == null || item.episode == null) continue; + const episodeId = `${item.content_id}:${item.season}:${item.episode}`; + await this.setLocalWatchedStatus(item.content_id, 'series', true, episodeId, new Date(item.watched_at)); + } + } + /** * Mark a movie as watched * @param imdbId - The IMDb ID of the movie @@ -59,6 +197,16 @@ class WatchedService { // Also store locally as "completed" (100% progress) await this.setLocalWatchedStatus(imdbId, 'movie', true, undefined, watchedAt); + await this.upsertLocalWatchedItems([ + { + content_id: imdbId, + content_type: 'movie', + title: imdbId, + season: null, + episode: null, + watched_at: watchedAt.getTime(), + }, + ]); return { success: true, syncedToTrakt }; } catch (error) { @@ -119,6 +267,16 @@ class WatchedService { // Store locally as "completed" const episodeId = `${showId}:${season}:${episode}`; await this.setLocalWatchedStatus(showId, 'series', true, episodeId, watchedAt); + await this.upsertLocalWatchedItems([ + { + content_id: showImdbId, + content_type: 'series', + title: showImdbId, + season, + episode, + watched_at: watchedAt.getTime(), + }, + ]); return { success: true, syncedToTrakt }; } catch (error) { @@ -188,6 +346,17 @@ class WatchedService { await this.setLocalWatchedStatus(showId, 'series', true, episodeId, watchedAt); } + await this.upsertLocalWatchedItems( + episodes.map((ep) => ({ + content_id: showImdbId, + content_type: 'series' as const, + title: showImdbId, + season: ep.season, + episode: ep.episode, + watched_at: watchedAt.getTime(), + })) + ); + return { success: true, syncedToTrakt, count: episodes.length }; } catch (error) { logger.error('[WatchedService] Failed to mark episodes as watched:', error); @@ -231,7 +400,6 @@ class WatchedService { const isSimklAuth = await this.simklService.isAuthenticated(); if (isSimklAuth) { // Simkl doesn't have a direct "mark season" generic endpoint in the same way, but we can construct it - // We know the episodeNumbers from the arguments! const episodes = episodeNumbers.map(num => ({ number: num, watched_at: watchedAt.toISOString() })); await this.simklService.addToHistory({ shows: [{ @@ -251,6 +419,17 @@ class WatchedService { await this.setLocalWatchedStatus(showId, 'series', true, episodeId, watchedAt); } + await this.upsertLocalWatchedItems( + episodeNumbers.map((episode) => ({ + content_id: showImdbId, + content_type: 'series' as const, + title: showImdbId, + season, + episode, + watched_at: watchedAt.getTime(), + })) + ); + return { success: true, syncedToTrakt, count: episodeNumbers.length }; } catch (error) { logger.error('[WatchedService] Failed to mark season as watched:', error); @@ -285,6 +464,9 @@ class WatchedService { // Remove local progress await storageService.removeWatchProgress(imdbId, 'movie'); await mmkvStorage.removeItem(`watched:movie:${imdbId}`); + await this.removeLocalWatchedItems([ + { content_id: imdbId, season: null, episode: null }, + ]); return { success: true, syncedToTrakt }; } catch (error) { @@ -335,6 +517,9 @@ class WatchedService { // Remove local progress const episodeId = `${showId}:${season}:${episode}`; await storageService.removeWatchProgress(showId, 'series', episodeId); + await this.removeLocalWatchedItems([ + { content_id: showImdbId, season, episode }, + ]); return { success: true, syncedToTrakt }; } catch (error) { @@ -368,10 +553,6 @@ class WatchedService { showImdbId, season ); - syncedToTrakt = await this.traktService.removeSeasonFromHistory( - showImdbId, - season - ); logger.log(`[WatchedService] Trakt season removal result: ${syncedToTrakt}`); } @@ -397,6 +578,14 @@ class WatchedService { await storageService.removeWatchProgress(showId, 'series', episodeId); } + await this.removeLocalWatchedItems( + episodeNumbers.map((episode) => ({ + content_id: showImdbId, + season, + episode, + })) + ); + return { success: true, syncedToTrakt, count: episodeNumbers.length }; } catch (error) { logger.error('[WatchedService] Failed to unmark season as watched:', error); From f868fa915fdad086c0b31325e1c6e7f2637f4c34 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 17:30:37 +0100 Subject: [PATCH 270/285] Update mk.json --- src/i18n/locales/mk.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/i18n/locales/mk.json b/src/i18n/locales/mk.json index e4ba38b2..37204427 100644 --- a/src/i18n/locales/mk.json +++ b/src/i18n/locales/mk.json @@ -1424,11 +1424,4 @@ "no_logs_captured": "Нема снимено логови." } } -} - - - - - - - +} \ No newline at end of file From f7b24cf393d98404c3302558e164fe40b060e097 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 17:31:12 +0100 Subject: [PATCH 271/285] Update nl-NL.json --- src/i18n/locales/nl-NL.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/i18n/locales/nl-NL.json b/src/i18n/locales/nl-NL.json index 074ed269..ddc97f81 100644 --- a/src/i18n/locales/nl-NL.json +++ b/src/i18n/locales/nl-NL.json @@ -1429,9 +1429,4 @@ "no_logs_captured": "Geen logs vastgelegd." } } -} - - - - - +} \ No newline at end of file From c185c11275765751dc7468ac2b7e2e5ca918f2af Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 17:32:04 +0100 Subject: [PATCH 272/285] Update pl.json --- src/i18n/locales/pl.json | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index e86c6ade..60ba9817 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -1427,14 +1427,4 @@ "no_logs_captured": "No logs captured." } } -} - - - - - - - - - - +} \ No newline at end of file From 263de3af98da781f0a26186d204bb1941811383a Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 20:05:09 +0100 Subject: [PATCH 273/285] Update ro.json --- src/i18n/locales/ro.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json index cd092acc..2fc7c435 100644 --- a/src/i18n/locales/ro.json +++ b/src/i18n/locales/ro.json @@ -1429,7 +1429,4 @@ "no_logs_captured": "Niciun log capturat." } } -} - - - +} \ No newline at end of file From 8311156091c9d53e771cb2b75942352e10b9076e Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 20:05:39 +0100 Subject: [PATCH 274/285] Update ru.json --- src/i18n/locales/ru.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 6ac93d7d..ceca3c79 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -1428,8 +1428,3 @@ } } } - - - - - From f1643db448842bce9b1d839c57e0aa88d1420bfb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 20:06:23 +0100 Subject: [PATCH 275/285] Update sl.json --- src/i18n/locales/sl.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 2b8b9736..c3c49bcf 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -1427,10 +1427,4 @@ "no_logs_captured": "Ni zajetih dnevnikov." } } -} - - - - - - +} \ No newline at end of file From 2f9f41c2b1ce8ba014ffaf72908a1fb6ce773bbb Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 20:06:52 +0100 Subject: [PATCH 276/285] Update sq.json --- src/i18n/locales/sq.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/i18n/locales/sq.json b/src/i18n/locales/sq.json index 37882c0a..ce1b2de8 100644 --- a/src/i18n/locales/sq.json +++ b/src/i18n/locales/sq.json @@ -1429,6 +1429,4 @@ "no_logs_captured": "Nuk u kap asnjë log." } } -} - - +} \ No newline at end of file From 088bcaf651b38d2fe359ef6df8eb494a2a34e695 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 20:07:29 +0100 Subject: [PATCH 277/285] Update sr.json --- src/i18n/locales/sr.json | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 6b8f8125..3398bcee 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -1421,18 +1421,4 @@ "no_logs_captured": "Нема забележених логова." } } -} - - - - - - - - - - - - - - +} \ No newline at end of file From 705a257965b19054cd8dc0922581dfb9b656dc42 Mon Sep 17 00:00:00 2001 From: milicevicivan Date: Mon, 16 Feb 2026 20:11:44 +0100 Subject: [PATCH 278/285] Update tr.json --- src/i18n/locales/tr.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 66536673..eda338ee 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -1427,11 +1427,4 @@ "no_logs_captured": "No logs captured." } } -} - - - - - - - +} \ No newline at end of file From b5ae55da9e8aab0c9e93af53f8853176a1b364ef Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Tue, 17 Feb 2026 01:33:36 +0530 Subject: [PATCH 279/285] Refactor AuthScreen and SyncSettingsScreen; remove warning details and sync code generation - Removed warning details and associated animations from AuthScreen. - Simplified AuthScreen layout by eliminating unused state and styles. - Updated SyncSettingsScreen to fetch remote sync stats and display them. - Introduced new actions for pulling from cloud and uploading local data. - Removed legacy code related to sync code generation and claiming. - Enhanced UI with new section headers and improved layout for better user experience. - Added reconciliation logic for remote watched items in watchedService. - Implemented addon order reconciliation based on remote manifest URLs in stremioService. --- .../home/ContinueWatchingSection.tsx | 56 ++- src/components/metadata/.HeroSection.tsx.swp | Bin 16384 -> 0 bytes src/screens/AuthScreen.tsx | 142 +------ src/screens/SyncSettingsScreen.tsx | 383 +++++++----------- src/services/stremioService.ts | 61 ++- src/services/supabaseSyncService.ts | 193 +++++++-- src/services/watchedService.ts | 25 ++ 7 files changed, 447 insertions(+), 413 deletions(-) delete mode 100644 src/components/metadata/.HeroSection.tsx.swp diff --git a/src/components/home/ContinueWatchingSection.tsx b/src/components/home/ContinueWatchingSection.tsx index 104f4d9f..62bdd020 100644 --- a/src/components/home/ContinueWatchingSection.tsx +++ b/src/components/home/ContinueWatchingSection.tsx @@ -119,6 +119,7 @@ const ContinueWatchingSection = React.forwardRef((props, re const [loading, setLoading] = useState(true); const appState = useRef(AppState.currentState); const refreshTimerRef = useRef(null); + const pendingRefreshRef = useRef(false); const [deletingItemId, setDeletingItemId] = useState(null); const longPressTimeoutRef = useRef(null); @@ -326,6 +327,7 @@ const ContinueWatchingSection = React.forwardRef((props, re // Modified loadContinueWatching to render incrementally const loadContinueWatching = useCallback(async (isBackgroundRefresh = false) => { if (isRefreshingRef.current) { + pendingRefreshRef.current = true; return; } @@ -368,6 +370,20 @@ const ContinueWatchingSection = React.forwardRef((props, re return candidateProgress > existingProgress; }; + const compareCwItems = (a: ContinueWatchingItem, b: ContinueWatchingItem): number => { + const aProgress = a.progress ?? 0; + const bProgress = b.progress ?? 0; + const aIsUpNext = a.type === 'series' && aProgress <= 0; + const bIsUpNext = b.type === 'series' && bProgress <= 0; + + // Keep active in-progress items ahead of "Up Next" placeholders. + if (aIsUpNext !== bIsUpNext) { + return aIsUpNext ? 1 : -1; + } + + return (b.lastUpdated ?? 0) - (a.lastUpdated ?? 0); + }; + type LocalProgressEntry = { episodeId?: string; season?: number; @@ -466,7 +482,7 @@ const ContinueWatchingSection = React.forwardRef((props, re } const merged = Array.from(map.values()); - merged.sort((a, b) => (b.lastUpdated ?? 0) - (a.lastUpdated ?? 0)); + merged.sort(compareCwItems); return merged; }); @@ -1272,7 +1288,7 @@ const ContinueWatchingSection = React.forwardRef((props, re }); // Sort by lastUpdated descending and set directly - adjustedItems.sort((a, b) => (b.lastUpdated ?? 0) - (a.lastUpdated ?? 0)); + adjustedItems.sort(compareCwItems); // Debug final order (only if changed) try { @@ -1515,7 +1531,7 @@ const ContinueWatchingSection = React.forwardRef((props, re return it; }); - adjustedItems.sort((a, b) => (b.lastUpdated ?? 0) - (a.lastUpdated ?? 0)); + adjustedItems.sort(compareCwItems); setContinueWatchingItems(adjustedItems); } catch (err) { logger.error('[SimklSync] Error in Simkl merge:', err); @@ -1529,6 +1545,12 @@ const ContinueWatchingSection = React.forwardRef((props, re } finally { setLoading(false); isRefreshingRef.current = false; + if (pendingRefreshRef.current) { + pendingRefreshRef.current = false; + setTimeout(() => { + loadContinueWatching(true); + }, 0); + } } }, [getCachedMetadata]); @@ -1602,6 +1624,13 @@ const ContinueWatchingSection = React.forwardRef((props, re // Initial load useEffect(() => { loadContinueWatching(); + const trailingRefreshId = setTimeout(() => { + loadContinueWatching(true); + }, 4000); + + return () => { + clearTimeout(trailingRefreshId); + }; }, [loadContinueWatching]); // Refresh on screen focus (lightweight, no polling) @@ -1879,7 +1908,8 @@ const ContinueWatchingSection = React.forwardRef((props, re }, [computedPosterWidth]); // Memoized render function for poster-style continue watching items - const renderPosterStyleItem = useCallback(({ item }: { item: ContinueWatchingItem }) => ( + const renderPosterStyleItem = useCallback(({ item }: { item: ContinueWatchingItem }) => { + return ( ((props, re )} - ), [currentTheme.colors, handleContentPress, handleLongPress, deletingItemId, computedPosterWidth, computedPosterHeight, isTV, isLargeTablet, settings.posterBorderRadius]); + ); + }, [currentTheme.colors, handleContentPress, handleLongPress, deletingItemId, computedPosterWidth, computedPosterHeight, isTV, isLargeTablet, settings.posterBorderRadius]); // Memoized render function for wide-style continue watching items - const renderWideStyleItem = useCallback(({ item }: { item: ContinueWatchingItem }) => ( + const renderWideStyleItem = useCallback(({ item }: { item: ContinueWatchingItem }) => { + return ( ((props, re )} - ), [currentTheme.colors, handleContentPress, handleLongPress, deletingItemId, computedItemWidth, computedItemHeight, isTV, isLargeTablet, isTablet, settings.posterBorderRadius]); + ); + }, [currentTheme.colors, handleContentPress, handleLongPress, deletingItemId, computedItemWidth, computedItemHeight, isTV, isLargeTablet, isTablet, settings.posterBorderRadius, t]); // Choose the appropriate render function based on settings const renderContinueWatchingItem = useCallback(({ item }: { item: ContinueWatchingItem }) => { @@ -2190,7 +2223,14 @@ const ContinueWatchingSection = React.forwardRef((props, re (b.lastUpdated ?? 0) - (a.lastUpdated ?? 0))} + data={[...continueWatchingItems].sort((a, b) => { + const aProgress = a.progress ?? 0; + const bProgress = b.progress ?? 0; + const aIsUpNext = a.type === 'series' && aProgress <= 0; + const bIsUpNext = b.type === 'series' && bProgress <= 0; + if (aIsUpNext !== bIsUpNext) return aIsUpNext ? 1 : -1; + return (b.lastUpdated ?? 0) - (a.lastUpdated ?? 0); + })} renderItem={renderContinueWatchingItem} keyExtractor={keyExtractor} horizontal diff --git a/src/components/metadata/.HeroSection.tsx.swp b/src/components/metadata/.HeroSection.tsx.swp deleted file mode 100644 index 64b827bede67f318ea6708367bbd0f939cf15cd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 B{pbJy diff --git a/src/screens/AuthScreen.tsx b/src/screens/AuthScreen.tsx index d19b8d21..6c435883 100644 --- a/src/screens/AuthScreen.tsx +++ b/src/screens/AuthScreen.tsx @@ -29,8 +29,6 @@ const AuthScreen: React.FC = () => { const [mode, setMode] = useState<'signin' | 'signup'>('signin'); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); - const [showWarningDetails, setShowWarningDetails] = useState(false); - const authCardOpacity = useRef(new Animated.Value(1)).current; // Subtle, performant animations const introOpacity = useRef(new Animated.Value(0)).current; @@ -191,27 +189,6 @@ const AuthScreen: React.FC = () => { navigation.reset({ index: 0, routes: [{ name: 'MainTabs' as never }] } as any); }; - const toggleWarningDetails = () => { - if (showWarningDetails) { - // Fade in auth card - Animated.timing(authCardOpacity, { - toValue: 1, - duration: 300, - easing: Easing.out(Easing.cubic), - useNativeDriver: true, - }).start(); - } else { - // Fade out auth card - Animated.timing(authCardOpacity, { - toValue: 0, - duration: 300, - easing: Easing.out(Easing.cubic), - useNativeDriver: true, - }).start(); - } - setShowWarningDetails(!showWarningDetails); - }; - // showToast helper replaced with direct calls to toast.* API return ( @@ -279,72 +256,12 @@ const AuthScreen: React.FC = () => { - {/* Important Warning Message */} - - - - - - Important Notice - - - This authentication system will be completely replaced by local backup/restore functionality by October 8th. Please create backup files as your cloud data will be permanently destroyed. - - - Read more {showWarningDetails ? '▼' : '▶'} - - - - - {/* Expanded Details */} - {showWarningDetails && ( - - - - Why is this system being discontinued? - - - • Lack of real-time support for addon synchronization{'\n'} - • Database synchronization issues with addons and settings{'\n'} - • Unreliable cloud data management{'\n'} - • Performance problems with remote data access - - - - Benefits of Local Backup System: - - - • Instant addon synchronization across devices{'\n'} - • Reliable offline access to all your data{'\n'} - • Complete control over your backup files{'\n'} - • Faster performance with local data storage{'\n'} - • No dependency on external servers{'\n'} - • Easy migration between devices - - - - )} - - - {/* Main Card - Hide when warning details are expanded */} - + { @@ -28,12 +28,7 @@ const SyncSettingsScreen: React.FC = () => { const [syncCodeLoading, setSyncCodeLoading] = useState(false); const [sessionUser, setSessionUser] = useState(null); const [ownerId, setOwnerId] = useState(null); - const [linkedDevices, setLinkedDevices] = useState([]); - const [lastCode, setLastCode] = useState(''); - const [pin, setPin] = useState(''); - const [claimCode, setClaimCode] = useState(''); - const [claimPin, setClaimPin] = useState(''); - const [deviceName, setDeviceName] = useState(''); + const [remoteStats, setRemoteStats] = useState(null); const [alertVisible, setAlertVisible] = useState(false); const [alertTitle, setAlertTitle] = useState(''); @@ -57,8 +52,8 @@ const SyncSettingsScreen: React.FC = () => { setSessionUser(supabaseSyncService.getCurrentSessionUser()); const owner = await supabaseSyncService.getEffectiveOwnerId(); setOwnerId(owner); - const devices = await supabaseSyncService.getLinkedDevices(); - setLinkedDevices(devices); + const stats = await supabaseSyncService.getRemoteStats(); + setRemoteStats(stats); } catch (error: any) { openAlert('Sync Error', error?.message || 'Failed to load sync state'); } finally { @@ -78,103 +73,42 @@ const SyncSettingsScreen: React.FC = () => { return `Email session${sessionUser.email ? ` (${sessionUser.email})` : ''}`; }, [sessionUser]); - const handleGenerateCode = async () => { - if (!pin.trim()) { - openAlert('PIN Required', 'Enter a PIN before generating a sync code.'); - return; - } - setSyncCodeLoading(true); - try { - const result = await supabaseSyncService.generateSyncCode(pin.trim()); - if (result.error || !result.code) { - openAlert('Generate Failed', result.error || 'Unable to generate sync code'); - } else { - setLastCode(result.code); - openAlert('Sync Code Ready', `Code: ${result.code}`); - await loadSyncState(); - } - } finally { - setSyncCodeLoading(false); - } - }; - - const handleGetCode = async () => { - if (!pin.trim()) { - openAlert('PIN Required', 'Enter your PIN to retrieve the current sync code.'); - return; - } - setSyncCodeLoading(true); - try { - const result = await supabaseSyncService.getSyncCode(pin.trim()); - if (result.error || !result.code) { - openAlert('Fetch Failed', result.error || 'Unable to fetch sync code'); - } else { - setLastCode(result.code); - openAlert('Current Sync Code', `Code: ${result.code}`); - } - } finally { - setSyncCodeLoading(false); - } - }; - - const handleClaimCode = async () => { - if (!claimCode.trim() || !claimPin.trim()) { - openAlert('Missing Details', 'Enter both sync code and PIN to claim.'); - return; - } - setSyncCodeLoading(true); - try { - const result = await supabaseSyncService.claimSyncCode( - claimCode.trim().toUpperCase(), - claimPin.trim(), - deviceName.trim() || undefined - ); - if (!result.success) { - openAlert('Claim Failed', result.message); - } else { - openAlert('Device Linked', result.message); - setClaimCode(''); - setClaimPin(''); - await loadSyncState(); - } - } finally { - setSyncCodeLoading(false); - } - }; + const statItems = useMemo(() => { + if (!remoteStats) return []; + return [ + { label: 'Plugins', value: remoteStats.plugins }, + { label: 'Addons', value: remoteStats.addons }, + { label: 'Watch Progress', value: remoteStats.watchProgress }, + { label: 'Library Items', value: remoteStats.libraryItems }, + { label: 'Watched Items', value: remoteStats.watchedItems }, + { label: 'Linked Devices', value: remoteStats.linkedDevices }, + ]; + }, [remoteStats]); const handleManualSync = async () => { setSyncCodeLoading(true); try { - await supabaseSyncService.syncNow(); - openAlert('Sync Complete', 'Manual sync completed successfully.'); + await supabaseSyncService.pullAllToLocal(); + openAlert('Cloud Data Pulled', 'Latest cloud data was pulled to this device.'); await loadSyncState(); } catch (error: any) { - openAlert('Sync Failed', error?.message || 'Manual sync failed'); + openAlert('Pull Failed', error?.message || 'Failed to pull cloud data'); } finally { setSyncCodeLoading(false); } }; - const handleUnlinkDevice = (deviceUserId: string) => { - openAlert('Unlink Device', 'Are you sure you want to unlink this device?', [ - { label: 'Cancel', onPress: () => {} }, - { - label: 'Unlink', - onPress: async () => { - setSyncCodeLoading(true); - try { - const result = await supabaseSyncService.unlinkDevice(deviceUserId); - if (!result.success) { - openAlert('Unlink Failed', result.error || 'Unable to unlink device'); - } else { - await loadSyncState(); - } - } finally { - setSyncCodeLoading(false); - } - }, - }, - ]); + const handleUploadLocalData = async () => { + setSyncCodeLoading(true); + try { + await supabaseSyncService.pushAllLocalData(); + openAlert('Upload Complete', 'This device data has been uploaded to cloud.'); + await loadSyncState(); + } catch (error: any) { + openAlert('Upload Failed', error?.message || 'Failed to upload local data'); + } finally { + setSyncCodeLoading(false); + } }; const handleSignOut = async () => { @@ -207,8 +141,22 @@ const SyncSettingsScreen: React.FC = () => { navigation.goBack()} /> + + + + Cloud Sync + + Keep your addons, progress and library aligned across devices. + + + + + - Account + + + Account + {user?.email ? `Signed in as ${user.email}` : 'Not signed in'} @@ -241,7 +189,10 @@ const SyncSettingsScreen: React.FC = () => { - Connection Status + + + Connection + {authLabel} Effective owner: {ownerId || 'Unavailable'} @@ -254,108 +205,65 @@ const SyncSettingsScreen: React.FC = () => { - Sync Code - - {!!lastCode && ( - - Latest code: {lastCode} + + + Database Stats + + {!remoteStats ? ( + + Sign in to load remote data counts. + ) : ( + + {statItems.map((item) => ( + + {item.value} + {item.label} + + ))} + )} + + + + + + Actions + + + Pull to refresh this device from cloud, or upload this device as the latest source. + - Generate Code + {syncCodeLoading ? ( + + ) : ( + Pull From Cloud + )} - Get Existing Code + Upload This Device - - - Claim Sync Code - - - - - Claim Code - - - - - Linked Devices - {linkedDevices.length === 0 && ( - No linked devices. - )} - {linkedDevices.map((device) => ( - - - - {device.device_name || 'Unnamed device'} - - - {device.device_user_id} - - - handleUnlinkDevice(device.device_user_id)} - > - Unlink - - - ))} - - - - {syncCodeLoading ? ( - - ) : ( - Sync Now - )} - { + await this.ensureInitialized(); + if (!Array.isArray(manifestUrls) || manifestUrls.length === 0) return false; + + const normalizeManifestUrl = (raw: string): string => { + const value = (raw || '').trim(); + if (!value) return ''; + const withManifest = value.includes('manifest.json') + ? value + : `${value.replace(/\/$/, '')}/manifest.json`; + return withManifest.toLowerCase(); + }; + + const localByNormalizedUrl = new Map(); + for (const installationId of this.addonOrder) { + const addon = this.installedAddons.get(installationId); + if (!addon) continue; + const normalized = normalizeManifestUrl(addon.originalUrl || addon.url || ''); + if (!normalized) continue; + const list = localByNormalizedUrl.get(normalized) || []; + list.push(installationId); + localByNormalizedUrl.set(normalized, list); + } + + const nextOrder: string[] = []; + const seenInstallations = new Set(); + + for (const remoteUrl of manifestUrls) { + const normalizedRemote = normalizeManifestUrl(remoteUrl); + if (!normalizedRemote) continue; + const candidates = localByNormalizedUrl.get(normalizedRemote); + if (!candidates || candidates.length === 0) continue; + const installationId = candidates.shift(); + if (!installationId || seenInstallations.has(installationId)) continue; + nextOrder.push(installationId); + seenInstallations.add(installationId); + } + + for (const installationId of this.addonOrder) { + if (!this.installedAddons.has(installationId)) continue; + if (seenInstallations.has(installationId)) continue; + nextOrder.push(installationId); + seenInstallations.add(installationId); + } + + const changed = + nextOrder.length !== this.addonOrder.length || + nextOrder.some((id, index) => id !== this.addonOrder[index]); + + if (!changed) return false; + + this.addonOrder = nextOrder; + await this.saveAddonOrder(); + addonEmitter.emit(ADDON_EVENTS.ORDER_CHANGED); + return true; + } + // Check if any installed addons can provide streams (including embedded streams in metadata) async hasStreamProviders(type?: string): Promise { await this.ensureInitialized(); @@ -2089,4 +2148,4 @@ export interface AddonCatalogItem { } export const stremioService = StremioService.getInstance(); -export default stremioService; \ No newline at end of file +export default stremioService; diff --git a/src/services/supabaseSyncService.ts b/src/services/supabaseSyncService.ts index 6eae07cb..9cb59b3f 100644 --- a/src/services/supabaseSyncService.ts +++ b/src/services/supabaseSyncService.ts @@ -97,6 +97,15 @@ export type LinkedDevice = { linked_at: string; }; +export type RemoteSyncStats = { + plugins: number; + addons: number; + watchProgress: number; + libraryItems: number; + watchedItems: number; + linkedDevices: number; +}; + type PushTarget = 'plugins' | 'addons' | 'watch_progress' | 'library' | 'watched_items'; class SupabaseSyncService { @@ -372,6 +381,63 @@ class SupabaseSyncService { } } + public async getRemoteStats(): Promise { + try { + const token = await this.getValidAccessToken(); + if (!token) return null; + + const ownerId = await this.getEffectiveOwnerId(); + if (!ownerId) return null; + + const ownerFilter = encodeURIComponent(ownerId); + const [ + pluginRows, + addonRows, + watchRows, + libraryRows, + watchedRows, + deviceRows, + ] = await Promise.all([ + this.request>(`/rest/v1/plugins?select=id&user_id=eq.${ownerFilter}`, { + method: 'GET', + authToken: token, + }), + this.request>(`/rest/v1/addons?select=id&user_id=eq.${ownerFilter}`, { + method: 'GET', + authToken: token, + }), + this.request>(`/rest/v1/watch_progress?select=id&user_id=eq.${ownerFilter}`, { + method: 'GET', + authToken: token, + }), + this.request>(`/rest/v1/library_items?select=id&user_id=eq.${ownerFilter}`, { + method: 'GET', + authToken: token, + }), + this.request>(`/rest/v1/watched_items?select=id&user_id=eq.${ownerFilter}`, { + method: 'GET', + authToken: token, + }), + this.request>(`/rest/v1/linked_devices?select=device_user_id&owner_id=eq.${ownerFilter}`, { + method: 'GET', + authToken: token, + }), + ]); + + return { + plugins: pluginRows?.length || 0, + addons: addonRows?.length || 0, + watchProgress: watchRows?.length || 0, + libraryItems: libraryRows?.length || 0, + watchedItems: watchedRows?.length || 0, + linkedDevices: deviceRows?.length || 0, + }; + } catch (error) { + logger.warn('[SupabaseSyncService] Failed to fetch remote stats:', error); + return null; + } + } + public async unlinkDevice(deviceUserId: string): Promise<{ success: boolean; error?: string }> { try { await this.callRpc('unlink_device', { p_device_user_id: deviceUserId }); @@ -423,21 +489,8 @@ class SupabaseSyncService { }); }); logger.log(`[SupabaseSyncService] runStartupSync: step=pull_addons:done ok=${addonPullOk}`); - - if (pluginPullOk) { - logger.log('[SupabaseSyncService] runStartupSync: step=push_plugins:start'); - await this.safeRun('push_plugins', async () => { - await this.pushPluginsFromLocal(); - }); - logger.log('[SupabaseSyncService] runStartupSync: step=push_plugins:done'); - } - - if (addonPullOk) { - logger.log('[SupabaseSyncService] runStartupSync: step=push_addons:start'); - await this.safeRun('push_addons', async () => { - await this.pushAddonsFromLocal(); - }); - logger.log('[SupabaseSyncService] runStartupSync: step=push_addons:done'); + if (!pluginPullOk || !addonPullOk) { + logger.warn('[SupabaseSyncService] runStartupSync: one or more pull steps failed; skipped startup push-by-design'); } const traktConnected = await this.isTraktConnected(); @@ -464,22 +517,8 @@ class SupabaseSyncService { }); }); - if (watchPullOk) { - await this.safeRun('push_watch_progress', async () => { - await this.pushWatchProgressFromLocal(); - }); - } - - if (libraryPullOk) { - await this.safeRun('push_library', async () => { - await this.pushLibraryFromLocal(); - }); - } - - if (watchedPullOk) { - await this.safeRun('push_watched_items', async () => { - await this.pushWatchedItemsFromLocal(); - }); + if (!watchPullOk || !libraryPullOk || !watchedPullOk) { + logger.warn('[SupabaseSyncService] runStartupSync: one or more content pulls failed; skipped startup push-by-design'); } } @@ -896,6 +935,11 @@ class SupabaseSyncService { const localRepos = await localScraperService.getRepositories(); const byUrl = new Map(localRepos.map((repo) => [this.normalizeUrl(repo.url), repo])); + const remoteSet = new Set( + (rows || []) + .map((row) => (row?.url ? this.normalizeUrl(row.url) : null)) + .filter((url): url is string => Boolean(url)) + ); for (const row of rows || []) { if (!row.url) continue; @@ -923,6 +967,25 @@ class SupabaseSyncService { }); } } + + // Reconcile removals only when remote has at least one entry to avoid wiping local + // data if backend temporarily returns an empty set. + if (remoteSet.size > 0) { + let removedCount = 0; + for (const repo of localRepos) { + const normalized = this.normalizeUrl(repo.url); + if (remoteSet.has(normalized)) continue; + try { + await localScraperService.removeRepository(repo.id); + removedCount += 1; + } catch (error) { + logger.warn('[SupabaseSyncService] Failed to remove local plugin repository missing in remote set:', repo.name, error); + } + } + logger.log(`[SupabaseSyncService] pullPluginsToLocal: removedLocalExtras=${removedCount}`); + } else { + logger.log('[SupabaseSyncService] pullPluginsToLocal: remote set empty, skipped local prune'); + } } private async pushPluginsFromLocal(): Promise { @@ -951,6 +1014,15 @@ class SupabaseSyncService { } ); logger.log(`[SupabaseSyncService] pullAddonsToLocal: remoteCount=${rows?.length || 0}`); + const orderedRemoteUrls: string[] = []; + const seenRemoteUrls = new Set(); + for (const row of rows || []) { + if (!row?.url) continue; + const normalized = this.normalizeUrl(row.url); + if (seenRemoteUrls.has(normalized)) continue; + seenRemoteUrls.add(normalized); + orderedRemoteUrls.push(row.url); + } const installed = await stremioService.getInstalledAddonsAsync(); logger.log(`[SupabaseSyncService] pullAddonsToLocal: localInstalledBefore=${installed.length}`); @@ -999,6 +1071,15 @@ class SupabaseSyncService { } else { logger.log('[SupabaseSyncService] pullAddonsToLocal: remote set empty, skipped local prune'); } + + if (orderedRemoteUrls.length > 0) { + try { + const changed = await stremioService.applyAddonOrderFromManifestUrls(orderedRemoteUrls); + logger.log(`[SupabaseSyncService] pullAddonsToLocal: orderReconciled changed=${changed}`); + } catch (error) { + logger.warn('[SupabaseSyncService] pullAddonsToLocal: failed to reconcile addon order:', error); + } + } } private async pushAddonsFromLocal(): Promise { @@ -1024,12 +1105,14 @@ class SupabaseSyncService { private async pullWatchProgressToLocal(): Promise { const rows = await this.callRpc('sync_pull_watch_progress', {}); + const remoteSet = new Set(); for (const row of rows || []) { if (!row.content_id) continue; const type = row.content_type === 'movie' ? 'movie' : 'series'; const season = row.season == null ? null : Number(row.season); const episode = row.episode == null ? null : Number(row.episode); + remoteSet.add(`${type}:${row.content_id}:${season ?? ''}:${episode ?? ''}`); const episodeId = type === 'series' && season != null && episode != null ? `${row.content_id}:${season}:${episode}` @@ -1054,9 +1137,34 @@ class SupabaseSyncService { { preserveTimestamp: true, forceWrite: true, + forceNotify: true, } ); } + + // Reconcile removals only when remote has at least one entry to avoid wiping local + // data if backend temporarily returns an empty set. + if (remoteSet.size > 0) { + const allLocal = await storageService.getAllWatchProgress(); + let removedCount = 0; + + for (const [key] of Object.entries(allLocal)) { + const parsed = this.parseWatchProgressKey(key); + if (!parsed) continue; + const localSig = `${parsed.contentType}:${parsed.contentId}:${parsed.season ?? ''}:${parsed.episode ?? ''}`; + if (remoteSet.has(localSig)) continue; + + const episodeId = parsed.contentType === 'series' && parsed.season != null && parsed.episode != null + ? `${parsed.contentId}:${parsed.season}:${parsed.episode}` + : undefined; + + await storageService.removeWatchProgress(parsed.contentId, parsed.contentType, episodeId); + removedCount += 1; + } + logger.log(`[SupabaseSyncService] pullWatchProgressToLocal: removedLocalExtras=${removedCount}`); + } else { + logger.log('[SupabaseSyncService] pullWatchProgressToLocal: remote set empty, skipped local prune'); + } } private async pushWatchProgressFromLocal(): Promise { @@ -1085,11 +1193,13 @@ class SupabaseSyncService { const rows = await this.callRpc('sync_pull_library', {}); const localItems = await catalogService.getLibraryItems(); const existing = new Set(localItems.map((item) => `${item.type}:${item.id}`)); + const remoteSet = new Set(); for (const row of rows || []) { if (!row.content_id || !row.content_type) continue; const type = row.content_type === 'movie' ? 'movie' : 'series'; const key = `${type}:${row.content_id}`; + remoteSet.add(key); if (existing.has(key)) continue; try { @@ -1099,6 +1209,25 @@ class SupabaseSyncService { logger.warn('[SupabaseSyncService] Failed to merge library item from sync:', key, error); } } + + // Reconcile removals only when remote has at least one entry to avoid wiping local + // data if backend temporarily returns an empty set. + if (remoteSet.size > 0) { + let removedCount = 0; + for (const item of localItems) { + const key = `${item.type}:${item.id}`; + if (remoteSet.has(key)) continue; + try { + await catalogService.removeFromLibrary(item.type, item.id); + removedCount += 1; + } catch (error) { + logger.warn('[SupabaseSyncService] Failed to remove local library item missing in remote set:', key, error); + } + } + logger.log(`[SupabaseSyncService] pullLibraryToLocal: removedLocalExtras=${removedCount}`); + } else { + logger.log('[SupabaseSyncService] pullLibraryToLocal: remote set empty, skipped local prune'); + } } private async pushLibraryFromLocal(): Promise { @@ -1124,7 +1253,7 @@ class SupabaseSyncService { private async pullWatchedItemsToLocal(): Promise { const rows = await this.callRpc('sync_pull_watched_items', {}); const mapped = (rows || []).map((row) => this.toWatchedItem(row)); - await watchedService.mergeRemoteWatchedItems(mapped); + await watchedService.reconcileRemoteWatchedItems(mapped); } private async pushWatchedItemsFromLocal(): Promise { diff --git a/src/services/watchedService.ts b/src/services/watchedService.ts index 71344e08..5b609ff2 100644 --- a/src/services/watchedService.ts +++ b/src/services/watchedService.ts @@ -166,6 +166,31 @@ class WatchedService { } } + public async reconcileRemoteWatchedItems(items: LocalWatchedItem[]): Promise { + const normalizedRemote = items + .map((item) => this.normalizeWatchedItem(item)) + .filter((item) => Boolean(item.content_id)); + + // Guard: do not wipe local watched data if backend temporarily returns empty. + if (normalizedRemote.length === 0) { + return; + } + + await this.saveWatchedItems(normalizedRemote); + this.notifyWatchedSubscribers(); + + for (const item of normalizedRemote) { + if (item.content_type === 'movie') { + await this.setLocalWatchedStatus(item.content_id, 'movie', true, undefined, new Date(item.watched_at)); + continue; + } + + if (item.season == null || item.episode == null) continue; + const episodeId = `${item.content_id}:${item.season}:${item.episode}`; + await this.setLocalWatchedStatus(item.content_id, 'series', true, episodeId, new Date(item.watched_at)); + } + } + /** * Mark a movie as watched * @param imdbId - The IMDb ID of the movie From 36d93c270a8fe22422ed6cbc55cfd0b5c8595564 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Tue, 17 Feb 2026 02:23:53 +0530 Subject: [PATCH 280/285] authentication error handling --- src/screens/AuthScreen.tsx | 61 +++++++++++++++++++++++++++-- src/services/AccountService.ts | 14 +++++-- src/services/supabaseSyncService.ts | 37 ++++++++++++++--- 3 files changed, 100 insertions(+), 12 deletions(-) diff --git a/src/screens/AuthScreen.tsx b/src/screens/AuthScreen.tsx index 6c435883..fc785808 100644 --- a/src/screens/AuthScreen.tsx +++ b/src/screens/AuthScreen.tsx @@ -11,6 +11,33 @@ import { useToast } from '../contexts/ToastContext'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; const { width, height } = Dimensions.get('window'); +const EMAIL_CONFIRMATION_REQUIRED_PREFIX = '__EMAIL_CONFIRMATION__'; + +const normalizeAuthErrorMessage = (input: string): string => { + const raw = (input || '').trim(); + if (!raw) return 'Authentication failed'; + + let parsed: any = null; + if (raw.startsWith('{') && raw.endsWith('}')) { + try { + parsed = JSON.parse(raw); + } catch { + parsed = null; + } + } + + const code = (parsed?.error_code || parsed?.code || '').toString().toLowerCase(); + const message = (parsed?.msg || parsed?.message || raw).toString(); + + if (code === 'invalid_credentials' || /invalid login credentials/i.test(message)) { + return 'Invalid email or password'; + } + if (code === 'email_not_confirmed' || /email not confirmed/i.test(message)) { + return 'Email not confirmed. Check your inbox or Spam/Junk folder, verify your account, then sign in.'; + } + + return message; +}; const AuthScreen: React.FC = () => { const { currentTheme } = useTheme(); @@ -168,8 +195,19 @@ const AuthScreen: React.FC = () => { setError(null); const err = mode === 'signin' ? await signIn(email.trim(), password) : await signUp(email.trim(), password); if (err) { - setError(err); - showError('Authentication Failed', err); + if (mode === 'signup' && err.startsWith(EMAIL_CONFIRMATION_REQUIRED_PREFIX)) { + setError(null); + setMode('signin'); + setPassword(''); + setConfirmPassword(''); + Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success).catch(() => {}); + setLoading(false); + return; + } + + const cleanError = normalizeAuthErrorMessage(err); + setError(cleanError); + showError('Authentication Failed', cleanError); Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error).catch(() => {}); } else { const msg = mode === 'signin' ? 'Logged in successfully' : 'Sign up successful'; @@ -261,7 +299,24 @@ const AuthScreen: React.FC = () => { behavior={Platform.OS === 'ios' ? 'padding' : 'height'} keyboardVerticalOffset={Platform.OS === 'ios' ? headerHeight : 0} > - + 0 + ? { + paddingTop: Platform.OS === 'ios' ? 6 : 10, + transform: [ + { + translateY: + Platform.OS === 'ios' + ? -Math.min(120, keyboardHeight * 0.35) + : -Math.min(84, keyboardHeight * 0.22), + }, + ], + } + : null, + ]} + > { const result = await supabaseSyncService.signUpWithEmail(email, password); - if (result.error || !result.user) { - return { error: result.error || 'Sign up failed' }; + if (result.error) { + return { error: result.error }; } - const mapped = this.mapSupabaseUser(result.user); + const sessionUser = supabaseSyncService.getCurrentSessionUser(); + if (!sessionUser) { + return { + error: `${EMAIL_CONFIRMATION_REQUIRED_PREFIX}Account created. Check your email to verify, then sign in.`, + }; + } + + const mapped = this.mapSupabaseUser(sessionUser); await this.persistUser(mapped); try { diff --git a/src/services/supabaseSyncService.ts b/src/services/supabaseSyncService.ts index 9cb59b3f..2134edbc 100644 --- a/src/services/supabaseSyncService.ts +++ b/src/services/supabaseSyncService.ts @@ -193,10 +193,8 @@ class SupabaseSyncService { await this.setSession(response.session); } - if (!response.user) { - return { error: 'Signup failed: user not returned by Supabase' }; - } - + // In email-confirmation mode, Supabase may not establish a session immediately. + // Treat this as a successful signup attempt and let caller handle next UX step. return { user: response.user }; } catch (error: any) { return { error: this.extractErrorMessage(error, 'Signup failed') }; @@ -768,7 +766,11 @@ class SupabaseSyncService { private buildRequestError(status: number, parsed: unknown, raw: string): Error { if (parsed && typeof parsed === 'object') { - const message = (parsed as any).message || (parsed as any).error_description || (parsed as any).error; + const message = + (parsed as any).message || + (parsed as any).msg || + (parsed as any).error_description || + (parsed as any).error; if (typeof message === 'string' && message.trim().length > 0) { return new Error(message); } @@ -781,7 +783,30 @@ class SupabaseSyncService { private extractErrorMessage(error: unknown, fallback: string): string { if (error instanceof Error && error.message) { - return error.message; + const raw = error.message.trim(); + + let parsed: any = null; + if (raw.startsWith('{') && raw.endsWith('}')) { + try { + parsed = JSON.parse(raw); + } catch { + parsed = null; + } + } + + const errorCode = (parsed?.error_code || parsed?.code || '').toString().toLowerCase(); + const message = (parsed?.msg || parsed?.message || raw).toString().trim(); + + if (errorCode === 'invalid_credentials') { + return 'Invalid email or password'; + } + if (errorCode === 'email_not_confirmed') { + return 'Email not confirmed. Check your inbox or Spam/Junk folder, verify your account, then sign in.'; + } + + if (message.length > 0) { + return message; + } } return fallback; } From 575382a62967ad7deb649564f51d755868c14f76 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Tue, 17 Feb 2026 03:04:05 +0530 Subject: [PATCH 281/285] icon update --- .gitignore | 3 ++- .../res/drawable-hdpi/splashscreen_logo.png | Bin 30092 -> 19620 bytes .../res/drawable-mdpi/splashscreen_logo.png | Bin 15595 -> 10954 bytes .../res/drawable-xhdpi/splashscreen_logo.png | Bin 49206 -> 29853 bytes .../res/drawable-xxhdpi/splashscreen_logo.png | Bin 102793 -> 55836 bytes .../drawable-xxxhdpi/splashscreen_logo.png | Bin 177300 -> 86123 bytes .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 1899 -> 2490 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 6702 -> 7907 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 2655 -> 3304 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 1115 -> 1436 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 3683 -> 4358 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 1616 -> 1967 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 2858 -> 3739 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 10454 -> 11898 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 3927 -> 4866 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 5122 -> 6580 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 20166 -> 22105 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 6709 -> 8214 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 7983 -> 10075 bytes .../ic_launcher_foreground.webp | Bin 31814 -> 35087 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 10180 -> 12400 bytes app.json | 2 +- assets/android/ic_launcher-web.png | Bin 77702 -> 47399 bytes assets/android/mipmap-hdpi/ic_launcher.png | Bin 3186 -> 3083 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 8371 -> 8422 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 4864 -> 3083 bytes assets/android/mipmap-ldpi/ic_launcher.png | Bin 1284 -> 1497 bytes .../mipmap-ldpi/ic_launcher_foreground.png | Bin 0 -> 3515 bytes .../android/mipmap-ldpi/ic_launcher_round.png | Bin 1905 -> 1497 bytes assets/android/mipmap-mdpi/ic_launcher.png | Bin 1906 -> 1951 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 4579 -> 5004 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 2715 -> 1951 bytes assets/android/mipmap-xhdpi/ic_launcher.png | Bin 5001 -> 4375 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 13542 -> 12513 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 7507 -> 4375 bytes assets/android/mipmap-xxhdpi/ic_launcher.png | Bin 9051 -> 7174 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 26212 -> 23351 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 14106 -> 7174 bytes assets/android/mipmap-xxxhdpi/ic_launcher.png | Bin 14708 -> 10817 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 43586 -> 36522 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 22325 -> 10817 bytes assets/android/playstore-icon.png | Bin 108009 -> 47399 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 760 -> 968 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1744 -> 1622 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 2893 -> 2481 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 1129 -> 1265 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 2807 -> 2416 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 5168 -> 3876 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1744 -> 1622 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 4611 -> 3438 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 8442 -> 5682 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 8442 -> 5682 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 16488 -> 9791 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 4280 -> 3235 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 12578 -> 7772 bytes .../Icon-App-83.5x83.5@2x.png | Bin 14665 -> 8740 bytes .../AppIcon.appiconset/ItunesArtwork@2x.png | Bin 408040 -> 135132 bytes assets/ios/iTunesArtwork@1x.png | Bin 107897 -> 47399 bytes assets/ios/iTunesArtwork@2x.png | Bin 408040 -> 135132 bytes assets/ios/iTunesArtwork@3x.png | Bin 859697 -> 73029 bytes ios/Nuvio.xcodeproj/project.pbxproj | 2 +- .../App-Icon-1024x1024@1x.png | Bin 170271 -> 130172 bytes .../SplashScreenLegacy.imageset/image.png | Bin 1217213 -> 125292 bytes .../SplashScreenLegacy.imageset/image@2x.png | Bin 1217213 -> 125292 bytes .../SplashScreenLegacy.imageset/image@3x.png | Bin 1217213 -> 125292 bytes src/assets/splash-icon-new.png | Bin 1457655 -> 79087 bytes 66 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 assets/android/mipmap-ldpi/ic_launcher_foreground.png diff --git a/.gitignore b/.gitignore index efd2b6c5..6486d03e 100644 --- a/.gitignore +++ b/.gitignore @@ -105,4 +105,5 @@ LibTorrent/ iTorrent/ simkl-docss downloader.md -server \ No newline at end of file +server +Deliverables 2 \ No newline at end of file diff --git a/android/app/src/main/res/drawable-hdpi/splashscreen_logo.png b/android/app/src/main/res/drawable-hdpi/splashscreen_logo.png index 15b512ebb80f745057f70d110c1220b02874330d..84066f8c54a5db75a5d69d7ef8c1ea52be735dff 100644 GIT binary patch literal 19620 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¥J6+3X+HVXOC1qKZar7JOXveY! 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 R!T+eTX_E|y`I?s~{{eE>tuO!p literal 15595 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 diff --git a/android/app/src/main/res/drawable-xhdpi/splashscreen_logo.png b/android/app/src/main/res/drawable-xhdpi/splashscreen_logo.png index 528962ab086e983dd327d80fd9bcafd09e0906fd..5e73c55fb19e7c755eeabf59ab1b30afff194357 100644 GIT binary patch literal 29853 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 literal 49206 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

7&Xk@ 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 literal 102793 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 z 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

tyo=+20gzc-s0 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�&6P~@tf;E|%vQtXZ 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 bKluQZj6N?uM()|+pG*L4eZ{KY(j)ml{fof% literal 1899 zcma)-dpHvcAIImuxo&93=AIEzh+L1x&RjE$E=c9bZH{}ImFpOph_Odjv$IV|<@7od zBW014^$yAXGVyXs%VpHu>hQjQy#Jm*ewROfzwh&Xp5OEQK4d>1cO`kaJOBVt^7KIa z?^Tce0Lt#=)50cq06^}TC)(u{K|;t)E7FdDbeXKo)vVi6eKwa)59HL;(bag;{LL8P#g2I%7`daDfzXO{sctVZWw&FnoSIF11C7 ze-y>1*;~z+y8WP#K&3o9X5lKj!}jp9SG~Ib;XJCBevQA!KW_Qf_2!Q67SbcDQjP|D zFRhdoBRgD;E==>i7fooxjzP&2{D=6ijlrJYYz;~PLeDq8F}G#XtlV4}QJc&jcPB$9 zIiS>y<7JYtLK--GlC(2ab8NY7>0=d=-@~}-W`?2R==Z*2%eD@gGc&ifrAeWBJ9n}{ z(h|8^dB=Z?SlyWEEGe>VOfV;Pde5SpOUhC%CTVYxMV3;KX`=!n+&JepQ#J?8R*qRR zkDN99y?WzC<{-DF67*ly@t>X*ZjZ)TxF`;F(gc8nLMe5>PFOU6)}C#D@mb-RDWBaa zf~~y<`5+G6&!8fv6HVHZk4qXejR+(M)De|?L@ByUc)lE+xPVF@PxfisksXpO&M*%P zdP5fMyBV?#$v?-Dw{*d*I7b1seh8N}TDRkk@L%peNrX6EUR1pUhM^_cp=g&C?m*K5 z$|v}n>uT~IY|}^FHo&+N(0q3bmZGtiG-s|?FfD_ z^({F@*YIOt3*^V_X*;O|R1sx4gVFd_MTA@{+VMbE`y#nqC%M09Eu@-5=In}J8sfwV za5K|JrrC%mJa5o{}cy&o=3@mBdPY!pZgh)Nm+XVb{GS0J?vgyCQZmI*Q>M ziz@0jDb*e2?|H%^tY2wlMaVrm(L7aq)6qU+_9Jfq?f@DH*JFU$71)!ccWuLK3j(N7 znadj{)gy-)mq>#w`Y8xcSdp2dc*U^P2%$E)*lVL7=cJGlewuvM-p2ho!&*g#Do*yOC0#B7 zg<#?YxelCEh_+IqN#NmV$rHrVsBrxQUIG)!V;8kwtonau0&lN9v%iwQ_4(xI`=U(a zF$mXC64ctANd8w^`kjbj=>BY9XR~t^%O1!iuV$vN^GZZj=DXB)Q=Bp#8JtXr!eg27 zV-I13b+Hr5^Jl|BULu(l(|@K{#*^T?z+>=7kXhyDuYDasXr5Vv6a?qnaBu4!0b=I3 z6wFhLRrQEfYHyt&Sm2r%*4kZKf$gqu;b(sG+WdYtzOI5tu`ugxWtL08nE|1gXm4xr z?&`(070N|TJ!*Hr!IAt{99q^=V9mtLO+5_3E6;T7EdCkBg~xgW%blg7rBfusUwFK- z!Yd_2yc1w-MhO@I3(Zh!uvI|p(n-)EURy6G6Spetn=s+-;SFmPZ`U_84TYzl|$W zLB4vi1shg_-cVKuvY>cUx&Zo$dcw$B z#pL{2zxqLZd2%Al^m^R|RRaq(g4Ymog;cB*S8h197|=%wmTl%0T;89*-L*Qb{{@+R zU8s|R9%sGu{;>Cp2Bqz-#dfCc{Ayb>_B7PNpEYdrLH*(T@V?#-{0KLpPqTPR)$CF& zWMkTxHd6UsWd7ueD1pks%Lfe$n%9GLw6_kpm)ioNmGyhbsU4U8Qg+#_8vtw%A|fGKX3VIWp)9FHl2Q?+vM1YwhN7{h!q~>rleLr( zD!UfjlaNf25D!_$KJPuM^E>Z(&-?%H+|A7QbdGEJT%YT6U-$iuvO0WFL{LVMhlfXm zOd{HV-z@G2$q&BY%t*=d@F@I4CgN@VdH;JYQ1-(wh{a~F%&wTQ2YS7qy}J{>AaVdQ zhutLaKArJ3^mYCHe=q+xr!;x3Gqs(m;%0fctA0#QuPG||noN^#LSv@Rm3O@Rm2%@= zBW`N-_zToayW>}C?&xHnnCzcl;?!0jkIq^Aw~?=TF@VV#AFg?-x$8i-$vJ18hrIt= zKk{upN11zfn44QjZGF9a?#T1*Pxmi-*xWgfZ}K`Sx%H&a-jUknd5crm_~iU~>xzte zWGwW){VT8>ICXk>w)S;h`ii<*-r-E`<*sksbQuI&jf(Z0ldI{R;{_*ueqYLoh>G>TC?x&UT$=~ZT|Mw1FyigeYcX=*8IFa z?Mt=}rG-X6IfSEMqRvQIi=wOUpAO6&+k7fOS=Mi$arsfgopqOI4LQSg?@GIU zUal5%94D*4$}o0hK%a?3oEZ@h#{-u~;F%H{Rq<<{H}PL#;G>z_GZGeFi@66J7=7KSlKs4c&?ipo(#m}t)EB1sDjZRM4Y%uY5fe607|6-(*i`Y5oIFRT~7^ zS2mLBb>jL*_O&zOC<&{?OIg&6P|RmI0?sQ6kAvlQg~iNcALo@z^Se5d5>&8|r46Gj zP_K&fuKe2iI16Xw8~$U(67jXuOY(|J zitR`~)fhJAFI#mld0)`mLvtx9cRpA+oU}K7CuiV4|4hzgDn&Zd)Rba_medYE7NZ-k zONu-|(WcR0f`U{*>XSp?u{)6nk3+XVe#E*tYr8?8zmuOFvbt~46SO9B^4AC}OfAo@ zdSs(zl77=SbM5%4x<_8c=cFM?o6IDp>Ei=>;oW+bH64d!g&gE>r^w%yl{X(3_bv2O z_t4$Zb%5Xc5f3aHxQm`)&c`s^oYZ&eVDdxr4b4y|`x<84Yhz~D-=&{h{zWJ-THS4{ zwOsetQL^Hh;Z*mrO-Kwzj7U^cMl*?!GTxrN(<0aT>eJFdpEryofvV&CrSzzhkwy7C zAip~7HmQ?NKn|}%!rndR& z&k4^n(h!Y=#GrM68@xK1jO4Wu15Y-c^UhbZOZ{?&CRC()s{44xRLu5T;jHti&)zdy zlq@QFW|R=$$%4q%&X1bksZ;Ah>JtMEV-B8~tbUidJAcT>i6#`J2FVkgNUp#MFVO}~ zqT8a#czPn79FfRWQpS=aB-A}3pC0y2U8@g|IMiz&?hI2s;9KCiU{Tq~6c?4`P0GXW zPqpY_KS}obb%^!h%1@=o>;dz6qwT--h_F(uU*9_OOt=~zhaym@BxEN=iK#@|2`7_z z%mHLfh!hHed_nu8#iE8OVGjEgxAneD1@F4kOhe%gGPwilLc+i z2)vCLQ}%S*#i6g+;+3b4v84!n;W33_4H4~PwhW*nTxEvTYrdLl_>VZ9W;bkodj0by zk2FJp)>-R6^qra^6fk_`>#Uec@VH1CQz;yTA1??jbBO@FQ2}tgGGgG#rk(P^pyTRf zM{JByLt~L?^!u8gXa8nGSrCRRgf1x=85051ds8`So_PXle*LdYDq3a_{qb{U34N@s zGB)!TO5H6S5~IQe;^QH_eN;F%B?9m!`7kDu2_Xsr9YAtaP$#~-z9{`5Uuy|SD4{Vy z0_BoIgJ?)qTE2^0lvmCCM>+qx@dw5W(s@&rLWv`{|FYl-p>9e3~Jd7yrB^0WKQeQZaJv*Co&4RL|gT?tWhy8snP$jsKDZRIP7dJfD|H zWt!3fj$)>C6u=LZOw6UUTYn*f6XRe!yGO2q!`2U&K*yT+YToT%OOdM>7oX_Wb7svX z*$Kg2m3gU5sJSNLTY-2?lji6Hd-Yx3P)6v4m8hsy+@D2M_ z(b;~lw@r3VE7~Lf)kfz$PnSTJ#Y5O0KW%l7ma`*lbq!xbGb=bz0&eSaD+4?-m=mK5 z6V9A*r=}&(fIaSPR$JfN7Mx_8@*iz~b?%lO%gd+^!f%wG9$8P1w?%fM;*Mpan>+&* z4=PsN-s3Yk8q^=ybg(pSu-~ib{NQDESI|aR7Q|ydI`YYGVw(MJ997Vy&AP*Gf)YX_ zX>SppfogAAb7F^CzWY-S-km=AdsMi!`J^u`#!=78s2)XRikc!p*TkTd!+ByL?Na~M z=UcA*thcU_A(#v|6P&(>Z3=$i7?`Z@xg?`aqQJ`V3nnrOl}}X6sStOVfM8S)@x(k@ zbSRBV6BGz6u8hAuu(Y`{XhnZ1M^nqgLwoA4nwl3opJmVQ4kgj0sXD+hC~!E06%fnG z_8(-(p4b;~rTF&%A~IDZpb~a4;8eh_cSm!?b>r2Iv<6dO=es12^$IX3G>-n zitrsZI)<0Dl0blsH4KKJnhL0@YFOyAlZwA)O)Xu1&d~qx$l>xihR-`Kb9E$2SsBm@ zjuI8+K8lDgU4LY_@GE(#C$6?(`1s4nWT#oDr^QwGg-bYx_stBR8OFSV;!joXdfA%kk#prZ|HV*gz$~UHmC3}S;R2nY#dk;@oLVtE zc35Gkx6`uRf3!pM+Gjq+a{*7@HK-+*lDYme2r&@UqsPF144 zl^r#|K!r?MW)hPr5+Bclx4HJMNKOBRzi93JqRM?e=hzeR@e+1)>ao*!3f1lmJ~WXD z;V9~HCIbW2fiHgkqt^5Eg5HG#htrK4n`#!fuReC*Y>G8ns5;GSW0)h-Ij=pIGtOOv zPv)|~%{cf!N*{!60f_=j%J-0V4epz3(mpBN*gu=QFsO*>lFEy2dxA6goe9; zjm?de2o)-kE=(`3>0SHzU29$S)2Toa#r36-7S_5Vhu@R)LCo(m$Z?4(nc&yoJ-Tuz~bTKifhP} zI)mA)KLNb}0Tm^`;nC7jid40hL6Z`5i2|L%c&hiCvusxLqa#g=b;5P8EY}hghmM9U zIJg#G{rW0+VA|1h*oU=n@p8qyu0rsl^#|h7s}rUBE7soXnLdB4EVZ7&X7&{;P8S@R;-NQzzOYr)0-PlC&dQ*ql=lt zZJ;N0gKi`0sZA=1OS>Ch86v&Z5rq%}3uYV&*g+AzHh?Ykc%FMV3Vo*r8bX%%SZ#SG zOPpUtwF|707cX8tFj%h-TK#OvX_MO*AoK-FFa}P*Dg(t(Ba`{vl%<&UVqp@ri4y;Z zQppq5iCZTs!vjQrB;rtU5SR;<5F#YJpgma)Y^pq1w}wxbIP0^E2TfMlOV8SF+%e%S zOhEz{&YTU3a9U=YP;Pni{WgD@n@1lcLdL6=5+MX;zdA!|Q>8`kN1u~E-Fx5N-rZyq zFD3-SPlT5cm1x|-22#fM*qiX~{pI1`AyhnAJ+(v*{;s&LS=OyDepg{h`)=U?8BD}n zZf7Jhm2ScT2ru7;2)unUER}Kg&7zL<&fgH(z3s|?COeMrUJ1CyZ1j{bWHrIu+xw5&` z>XN$w9a>FP2{T}r=%$R9uo25lB9dQsFAvQ*s98K*brWg_**cOb_GF68X|f>kcj>NX zL)y~PuGrzkT1eOQ4p~piaNEAe(9|H;V+LSyCzBBd%t4^LScz8JPCEF=DG;p#y zeGlej<%(Gu7>u|UVRj%QiO(*#8oCB?+H~PE3%4=uI`Kf^!YS`}r4RxrBUe$fm`W6S zuvbLk{E!ZTCt#u9cO`ALowIy)^|Ne9l(V$H_}0nV$hSK*v*tTD41;_z*ymB94P9j< z{)a}pj2y4qb62k6%VlUb>uf9n3qs|=TD#!{F-(`yPrY{gO?iZ}>~PaQ0jty5tBX}3 z(IL|ec4=v8%L9A+{w8+y;#5a&C%3I2EIEu6eF<}Vx=g>lGeOwklQ`N_hdyN+}L*C!5T~Vo+s@Y_<@5rWm znnNamEv(_64dbq$Rk(vI7Z~EJLAR^WHWI&mF1KDAe$KU4=S>c;CvAGLRo<(W$^$^J zk5}cT!pSW^mbLz2Wo*MBnXh0=*~&BRb$74TiLmOY9`6iZ^QvuNt-MzJG3&G_@0*_* z6%pb1a{VWVs^_?v+~aVeL$HrK=KX(QyIyHA*7vGOVNt*9Ax3+P!4E(^KoztInH(-5 zyk_7qZi%`HCTyho<`^g>QE9c^WYJoqc2%sXaz=3S#jHl~_k$tSkXa!;o1>|ZnA6d> zYj2jHn*XF6SN`sJb>8wr(&bp%D>5#llM099z)}Z{rJ8o>nOc}6#?Q8vnDwq z8-%qf5+lY;QuQb@ip22JYKn>ydqs8J>s&gOv3RzyAocvY;maRRmU^}Y*Np$H{h-FKiHNX= zlq0~A14sqM1`_k7amna9<_22NdxPa}V`JJm&lnm;oGHHa!Nx$7hL>aakHE0c$#e)C zMUO|iyWbTDr!WaPvc$6zK2zXe-~ZNKlcTWS|61{Mo3|!bAghxC)EdF%V-H%Yc@Nh< zSitW8K=*(-^7QVFSjA;OlNQ6D_Z>Rv@?i215M#1VI*;nn&{P~xT*FU0IRlS|r#a7J z-8FCQ@~mBSOr1Jc=0+1!iWUS14tjhdEnNOgm?7czJ;vV!>H>J-R+xA0_TB!KtHG;& z>-)yn_-FHfcNYc2gj)L=t>G}R+b8l=tssaQi`T&gpQ3)f->GTV)%S1I+z8o8I?7;Q z-gysBB2$QOHkaZUnP%pePxErX;#Qwq|H^K!GvlfzK3#!J%|_`N|J*+=@1;)S#dCM6 zdD%IKyeM=i4i$FH+0E|sEs|J`ZbR>i#@CqRYv*cwru@2=>1ZA1HY!m-3~mO*SX5wt zJuDznY8Q|NAPj$7E9XM%PQ}Wh?Jq~Vw_LmE9ue?KD-TYDF_of~t-JLOLqOI`6MSmv`}794q6va2uw45TPgff5}HRDjKEp|*fsPVe%zMTYH} z9yE7)pQ5?0cG6ChIWMLZ8L6Wju8OA;MSGpesNTQz=SsW97!agA@y_^Irt3?JfIdOhcg& z(JlM{Efa0cEg0|zju4?p#J6qsTnYTWEKUp$ZCMwas{W5NSo*9fKx6#=S$s4G7s}IB zC<&+1z^<|T5h@&p;N>m%o$i}m-=VpW{k}hF&`ZuJNKxpEg2ss&hI`v}@fF>+oJ$e8 zI;Puo2!t#!nL+q0BsdpNpfaHiuAjFww|tvO=CAP{oLzla$l0W4a&=GJCNBNZc$v?U z*gEet9w|7DPE~dESv5A7P{n0zS*eJfWe>b^2{0wtwrse@^uCK+7$Me>9(bR3AOKL$xSbJq6EYs63f$6geU-=CQF2o_xd)6SV7Q! zrSS74Nf9^QhneU?(<9*9T1JdOhpgd5qOC8@3boNb=9bBfXW#S{UyKCZ_&yNQ(Ate< zcmmb-r_dpXuD#3>qB4mmPNGZ@2AfgDx>62~3d?71Ghm|S(Ud(priqao(1+4U620i7 zzfC^PJJ)(afg?RtJCr{Csx^pasOa+!8&*QFK{=0pLW(hYu~y_T%63}w5jgQ-=63J! z*mjWjHUrZ=zpzzp6NY;MY}U8bXnAT9&bJRQPzVpJv?jN`upqY*)11c2VT z7+J-o6T$0~A+K9vhVC#rfDBM2B0L@|T!biK2VmlGIG0<9_gpI%Mv?E^g=5+i&%2V2 z$cQO#R2L79`4e;w>AG>q;LuA>EGKQ#u}Qqk+$Qd+ld8jv#M+QhC?p02DZ`|62*5^K z%mLTP5ACixIRG(kpJDLel>&ID(7btRi~6KPZN!#=74aM2nlDIS#JS9IfHKMPKg5wk z$96ZwLohssNkmW3rDZZj4NSLtQ!a4PB5VihkPDA%m*5qRQ++}JwoVKwDOOG?&bDka zez)u$({a38D-S4Jmom;070G~ppGS!qSozF7-r*nGh2OV>?2s|-bksvJqA4gVF{^oV zFS=ydAl-P`+1Pu;^6Hs2>FhmST6u@l4BxzwY$(yd=QEHn7zQSVq;VP0F$%2EV>d90 ztZz?*FdIa5xrIzL(kouqovNKZSTVj>Xe*h$2V}+2UqERTV5)!+-cyB_LZP9!P$&(A z6M10NLkHXrbRw-mEJ~3)7|c%RTQtK{?CG#7*835KW&O4GJQMk<rW2P1U|;J)II3EY%aZNSg1OBMS= z9^SGXXd4~>q*eZ%6||oHa@l0fv)BKZI=Ey&mE!O?K~Yr$!glY-^RD62RB+g$Z6tE2 zB5>I(c%jH|w(9P>ltlIga+BO=d#917x9#MX<&`EXJ4P1fgC$$^mBs*0(eH1KymhMQ6imf%yIVNR4^%@5Bmg?*%X zC_-5fhUt1J#@r@@rXa0tsY>7Qmj`e9an2ftu!^;o8%Okx7$U#@D|at#0p7AS_>ak5rt829fSeDy@&iWWO*-HBLuPINy zSn;bEeWUhbA?x_nZ-eNCfY8f54d?x+g_loX(tk~mEuRf+3QlYL!hV~o?;|G}*P(Z+ z$?KlsV!ILed{K&tXu$|2m_5u?4{*ZsX>t5LCT1N z(V>V`L3$AoK}zT#Lg>BZJv{&6J=b;4*`L=+0H;xix;ZUO)7 zqZi5zeCt<5#6cj@4FiI<*<xpQ~M&@`m+J2dTEMSrfi>6F)|FlJJv_{{Jq)?tP%=&N5>GZ_woa|A#-!Faf z;@-usH8wjqBPDKSK8C zE$-04y6T`Z@4e07?d1b62~GBLe2#?QfvMpJ9pOY-)7meLQco>gxZ1IHvY|-_F&WID`Sy3m*DwAt^O;!A8M}kLRZ*C6rLi*8P3kE=a53177Ny)A=XYN*Bo;K`hgt ze?2U}(k<>*1Xk$|Kte$<(zq;?$`{^CLgYh9Py!Ostb+u9gRX#5ur_oqwRi7^E&YAH z22Xg51hZaP5BRrCTHpKDnorhp$uF#a(?GX4geiucO)0ff07Kx3JkW>96c7o4;S>zh z1L<(0qOp)L1d0HuM}@+vh0BJ8S=!F*x>2QM?F=(kU;*&69cnK7*R!=;#xCOxl5eNr0+}Gi>t(87`)#CH+ z#0mC>f!5DYBdu@vYZgjlGj^Iaf2j9i!y=zwLs7vIrqP@XgbofTg`$w0IVXh0y{?V_ zA%)SO1NcCpaPGg1@!ayRB}Om4uau8XFh@!phCb>mYAkJBbx+-S7Ez{IoU_Z80`SdR zSM{cp-c^X`l|rLH7R?9>g7-T}QlyQfFEZ28bi+8$DI9uBF-9j04W<$kNkla&R2Kz_ zk>_ltyVhgiXKxwgOxph`z3dX$)+2Fh=))u{DWPWF*pC@tv_YYvCAk>2+`O(>6qOSR zrxNiuv8C9in3us%T2kEe+7&6vN^0LCo2=`8$sAs=fBO$A1rLRKMQ)RE1KiQ@85Jtk z4m+TuH~zO}#+Q}WjGDlW+wOt0hw9af9V3}FArq?Xk<@WPUB`{6;QLOaCBGlZK||%k z5E!_vfFQaT6+aE;DfW|)Ioyz(%Hg>r{le(+13N~_6;W8g=K2ilS58kfgA~Y-V}t=4 z&=GtXFfY`Q!D|Szh3X=+!_5f7M7=TO{eJhL_U+xZbmjCWkp%0_^5Vbt*0st~>j1q! zqJkefsaOAggeIYH2!S~fPe8A1InB#Ad|w2O1$i!X%LI8de=Lq(uKB@Yw_0BC+dq|@ zrm;}*^pux%wcAEtdR4==ethx0ug+3ph7iGQuwb^f3LYnwLJ|ni!!ryT3AECMaAk#DpLm%ZR`TT<`3ef8KRP^v~%J-Upk-dHI(&wikRP zCJkR9ac`~GuirdXG~`(!3>5%S=+F^hPOM$x&ahMKSn0i*k(z0k`U>A;Uq|V#)bi4H z!w{7$x2R{wQv+7}hwQ3DUpu8W{`*0|9}f}B1dHkFgz4Ek!wbXB426XTb0MvChJjvg zPp-=6O#v6Rd)r@p9CmtOr}vsIH}7tJ(Cb7*pg+z$RSfuLb71lE1QnqJ6$&o_c)*8! zl6Ww2(s7SxDKIEtxq32C`JPjk(J5Q^N!8p4@ynM!+Pg1}8a1)LTn+s&9qln(%aC@a zq-QCq;7w8JTU0Z{vviHv$OyQcZmTqdcuFPB`I^V?#D1-ZWx;7T)DaWctT)#Wca2{1a_K+?XdnnN9HEkU+Kx3N?&RqHWv#2NQHixI? zALrul?ai*NjKHa>G_s-=gAKj^hQav+MdK5eEm!jIqLG2$tF znim>})@1m4FDy94JzX#Vd$Q)yUj6zXRz^lptmv(yo$$M@m2--@KWB`i?_8to?@;S5Vdj52wE8QiM}*itWFkN>9VyjeBL_HMLmeoMYeN)f%BUn zlzFaZs3@~roOy;sj-U1)sJ3K97Y2X*#y43cCXU9baNQCqOq7*&Ac_Ku&^#d{*!Sc< z9dA00Ad@Vg+#~Mt>$TREZ@cHNUbWuwcy_$XClU=5s<#aJF@a?P@2taYVRM^zc~t-?Pgeg|Ul zZwRe`>cL!0c4(jWJmG=%soZ{o3nryc=KVkB%5- zuchKGmip1f)MpT zd(2R^A_XD|1Y{cZ9t4eelfH z!={1F>uj<`YRJKd--T%z`}4Q;m;Cx(t|rP@b$$j^-fgB$=-ft;jWs-ZNSPmN0HWES<0V>FI!<*eg@?dG-5sgcg zd%I=-^~&sO60fP-c)GGz>h@>&jir6xS`H|AE!SFXjr!-$I0{X=sF&E~UiH>LU+~l! zeJ7Ti4p^D3T&NtQH*eV5O>({_E0S{6!*Z{I9JJFNkcWgEk<3D|>TEId(fvp~jTA$X zB8KZ{gY~82K}|=R1KMVp{Wmh^)=*xRieYi3<`ppBh&O z79{G2%hKy};d0vc&J@`|CZA&sPBrnMRXm|6u#Z`6uDX^ibWoAOUJoLluMBE?xm+&6 z7VRAU6i>|(HqkKE@Z=`rkGvWVZ$((hiX~UXICjJX;_Qg0m>P5Rzumn&2SuYw!VtOTl#>uVr^ z07y2kbnkr)r`j|_jln0v?ac6c1X>)LLF5vP%A*`Ztr`FMRdKl9Qha!CC?j|$hNDu1 zf8k<7f$gVSA~go1|ERkyJ0UAUuUM!GlMJu=EBe)3SNuCb-hgl}BnHheQHs%SBv4BX zXl91?;qbE)JPxGwIiAW!$&BQT3!Tp4R#YpRv~FzH|Ad5p1Need8C+*vxcKnV!JD_% z!be6&<09d$G}r9VW`t;Vq8TbO0#Zm}WF<<(9qf6yiU0W=GpzKgkw}Y?*T=0hemnFE zJ2RYd>%e+$I!ljE=? z3Hn;+j_Trt*)Q*gIyF)TL%Do1;b)?nY4T=akrAB)ff#MBUkV@nf6q(8sWfyB<{Ss^ z7#-LY=ov|rV7O_$tdnb$1pRi+RN+w5&&%`qYY`|P+HqNF+yxE`SzYf;Otw&rw&*pv z(V%tOA0&iNS3k|fNk>}V437(o(N@bhKyW+U5a9psZTgOvy<*_Zx%B`1$LrOPzj*0( zURnAM3g$EB+Dto+fjJn{nlT!(Zg~y+;~i}ZzZwzFNF4Pqt~hNjsVwXxZIOHfDrY@` zCY$)IS)yiKF?nsGN2VxXVDt9YONE+8o)~|Jcz~pgEDBH3&gcq1 z(|hUa3nfl5T6AQQyp#Y=usIVVbsANhYG-^Eob;@gSv`JWS>{^3z4fhiJ8JKl{rz+< ze!OUQXpi<;V_Y{_v=5vXfr+ES-C?1)vd3%99U;5#_n2n?vlwWo5JVm1Qxsl}Q369W zOEbcDs{Ma=g?LZjyka|9>~2{#U3U3$>H9PeManMbKblD26OBocKJcjmE+0IPw?0?1 z-3R7Y)$dX*zow4jFQMq~SW>;*IdQIhq^+#J0OA{$C#8-iD`FlfvHyK1q{ng-nAm*k zB+2`Ak>*=-zTAFR-8{RQB5``8NeD@o$9wE}+*6H7xUjYpH!O(te26tT?ZS>k_h3oM zNKtQ5DJUMoE2}SfOdBkikJO+G@Mpt1E6i&SSIJjg_xeBlEVf|$ws5Exb(yUTvOys! zcfNw`Y@F*(6$r85r@DE4Xb@qOJG~i8Yd=_djr=}K+auzvy=63w_?2$J_2#$^iU8t; zit=Jm4&h_MLKgKCb*lk28(l7n!=J}*m$_-~shgIOjM7!!@H?Q8&@C#sfQ$dA{tS!V z@dVJrNtr@#tP|5RW@ZB2cA9p`2dru#ab^?!J`yK)HR8C=Q#>aMg#Z(TbMe5~qG6x1 z^kX{Va*+4zi`%Tg`o@!oU9WRo6c%PqjbuNR7(RB#lUZ;AP62oGYGf+Uhgs$vDU#(- zPV~6g$NZY#%H!mbT(!ctm5vN@ky}!LC(+Qcf1S~QCUHs;aGV%h9fU0=s<%({M72zD z;2=|L^I%vRG%D z+NMw-I%L1ibd4uuwsw8xWjvz>8+H`4=WtTm1Dw+E77Qnv9-U2r&BGIyzFkjWV|@%> zFqy4d{qkDJE;9aPH~2gjRHmQi>4HS^ah@;mKqC2%v2;a+MI1#cg2wd^ z-vzLz(swMG{;rN}i7v$(hRO|MG$Yy^Fn|#8!q60ujt-Nmufs5mt16KW|==qx8N6afp#QstWV??ub?!%5D&6N=;N+st0xZx*X^{uU=4lP znX%Nm(xJYR%=F7)l`k$BIVt*Wzb)0;lX?Fl_+!zf`xsqeEDaNp5dTNJwI-cdK3!>zm^;KqDbxvQN(miJ z!O9vkOMa(5Q?xES9Dm8f8WVrq0%KXen%&g$m_6ZCL!0TO328GpX?X$(y4)!#|%Zq-pNIx%cc!@bcIYEZ_CCR<3m*t0SSv!e`>S z)4OfOn+hLugI&a6;;-r`uyVW{q5?1S22av32|JzW{vPWyA*H^h)i}G$el$0* zKl<}@>d4yGT9gnhwGMDADVDP^kp$JX2THH5DT-1{v@0=AOp+Mc@5}!(q1zQQ6OnS` zMzzgt)=*o3(8=eYURGweHx1a-JELw%9yjZBU*<6TGA6oza# z(thpS?hDaKRW`;s9LEV zu4X2si&s>)k$uhhf!bmu6Mg>`Z`3yg*Db0iTJ)73B#aJDa-HLlmc`r0zz1w3QLZJj z+_sQ$h{70zZ8QuS`^!VdwF8?XK8QKVHbhy89&eN1=8#BqD(n$ zWOgDc255hQ-vqF+ftEA0(7_u>KH-b=m?=66&)#nf{7Arj+NHxQ$V(^ z)Ex~DuGG5JS9&ZPZ0|$TBdwnsT4wIz!=48=n+*~T3+ql!ZCUa2DFBN?cP4wUbIL_v zfvH3I71{!5eqzvYT(dO1PLA6GO5M2`1|Mif!CZ&6TQK~FA-?G;v&GZOUJ{7|T3%Zc z=VxNsE)Q7Unm@|=u%s78tg7+hn5Ih=Cc;n@AWK#n9-{}jMI{kMZ0TrQNVpwD06-{< zf}N<@6J=&@9M6IliU)yrZ-T|H@zmf1Kq>Epl%}qfl{LYQ>*l z+E&hm)slR=jt`|zIVYSt{HgRV;9(>R$VamD$Oz0WrNVGoX~5gadIa|%CkDJ*EN#L@_V{;_Zn*XcBN?MrZL(pMx`kqADv&*{s8?y7aA1!;b3Rfr*4I)1aGz zy3XvZwi~WP*vS(QS+9*EfNn6-S>rp&Idab7`#GS+j3kOC!{t%{>EW)J6z42?U&HmS zm5M{vomj6WW>v`U7!c13J5eo-0Wt;EPJFrrZcNfn*J1m}Pv2bDzO{2tcrtLhVoJc} z+9hLNp$CD4A*DM|5H36R9^33S+;7!(@+5nDYNf7Dy=%}zOD$m1;9s8SNV}V-Ls}S7 zijNO1&?Tjk-c!TU8Est{(c@tu9Ob*m`{-)K#p;)31DM-_517YQAW+ zBBAJeKi_3VakP)&r)R$cW?2`m^lClaBe0iMm0?$zmDt4eY=2_7a`#;Gu4Bi%k;~`9 z;eQqQ<68xeiNq^dU-Dyr&ynGoUZ(s%T$3D$oF7^a0pof}j~4YMF9G*JAOpP{g!ei& GPyP=IS+#rs diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp index 63e85ffea3da1d7af18410407c2a386bc1536e60..9ea4744d70877e676b586c266d0cd8d040825832 100644 GIT binary patch literal 3304 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 N002ovPDHLkV1joE377x? diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp index 133272a5d955b2412c02f1bd04865070d33f146e..7acd5195cf2feebc387f351e626a1ede3801a622 100644 GIT binary patch literal 4358 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 literal 3683 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 O2*4Rz8qo|1r2hh9bmAre diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp index a1156c2ff287b2bb8a0fd03ca092a5a7dd6c8523..e152d6b3f87239c6c4f22619be6cf8e3b0f96396 100644 GIT binary patch delta 1954 zcmV;T2VMBk46hH6BYy{WNkl+aI|M@?+b9wuoo^wh|I}XqV529Td zx|MWW6wzS_i%O9N*#|$24|t22W(%4a!%EnMEP{w17$00JV~OpqPBMlXt;ai7%-SBh zvH&gga_nho-*b6ykB6MjHC*4*o-^w27ivRe{y$4CpDp+xu7AcjHefY!G%<}sn8a@E z!i4h_YC~hr!xnrDH)E}(JA$3qjtS==)P}~KgB$S)TyOb2h0o!emLSxI#w@`VxEEWk zoE^9e`}H8yhQ{>h4m^b1%4^~`@QAk&i?Xf<4`3UjAC8ERU>Hw$3$ZBc-o|72xOc{8 zjAMs45sR|!Eq^?Q+q|82!Bmgm+)Xsv*hnh`vqlHTv^6NgAijJb$;}3b_jZhW!@AqO3d1pJAgO ztlIiX({ugiPBk^>+d7>}NP@IBXw?UP%E*=vXg>cv^GA%+-JL{np)dlh)KR zGtV8c490MOEXukCTkuho_R)RcGfw1HWp>wf?vlb zJ%8$}4a?U3tX!&)%B!fX65so$&+2x&x}Bz@2mjTf7rt${Z@tTpkD0o%LmmeuQ){OB z+fmt$(rz$byV|Z}Uw68F(h?+zMXN1QUL}fdqUa`yZX#{Aec!;qfHiAIJ^06;@qhP! z`weT>jOunf_Uzed@8p-&no)l%D%(-o4Pq5!vEx0%*I1&}sYSUZ2o*&)%9BLiO{ATc z_S{juDB6ksR#bGNv>U`KNMl=nJ|jz7mMBjxY9iO8fLx-eqM{qL8b=ht|7kQDjvbrw z>23G>!uBuecDs@geQ4}fH(Y$XqJI-*-5^#$8r%Bw83V;B|8@L7Em1SIXc}wvEGVj| zs1nuu39-{wH{kpJ;156J?rry(ot^WlD@U&N(aV0<`uY{hPLx%NSOsZp>(6Hl7N_le z{&5EzFIl4L)S^RJt49HaD6fLK*=a?HR&`4RuWGegTCJARflK_-<-hHkRe#qhk|=hf ztV+ZxNMl=nK0`d};k}P~{JURu4i2RjP2w6o3Mi^XXf~wXt}+zzPU_two9#QiOPLM$ znXzAW-J07BCVk2fr6Gz{B33~f+xoK8{^sybpPzih^!y3uXfm~EH*V9TfI_0xY{;vi zuSz8qAAZ-TTzk>2Hk2C;Cx4^*lS~m(S%{)UQUz&jJJ9%Nk34&y{U@Jwo_41e?Xo06 zA<=2iNhR_sN(6<>#_~M|l0tuyDMBg_Q4EPhFx@`rFZSQ(9}a)ZGTD_{G=U>ns|TT? zs1kFXmQ0jMP{Qs_@IWs=H6bZ~B;KR1JV7G>QTFXBVks0UMxeKrpLgrdsz zCxwgBVP(k7Iq9+I|9{A%lXp8d`;ry%6z;Jg7G>R8rf|C+oSK<(@buFL%6@%mDTbDb z|M`lC_kPmk^lp{P3i?g#w;oG;>6 zyop$pb#G$_hOyZX--EcrTZlzj*MleU5^g}W@|w64_jntzDC>IkG`@uOxXQ}efvtE_ z4?=Bd%sIFbpTPB&&r|puzG(?UZD`DS*n*GYW~{YzN3avyG2tA9+R&I~vIQT+)fmSH otVWI|rf~?9*c**qm~fu{7aHM48G?rDbpQYW07*qoM6N<$f^(qvMgRZ+ delta 1600 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 ax^zSbkM_PODs#}0e| literal 2858 zcmbW3do&aLAIFE8ZJOp%Zo@2hHBxHive_o47D7UdB%VrhDT$0xbDg^s9&|%3LM6Av z~zdt_T&pF@oJ@4~6@6S1(?>o+xd>jTvLuj!vj5V=(u5Ed4VN(!JYX~Cit-LHcaD|c4;cVxm zmV?^_@F)>V9%nc4f{gYSh4FDndO&dNV$ zB|14->gxU<*E$sz#aiKury7XTyqi_Yc{CvdyQO2r!(zO(FUOVbzOG@U+r5Gf6zi#) zb6cGrY1iFJw>jZ=RgFoBN~RwQk8Njs>E<y1guP$NY7klrJ1I z6{}W+%Xl{Mf}6+l8g)E#=muB&P8&1e3D_VA{%UaIM4ezT6EW5(6a=5RfTl)8V_JwwlhZbs zjjRdEBQ!?9=GYGAmeSc8?cSXXv#)hqsDSui%8-EgXhe)YHZmYyT=i?u<2Tc!*X|(? z&xEZ#quprWpvi}DKIt=Xdh%u$!_%vBX1c)&iAA$<^hhu`NMB4ym>s3|@qXpYpEZhd z69SF(u>8}8rY&F8-d|2bu;uDkt0E2{*a~ z_uniZsmVjvU*)N;hUH59;cHCnb@gW~@1RlHjc!0(TZ`6%QMDN|7KnTky98uRGONMX z+0h6~y<6frrJ;JOWBcoGbw?j%dH-Rhv<@9;fGlXLVg14T0HR*OJ#)>aVVIf)KHGc+ zUcz!-t+^76F91Lp^C*p2>v8eL3@u-0- z8E$eYV_+P*tLg62`Sqn!cDFba#cO87?d7Y#+GQoQ60cImvknBG3`RhaHK#EIMmF*Y z%BkmU)$Nn!G?7cMbC1&|Dl#C1VL9eF#GoEhIHVy&%MMFZ?$4T&DeFm{BR_oE>UCIkVUMh&8C9pgd;@yKv;a zTQ(j5H9ALGUut-8FK2oK9w}$W&@pm(jM%NfxcL`;=+P6or}lXVTcc&YPF2&U2)p61_y)n}8`63@ULuL3ke8 zI#XA-z$>0(@}qy$JjykF*S=XB`sK^!ezNB4D`t#Wc znXgSYMH<95A2@Y}hizj|*xa5HJ{tMu>|%xZ=TdKuN<;yt)&HlGPqNA4F| zJ?5wv)17g?iAoEfOBNUOIPZ4+9za!F6W70ZAmzgR_lkq=?NP&;q0i;z&x$x1IpJBV1GZ}O8Y%qv$A`Tm zejfa3vMj$hxl`ZiA7^z--GeT1sia_=gD#4$wa4D8rX@rhHtA>rHQ&Tyi2IBqrONgm zK%1R1J^GJtNN!D_z39`%za(`u9Z(s8*t%AfdSK?fYubNnen=^o<R7YlU*Q;HLbFVks-miSPu)9^2w7 z4lYuwyMAGNL{=Nun>Ls*Bn-JK%@+^)-SKf^>6r9`n@~1ge|1~r8sk|>5lkxkn7eqHv^%6si9`WJ3sfhJ zxAgP#s?%k;Dr!2nrG+sCljD^X-WVG!tKv_^mLeKda zNk$V6A~m`62)M*NI=QD0KcDBu^+=xRxTU$(GzVgcc9CS;o5wwE?Fo{Kv9K7RD$a^& z|+lOAKXe{kuJ?USQg#! zKVY1xrBGC?I>3bG31;!(p;Md)UU{!? zPr>-r={~ql5n49%Wr$vg(zfaKZkppYg}^5%E%Ph@ah^I=(-FGR>N?Cy(6YZfd-Hzu zs&x1TuCn>((IOp~(I{IPff3Eorf9|DbTcq$(`+@`1Ew>P*%RGHlePUl1_5VwS e|0`Pd(}cwsQnTG9KgD-4FuGxEY*PpT diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp index 401543d6f9f84e6cf0afffe9ea9af9e8c7197214..f1994a0dcecbef688019961f05b029de96c4154e 100644 GIT binary patch literal 11898 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 literal 10454 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 literal 3927 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 literal 20166 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 W*Py!U4fbtVAAdPIJCxaz{`)_h8U;fD diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp index a06585cbc5df9389f83351829a2d82c6ff1f243c..6f370d8cc3ffb32870498630c641b51cc7c0611f 100644 GIT binary patch literal 8214 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 literal 6709 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 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp index 57b30c91349203af2df19d9a07a15a8b42faff35..7ec5130e5d870a56e33c8e9a0da8c11aa93d3423 100644 GIT binary patch literal 10075 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 ak>^#Ba&TY%QShg^pRlHv&?Ttfi2n`c`LCY< literal 7983 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 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp index ab60c4749e1faef4e22de63a42d4ac20f4b0337f..9ac056b76eb2cac1c54f8bf62670c75ec5375729 100644 GIT binary patch literal 35087 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 VFuG(C{vYrkVW;PgD*WN^{ufobB)k9s literal 31814 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 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp index acdda6553da7248b693ab66985796b11d482abff..6fe44f1f1b359e23027f4d068a04dff4b8b37553 100644 GIT binary patch literal 12400 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�UjA`I(3}kWFb8980(o zGLXQD6lablEGFPgZ+k$cH`a)@ctlXGRgLz?R$x*bMg0^AiPLukL0F zs`p*9RHq$&2MijZ2l1Q6Im$Z=3YYfFRVg}&h_Mv*uEaVt$WCnujXr!jW z!Qd1`BrN!SHH1g;n@%Dwie2_316?fRFjV1{Nq&CG-0fWLZqiQWslH%Z=!d^1hRmZ<>{AKHhIs6YiNc1tmTk4jtRzxl;(idJ- z)i}sxIKg2f5xn>`GEyl79>vHA4ko{wNhN(m)G~2|#z|}cK_$faNIDi^xh-j{TsiY? zrtZ{k1H#yM-h%axs*#cy{@VfL5I1>wx$%ifXTB;OG)2Raqws|aPQAK=Hv-P;uEu3e zA%O)8_H;G4~6e)I%rUM={);HL~lUQLPQQzUx8+Tb>mL}_b`-Q{c?2bm3+D2V# zy5MP)O6!J=L7;GpPT?2)1MBvtG+CAyyzkc9KrPOfP?-m-2#PN$nKfJa_UZ>ZClvzZ zH%cyTb9#=?R@G1YA9dH~cAM|oT|RsDImRPJxGO^~0(Df^!auDCk`rPB|HKLaRH(6i zw^Do$M|@7Z>UK5C6z*sc7V-Q{eOKJm4Jf?HG8G5wggrvIOK2duWWlJ=Ci=y+>Rgb=>c{To6)-`DQH}wJ1wy@pF}tgos`v=-Js>3_4wm_t#eO4HPchFHTZ;m76@4 zQJs$bk(r)aN4R7Y`*pB;`+Dd^z6t}jWX9)o4EqP0_AMENpBK; z0nW=U5PS)?h3|JDp`hCbU(HrJLKzU6Dk5qbPo18Xmx5wmGiR=2m2;&gPKBX}@1G^pZX+Ma zYx*(tQi2V#kg;Bv@Ko4z&9uoJ6< z|46?;mh~}?^)CIt2G~f_fIQHDo&%|m3_(DO*D_8yy`l^&f|F5|> z2dq$(fx?1n1n@5<279qV@cE4D=dDxDbN}AF4)jYb&q8lL9)i@pme1v!{#w)Sb&^#C zL6c7UDZRxa-|r3eUs{$F=!?e~*mgnf#^AxS>c-vb z>Fsd6_C2vQj+zR@ghXyl`VDxl>c4X61Lv*ePD;|+PR*yhbY+jgbm1E6cAZvL9p1*1 zYQCin7j-XBOV`y0xq3Vt=<%jn!ATI4j&>R*8#z%$g(-GMYlcNcwST-CB&iZH4$bD@ z*w6RyF$u$aU^=?11cZ?G=lI9PmC^%w)lo^YhM$ z#OJbJ+YR95e^S_W1hu~_X6R~Ubf``ukr;#E1xC9flp~UemZV zTDx)Js)SJ*@ZoVYTFt9rt=^hYaUJSMuHchh{P*>XiUO^SoDm*5E>*1vTQ8P8Y&H>R7kVF%U8fHt z#S{B=h3!1|rstJ95r!R9Pz{GJgHih-zre2U>kI;j3)>*Mz)?qdL5TsP{FXg24UxiJ z^uIY+8AV1>54@R3_>uT|eAjF6My!J8{REP?yP@~3=MI?XUeg=>NfFF3oal?y`dzD- z2CX(uUB~U&8Kf#+QWTgo+Ej*}-WTJ(bb^6hvY0!zYK?gHpaF24ype+dTnKv#k>o49 z@BBDsIKyQ-mMf{^)dMW)aKFh6$o1VP=MxCpPm0arRSY&RMZ zUGF$j?A)KWxtRK`a0deq1QzHqo)sxrsQq*$5iW>|VHtDP?ml0>rqp(^t`=hNu{y z_u7xC>70J`M$GU5*NS@I*CjWhTMg6W@nQrk_OsYbxPO%F7-_h0wU)#ZQUQlSacc>^82ZA-GjiJsy@H&a6R)jw+1&KNq+s*GZxL zKzWDE6ASDKSlriO`vHFum>YA3U+5_|-_yGg*>t*1bT&Vrfq zl=sW3ay&Qdr_TFpg`@?D5W;tZ{98^gN(9?{r!dC25bgdt13LxQEFY>-9%qX#dQMHPneTdm@cH)vbuQrBnIW+E(X`J9gzMBp#8{Wm@> zw;p2!$ONxT>4A&lKH#D1gF-bU-DMVTA65tfA66Rd7T1(E^Mg&EM1iFU*7AwnX*B&s zN{&5{dR<^`(mri#cz>khGeqJ|{8%zq%wFo^iH+M2wXang}BGP5`qYL)csaGNTEOyE?VDEE15d z08@82b7S$1Vtf8YOo}pdqa>R=!GbMEQ9f~e)D1|-q>8#8P(%2KukSFY>3y4vsqO9N zq1D$`#SkmjOX zhRLW<*2JWIt<$0OT6%Xf?{)dT68i9#(elIbl>aizu3n{$z0jA!BZ@X0@LX8I-FzKqbNWd8!OjQ?O_@(kq@=Ftapn@(BzxMj` z5BZ<>R_!4YB0nq#@V@Ban#b6EoKznQ>S^k2+P_mIz167^P2GDY)Wesi@fs=#(D=2c zbG=LpH4y2e4abaQUioP>4JQD+sd9Bp=A8mp+!Kcb#@w2QyRi>J$E&9cV9TQ)BhNJZH*cnuh(8((9&bbSD=UZ&oPer z3LdDtMbU(@D_(QLh#S;Q;~cu)T7}-Y{<#2zSnK%j!eAa!QcOiORe$iV+0Tu(HNmk` zIR>0V%1mWh94wj?=xb=a&(oOR7Ph}8{J6Nv!IDBK50gf2SYBS2_p$ugkZ05v`eWN? z+M-sp-X9suR8F-r!!;p34Ktw6m6+98S~U-ja*5EpYZk)QxDC^uYQDksmB!GhQE`$# ziGL9M?#Ci^7FsEJSHy{uk{dyCvP9PrfAsabwcaM z)B)_@Un;ADU`=#DNCmWyCegbK6edn)2 zL+fMTlt9x&IQLlR;DDiyt6;0$Vf2sp&a};@cW@nCjiqY0>rBjyT;B3YHSNX8I?1b! zxsJ;8;Nhi-Dt;C2_F83q5f@$f;MjEQS?29d1A+r*T4w*CO|aWz{CAf@7g zJZ&0eyE)qr&|Wfpk&^vZ%ot#-rW4*Umz|fl-o@(lugMxMZAsUtI_Mz6516lj_Bb5> zYf@Z&7@Of8h)lo4cl40Qrn|iF!S9UU`I(t#bkGxA+wH{6WQiI*&SdIM6tf5_ql_R; z9qe^<6gPYgPB$ZCNd5q6N3++V?!|G1W%fN{FZF^q6(J;jUkzC5n4Af8uUR zH(=zE^m%r2=j<;#l=BsJHJH63+wT!28SbpW%ocXI3p5B?ywOKZW)6IQxok>A#y_gq zN-6^+Sh3d$h@;!$A9V0-Ih!wkw+n_QC!qkU+vIdAXok6*Z1tyU^5;TN$EF0y)w*85 zPR$-HV-9hSANy&)6^57%WM|uBxd_37)@DceZDDxpI-^o-Zj_j@8?twlj-B|@CONEb zlEO?0YeZ+|s}mD7Idy5sY1pjqdBaT9Lf(~9AAD7$B-Z`Z(U+jE`n#uB8VHEJ4F-^w z79L}!E>?mNi2amTH2>#+0kjJej#bQnh$;4unqrzl%j|1ke*;SuQ2w>$ ziw=xEk4=*6_cq^LJM@)wKorG~m$j@_^6|qnG&! zXtQ6au*rI!$Ae7*{B@>dYY*r55Z4Pp-nWIO&(Q9Z4i3nHTr}hlw#8ps+tCkPRs@qd z#P1}nu|NW*=N3S*qRWLxV~mqo3=P``N0jg&11p#myP9BBQt zw^4+;TviujILBZXbKFK?iB-%EB!+Tu?OAN-$sVS24E?&4*kTAoAMGr5BYJ4wN545z zs~-qCwcc2W`@BL>pkesmyrkssnbUMTjS^)0gh;C0Dg#aY5uqzQv@Lz`PTEM#K zKDIApet{8JzswC4_SoJnDy2)^5Sdu=g^;FyYXZaABLe!)XD%kMvk>S2(-^5}w8>ic z2OH=5D=mj4v=wcqTslg}(PW4k6=&8#M>QRN1Vv2 z;v*6ZGN{02+9-uUObeOYlv8fB1O_SPG0kR`JkKrN?0E-e=g#Cx(t9w3Vp}!42OuRd z8pBhpNTyt0T}=U=5iv2DQP=Bo{prNS%M)525wzR0mRA!l`x(BYJW2Q-7~^`|WPVMw8}RHNgGDP{S1ql{KsfCXid)h)I}llvZm91BTDn zx~{082-HzJKs*V0C#l zaW?~MZovQeCuZrCL>=GQ!q}1ZO5C2i-H~e&vSf))jWus5!Jo%425rVtXeXPbI%G@Iy4z z6Ee)0frA7tbz;!`Ex^U0JqlnEYNr4ahk*+#FDk|lwlLHBWiUn4Zvk@CcSgCH5DEGI z*sa#b5ZUbXb{`~3Pxb|Yb-Zti6zCg)A@3LvK1J)7%vri=i`D}k4`wDN!1aVeJSg7% z-UXgG?S^S?3TwoQ$N2rzaYM+TR|sj01`B^H^N(Cr{LG~ww~saeOG{L|PnpfH@=zfpwjZZ3Gw`G228PmuALE`8_JEsjBg`eDE7ABzisE8*bA09PcG^uF zT1Q5v@weBjj_d=E!sjgalljp@HJxZ=QOe2jFD>Td-AVqV@4l)1_ND;^`-jBIJ+#I_ z^_lF9BSMB&*?yyU(bagy({YkV#99Cbbh#y(KMnaFef12>)~N^NmSfZOFwWJrA-HGL z-(j57e&<||mTZW{6ss2StBwS^1$RrOqrEZJJG#05hp4aMii3-_#ickDcQ5WxbZ{+B zan~Zn-3F()75Cz91&X^A8(fRKyE8M7@2$J;{RhXA>?Aw;aKhK%Hl5*Es()o*oy5JZ zG1Ha-Fz73NT03K>)-e;x#+jt@BKvc~*Jj3F>9YZwbk;_Vu@5M*!JCV?qPa?+Z?u=^5b ztEhnfYYg|JLuNX*BXPLBaddGWeuM_A0*%t%&goD5?=#g;o#Kv1M-b73fG5KIwmm1O zc1XvRfscWG`*gpJM~#^Xx93M>M7c?O&%Ke6+Z0kCPL<5SdB(v399P1DPh!l89K7B+ zn4dTn+V|TG+g69_bcZB-34dS}9A5j?p!p;Jxcx@{tu|&ZC@|0F(-`h%_>IVBNJir) zvXVky#3^lcU3XlCLwxHP>@Duu(T|JO_*TnGN;LnrM!4ou*Ba11A7D$$ zbaO4*Rkxk3dUZc)js!lqnSgK28>(eB#L{H;{zFcM)We%xhh2XC3Lj5y`$6!JHf;66 z=OBN?3kYtky6CzdyVU3N_pu<*6hEIY*z^1X;&sjL(a2bR&sQW_J3|cU8-{+Om0H<- zc151{V&PdIb8qF&h97fFE8Q3pK~LZF4`Ew4vZEMHu|YnL7KE{LNB*~-*e#Vw9DFSt^5#r1Tt8Ef~f-thb5?OF>Welp)&NpT*a3!4O zN4}EmIxHX4H(Is<(7wIV%`@bEx+yM#i`qKyp`Ryx=!cxD#&ypltu+k`*MPV5=6PSOrG`kYh~}t!0By`aps~T~U=>ceL(?sR{0%j5# zg`7$KcNq4GP1PykBmpqu4DoWW(Yo#mpKEn1wHV99z}K4rj<+N424Iw4=TpGhQ9M&l ziU3#2Wnz+bYW&bJHCTEv&0FT;yam!O0>AWmb#~i*{GMPy-*ZFs4_hzs{1ZrzHq-*% z3-sYA_{`h|6S;&wE!x8)Q^Sh>ul|upT_og#V0nYBdT%s*UsUn^ES(h5a za7X6BUJ(cy*rrzM%o;NY??O0Db6mb#sW-ZLH7v&v&o+?K`|_z%f-4;T5o1y_4L(^d z{=KNX=VK?nh2xx&7LTDEee?F0m0wRtsn`usesxkjxuGzD&VwsAz9Z=2{B2@h(ifM= z!>cnPR>B{QCMN#o~0anp~)dH-%%OIl9@iVS|ZRcp&AfOri+$9LK<8{yRl5 z;OHak0jZMT;$Ng4L%c<%1U?%mIJ)+TsYdE41sUnnL)A1U3ITI(h;kyr%coIXT_tqA zb1c*ytLSD+`TBOov;}hMBlA8n=kv;r`1was0WkgqV$#QP^DA-p1@og4%_Vi(l-(5g zpR|0iaau44#N*b)bR`mKe?};Wn_5VQg(f0@;Y}7>ej1{=vLW~vPpD+Ty>E$kieEFv z`jEURC?pdxoW*>z*y2jFIqn;E81Dgkv?qUK58n~uT zcpdWqxDl`d^(YpD>=z}Zqe)d*H5g4(^itrC(>%gpiUhL{B2LVjvf|NxF6PVAOq&*` z*nw$_{rK4qenIO~L{AtZgN5{L_^aY{SZos=lp0kA3j>a|;nRzq!Drg}%GT~X5b%B^ z0eZy904!^Bwfp9sAvSRsQRc!Ehy=BJej`&DQU5tv>Vj|$=lC=iM3EwyLpX+yvEyO} z^PapNEe?Ir+z1i_5mTUM>si?%@OQ1jiwDkW*l({F4C~j7?{N&vc=R27Q-cb zen%Vg?6GXzLHO}DNq>`rj%m*QP|to8Ht*4&%$lM$W#E6waK`nycYyshWNziSbF`cP zybgf8`Q=TB>Km@Gr89ePRC1#sS6y?ow*}embc^fR=6y-*@4kiik8};;qc*tv&3`B0 zA#9WgWwJ&E`7+*E_UnDXueOm5{?L&+lyqVg%ljBNU-pk!WWBYg{HJ!A&&FuUrq>Dx z9Y5l}nyhA|G4a1WP(Mz^RFFn8Lis)kI)dx4B0j4m?GFbs#PbqpVB;4=P!^+G$@A7K zSS90HQx(vJmB_IV#I_7mk69v=^;GhE6JvIx1D!8hu%H8=F6eRoGSA!4n68fl5|;9$ zll8l-4875?nsN89f#Mgo>AqgwI7XmK+XcIF1 z7j>hfBPXN38?AwnR15Sp!qel8irMs;7Rn+sNAr$Gw_65NuX)yG+r`VQrdWe~|3jB2 zEg{(;Du26Hq`c{ZcY_mRbDoGPQU9QT3xjP*a;Nzr^q>3RpFe6o?FwNRkSjheu8fvR zWYP`Aq#b4IHLsmpH>Iw~PLBEVxycF&N71|wV|lfTzE+6(^|&tVV{N!XgwqLHCp@yt zgdnL-opuqBpab3^5Ipb>g((oJcTVUjdDJl-I45K3t>1tAO|(d}u}pF(a9ZxK?6ufQ zA<(msh-Srj5TZ4sKgW&xQ7xH?ZAC1IOt(g5*P!L?N{10*dwQ3y^c;;gWG(SuF(BkD z%}JLjUIv{XV}zG#&Y2H^5Kl^w8qVtbR!9iK*FrOM$1mCnGC^0oUwti|Cxmbc6AF)Z zbBay%XFu1lh;)Q4@fbSyJ$tSDtS#ugD@UB4h=MM`v+3P0PmBPMr>mqw>dwWjFZcmB zp5J84zkc`M&WDODSQwc#_90PRoNOmJUSe%YgGGyN|v^|=ozRihxa_3`!*0>vt=WN1IKzy%Lb zE6DPP-6(BM@#XH#EV?dY_7iCy%QVvg*lep zom!0@o8$9QC13{djsB!MPKc9f-nv$+ptx^c24Qj;VaeZMYhKBBB~Ir{KhREcr%h)q zDq`O?g|*KM;bd%_x}39pz~!}?=@;J&iTo#@t?Muu#u~H3>p+q_d|!3ZZNI)I#t$h= zmF#5tL1B=gB!XPe`MOWKP?*md3!P0;$oy&wonK>==)kcmMFpXb7fPa$9AQ3){zHBgC6&P6ejj@}+n~q!-l?lMZQr5)Dh+E2 z2ix0&BKxEFXn>jg(PjF1A{N7&vi;*sqV|TCAu-9`>Zd7+OUW+WRA$Zt+|m+0KDISN zt*fhfHOG++qq1{}_dd&gK4e$5>(y`L8Lqbds-NxhsioD#eLJlze?>?v5Zl}Tp+`1~ zCb(E`#OrMNMVHOXec=U7j+q4~5#`SZn0}L>4$O1JebhTP+`FU1Frt^Aa8LIYTW=g_ zxFzt|F|N<2(yJeaX_q7TYbTVlZ$*QQ!h##kGxCd69?931S~Nl%#UctnlS)sM z6(h>`6lL{Pn?73nVQ>8DRlvot!1R@@pSbs(!aQkx8*y6qJh}Naq;X6-VX)H+UA3?C z9cc~JEYa{esjy*WEK_`Q7iI~3AP^P#=g9XCz^xwh7;k9T`KmaW59Qq0LTWK@G4|Qm zESFfZ&H2sNo%55;`}*WR$FL=ZORGn!ZIS*0GWfh3XgZpoYUIOcvbn@M@yFieLO`;@ z_-6(XucNZDaOZJKq*$zQ$W#kd)5!d_pQ1NdhBamhp2RNO5bYJZ>mJo!e7*Kj-@UnBLD1Kdyca= zxZi#;J}y=3ft#S)jPC+k$la&HPDW zCJm_3<X~p=ei5PJP6R#B z-4xTbbJux?qm?N|L^^eDx2M}3^VPMTc|kWfpT+^uP~pqYnwf8=xW^^>-upKhA6Pz) zA$y5}8?eB4n*lpz@w|B?6qP@3o)FT-(^OqyjcS(2#ul2w)(3GH*LY0Mlu=&sdVUt> zO5b(S5c9SRprv;Vv8=nBhSA&84?_GBzt8aFdAf~+xwezPcT?( zHqR_+0K4~mE3thM@WJNud5yI?2pJ1OAHY0pDGNBdQX zUGt(NO<|;N)|x#6ee)mlX5d7(UBqP@G2=^A@_oY*^ZS8!poR z$J|((P?L_g;h1#e@G$#fYib`VjN5RnvhwkmNAZZQfL-l@43>Dq?|fn3-$GB|DXJ+7 zG>t4)kv&O3#c0ZdOW%-L^gh?-@#9z~S~|Ps^s-Fsh-_II5K&OP6jHwB^}Me2yhQ<_ zdHdrdcFn6S4G%Y!!EFScisf7akKv4vD-OsZmXq+q^0f1i$xVuy@y3M|^h^}6n0%h(js2q{OPVW=MbsBr$#8 zGITKiA6Mm_u;Yz6!i>2bg-CWay3EPIMvWL{&b0k!%a&=1^r7?!hN_8SpcpboVz7f! z9@yz*OOxJ^*y=q!mw44?^nK&^_91i*`kaIXU1{|nU&DssWO9Ev4b{UD;o@un9u`qP z1M-%yyLZ09I$htEquN*{1<5_axzzZjh+xiHy0Eh=Dyh^oFcW4x!F#Seco5ctI2oy8@N;-ov zt8;3iW@`r))eE$QQ_Y9inte##S_M@TFDBN86p#PJjo=++`-4dJv=~YGmJNNjf$pb6 zc1x8>s}`6q=KvjOmmkjwdakf~9;0%54D>V}9^F^31F^tSzuX&ZH0e~FFDY88U*yGA zp-sr#cdF~fDM+02*(Y*i7V1E*V9_7P=*LOFjmi@i8Cg?PYIL1eLtOoAZI2gNoTBs! zQl5{==H91Cb}_x_hup~Q{;Xolq=jPAQ9JW1Mv*f!47?yr+#&&!3qR3iDo=0eNdbdr zL=bRf#k+MdR_a+(&^(BViJx09p9>R!XLTF5MSwq+e{pj#a?a76ww_X$-isTKo0^T8jsqRvBsXOrBic{$75Mw z4D7o9YbCzG3+cG#y?F=rf2fc8u7A8DG`N$p=2$mjcSV+OsaqT-U}9zi=m=9PgE`Bj zKpcu%s~N;eL-%S*lWM-*r&Jt(U(SSvgLm|!vq0ya_5G{^+&`oMp8|Ytr5<-h3T8f6 zJyvb;7HHOpKCGDJSCg?GMlYgyn)GnydijL>z-$!5ec>6#yI8qAV+Aqf7bO(P+^JHB zC07_Qf%1!b&MBf1x&>xx2{M#p=D5>j;ss@jfqDTOO~UjtxWh+-sn%SnJPZDiX=v6 z$-b5$vkbhUHAZsv=dokCXPJh7uD2MJPceX(U4Z}P{gP1)8vJ>a_PJz(zvU7S^!K4^ z%mBT#+A9JPna&sTvOq0H-;w8if?qwpW4?wGA)*&NfU|&06pse4s<0L1Czm&tK6p43 z1LUGh%S91!pOQ`vWyr@3v+KrikG>1nNsqO*#fYRh(g=_}E%CVIe}wGtc~XvUc3Xe* z0&AlmzaxHQ`2}PfN(sc7lJ-U*%CoS1x<2$q#I6kGrUC$3saBheDR%iIRiQN27_jsr8TjuFI1IgkweR;accDx>@#7z9zza`q2yC7Q z1v}<#mu97j<;_q+8z{lcn*m$Mz^#sJ znl|lI2eRKgxi~zL4*}1;axwe3Ie!BighMh4kWtHQ`y)T8x;G0qzndiO?Dn_Q0`!YX z=xq}LX{RRcivi%8lZNeg<&Z!?HQnr*wezJ73@TV+L?vX^gwq#?h4B9lyn!8aFdB~N zmzZJ_Oi?6a0Uj+G;ZKIN41YxwoQ%J?l`)_GHueP*GPj(Isvr*@jc`rb200c9&Dc$S z(v|mBuVHUL3fY8Ann1vtuji>O>F@GlYNPo1>kqm$8bd{9#4iJ_C`i)4nqx`2YP@5; znH5;IJ|I9x&mao1HYT&!V-__Hf!EfaE3>HReR=DRR9V53LG4Z7h6ZEb4nxL<=Og?vx)y?@aW&U60r&w_4X z7LJU>+Ux4=RnkiN)(VYx9rJt}%)YKhe;!P2X{rD^t zk7OPl=f3w;31GY*!cxzFiQJDvr@cYA>dF#g|-v12{5j&$y<37@LT zkIryBJ8=^U1*Cw}E3_wk7JA5*DS?Y#vyZiA9QK9Es>^AfD$SkPFJ-0$D2v2wap>t0 zyWG7MB0efd?<0v(YpMo?k{>AZzX;P<+`STMD@>pu{y@Gx_};4$(o$kM%SAPMBo4cy z!jMQMi|o^%AkoDeb(LVja5WUT|p#Q;8jdO{A%_}c>xD2g{D3sCz@KX`?5Hxh ztr`TRVHkU^(5IXDa*4_N9E?w@DxZgLI&7HO3#|(+O`C|SC_ZTGT)xcfVIw0dm3~{` zrU5MQDkJ?>&dY43WiEW!)-W%1E747eTeHjg> z&iQs{XV-Gqaz?5HqKRP_Pf61srnH-Td|DN(v>Hq0WxgED-=yKGxPRK!5s5>ct$DN) z5*jf-$s2a21_wDc4kg)FRAJV8r3lC>hy0{&X)40ucOL&T5teJoqfNXF8(Qwe4fxHi zQ{Thx5cN<^AF4w52o|82UBi$wtpXlmF-fF*CXEQ*v=KTlY+ncFq+_VW8zbV9pxS2O;8&-uKblCj3@vNU~p72K11FDKe~pr6Z?`^~f^=*cb|?NbiVOT9qhzt(j20KM!jJ6ApSpD1%BTu1*$R>!1DW~PDjj_Z zh4976!E`w{F`mK#I->4J&J7vOXR*z6`J{G)EcgDxK1AyOOtZ{_et<5dt`+f&6lRP$ zDZ!emZPCoE+k?(*_E9UvdgJ-*cT1TCb`|oy(cJ~METW4xGw?Qn`C>6~#GSuBL%=O$ zX1~?+2QuI%DL!f}M*P8$YL9Y|a-n>C(89Uycld*|g9Z#7Rj3J*wk}w+U2N*)bf(QW^N&zbO7UJxW%l=vlE zB8GU8Y!i05N#7XzSJVN=%`!k(kQ3h!@q&N%EB3)|c+)#5b$;2|pAQRN91%>wCSPg5 zrwCmGY-MV1s2e*wjaaH2%K;R$P@L8z^()nf0y9+1Fyv8ET@)r(HrOJ~@E>PEzmj5dBI^AI zyZZLY!Soyyi1bl$qgq33Cv*G$XiY)?+7I*2d8r`6-F(ML%)Iuq?sD{HFL*-Hq{8 z4plDl)=Wg(g995mOU^gIr^CT_WBku?sTPL8kgEy)qGkNH=uI$bD)l3uTwXt2c!bkP z{=2hjyF$c0FOj)kV@i0A?ESYYu1V%%+w$tK+{ya{E<5m){&$gqPa`KDM*qYH&U@3F z7Hhk`HJ^7>I%J&CCg<2h-5b4X@TjNZ^O@F&PaB?1QFO+XQsXXFgqs zos_)#4?Rtzar9u4-K}sHNHmD&OH&K<^+yT*l6H5~_sY7-oX978r=FM)5QJ@>+X4`<{Q6k@_h3HHYp_WbLO2Za|uF`)~H zqL1&dd~2;i#A?(E%Q>kScf%~IQ01pQLrz2W<)BDlxVcK_N!5+}R=$gBYJDBt6^Vw| z$lcUXj~Cfx{!m`RyJn)_G*ZtdqUC_TMV5Q$t2m&h1lH0AA$94%O zBayx^Hca^3x5gLc(kHEc@4Wt}PXs}w(unfx@Q$uf?nNZzg|_EOsRt6y5!j~1yiJ>A zQ?pT{avQPK9iVjEuic7yXr<}wUTHWs_3o~l5XPCRYV5MeUk!kjgw?2L0VdUcUFiy^ z4axGW)<;-ybCNzD7co*m!`FqfQy0WP8x{EmS z{hUZF^;}9&hu3Im1dHTvt^%^pr}z@n2d+AF1$ zC-0xupW?e{{j*bIhX{Q^q+V*|<%aIqjg6%)-cc(xzVkm$_7%idO1291D_X1{TlG`^ zAd6$kQkt{qAOFC&=)OBVK0f9Mc+LVooh=x&i16|AKftNJ!D6)xpJ}&W`prRKT3-Bw z=h)z~Er49Y61kCJKHh<40J?Pi4w@y@j1taapAi8bDJUuOLFB9l#iU;#3^@oFbBxO! zReEB@yc%cYdBU~w8)7t$>~&6|l7dun$dS|mm)RbtgRah8L>3rWaTbz!4|t@rdz5&mDvNW%{W7mgyiO z*dd71;X}LRXN>j;jxC3AiMw7}>2E2!YSK!!hYF*s{6(P2(;9=wQ(K3+oNKCA9of=V zO{_DYA8Y9^>f8t-Fh3o{<4c6S0W0Io*XQAnMe+#0)PsN0S?h7zOgLzCu6))3jY?oZ zp88Gdgn7EqOb)Pqe*B>KA+P_hqjdI{66R8^Xk2bbJ*10K zsfK<=u#QFh919lwAauls;&}i}dyc1VfSS$ulN=5N?MXZwM*IfLHv2w4n2?=)iTkPw zvwCY(eTo5#1%vhq4C(4gBH`d1cP@z0sH7>f@8F{HjCXr5CGrkw+d}50rZ0VXav9OS zg}Hz&*UDRvE?1K3Zj|y!$}O6R&hN0ySIRR0udEyZ0>SSAe1dSPW)o&(1ResK1l?8) z;X{q>{f}>0*x#0sL6G^%MdI^g0x~$ge#bB|&PNay0|xg)>ywf3gN}SJCN{D#@@3!w z;Wp3CZ7}GRASehq2u?h}%n0cM+oWj!?F7TEfrnq9mDR@juNbEX0pA1?Q@?cGQfB7H zcUZbIESw>KIo0|@vkH9jk>7LY7i+++Ho?JxT;P2^6q4r`7>BV=z$OGcpWtXQStg_n zT(8=AEYyLnJl_k%etBH&>V+!S0D`7QW0rid9E3Cg6Elx0?IR+XZL z@*TYvOQEIdRlU-Qa}(_ReJ979R%2o|usYm4!mqudSVqqqUgRk$Bl)_oUeNuf&GzFK z>!v8ae2YrI&RD-L$DUc?U3|hGXfyET!0M7T*U{bj>JK9qofr{*io)rZ26MOp=MUFj zG9RhEeMrb}OtO`bJ79+8ZaIPyB%fd!u<^Es^+G201bDYl-})QXRG?9{70&i|aBE zn2(g_9x8#-Uma$mJ=pqaR^`3?lYMI*-iKDNFQIRn?2+>DA;wG{6zjmoaJ*wyLuEal`kxkFMBWX^f=7>zW|HXKL=Y; zz^G6?jTG7@BYx}mHoo+6jeLSfRT_fdgIh*WvgM->li}v+R>Kd>fbrt9dDv3$$ok>9 z$MpVD%!FGWBQz&7%OI_>&zJHs^f2GQA5xwmTXenUMDg5D*!}RnGf=!?#k!*ja6lRO zY9iKQJ?YE(n4iIyA4uutJCergvlb5B={oeknYdu-h!m;`jG3ALBMg^e1I%6}t^a`9 zsn%3hK=`$7I}z5yGfd(yt3_YEo9w@+edI8IevT&9SY)${{ODwj+~Hj))MDWKYj(=6 z7??5wNbLR|{5U^=8n7%8T!c0+i7Cqx#mA_GZ$Acp{inb4szny8`14cB-DF-ZbLznv z#L(ns4>O08tG1G_WCyLFiJ;;A#``*FA5n=H+V{O$RRU!-@${!mw$c@lbd4-)*!?NCiN+xAqZNHrGswfLGPv;*keAK**Rd?p zM?S3B1(k`KbXvo1Li+dMMfZsy+4Rz}+w3`Ti5X+#S$1Pv2o9?tM_NkQ?n}(P@oc&N zbOuJ?i9J?e{vce?*DoH&6xw|@qnW!opd|X-2H84Ke|Q)YDfA=H4j?!mx^^${?=8O7 zB=GMkyK&pie2uD;-%;TL;Psi~{220XTHb?AbM|ZitA$I$r>MuA8<1+ISdHk4osND+ z--we8SriyCw-Kywfd$=d z9$sGq28^TuN$!X8C7#ApA7RvLuRjlOAcTmsbpi!N%R=59n8M^~`nZWRs4-lJE5nT_ zF`L^C6TW6j3H9j?7W*=piObiXfLD_*be(g*#HR$sZBh)jnQ;6BJpi%uTceqjuxQYvo`8DzI^R-w`g509HIf&8JS}_fCQ2{0Q_~-Y}oG3&;%8pStm2 zuZ);Hv0v2)eW+)DfAl99IUG2XXP6>pL0Ytw0e)Th{;tQdS7kG-Y`{OJ)Q(jQZW5|&{u(uZ>UwWJ?-Ud-ZLtYSK2>wYr4OWCJEn~uyVi^ zI{cu^i%b4z+IWOys;pifzAp+%tc;GI&2)7wIdTdMW8FSZ#4(Vk?IfdY(<2u%a1n#vL14o?Tr$#Au#FV{$M~SEhB=%XOAaEviqni6yB_?(M z6wmTT;xEgI7i??*lBMqsL&$WJ{Pw(PUwUsUzUj*MVo<)R9hrzdJ?A?Cd($Cv<*6p` zrwifAs*Bu<*0TOGNpGzAyN^AgUnbk^b|R?Udp^u+*HsT^l%Mrv}aC*1Yaw?38{Sicj?J0Xw8Ax{;UlO zOJUU$cWDAIa?R+El4Z|t#aIt@n%>uBE&qD<_B1yqR0eYjGn2E#^-|bF%Duk=k|=Yzm?~Wjb18@)?H1gGoxo9oh7V5fhOR%ch%*M z@`ZE2c9X~C_;|=W%501sPk>>S^$j)di6v03LjQX!gHW#C zYnREw*MQk{i1SX86;lN~_NRoq>xE63F2aTQgyr5gF)`o2h?J1&D#%{v!O(hFt~HRr z&B(B>P;SrTnjZm9J{mz-@fkH}>?(u^fQRskU_qqjW?PQC;-2W?5vIvZ#E_U9_lUfl zFCqM853kHda>^U?Jzl`OL4|I>>=!S_trrjah}lp|<)sLZB@afF_vC^R6;Hzn?utn;gGT+XFWuMHH z%{QLhPg~K(5D`BZ z-Nb=m6${ylB~B!2kHqX9M))G!?xZ2roFCCP#g_sGuMNv_^4P>9mB^OMisdpGV-phy zEPelgzjc=8^8YH7cdM!BUpTQDckk2?2HcJDh&7x{uhit$l;&M5rQZBnd5O~=5n|S#6H}Rj-Y`gvL^YB~> zl7&^(7VsMf#nYQ6a{jeVVEkt)D~>xDwFev_NvJ$Jv3-nUEXPwy4_7uSH!^X9w(eTr zFJPHyoC!GG6oYuB_#|nZw-q^oD1E4enrIhsW8{ufa~J!od4kL*F3k&`v{(DxI3?rT zZmgWgirckxPp?O7zdy8+8jEPCVTq~imdbTn1jGpjzv+cK?WvZJhu#veeXuuZ8+)1& zS*pf`ZYiS{&60KV$dyGP4)1wSLimRmf>;b%i~Hf=#lZztL*V49K{iC#)vzds_m}7ECz#<`n$MZzA`35H z&t9Dveow{kQE8?s_b03NtO}oYF7;gQs2XYe>3lb-S(u5(q^4sy@@9*L?H>)1m|p%{ zfbUyus7WFn1?IYqztTX_eEm|PSZycA%ju;q3=(XBcDm;;Z=#SN8=7q)IWd3LBI*PA zZQD{h++MB7^+1*(_xFnHJ*UDTHCDQ2qd(%p_V`?cHqS1zS0=Y?IVfbIewM#^~Dl&27eq{ zR`QzOYOTL+H}Y_!4u$^~fu#dgX5n-pj!31hVCCYpAZh$8@Th7QMDMl?pr(1G*7^7! zI*?Dq>;DI^eb;K2ma|Vi`Bw9=*B58v|JHs9@bIcyy9o%KO=NTLgYWI9kYMi!inuO~ zA9O(DGN&=la>4lVDLFAts`!pg)K4f2ZNfpZfX_^(L~ z#TpET7nd!BYzFU5JK$A!li2gkU$@n@hJOi0BHyXMP#w*>Z+B*mLSSjWp|j-Cu>SpQ zDCU57tT~DuvzKSP#|h6uGU`!E!Cq4FqGk_lN$N6ng4Qoc#^|DrgF^<|Zb_f<swQ)0*{Rff3RvZ&dvz#xa_o*V(I&g)412@)e9ROp8p6_zcrHRlrskzmav8fo3<;Ogp4KgWZJ7RW1asqemW$^ zEAOVk>Q&YD;(H4-o7nSMOe-3_bXv2Ll+aJG4^w4HQ@!~wz`G`GO?)yKPl(QpT)|?c zup-GLExK=ktHFon?*9i7ll_FJ*oBkqvKIedoA|4gR&6E#nj*X^^S}l*}aDdD?s_r|)wmlm!y&8EGHla^Nk%fx4{<#%i zO~?jR0p?4KW~-W21iuee>fc8d`voH!Tu=gRj}1&-`yTVaayDObmsS_^7UD7Kyo^n# z9E=MZj|!PGOUDVZr^|mLsgGJ3XML^b7Sak3LPrizoUk>YLA3%pz{UssV_19bY1odp zUkY%0Ej02T9Rbb=#IMCXyq|R;CL2*0UC4^@Uiv7Lh(!{koN*{ZSRL$dp{ECq7J+FE z2`Xk^ZpImW7KX;%Xsk7*aN0Oya!?RSNYt5m+Tq5;Q>7-z;P+GdT;zOOYL^;QU|qv% zxv}#M{$HJZ8hltiQgw(Lytt}Zz?hPhUUqy-WT`MW$QgD(K0)N>EakqzYuGSqc0Sg+W zYG!JeY;*KG-iO3h*Z!EDqCMkv8(vTz*9g6KK6Y*=Y&0H8-RBlHP4X|j{C)B)>ExEO z`t&-2R>l>d!N+8p%4D0wYBi-O;@u&$VHrXP10#T{AT6PVysLtp!hniX--aaRW;=;o z^0PUk2tqzIhPB(u@0JEb+_Mvcu}+b%dz;F)w9$5Mvrf@H^Z09Z#_3Z;?U(nbBd^9P zBH^C4%P{pKAw`Ub7y_^PO|buiY0xJBvHR1x3DFiUOs$AX%%G(5=P!v2m&C4!n=thY zP)k-Fu0F;fV;ldIe>y!k{bem8a~6~z01lHj&tr3S-n-DZ_*6=hmc#j#^+|UA+wHKN z0PBy_3lhUC7mSKL4nh zfV60Ern02v!ng##Y6m^|M5}XEqz1RI7gns|Sj& zXd5h*#^6ehkbA7cE_yk!8F;pj<+RpbwTuM|4n)qzW7WGWT>|cn-HQ1P@A*tlo)fb^ z-qxRHjYA5QA9Qsa4#$|V6h2GGv9pp)v;Uoe<;YxQ-g)G9opCh1s5{}7!PN<5b)qm| z*%I8n8@z#+6w6NUdx`=-%Q#*faW3Sx+YWfu1>9t-DmxC*=5-(NpgbzkUcL`=Bs3-A zJf5b0wEeM!7~UAX3+HtIdcJ6R(TE2habuVy7!0{8s=KHBQa~(zM#S0V&^jl2JZ+V3 ze3xb<44ghUeGxRpX94uQBO8{uv1dXfNcR%>8gae#p(XxH>zz9=9*lv(>-1S+t3(Fl z{wUWfX{Vl9M12y#!k1~=nez=KOhfV^$A=8#b);R}!rRy3%qf;*)@F$8byvVZmN_^7 z{Owt1(fD@jLhg#q1UTsSd4~g|1~~{(WU8e;6s`WXURHIB%t}T-=LUH-gt!9cZhqti zEXla`KaAkCfBy_KQ<5u>hSp zFLxr$2PLJ`cS>bKE6OJe;B3HNvG*%iQv3|@*xI?2F7&TSiwpJ=y5;1bkb#g$e+G-j z576sxRPW!TbV`CP@zImp*G^;411Hxwo(_>Q{cTS**AkW_6WJa)MDORvH}9^!YF)SMO`?1vYn-+f0r&^@@d3l$uVo$ux@eWO)%d~t%uix0*2t~kKEJ;x}j&PV=*fx zqQ6lyU#Blygd=(7tQU=uf~zYO^#1;h6+}bTeH`KF-7+wZMr`QE0ToncMkUS3iQR3F zp8`5BU*0J&Ja83qa@7LGiR0kru{Oe<<1r=Z(+*^ReKNJ8H0^cUiQ++SS=?lU%#p~=*2Iv~`Im?JDX zFk5b3%gV&kbs&w;we`pjxUWsA1Nu+y=4wA?hV7tXF5V=}=j(|C zyzk(NfW=&)v%IejAXGcfrBX)k`!UWZyq(>)M9!Rm+u{;=d6S*9v{IQxD%OT2nH@e( zFU*GgFBNJjsO{d8Qo|1RJg z>D*R8O=}Am>At%T%u;EIe_9Gc8|*)71L$8P{`Dio;Iy~hr1Z%k{inV`N+ogI7pG?3 zw1s9v`68*0k2aWhX}laz8^Rp$*w@zej+cDT^VLww?HcWbJ6jlg@DWe9M!owGlT+JS z(WS_tNp9z>70;>78dz^JRL4jNFG{8ty$?{UZL@_bK~LhtZaY#;|JnsZoD`aOXE9ZB)u z+kDR1y5ahmWLj}s~qo~E* z7jg-3?7toSXa`LxiaeKT(zs*32#2ui`;X;0%~dtDdQ2>Zc`6C{8M`c>4{25`muc>; z=RlP8JO+vrD*UI4ocMkE_mh+}mX;>FTtvT9!P!OOWrld4fr3eh#sJz=fZ_%H5AQ?J z?)!U4YlHf}2Xd>{&R4iB2_5;gqZ-KhsA--QL(1o|?^$DRZ}OnN(;GkiTh+^Em`fO_ zZuaKb5un}*!PfH8Tg-q9xGHk`11H47gmJ<&_+18h0^@Vk8wi~0HP*ohDY zdhe5OqQW;1UFkyY}&x5ck77UUTM{?^&!VVa@Bov71??GUg27z2uXI1v(054b|JOcsVlDtsG={~j_G>CYEDEv#Dqg~o+UcodBj=Y zXdzh#6u>z1`9WGoi+DW~nA+40`P7*E@KuyJ|GXErUZ zF6&?XfMh&8FaMJ?_fzpy82KT08fo)1To@tetp1;-dPtlD`xG}lZy+y$vneol&cVw+xc?cGSi zGO@nFokE_;lz+Q`6WZhW&SIGe)?eb)RgvoSOm?J$YlHRoZ4QSVe#-dM5vQbau8HDr z!qh`MMxPN#C|o9mYWRETf^;o~N43InDrQmkR{&mSY=V(fWpcLyc>{&0A0>Z|$Zha7 zz3i@HO^29(SAq-fJR3Y0Y7d*{`If6=J_$w&-r*V_!OSE&&^kCfwb<7Cl%`oW#p2dj z71gK%E4;TP#c;W-9 z(KLLdF;Y8~0iDP-LF0lsdpy}@dVi=Vxg11FWGqZ9TY}6>Blk2&BHUzR&$9yy3oL%G zNz78IT=7}Ty!HdnBfVC?EhqlwgD^e`UZ<)AEr)D>M;5fVvAzftlTdN;7FVZu52Zps zc#(g{4M_c&cY->^pYR+KW z^-q#tgO8Cr&J5g?5KNvuD3w?QDovn%f!a*cQj{`FesS6n_reW7x~n@^UZQq*#AXwd zdEl({-dGk>$o;M((8#dnVG#GQ?JeF-#uAQH5|j$bLr^OJ4~4HH4;G$yOuAb8`Ie0Io_G@*p-uqUC1@m9eZXy~YcJ$;ZM-3I zkywu$|54_rs~Gw*(?fwO@bBJFp4n7+Uy-~y2J#z(-`YX1#|`HFh326)*U_(CP0kn2 zq>#OQhJGvs#O$U!RLT7aX?EF!5^kjaX4kQM`Dkh$8R z5P#sTM_xIIBz$>QHX8mD8j0v%>{&h;m-{Ur8b&u5nfGsu{x1$GIyXzrxQ<%4WmamH zrlDqFA}}`&C&=8T@}(uvjT}amIfF8$W9A0-oH<<&*Ep$En~{d z1ek_$(08IMzbdn!bxx7tEk9{TeHHjoMBbdSJ924Dt zR=B;=AI;%0dhkd;Chq`5nOsH;MLmn@z+P2(0u6(3v$^yh^q2ToqH{)zk|B$tsb8Uv zUbFo}g@CeR)#w|q`n4Z56AQm|M4_1uhcUvR$T9}tF&@j#i?OPVk2&Tdlt~*Zw;2Pqn#~ZUr-m z2}7Uy1xe_+%$0!s6ijL8Zz7OlrmDT1Iusp%z5e?UH!MH=(w=4j{(ciq@ON1=EhPct z&bn035^u<~A(P>b@MuHf)VE*tQu{FgW7^mDy1PdfcgY74XVm7o%??_Gj^1udj$ia* zJOK(u58=8LYgm31G1_nn0W)D_*{8*nteBogJ-Dx1!p6!(L=d+$>M?JW&IhA@xAzo! zKdit5U9(hDkxihJms}}P-I(9#xWk{f5aHdK@jYiv)57ic=AKdmZ<{>APyZ!O#ovhi zAs}BhPw^i2hEa)5mdgrdIy$s?PwtBw_6qpmlGHm1)-Z%`TY2`=@ow`g8XWTKYh2p`| zA5LCiaLV}Fr{Mm{3TMOdZ&py zEuSx7B67JMLOxCfZj)1|}8+;tl}WWOb{{byE3=(O5Rb7T9Vr$B)lU?th}5IB7>_|n|x zA+J&N6O%NDhO=t1-0)y%R1Nb4oeqFWO$=rqA8Kz%SZdQvThj*#mLAxSy_p5SalHrK zA+4)mL}0Jb+CS4?u_+~M z1S(#>iL2UBO|I$3SrG!`iczW)z<8K8V6)3Yy=_(Elyt_^YfbHch_G{CNb_&bW+qI& zO<_uEC@4^+K%LV{WS-boXVC~jin!Vd69S&GZgRg7x*g{MW~(OZR~CdL2PJhaH2uN%dO)V5*TXv~2W}R2E2_h+3)oP;Q8Y*?;C9wz*>NxS zt&NiBpr?|)6LZqs^YZp*=ATn0|?M;BWQoaTKG zJOO^Lrduc;C+8FtTb-j*-83uDvUGg0&tI?gTMh>X)1XDHMJ69}|7Znbkl9C^@QmeG z>C$b*(y#w5WWZe`&>=m9x!hS!6q+yXOA?jMbq(~zk4U~#)z%!KVT!s9=H#~L$%ms` z?7SnBut{B~9sOfX6{V#Jq8}Ut+2S~1z*WK&ycG8A zLR&^=KZiS^pX#t}HUE{-BFNZvnD6UI=jIxA3^LZ*~yjt~-Iz_sjm0N{%aHe(b9#`LBQ6f_ptKkqNlwh$&()LSH2)a5* zIi)}Hm9A*8HPNO_lGxeTkNq#suHQBlM|8oAWGW$v1VOSz+-MfNgtGj)mQbG2haY59 zpuDkGr_&KKz?VAEjMH(vLs#ZuCZ?cvyYW-Mc4mo;yjtyTiwvb9vCy^7&3#_s*bq{$ zM2KOY7hw2T`4^xZ*Or9tvY~Avw!v!RXVTd~--A8ct6>XptvLnc56WGQRcAn~`R{NA zYc8}o3m6i!#<@)#k)}*P5Y|?9V-`So&}}0s#}Vpk3jU^Q-@%6zMYh71WynZ_?@|rd zR^~{WbzBHJemTH;13|Wx>B-0OPlwwsDbkqo#F&f&*UEo;S^c#s+FRaXM|o7Hb|sLn zbFZrosuRkI7H+E6SvYD{x5x*INy<+^b)4X)1lxiG#)`Skh z+Nn&1oJgDt-RaN2^3J!^WyGmA;<4FcLCHU6sgeW)1wmQu>(LG~ex4JrnhQMk@JD+p z70O-Fl~IszuZ*(OTO_|ulN$`LK&=#lRK8;L*W*;T%98%)8~p*ZIr!I5-OG=VcN%dj zT2!UoeVrXaO{F86Wiq;{nmoPKu(YTti{ipW1sL`X?(^fHP0YH=YJJ><@u`t<@9`iz zf%IeQsALhg#GBDA&dS1{Kf^`!$POk8z|}`vP7c=tJ$|!e*;_GQuhE9w83>RN&p?3K zh5@`kDs9kul4$3>8GSs)&+2Hg$FmcrvxN-~y#t(oP-D(eOi~$3wb-QB+mS@G$F+LQ zdcPPOy~*uQpEZ82z)j}D`yfnq7uM8-ccD-hZ}BHxun(w73DLoK5gKCk`aaMi%`q|~ zZ;2LE1DhJ2 zB4vFb8INKrT?g?{AG2U=z?UU@79PmEz>XPUMv(`_OWhN1=2Wx%EpsRLu_kwFMXiCv z*f3S%X3`6u%JM&eesx`0EmqMcbb6pMrG$({wuEIYdwh2#I^2k?C^~w&{tB?rvb*=G zVZq zrw(|*Gq^}&X>gyLle*Q=^x0T(!*oC92Grf7W4`?=jp(yFn-sKk_hawSUu_3B#hUXDgx>oV*@)N%g$f`V}V_w0>pzqtDfeI5)m1k!|ea zGJUKxjhoGUEx$xe*-3Q*+Rm#B7@GyUie{#fNaKS zCoQCHQj+-^Bf5dKx>D<<%0M2*sOh~{nX{!Ls>R={*fB>SES38^T4?Y)@3wek>N9Ru zlDij(soaB#PIPsm@ZXX#T(Tg_g;CLCdTPS&Xu85t#Mf&7u>dIHA0ZBND@&Fq^;;DH zHH~vj z?E!4WgcoE)p^Y_uidkIan;K%dhmnIr{9DfT5tk%?=B!jXi6brlZU6nJh&+*qFJgRQ zIS3tlLpNxHykOg2mF{hdaIuB^7(vujeWSX{kjYM?J5JuTe7zl!Y36W;f)ayv75}F$ zI=xrSWsHg^KP~L--Ddi>j)V{iR8DQX9ocBtzuv-@ab=BHsaKvEuSQOZsq{atG)7*i zI>K=~8F85oQ3_Zws@rGPR2;@xMY_zi%xOU(Z*Yn7PP3xmqxA&Y44ryv%uXZ)C1~)5 zx<5gmfupOcr1kts2$&lO@S{cWxcPLRnTB5Ks5$_bABI2b>f)Nv$pvMe9W$xtJZWv6 zSvcKD%It}LP209WRdsR}^rX##NZIyTv0jTFO$k|l#w;e#m!8AcWj^_Hh0^C4en@yw zq)D{P^MW4NTn#$YL0>lh{X~t_@SJGl4bcxP_Z)-VYmQiRVBA@9YSpCV?6RI3+FtcV zgh&t}P@77#ROU?ALpd=!8FtTE;MhjppS-T!(~PT(Sjp!#(rI1yUogGed_a%J#(s^= zdu+$P*;T^|PixDqp%dn|orD6>Hx{22E{`rus0p3PU}JJ4-*PnrvbH;7-q@tzkPoj|X})fQP#2P*F5NFvcTSX{aD~p0(Fp1kVUws9wx$c|jLbb`kNdXAs)=RTZk)*p%>tX(a&S%5>?X@m@ z66@P<(VkjlgAsV!8jj|(Ur{u9d>mDdQiR26@cMiKOYTn0T$(FKiKh9>g(jbNv23W$ zGL&L(z6R>%_%U|BzYWQzQ~i+y_HbezI|cmoN;!jQ&=0DRNKDs(EZ)m7;g;~E{uY^k$%hR2 z$|^zXk`WC=r^Z6aB;s!}@&BPlUBg^RkzNuOi0Hcdn-$So=TC`or>|9SAxkhR;x6#2 zM$3MozObsb`k}s{{X8zJL0L&<6<H`=g{@St*xL9K*>mXlZSm8DY zP-K9R{3M~}hB%?Dc)vIJm4}Ck9$RLLexMsNO`jIuueu+~#iRH5z85nE)pf(IC?T)F zxWlPL4ZzLvib>hcOj@ugaj#gx@(1WmNngQUXuY*K)h_kj1SHxE8aK!?_9pQTH|p@_ zuzcUi=XAgMwS7g@q@QdUN@k{^8xjF^en{#SO}~cE0VXo_s=Z)=Xdl;s%>=6NnAm?% zLs9<#vrg!a@;q9n_NZD0$1SeGG3 zh51iNArVQX#!#N7h^sVDhdAWxx5oBO7Z9Tao5rOq>BZQ?udRxFN5u5HkxsMUgUsBpDDLKs7*xU^89W2kR{nd}R%uQ*hn|L>@`!Y7kTW7i<)nv`- zo^-!UP@sPE2fcV=gY4H_`2}`VK064iNAx4KvwdSBR9VuK;Ik@RsrZ{n z`Uv-Su^u3;KPi@w-D}ji=a3;zTh}=1`w8pqf29g&9@{03Gyf$mqgs3>*n?Z-O90ZxMvF9kB*>eKX#5WZ9FNogxj@sJ4%d^1eH z*0~p}gq2Bus`Bi_8@%pzn=Q1h%+73;rxqGvSXN>RW~QsG%1R2aOJmX!p}MQ#AP2p2CW^~B6BjmUHL_yDD{OW-7k3$pfx{oz{&_^G_cH31OQZt<|v6egL|KtW> z7L?`qU4#79?Ntu>Rt`(tV#N&NyR+#v@2hKCC%@=WNDy_SBovFDD=6C1=@`1F6a>U$ zx{ANP)J@zJ8d9f$WhS`)t>N-3J>s!d^sy841n-}WivHfzKJb|FJi(E>+5PY&fI|>Q zD9abEcMQw^cbR_X_t|<6ES)FCa-np+teIY1%u(k^&&ccTLQB6sW3Y&`lxYKdi1>@J z%h+@?@brhD6RB2t(=ElxD${k~$}Ba@&ttzr;(>qPgy|~axPtoygzL*oCVLa78~CRE zeFmpIg>PEJi{x3aX8dF^B?mNQjm`fe9X}67swI2?k<*n_KiqWhLw!DB|3V-G8a*km zfb-@ms*O;Zpq2ZpH#IZL_>Ah&qHM-7>9PI&>--y?8^4Rq@;Ici7ty{@bKcR-n zqc)0cy_MDB@AccqWA^2ygMNhyD|mVz57uuvRXW{qVi)+Ynj>@$DjYicl;#)VvF=VN zd;U)7K8mVhFE5dYj&i@2vW$VNWK1QJaPj2Fsw;~TXA*oaihqH-XKYiHAqi|UfiF{a zx;*w(Z?$ssf%iL0W`tTveN2#b-=IN4Sz|opxGnfQ>u=v2&fDvXL(rP!71VXr$-&Ef zKm`4}7LMBC^H-2GM6nkdFKWt(wR4;Ptnfe0d_MP;Z*0qaf0AERcqll!K zQ&ZzSmJa#H5et7daY(gunLK;XR<|NyMoT5Xyc zM$iVzo9&O(6!!Er~nUMXt%CDg64PGjjF6S~&>}nxKm7+I}c?+APHkxAc$-_t)&e<%+!(l116T_K z5QtEdCrZ{KEVPRfBb?3rpbI&HK3i?5XOu=uA11}6F_8_EX5jT;^SMv`2zDLz%Y?O< z5!Sl|kHdxC(a8gI#F6wdmQ~APUpzIJ$dIYy-mhEXvzg}u;B!t&R1_=oo9kexnuWT z7gJx;KyDhd>#cWZ&m#^R4sVW(T8=6x=e`;x={Me_#$<04(SF52G6(Lb z`!mA#TeuIGOc`2n&7V}sZ4bvHqGprN2dEBt=|7B`wy^^MQ9pUv2z7O*BEf8)2v(}uxloo425>i zfTr4}jwkWIqDMbNW@j%7@J6W$k4MHVmP z${=v|uON_`mP2lo;8X-HWaH=0s=b}Hy_bjL)JwZG=ZAJu8V}6@)uQQ+|Ps)lYLu$zNH41q)bQ6(t8`k!9NGayCP*CBw$6 zusEaUy_v_OikYPeM-SV!1@?0xXLP72lD46up_^wY)#bn$kz29N^Esk+guV|zxjs$! z8;TpxXrrF+do;*e)Q$yh{_EPzW|Oo&Qf&4?+d&S_Fi8lFB+O_y#U~#rnwrgqIV>hT z#QsDRuCJS2Oz7hR+kB=ZA4jjKnk-IN;+J=$ux?=Z{31^QC&HgNjQyQ*vgLB@?j72a zcXwwQcg+Nazxa@s&NsVAGR-w3GZW3pO^z~Y!$cBZ%bMCy2Jss$l)DA$2G*bu^%^M= z&1{jrEiw{rOXBL<*s2Ai5_XZYdUsf`k^bY`na907D-Xx6I8iK{{vHh34t##Lr^m8! zB#ym!(I9$yEqUdxyw|oq(9q!FSwOEhmCETvXMIvVI|GO^&XeoCk$ykkz?fD9MK_40 zL?1XL9^dY_o8A<_XSF=tDOHAPF}RgaPp$n zqX(}jeNLYdz5KT{Qr-aGp)eb+3K!h5oT3#Q#2Xid{yM1)eC8oa)kXG-#TQzF(Lz zZ~^&kN65BU?K-tRoQ*nogKCa;IP6gjwz1wkQK^LS$7~JwySa3z_eQ4?eE+EB+@Jys z>n~6_NIBqX_OMD$r|?=>L!~-;L3-SVz*a#I?7VUEM$q}b7lX&73!CMl-e!yCtVBMe zJHsuCsms}0+cX(*! z7qs46P~G>n`|q<fW|r8(WQW-i2`&3^+$MBO%gEa$6!nd zf^$D?^yEVhVuIl)^I>Ti*U#Y~pZ7Y71nIzQe8}-~G9*RDrJPqS7Telc2WPdy==^Uz}~uj#xiP7WEaqfE;YZsxN5KVw&*1av0y3C@etQ8 zUdl;le|xl^m82{KP*eXnn1VVF6vE8{ezcQ}sN2 zovGm2yEuuny@n++=w01=A%?HY5u2Ui!567V>%hcEoTZo~dL+IWrmj<#lVWo%IyM6< zpniuX%eRSFUqI8FkOCFa+A_W>vnGLwPL(0Ewb90QX%sFYCPN#rn!|}ej+Ggc=*S88 zWr61b_gu$O4Qu&KlIJD+-0AT{^O4>aq8A|SVr~0;GRBtYtP4pc%H+t$DU)C3*^ux( zuVtLnZ!_%$vr=yv?cxW#o)1p{PX8>4ln9hC{m z5cj5-Yrr(Z@1Rj{1=>YU*(%;9``}t^IxXSFPbCD2};YtO5R6GBbdfIb|{YcDb)Nt)70K*?Kz3K;h z|KQedO=jDGn;1G4$u#9~e;F#+J!hrco6MLt;!zP5s) zR}+q#x33mgcYaUfGxDOgbvqV?^?uq$4!feooRPoH_*(z!X%H4IR`fLYySI8WB7hnl zK&$%HYY|=3!k_+kW&5<74alp-6?tm~>&;X7W3AGC^nX|Jq{zt4qoh1aN8aK`?S7A( z4du6Atoh$n9#V^o{rAZK8uq{N`7cTSgM$As_WyS#IetWQk#qg_u4{Gy1^JPeR+cK4 HFb?`ZF+9bG literal 77702 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%0A1o^Z^kOA#n|Qg92^vbtGMj;ylQSHMuR|;!==NDN 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 diff --git a/assets/android/mipmap-hdpi/ic_launcher_foreground.png b/assets/android/mipmap-hdpi/ic_launcher_foreground.png index 2f49c5f1e091ffcc083f3c615a3e799d0d52088f..b6d88502414c6533875a6b61bd554b258131f00a 100644 GIT binary patch literal 8422 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 LO}1RxBbc literal 8371 zcma)?Wl$Vn@UC}R+#$Fw5FEk+fdpSHNC+%0A-Dwh;BE_n;O_1oB*B9_1a}Yaw)o{& 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 diff --git a/assets/android/mipmap-hdpi/ic_launcher_round.png b/assets/android/mipmap-hdpi/ic_launcher_round.png index 1b48a3ef5186de81445ba0c21d81e519b84be69f..c304d0ebe0c3f3062e1ff9ad5ee376b65b5645dc 100644 GIT binary patch literal 3083 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 l5p~t|00006NklHxm?(xJyX;H0 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 PzeP|(GXtWY^ZkDTh%t>m literal 0 HcmV?d00001 diff --git a/assets/android/mipmap-ldpi/ic_launcher_round.png b/assets/android/mipmap-ldpi/ic_launcher_round.png index 02020f6f17123ea11a5584803dab80de9dc9db79..fa0c0fdd5295be84c6024b0f7aa8326e03d17934 100644 GIT binary patch literal 1497 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 n|NowYBeKsM?p-Qnkf0 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 literal 4579 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 diff --git a/assets/android/mipmap-mdpi/ic_launcher_round.png b/assets/android/mipmap-mdpi/ic_launcher_round.png index f637369f338c0010488b4edbec24180f5ce30197..6605b55534230f7f291aca33bec1b2c8f6d70c85 100644 GIT binary patch literal 1951 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 To7qRsemNLiHP$2QI7a^qKZ@d> literal 5001 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 T|35yI00000NkvXXu0mjf)pkl| diff --git a/assets/android/mipmap-xhdpi/ic_launcher_foreground.png b/assets/android/mipmap-xhdpi/ic_launcher_foreground.png index f03be67e035eb2add67776368d01fe4cd22e8721..98921102dcd895b41ba54e479a931b69d10c1c94 100644 GIT binary patch literal 12513 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 To7qRsemNLiHP$2QI7a^qKZ@d> literal 7507 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 literal 9051 zcmV-hBc$AkP)8CXMUaO$p4LrVX zL_YpJd zZ~|m#rBr}QvH^zrGt>aZ#!|m3OQ!<&lhN+BgCRWe98{LDYH)`-99$34-I`1+9;+li zwIoBG-6lX<-nBN6{bP|otV&HcaYy*o6pME(3vRtua*sZXN(cS?Fxjs?!=R4$-g zOsS#7Ajx;~p@h}_J9KmZ?s%`Y29$_oMV-fZDTRhcsPN+-IKL*!XDBg5@}YbwVRhe+ z!2+cFm9`Xh`aWvfvJxzCFDD_0s;T3YCV(WY>f0dz`qpy$RvJVicrM!hQhJsk3!KNf zDxK-UMp3BWJoNhp4k&OW8c^^kud+Hl5@>->a?aYjDhdfA@gUzycxmT{ZrFLN|J*_Y z=w3nepRW!}P1@-&S>Rmu8%H5!6#11^eLMQqxTnh)9u1}t*i)UVgjzrh!~iKE=v+ST z({j|fPYrt-#T`p)u%7BvCD;PTa_;Yc8e^6F2}XK{(qDkonc&fVDL}Hu$Phh+DWk}z z@~wQ_r{djzh*X2fcia9zh*VGjnm$CZh_wZ>|NgJodX4EryZva z5@&&affKJT1t_*est06&6rcf_ExjqWKnhT7iBu2B0x3WPGFy66Y=IF2knw#~?L8i& z4?Y-sO`neOM<0!GhaHC6$&-<(tp&`0_J~M7JGMaL0rEzT!uS~{;Lr;$#NjvGi0Sk0 z!1UXHk0a*aiKA}63rF2@D~`PS8hq@mzr~nC4};BC?bsr{uBOGETOhdrF{12s{0vOL zc`gpRWgbSI^A9MU_Ic!vJO)h%eH4uc9E_%q9ftPfKZWpXXJVh9U4|oXzY|AZemO=@ zoeJZ5JGV~SVy6~JBtW*R8VCI7CpcjKT_~P<8ano$h;~1Vt`NwFA@Tt=m!9W&H>Cp} zT5ColH}x?1-})|&e&jJ6@}qO%*N$eZ^cai<5(kj2COkj?7mPmtpU^#iKjf{40)Qd{ zl&Q<1K|p8%>M{)LLX-(rnb!nVN2Us``%S{w|NqZ8VewK-{=(@nHgRU)YAWMMl;yNh z-iN6wd&W1BuNs9S_r(IE%!m_&marI9k_2oM7(xU~uqdo3@>2)0lqg&rv;TGHgbF9uwb@>K$1iF#!4d?uXH5{{X>$ z6A*-;7(x>|2|{VOGXDY3qBXM}FR{#;K-XQ7O-PTs7DcUYUTdixhpMxGh~pl59236$ zRaAXsf55OE($9`8kO+W`wWvDwc$j03W8^WEkN`0)5rQ&BKvBW!pB@PvMj?zMQklzS zq+!q^JTylLYSuA&8AyqX^Gw?HBQvV7dOM}8b3ovZ~I<|RW%lO{;14lJ=+ zYMZEyAkp=0nm4$5Hg@pvoVOB0^oVK=_eTbuqsOEAD__Udne*_m3ob(S15}4(*p}nctl`uRV*u=NqFWCUDLTVc)w-3G733tyA4Q2 zC-&%4p>dH5D6(B~;uMVj*8jt_+wRAHU;GL@0_{3Y|Di{cU~SuO z5kTA45M6hm2o6dNgsbCach2_lxyL$*Akw$VU1wcZk9GQufJSr}M=@328_cxHHJ5M-)h|LZ9@{Jw=a^k-MW8@*?5vSlM0rt%MR zfRM0o_uOl;s*O(NbQ7?FKw_2LEm(ZI-U*v}ylf>b8>TTsZK*A_+DgkH9>LNtWfHYf zU(%Ls4Fv?S$ahP%XZ$Tb{>00eeCBr@NQQ64IrJWN$Xc@88xUd~kd z(M1DGT;TRFF%Uk1s^UHR4L%cw@Y&GkeSR7636t6hERXGc0_c%a%d(=B$F>rIAJlT=)|~=ni&al zs3L^rxg<+nT__?`zZJ#T-$3_kYmk3)9fFn?*r3Gp6uOk=v)34q4Da#Tk?K4`<8u@3 zyE+g)@E+sDch{n_F+Q?~9fw1&nvbb}e>r~^`S>35XCoF#`Ot|DAVvqHa=?kxiI5N` zu+Feb;CL+StxZ*D2kI9*jKp`VhKsYG8 z&u3pgBbfln@Z1SI_XJfO!8ndj(KtT$Og`JGoZ(~t_|N?frd@Umru@x0sF}dWezqIQ zM`8dHG={K9=ud8ViHpt&lA@1g+0v1$g>+51ge?y|f`*45MEB~ID82p)%5SVh;q_P1 zvFt_E-F7QB&7Ftl)vqHgmXM*BGY%f~l%)+aCPan8{(S{#{ zegOEKQ-)GiGZv$#9*<-G@m3sl)-O@}k%OW&jF5kAV%9;2X|7T(;?Pk#2c2m6ji-+p zfxvhW!UIsMuS03w8ie^SHlZh3x7`txA+QRJNX6yPF*>b4-5qnW>NnS6!^%Iwl!01C zqZ-0d!!fFz0E$FTta0V62~ovSvrgdBodYXC1d-~EkDAf@V!{b$V#aw7VCpH~hR+w1 z7y%!fm^F|bK4B9E!(cpLjC^c2dg zmZAHVWsFAGVd?Do*s{41)nu=Ru+%u13`ViL8V>KEaT+}lD}*9WB!Meu2~mciXBZVT zeD#nGJ=Bh#h@(%x0w;g(UVP+ZGvG1RvCF|8yX}6v+eYs1z=DF#)H@&gjUd5+V_luf zA(0B<(OIgq)nAY>(D8 zw@1ppQGOwW{1d%|obfObBvTS2{ z?y+q6EvFjL5%Lv4xsGY=RYJ7-C8o8dSbxVnJUi$2Si52^!j3|;KVt7S1Y1zmgg_PH za>DmWRh)+;hDab~2$OXD7TiGvALB+(!GD=?5l%emO6;@Gk+9Zh&&fCv0+4Z0#qe7! zcm$4viRS{w(s`E7)5|<3-0)h%rLlf6ZU_rqC~jQKH`p&y7Ncp&v-sn!^YF~P2e5w4 zCR8ykjb+3b#X+J7WFTF|aV1J+QQ86oO9W2Hlm@6Qpfc=3*J}J)OqqBJPCWif?6=P` zPzq+Z6@S=@pP?p5hmZ+E!~&yF43VI5APFAABzSxnJ_#8<;u{RfhkXZ~t;la!h0a%= zM(3KP*u3xwEV=1sJagw$XxY-{qERgeQzX)+TT;cy6bT$Wf_DiD^C#+C*mh*)oi zc4m05V+68HWfDdsLcJ{ll@Uc9 z!sF7I(;?yrB#<(ElB^~~6ZbwGpZ&xo$S^9Q!augc=l9<9_|1({n1MFT0!rsz8SY%s z$YZpS=uz4TDTAT?u>Y`JM84@=wEpQaw69x)_P5vIwFmCR{nzpx($e*?1%kt|T@>Qz z*${+;QIYe^NEm5c#3>ml5_ts48MK$g&CId2CKVaYfN2^AvYHJ=hkq72JAAC;-biBo``F!Mn?!z>{-+hs6t)ptGUFJ-X}hT_9CyufzE}n5YGci$ZbPX#=0@$-rXo%t1K* zz%LB<5(d?OG63Qd4UOvH;WyM!6oIUC2=04Am&OE<$F@Enp%tkZoOm|;N65F?`Hn4U zdiQy>ZT$mUHolCNPu_-y=G=_6FRw!l^R3=yyC*Y2LUC!U#JO`_0?IGKr8EKM0AhW$ z&EnW`U*h+`4F4hqID#GEeY^fP8r^WOV5u#?$%f(}QXQj{0Umuv000mGNklr5 zBcEFJN@Z32>0?UuaTr@Ye%CLik0T}nAVwLbBt;cPABiBcG`8FO1c1|YkSF2d)rM-< zAB;w&VjJ3;SD~q%X)O09mcRHEvYcQQ=ayk)5g@*U$V89$Tt{?{XkWy02Nm0Tg$$=Y9a^6g{1p-8kzoEF<4thvvp* zXwlwi?PgS4s6!fss2j)%58zFZks z1%d!k#L?gSsH})&X?&Fhk>Js$TG}T_x?Tyh@6Okwqx~&3Z>;YD2n1Y^P)gx8SbVO< zFWU&BGMr}6LWWVR){H~NeR?Kjdvs+h0%2*?2p*nr-{T^T(;@WqRt5|rs;jS7*uDganPhmKz9heIQ04SB`_qOi#&kp z97HZES-5KfV0hjUHltEMwo)gy-MkodwD&PIyc0$qcTVFA8X4KfWnKe~uBWu^`q)h; z{H+yJCmoF`lP1G-2Jnl9a8L+`B2V=Dn01jU!+8rFNrw9$X;UhpsjwN9`bh>rd=ui{ z0Ws1@OB_Hncm!17zNrE!ItO$e74Vs`?}0euFU|&X79Qd8xCTp+_6WTs6M%c35PI_R zd%*Fiy)x@b(c7(SD_|ubJO%r~)sMqY`epi57WhLCW|Acegfxy^A|YpjF~ui)F)AD&4I4oey7xj> z{}ZirKpcr8h_K5ekTC}P?K2T)eeHZ){JmRn;vr|CrnE1@ZUFq5LXp!D9xFgNU!D8Z zo{L7IgUaK%<+<8~j6R!-Z(vE|0(MZjNB;rZ9cu{z8ylAfj$i={qY&IV8}Pb|Li{Gj z4#O_`WV2N`hJpKr(AZC9hK+<{8|Bm*E?FoH&)gajvyQWg!ZeUZQki%b&~&{3c^1dF!~`|;5O zr{U_0?!raipM{Uq90ET-3h1U;3xr+~hx4$Ur_z!o9D+vR3o4)2e1b1{6m>M`kT4ay z^H>=?iI-azGI?{Y!@i1v55ScU{N`PDr)*dXU}$Vhqw5`y3@&)&4DeeVi9yJ+M9vzn z`59wTJ8BGm@U5R=?p2F%%mJqW?NvaR2P1$B21dfU7>XrG9z}DPXoIZBc~|G)vaoy$ zE$|CndAw0xhB=$BsQBn3`z8V)6NWS}96*A|2qHOz#+T8ZljNuZ+i|lRQY*D#h(Fd^ zf-@GMKH+rCzH%YX{Oq|1T6~n+2yT}F^4#t-@(5;uZCEyphPDJ~!>{P$F~aCv5lMSF zeGvq^B4}r4J60B+$4&JYqdxx**c+v?k3;|j80g#TF#;Ki?SW^TmXipOK$61@0n#-L z(Z_K7n(A6UT^)x@e>{unY9=Ps9zt*|0)pc<%G~dSc?(mZaDGrEa^Uc8&dsvy^@xCR zbLAI7?MmGx)a5qe`OUs^oO+@JFLAAQRj+4hEH3T-(HWYOwNeK zW2(?M+ZF*ai`uAgG*^=org$ISEP~Y&%#Nj2p8LzIf_cxa3E-;A^M;5aa9w6k9=f z2u>#xOt*<1(*+O5)VN>@MGTQN>!VagxH(5qLc*T!?8ds>YTVyB3v=841&iwL#n#;V zM8PBb?m~bx+`vVfPmdwr_I#^7!XgngdK8v+AkjH`hoUqw(9trPY8*TL)41fEx%mEH zU4n!5Iub$7L#Z7o6Pze*8H9{9p-Wxh{)f?r@PrcnXsZ3tHkb%fNRR?vD|8l6*RmDQ zc07RFyMK*G8)xCq&3`~gp#}Qoo;@Y%NCZHJz7Y^E+Ay+cFCkbW38AQC3$#1oab>pg zJ&zUrJB%^df8USd2jBP&{^@(OaQK81;CGHfDF^O#fN~cj52KCtJPs5B#SqcVOZiVNjwq(kPNG|s>k5-C!dWge*6$lKI%)zcJ0ldAS_B9 zAp$}p3Ax{qfaik9#NZGV!$<^)KxRF-=K=R*<*oqvwjwq)yp0DtXJbz8O1!Z39&Bh{ zg+i%|**Wan1S_;vG615DE%%l0K@$*`fWK~s)FC4f;Px2=NgGr!%}qP{2-H;Xjh%h0 z^>Fyq|Axzd{4mb`(v=v8i3r+#M5&5Vhj1wMgoHwANRdYHKoVE zL#G<1ib5{L-uq9+v}u0<0rEi$_q`1E8an}J{pB_I=kMNwNi|0z-xzR%%yh*F<06hg z=mZpXVo~$~LD3(F2_nPCcDSe$BGjguX|B`}ptT`~*Xv%zjqR7<*5+Sg`NoIQkb8T? zfD_v^5ddkj4jM%vN(79FA`tgGR_TlIXdfhq^myH{ImFk#aVd^D`g7Q8+PcBL(Q{sQ`_ZOQhz@-Hob;oS)H<<5q2a3AQyqkATY6ne3b7g^V{!H z1dkIs(h!0YqflFYHNN@vnK<|V&cc^J|3jR1@^|pn|MmCy$8XQa*H66y)%ktFY=WTE zxP4AYAG>tKs3r|YnvfCA2|-bvQq(q4d!{M@TWl*~Yu#47SobKwxfBZ;XJbv>bLhx7 zjWA@kUrrJL;*1Fle~482(v#S>R8|y31|B!8Q60D^qT~a<>h9+2u(IJv)aBMC`soUN{3HS(6PoC6iMh}58EqUa(oRA`(<5}OqL4Py zhK@Ik4rRW(>1GgUuLC-^8swWSN;!jam!ghA$Tnd&!QciQ1VWG8Ab^sP+6k|Py2j|{ zG~4Uxs;e=N^;_P=eT}m)zv*f`y>%YmZhZya#dhv>!alkn+0Bvx5N#aofntyh97KHD za++Xy+6%e;Q3#J3g&# zM3#;>(sZ=S`uiYDs05EhFo6*Xgh88Qfnfv)+o&xRVYm^8s|yH}B2tv1Le&!_!BgaK zU%C1&ytZ{YX1834dm668^127n*tr3vK%MUyQKvU3i2w*ez%*6j#@R%|pENv13QHY{ z<#hvBRy|?T5138}g|wdBz-!QBw=`ihgvv-$qU(UblIYJw1XRcrSLUX?&=#Pfels3! zyNU2zip5*+#Ja{mpv0#u0ggTNlL&yy@?f!rkc0#%ia;hX1P1WRfTE6-E&}e)JqU=E z5F|^;49kX*#6=})!-!>h4b-tHr3oCPKtj>$0HwZSu8gLwjac6N1ZKBg#&k6oZ#FJP zXQ2g5h?G71NCZHoVh7q9SHTpEaKDK$o$2p~_2;0L5JdZ<2qf)=BB%^plp-ibU^$4` z#+3trY0E1Gh@c5!n9fuNBbGMGWxf#1wY1}{rq!6wU(4q={0hsrJdC=wH}|-G4tDTK z1VF`NC*IlcB!cdo1IQ0TMxGFYC;E#%fCF8cIDBv*D%V}y$^2o5K%4z8_$5=4pE4 zSK*Pm-(hXjV&uBFBH$eMJUn*3;zR(XWpsAc;mx;iMX|G`40XA+DDoF`q@NG9 zfc?-b6?P#AN?5<~32d!@7-3gC_cvh=JfJodOIS=KW!6!&7xEaLETfE4n&|<_aQ|bu znbzZc&{;rh*CssGc{A>7xfV+r?!m^^RXx9$he$s=wt(I7<;uER;2YkBtA2s{h9_XU zy7_iGK!zarOjr63^;{Gx0q%dKfB@-S06CCYuYFGh6QI3Lks!WOegt#dF2TaaJMdcF zGfY={8OX+!we*Uejjh<3eaOVR3$1uyK?}yrYpS+4AV{WhgklDs}l#1mQf1wxck-fu&n+< zl#AHx(K@V?!Co1TiETss#x{pqi;qU%@afZhskL9y6OsB$P4IwrmOl7UPoHnXA2}2pm>FKxp(pKpMQ(%Uq2i3>;Dc5+J1_K9oJ%6 zaW)neX5rE9f5rUv3o-NE^YP^7Te#183JvXVr7r_x0}fIr9w4p1TrQ%ieKS^Vd;yEz zxf_qaI};DQ{cm{W-D|OM(>$!)`UKx7uRwF>Mik5ZSw7w8$ZSI*BLbk<650TlgCg>L zbKO;FLubC#{cTQ((1Z#3Ple;PBt?%XfRbYLku=W~ppoRwKhDdX0008`NklwCDMJNLQQ!G^FO-^Eyib+Vgxq zq$^GV8d7uad7TXup!84mhL)8|=xsng9VkFrum)VJLMn;3fPAS%NJ~`ilMEK1J`IvK zs%Q($=j?(Wq3Yi;5P(FeM1x+_zv0r>6=;Fjm-44X=aN26b)W!gAju+*vYe70$+W;- zoc3%=ky4_RDSd{AZP8zV;?AWtmP)wu@I zfCA`wR(_w79?7!6MVxLorHdjhkQ5Z;TUPb$&o&1FP~5o&)1Vq$5S_>i^C;=D3oS5! zq1Nyo!Ly9Iozg)OMDnG4ssJHj_0Erh0Hn?(8cY#L0BI6A4tG68VexkA^r##Q2%6QL z&c&1qC`%}96!}cPlMiZLa=Rj{PC6bA8$6Gx<(FlrMJ~K;TCJX+RCE31}jkkS452N*dX&p-19! ztmFDr1H)m1-gZ`5BA*NyJoIb7ALDgTZ+SmN%B2d4N@oH|la*-V@d9G4x>SJSvcdc9 zEPp8K$T!+@$XEK}4=8oT5DYYh#rI41hDe)gO-hr~Bx9H~>E5E;n+hGW=ArvrGZ1Sl1+DVktn$@KeRkG6kq&T~nzO z+kRdtK-=3RJ?p0hQh@qtu(bL17WfYU00960Oz8a200006NkleJkwzjry+gp2U<5%0*wp-h_{kng>ci#8+?cH;7Zjw8h zWF|AoWHRSQ{E(MKfW?Ic0RcgfmJ(9}0Ra{Jm%f30)%*$nlkoKdbyAWP0jZwCKmIC+ znQBOz$;pAxe&xS`fQDIsK>P#wO1NJM1Oz+}6a@V14f?Mx5A46cf{NvV|L^=iz`ezi z*Do*=3l$A#4LJahv7HU0p^2T5DWkiM{XYN@K6jq4tc|I&A+fuSwXGA6J3r}vK=6F! z|5Y=Q68{H?vlTz7hTIQgQ9DOdVh%=TMrKk0SYl#gK1UNX9wjk}|7!kK;wSy->}=1& z#N_7Y#^}bzXy<6o#KO(Z&BV;g#LCL>1;OCtVe4$@&S2|A_Mb@p8;_W&ld+?Py|aa# zE%86RhDLTS&itgL|2q1g=fB2jWB)%L**g6fRbTWmxf|Luu`n_-{SW4^hJ0T%@`yT` z8amrKs@U0C3kd&X0p}DD&siBDnAJhL0@n2o?G5s6I|1qxrB>F#Uzo-^~{c8E& z929_s5V*qw0TBX`786!+2R-kENheo#In4AjW6+&{rEDrn)v~OTk`l>lY9b}?(Rf(u z!87Pt3hK`AxV&vJKQn*xFyrIs4|{jt0Ks8qKeHN`a5S!e1vwZ?|poDKy5FYSU-D*d2b z!u(hG>)&hbYJhu$ihw<#TTf=g1^|a@SoXKbll^YM>^2(PILZ9=#SFY8fN{pZca4H~ zmZSgcOC~}(RGSz$lvCQ7)GGYk7ZQ&DkL3UJkY0B!}Z?t)#2gcATidIQS5mt8}o^=$V8`u92PpxHxt`N^@`%8h`DJ2ulakc z16>!N`@06o+jlg>a(Ee(wX=X6S$1OLKb}Qvuv;3_c06#pY8=J985kUUZ%~M9O-dR)BT&CDPv=|>fPHu zM0eF14TICMX>{qB{o-hvtaL}H1{OwI1!hsq1%|Lc4x#$Awt+!|{TS5fh zrKj&2lX^KZ4kGq!jLFc|*pXKGY|)ajY=DI?FUnJ~^FsHQ%Xp1`Lu-7-T9>I~K{~*Y zYwE>@1p!|e9O@P&d5*k7jZyz?h;!qPisP<2(3k{PjNlYH!kN=)(&*8f+2mL&F~ z?6(4CBv2SYiG!(Cy`B8Sn3cMYgSelCxA*XmCar$)N=kxy@;RX*&>-&F0T%B?+I>3P zuKh?Pzq?VbO^veTZJ26owFvH?DTI_<>;ok zsha$zmo_?u!(}x%P6R@A+3CdL4~*B(uSU~0y>Cx_Kgr_aC@PwM;XT2Q_Yv1-u@c4h zlGnaqQCSR7IGX-)a;5k&fkYco<;b-geb9G?kTV_K4V4dswo>|zJ0vNAM zr&Hzn4Pw~66~^&%q~6)@!+=N}k)jG$I>ToC`b%8+Bp0H_Eb%H*!aDf_O$SsBiAZ-8 zBQZ_SV}*TjQtoN+TzkAYQLac_74t8<0rR5E3~i`(J0_F9?{MzBU)k>Sc`+IjN5!R?tmCujkoLJ$NO(U=po8EuG3 zomE;K6`jprhRAH2fZjF7xZRG$+x6@bN{6nH?=ueRTb~!i zWz+tKHp>y>E|hEAW|}$|eo1bs*L;nto%iD_C*~9{mmX@%T8{%f&fG}KtmNXDpyaP2 zGP#l&lvVax{^JxXOVf`0JW@j5j2>=|1!9U~+igwSL(6QNlyGHo(Q!y$h9o)to0nqF zjqmaD3bw0CG??6|_Vdz$3`dq<*2|=u9X13w+=2c}_2=8)*!m4ejHG>7E*bI+X_oIO zc8Md=)TGu8=^yV zChx~L>{V^O8@U=0kW7q7CmEM!&vBX4GcOHmv^t;KPOU2Jmc0!EZ8fvWgwZWSNRyp) zSPsNaP}J~8WrH;pVMez!G-N2f1uNCwlk+8x2j`ex->er0Kh)}4X zqL_$`MVvwXsTdr`E1s-aGc0Lh52UpLIy-!&IqaSzMrAv2*5}IL*Gh zPEjfLQIJ|NR2(-lYga@%G-sES#zIAiDDJ6n?FfWV~ zi(5K|>a7|O`&^8wt^*rc`5-cGky1%KfMMZx!N=#*^i)5t9EOPQb|w@kSL8zEs{E6g zb2-zu%Jl+6-Gi=XnI(FBdXge%B+~Bt9xM{aaHR!Q52LsiJM!=Z(IofWkb|M7^F;rZZj44xx z$u&dE{o`XwvvqZJ%yxacYf^U0zRJRv5pQz2%{V1%2Xyjs)U4BS3Ds+P3`c{`tv%av zP(h(Ir7oeRMOT(UNif8go~Ea2Y6wd%AtxioDZEe`9MzMZDU(~OUYrh8G@j@i z?+n`5=;G9E*jqWR-$$jK#U5Dw-5x=ZWho8i)WDw#&~cv2*0#Epo&S|5goCB{5DqOAP^x81(*t>j_?YSpW;!zMbltBhdb{`svw0nMfiZ1m=gO`u>6vFd(dJAY*Rhi+ z0kjvb_Q~Ib41y1vGyT5Bt5NDB5{xBEaAPpINDB$8p+`uF7m}-M>i9cZNJX`(jBp9~ zBB#o@S94Ds%;w?pDM_rDU?|?Rtr}roMEAnum%i9~jj!#G(`j?2g@v8#xS<7ci6_Dz zWbj4`>9~)twxGXS68f^rY?#F%3o@f^ahf4Zm$KXsl$ln(z|VcVzWzQzoG6Z;i%Y>q z2%&+`sD(V>{flV~%D}S|ry^G1SXMM^CS5XO9Cz?X(w@u++lJ{KO~!ah6G+I{zJVLn zr5R#Ym%|)DRm7H&BdZ@5;Y^a5vDR1@`6^^XDz~3y^rfoaVY>Fa1gnugs&ThUJIHNm z_KqpvU^Ao+%VCKF#o}w0*dPwUTxqq(_sWmGDUvEoaMakAX@3sS^rDQNxD??xP@#mi z*ABdJHVbDetC`wC{ z9*(NSPdtrUBUqQh?E@5OR+Y#0#*gVYit%bom@%NJhYQ1a7bj1OEUSn}1TUgF=L&qu zw+kGM;1{dyjQ|S28**o1)ON%)wO*=GQhGq)7Hi(_5{qx`+I>Er4;Nj}>CZPNWzKFe z?)_lD6z(?Lxi`kmcAt5*pGiVE5aiT3*_Ufa#Je81JxKMKg8jr?Gkz9+u$XO}gyJ6L zQjEv{R33x&SkIq7;XJztZ+HYhP?+a0C=k|4PKkte7CiDVb&M2VYaAQIG*{l9<4plr zZ6##Ex5Z)}k;-hR)3+Ty9>Cs|Zs*ej?+X?Kz0HaSxAVvskKU|&zr^&i0B&Io=u&`$ z|EJe0LMFLE3fR>q->G?iNQsXWP>a4|lkCecNaVfW@_-YXpAUujkCoKLys!QEfESY4j_zT1+4wLi04E||Fb7;zObt@S z^Ah=U!d27?tMm>1Fxr`d50!Y}H^Tic(T?)~B2HuCy%K-YG57BBhr>jRhvT?Hn6Ct$ zh?HWo5ulCCfwC~Q9BT)99WGtODUb-J;Tzm2r>t}%OM;IX2clY68h#e<<4`7+-u;lh zduyu?-q1Ej0_J)LCU_9=S+6(CV->>SAWQSG#%NOq?R0qA8gs9lM^B7AYE3Fj67(%% z(KHp7E!n!B>8)Maisd$1YVxT(Zk|oA-i?)?IW?P2LLWi$e4iQ2{C&3a0W!Z*+Uw}| zB~>~5Hn%4`w%28IFv>diB6oFzUA4q{2%xB;G`s7H!EJ*7@NDeCrnu8fW8%xwe6X_m zH&=1r%skCB*eCfMr!22fX>rKG4yzSW_&F4jFC)XJ+%o#E*&64>57s8DnmyXP6@y)VQN*I-&HVwq%@Z2qnU#s_U!jJbEcdok7^)uu)h z=qKlRlSmw)i10K7o`0mi-4~U*<{&xU)3Y~(Fh8T%?hQHFQG)r!or@l3uU9dm(B)t` z8$D8xFlE#HfG1Q4hbe#~naMt^2SRBR*%CTVn^hUuAep~u9%GXQrf7m;dvt9RHDp+* z2sitqy_o@hkkgjX%5*)GJfKSxzzUmL*6l1Q)EY5)IFcBsLD7FcK-ejz7NhOd1 z6VhD!_QYl(vGK8v<}>mJn{qTt@d8?&3iXIfmejs5ITPH(=H*Pl5X)VKF*Qy=!< zy)_s8#H(25+iFX8)kL#NKzbvqTnHbrlyOuHP1plrHOZW zq$1TR8z0iFW?pE*9F1>PiFg%q2(#KOPBS9SrrV3cWLu#};=z zi+;|>>bhd@V^pd43z%39#aO^nr?ilQRYVQ=ri;SBMUh}nio<$AE%ZnyzSK;Iy(ol} z5St*sS6=oEUGKA7rsSu=P)le52nrt77C~**3!yD8^3I30o-LL-|3w^upjl08)^>yK zQtJ77py&6#!_FBx7!e_t8A$8PH@pEYgW=--rC)SeP6u_qHKBNP7|`A`OCh4tf$Z%S zG7!=k@j4W8rbSYKnkXsE3RD>s6k?i4Ez+a2ncolx?Kf~ye(f+?ShaV_Lr@~gDshb&B1O2d64x&T$| z2?kAuY>i1`i<*uxF(t~L|1Uj?1mdiw&8|1EfW%+8df?0NRfQ?MsRB%MzdmQ>12ub?!9{Co>65XudJ=Es`$=)WGLd-Nh-5E7>@q@fb^~=3L1#(4YI}c1>@ z&($?5@EwmV8CaI78DopWsl(p{Bwt+W+uzDXRd-MEdbhTkIvEI7l4x0488CCIGZ}2K z(6%`B$@E6BsrZgVr^=qDaFrIFuq6y(jLxD*jzUi&bCk(Y6wxcMWogQ6$0h@K7Sj|a zr3pvms}Vx|P7nl>veq=DV(uRIZ$f&RM?#-QquSW0L~jzx+8aq*nxvepe*uMjHtgHn zNZISDzu9}iw5OLpcg)RY^O(c7Kx;-{M^UhI@LQFqA6Rm$gLkFwqB%eAiLS|8sO7%$&FOBSEFiX$F z{%lXSzu(HF+fgs3tQH2*--*07I-AH6ssG_^wmIDmv>JCR3`5!){tW^dJbMh-?CCH) z?D(i$T%Q+wEFX;^*V`E+gZ5#!+A1VOO?Z*6uWlQ2$mUMbsHan=rqTx%D4oE~fnK!9 z%L6=}4)>^|e5F;};wl3}fI+)fg3o7emmAH;#iL3zLJ2Cra>;ARQ)G+Zc{!~0Uu*T3 z8=VI=pZi#AV9VXBahrgldquwzE6w}d)BnU8iYjM`O!KA_>V_*D!RXiyrI>e&f;@&O z!mSAU?&fB)P$=>+STM>C7G;f8xYJ|KgRltrq)bkF&1I%`>`%Hs85_Mr5h1Cp_~aGT zC1HOp0Ld8uD&vZ4YZD5^9M3p9z8yzR=v zQ*P(gM4`JgOZGOo=E-k2q>88QGGZx^V}etnsY6N3Tvt6F_US_u$zMq&A+iql*S&$m zDBr1w_?Q%BrUc^!I+ki4f{*YR`HX8PVTnny|K><%nXVBzQP85acxV|&^ir~K{oeJ+ z=mkdEw!3W4+m&Bz>aW#@7=yQyA`s*h4I1Q>N&PwtSp+=*b>q;^3!#y8pSd#Z8IT|b zS<7M{$1MnF=^f=V#O0e-Pc!&$T;a*FCyQIE|_%{rsw)lClj3y&o2=H!R7{N%5N1c;^! ze_)1-p6(WV!i)zsDp(7OYcbU50yC(_F7FQl{%;*>0{9+*~eV|lQ^R*C#krN}( zeR*{=6%Rk%-PFg$1R@M=(hSL(oAIAZ>2C>h+?|(uey&Dk&JOCTYspmW3%@k7sOqh2 zs=flrkOQW)o3k`TTJ{T-@70;H{s4sy{iNp{D*__I+;IYUdvldn>w%57_sW=vuf>o4 zt&ClWWA1TQLZH=yOk2#^$2ED$pI7y*s#Tb`g~`T@hE@1vRSbLG-C5b8;ub}*ff5r7 zSRP^&s>=c9<>CDb5yKCcMaHgkv$rh@%2{{aTDc;Lo-f3n^g-VimWka9DgpNBQcG&%@khmPUS;j)r0MjT0R52ZSoT zl{aR+Z>{dfz~wz+y*9YeVuT!Pb53Cw0*f}Q9|Bx`oB>2S2gXhQSe}k-G&uLuHcDB2 z;jc~>iAq?;qeHkRA;KyX6jHEI>q0#32EB>Awz-d?baY-1=q{+cHiLo>A zuJ$31ir-iyKdDb)#b^{u4(!>ksFb3u0-m(tqJ&hMzHbtTaw5I>ZZ4ZMeHOPoR`FG| z8Y+8i3S?pPqJ-4)HrRdHE9Xw`2UeGBH0BM40SH966g?54lT-ANphJWAGv5kHQBf+Q znG;A6KOkygWB7sBgTo$Q3nEoxUZ@Hz+Ht@3qM)Pu9S~AB4e=ot$GyWZ$fv&>zI#R@ zC~C;718vLW)1qrJX=HZ>-nQoIxT|#bcSQW33yDrMNAx%{^lg1(H5GZ*^kR0B&{rYl zGT_(7a&~SvdG`=q<5kSTgLt3kFQsYk{7+7ui<}PnStl@)$g`qbnGD&%RO!_m$w2FA zfktij_1ER&`v7*Xt00?9U&P^+N}}PUlCR;thH=h~4PNZOu+aw^RW@5)3e;HXQ z!dh()?Nm<#^e_7|7wCb{W_I4*M!O|>N`w3k6Ak-6|G7;qqz)&7GrAc_9wd;zGkzd6 zOZJ=oCL-vPpka+)2%I@)tn>6I&kCY$b6fM(<$XGuIzLq)ooM6Fl6u|V$WLpw_2Qc6 z1-j3800%(ylE*>8I3Ti7u<-ROaj~USJo~RrVRW`q88Ra^gIjD-E&cy~uk%bbQ5F*a zjTRv-6O>LJrKF@xJ~Xb*&eUykUEi|KeR(r3!|N(^5uL-HeLRGLUkPc?CPJ}jyCg{ogK=Ti(W`I#f@YUE8JgMF9X za?+^(QJgcE8rS_Mv%gjQb2A^e9ksd0gw$7S53b4X=pe_74 zZ4XA|Uea3$wG{ga(po{$i27ihQ%u599ZB&5PDn4}{pq=BN9Ot7-x1!HDA4v78=lPS zL%&^O3?me~_oLX_6~jY4p>O5O$1!rnfD}1UT7Tfx=y)D#TZSRUb>6XZjOjSDC7J%> z|2ZSV=AX0xvG)W36-3xo+E#;z?}g46vLzjDu@&CfruD@uW)~NMmDL^NCLauFIqDq+ z3_0Qcw!Ix!xLA8=fMfDqH9hR^W&(C-F;*}QJ~MNq0_goHxI1{VG(vN``)GON1PKFL z{k@ciO96*;4gy9{u?3*HcbE7A4;kV05z57&V#2 zzixHVT?XhZyLSTPC7e=`lIjW$zO5dda*2PRD)#r*NXZ-j^Ddn#U;$53;^sVRa-%os zbwTxLw{dr5TH|#HS-P20Hg#|5UK^nutY=<6iosO0z>qYz>5pmbH#?+Io;tG72jHGa zMa@u3&jb+Xlm(YrvTDO9GAo0Rj()dA9GuhH!U^NxYbLnj;0let@<0ieO86uGhf6IV zwn&+bi?mPN+KbM#7z6CPcrd!^mM*N?yq+q&#}t+EpOs}uTaF|eKs3JR zTV40M{fpb?RU1+k`{R%p_jwq*GsGR^S}OipQo08EL6l*2`bb>Za~-o_0&&04Vj&Uc z4KM@0(Y`i1z%d=FSQv~1BhVRt|L6*M(g?yt#H>uYs2F@h+84ozkyMbYKsjE(0zaED zvI{2CabN5%eep7%_WrKl^`!4AXUmdPx*R*1QA#7G<}f$X z{FGX2Xnrs2fUeLw#V(x?%_avMEfz-zu_OYr8!k;|Ucz^2f!nEJQuH)SDlU$2sc}DH zd+g;oN}gzfNkNT8{-GhMx96hPO~3Xj#eM@bf(W(&jX2{+g6#DYD{x=UK=wI*aXuc| zQPsO%Ob2$3goaQ%@+S`xf|8h23FTl3K)Qqud~ONN^%9R^D0&GAEmnzRvM-w-*6#kt~OfrtsSN<%pY{GlE9G`!Mfi3 z-|NKhjXl##Ksg^$m{!o}%VwHK@_*ruMQCFxJ4H+s?8EfO?s380QzJ&`$x)^7Kyu=QNDKRSKAAlm|ZX> z2TqO@!R?Yk6Ml>ici-*!EhF=-9Gcg2HB^qn=hPMNv5}^#oQ4I%^|Q_%s8ztT|GDag zu}1`EYpJ-DlOmLv1f-&TlO&I-U#2Qjf4|XA?KYpBZKw4ey?0vh6X&&Fpff4~`zc*( z9L!9`@>3(F^3Pv`Y@H!d|LbGvXJ(qm*mQ5*i(|msS z9<5L97bys<&F3R#*QnEIZMP7G7b>KkUW?=U%b#I~*&h8AP9ObS9dLXdj}SFXKQ(Ft zgyhXernrsSU8joB!GyHDS(h<&%hHA@;i@O4UBl#6^X9Nq20p11DhfPcP%kx~H}wcT zUJOj_Rw$=kvw^)brDBFcZ^#Pt*p7(;1IICgFl=#{p%}5YVgP9~e4|7$95G@NlpGwT z=%&P7Y^-an)thI*_avn5$IeTgRs(@w8-80`osR-nExB)Ju>|d&p0L&9XAjr(9l?0P zryM?hrx&?8_Q$-8ZAa_;%M|Q2J13}#rakm*Cig9lsF_ld@v=HY8z`fHbCM~}5iLM7 zf8`q$#z*eb3Us^%mn$bWfvb>VjXmYJR31*Wt9c(?a(vYF!WS>WFxSOc2(vm|H`%R+ zH7vh~2!h5FN{}{kJTLm2l~TFX$&;aJ7fE?j0&1*!!*}VqNw;Da%2Yh=uz0@$+yt*V z{XX(PpFTD=2+v*g^)KhYLTIYpI-1m~IvXESl**#hY!p`W^zAXI+S$6)SNZSO{`}d^ z(0dC$<<2kxwfhz!ugRHJsTRtTwSZ=Dl2IB^^>r5cvYo7FLXD>5gQLK3c$x`D@5%CP z!+xW%_VB?^9r0e8hY|6rtecxRBOI8y%BNqh@$$9!TF~}sREyIL?i3p)n4~l1mcRt+ z=VyEjOOqt9-p$uqjQwU{ohX`3nIXEs_T0z5oE(CGKFG9tT9W)6o{*o;=5;?LXjymf zZ}NJ$Sg&?@j5=FS_k zwkQWxMW~XamnP%!kiZ1YnI$-li zh={4M^PEdT^1X-qd_u}?yXu=SRyrP-jxi*SA<9^7xIaV^ynBrkc-|bA$%M-g!R_Y5 z%D&z)NoQ1-T*p0Z4YGHvz==?Z8$5P#&P;$m#}6=R=}cI$cR7)R+l;>Eu%)(B8KjTK zn_zHl%c|U2|7D;6FRwun_9Md+Ms7O@%moKlSqM6Yx%HcIQA9vFQ=(N%WvaOLU7iOk zpZ#q#H3s5ycDL^$QrGMK=RFmX9<$%Zo=F4}U-nX<`X}YvzzbIQ`<7_;`yHJdl~Rf| z7!wX@G0&BRm{7{x3QJE6ieiFZf>NTUj)6od$86q79jHL;6Cka4QeHVE0~m zNQ=n1^v+hJcyR>Kp?)Nr*-mf>arOw7F z9Qzu0-Ojz65X-sW4w|FpFuy^b9Z4O&ajalaEHdq~L4Hq(*vH=nc5iA=$YLx znZAo?n^_9+*IG*Y{{^xDVuprbn7M){XP&mq$edKv$DL6M6!Et56HVVuj%p zpZ@zr?_2$g&$H4`%lYyKmXjf1-EMh_-nTf*vyF$h7X7DN=BUleK3=&3xT%Y3ro(tu z@Hy!PuWt0MGV+RzUx@(z!grjLz9{so-rMA$=Uyjh#vAy97rpu=bcAo6jxw?&VkHGf z%$SK5=0?A=2qihNB!7?_>G>eWpb~MWEj%Sltkwr=%WOPuxbfd~+P%$$`Pms5AWp>) z?Amv#+SM=TsOvpX$%YY56+1bP7vMNd$<$LvM%ao?*1_y-$;aC24Cay&5Fltjo0P+i z!zXg9Cm^{`6(v?cGv&|}iknOS%mMDls-0jOs4cIDxQ~#Vhy!_}B+~DWp zvM1#$odb5ZFJ7d(vqVX9?}K4Lb#NgZ+>tf>9Po%%{)EpSp+zz*2mDOz`UNK|4X-s1 zVX2_X7GwgVLxsavdL>f0lDJVE;v8VkYIgeXZs=B|z76G9x&{Uq9~nt<`MQPYKm!@K z07U#VwuKs`gO=-ESt^q1cvvPpQRd?jdFjUexZV4c{u>R{DwX5Z?8iKp^Vv=l(wG%3Y)bXkf!xg0dDSX?_MINRMC2p-niOdcG)GiY=H! z42ndRJkqE^P8w5}{d$zRS-w8HnjNy=I!k-kZq`YN*(+_?m-iIqp`(v7n$C?C93CiRC*G`hOAsdu!oOc9!O ztR;Mc6crUuTWBO%2M)LD_k|K)+zClFYXT|$175ml9awdOK`>7hoZ0Mc*c0S@m2`iF zhw@!_ZhoiZ!Y7X=%$kGFyV>zpOP4i*9=fa7dZz~WbXf59rFX}|-<)pW(be&7YHmkq zh5m>m!Hc8GwD@?I}Wi1>~7X*58NLo|_OmEs@}9lWNVY2tjD+x-%AsP9e_^jaO~29wlVAK+B) z{!$TOf}<{}=Se$Tj;4sq-lsZTrHqvn8)i~Vu+Zl?!*n7Xa6i#CXkgnlZDD^cIUGrz zR1zo%Mqd#v3Lo`EL_7E@zu47dql~)K z>9nQxZ52v{5;E&`WI>c4wDhM7Hcv;xA2(J=zGw;$xg%`TUHbe!&!&f%j0iF}Q92^@ zDkw44W!N)`zZq~Ne#^I>_f`F-o$ZHDEJcZ$$3C`5u%>P3ZfrSAGry&igg?OK>U}yw z+9M#X>i2sc?f#rF z|GeJn4GIwfou+MBdNP(7vXfkIJ?VUJ@?}!&>maw>e@rI9C6eZ7HmiRRl1S)_ zx44O`!6Bc9;F7n%?M3)$+?3!#hG)-&Yn59yUb*o^cIJFTIVU)Bw1xa|*orX%DJ5B% zPXFw(Kwko@u2Y3SbZqs`0H-3#t40^gkO^a>!(p@Wa_D!>`6zfrym6yWy{FJY0cfZY zHoebS^xm3{W2j_!Kx01k( z)3E&~RCjQ_!J`je7k8rZcS+R5i~V#-7lxEh)d-62J`N?FeWI}hgc`~~n|#WBNDg%= zFyYcjoDU}ym90_}*8)dsoWW@~Iw4`EUGN>rZSx(t?)9+!-cA*;$6WcGvhe|I$^Oje zP5m^}Z`w?lkRzK8Rs+Y{USOxtBrh&yYwk=i98^_KKD3~LWkamHnut5|EjUy6nx)$I z$2h%8j>4XhTrs^Eps!TMo<)WXHqY73CzvB(kt5xyI9BOXvhV{F)EU`yQt}u@y`=$sUPltD(| zHVNzOD&Muy3M|*fAYctfKotd*LqtpwYev}YaePghFsbd{K+;72K6u=@FD+;L@Y0{M zUVLHZ-PL@!c9jYjl9-h5tVPdbT6-bE3h=cKB(RUxLw1g8(y@HvAad*mYslF%VHPmy zcOP3bRKAyPpSO*7?)Srjz6WHVue+P?AB8`+2c{kKSBS6Pin?#^#xJ=pTbR!Eld4NP zEXCuDUK%i_-Xm#i9k5*rlaCJFr9wsSMSm0yr({Z`Q;WWd@Z8?7E5OU0O_iFzGI8Kd zuzZ^%gVh9YGb%L6lqz=$U3YAZ7B7jyW+TIWN};Wxy`2|IF5(l^_h{)6^f}O}|8i*La6=AXKGVzm8*)D6cB<9o z9=cl3QC;5#kz*VQT#~g#D)|pKH|}WlG@G|0S${ZPXBFv)Y9h+cLW6_d*~cW(HVBU# zNrV0T*HSzujNN0E#XRR)h{iXuPpf<w@6 ze5|C(S9D&~WFAMW%%uIiO{Ow>l9_c?K}9|oe(CoZ;)FP9nA;G*MJ}he@p*pCL2ABM zPzDr-4T_ht+P2l6B<;_%gt(A8*0GRgI?bnod@5yZ-9^hnPa`}Sqj!2)Zq3GT1tG+% zQJg!IjkZ)vZ*XKbdH0{*PYMF>%hL+4+pS68`Kz}FNz$skZ&%gd9)M+wkQgiDgArB)(%=>lleRNo-eq^fXIT+?@BL)sNH|4F54_Cl{Kao_FzLie|_ziR&6cczylK@6qbJM=LhyQM>)7L!m>2TnGPDkfeX+2=_V% za1n(^$%2juw}cS*T8>NgTIcNe;z4ZwfFUNaN4e?OPmtt5+8-)|3;9 ziyrFBL^MgIxuvROf6ukK>bB0^?fP1eL|>7;FQ;NPT5nLP9Z4OACYA<{XiL*XvPwZN zTW})GA3R@0C8tLy57iWG00=viI&jyjg=kq~hniR#lL$pokJc8)Km1}t zMQ6s@ifGMSZ`_Ab2S-F$@k(`xaw+JXc!Lk*X_0UgoTFLQVatx#q|rC4(%vwEjb%E9waomxUpHAzHegPnqO;BzcruswYa!5{*#7s9mRITyk1fR=78FsfgLo zcEQAJ&U+JXZu>-aaRYcGSS{Z{f{#>AQu25)%fbn^TBaTOW2YV?+JbzA)O&oPi8y0< z67#-?r7m{9Fs}M}At1-v_Hi$#`{S8kfAfX^=jy@eB>KenAYh7FvPsxJy0-ccMfsya zw<<>sqDZ5azb~z@?NsO!^iLV^w&Bsi1(#)}@+VsU?G^neH>QW{T`xiE=(f|Cw|f5O z*yeH9HB@!`)l6~;b1TV$=XAoy zACsFe6Dv$MhwF>ah(E18FBP&~f`Ip3j${&bjsq6gFZrVV1*NVI2Nh~~RPePL^zur} zzp)IDnPh2; z`>01>cJ*=7UvphAp(MF63e5+L8IG7EjlES#A1)jny^DMNyt`=9e;WP3+KNB-bVS>i zmt##YJt;JlvsU|xqSiC-t<^&09RaIU)?Otld%<|Kw4NJd zaQO8V-)I3_RmQUvWtu26Fh(R3Y$15%Euyy&<@mT*lnA=a`-AjX?zRGEnF({56XVv2 zzalT&0_(;kZL){fT5&UcXKyKeIx2vO3^7@sSyZ?3W{fhTqzOp%;X7)Iup_7t+iz#( z0o+cA2yqFeXxbtfgiM;A4-8lxpJO?^^}GBz`u(8a9vut6;v!C=>fL4zuD*k|32pyo zgV2(|Un<}^tj;9|&Ifj2|8;lHPSkg|BG(xt)*LCiK1uW=cxjpLbi8~?m|Rv_7@Dtg zUZq_(u+7J*(?#TpC|==5&=H9KGeeQ&PQsDJ=36MzQ3d7!9abJh%JN>#?Z!bZM*cbkTb~IFF*kU)@L4kZTRowd_(8pjY&D zdE+@q9wVjrfSRC2E}6KN#htTrMS3h3aNt(&r4-W$9^UsBzZmer&^J=bO)Z zTouiRvaZ zM+MX9+sb8+dkb^=*nw(0gb9|RcbGrbkSHwXWEeXC4MHak5(Pd6%WF}`p|?qa@Ae&V zgVipG!f6UsX0Xql*6DF?my_E{i7l^Uf1f^Q?E3>4d_>F}w*bUAgCKir7b@HXBo z1tCrWX~<`i2hu(%n#EXuvcp)Muzj@V!uNIhie&M%t)R-zypkkZ^4{#kyIfUX%N#b& zb}g`qWc1s{_+sJMN$3;{?HQp2fcz-Sa0=d%9mjas7Maxy1O$iT-@gD9)PyFk$(HLQ z(HWv{m#FF3ek_tUXjp0BP3t#ZafVK>-rl@4Wf-&l%qC>gay*d3>b@MyX)%-ZvdZa* z){~OhB+Z$*EsU>RY9MP%IZGjIbxvBAq)!aC!>N>t9FK2>is@44ZzvIipHtsWk~L41 zzJ&Jb_M3j0?sh)f2e2wjVd0k79XVL`7}!>Gk;Dwhh#jXOOE>;x#vYlbr|YRkEiz8f zNhGO&-`ZfASV)Wf9sR8hBEZlS)HlMk0gXhbx)<`xnOR$E1;Jh>+=;4 zv)k+IXASoT^Sh>0ntRNo>#0+m@$~P8b{XScz*dfaa?NCu%AVK2TWXeqj)V z3%U}pL^P;Oe#HI=^*)u?(i`rD*VIsLtZlAM6==MfO7ZJ(zUUOxdtJY-BlZ0T ztH)smU*DQGj%1nPeQ}Sq?s~gS#AR~>W|upBT(=fQ(^<}I;%ZGhx}sXUB2`bw)`)S; zjMiv}vff6L=nYo*zuGwqz9!sgkN@dX8b%6?PJz*>bfva`fzy~MnIKz}!Q=oVrAR$e*m#cQpvwEN2QlTRDJL-c%;v|d zSuIjv*x234UG>dF?Kz@-f9QS<-F6r^;6UKsY#Eh9&Plni*gYN1tm^=PwA~ETAvcaPr%^+%izTljOr#(d$a!c`li%s@o&`3FWB*3 zJ7&L0s3i?QLZ`f>V_+GF`?iU|7`>62bN@Pui-@_;=qUWuRWwaoq=!u@uT$9)$tkhK z%kfnG`yA4QXk{h8unoY^%%eDUZno_kBF`Gc&xO8(oc7hf+BJ9dp5u1{g}=FmlbrDr zbiw<0iVrK-Dc007;I2nFBg5up)hN!?0t-dQx<;IYJ`fCpm*$uGI5U-&(>AQnEgC zKXJpSPaEmDCoX&hDz!I*h0EfR-Hu3Gcxj~<|EX3~h z3N(&cc_n2uYe6mJ@FEfXWnhm?cEt9%8t{>!N#S5X%^(3QLeHYtvuM3)7Xe8nncWl| zdi-+1|Lf&zdFyj`pHXAtKlNr0awvA+@rS)UwBK$}nTJ zjImfRsX8VWmIiL;BgyZT#d5WQZNnHYmBl^^)FCrm z(5O%l$ivHWV_Tl2ua?-vqioriQO(EdXwgkSh9XvNcGPMwXD<<`-bhYUX%L&h3S0#t zgBTTQ-vAQsmy096yxx?zQj?5c@3INR)K?V6a;^5wKNp&=oy^RY9qSGcY0NyLkJb&= zE(`9naCcxEW}vkRNMNV`K zLFKjG0UAnf9HCXns0mFbVWIE6ke()Fk#CSjV2Y-JMir1#ekdoKb2z+=5*tj72JaX7 zKRpQB%50urD&gfos;mPTY#hRjMz>y@wydv`OL!B?(}jWFEQey~-Qs z)3F+(*%>-32;AD5lC9T21q5U+75>=3inrDgvm~~2RtLn1HGh`mA{F4DvfS?D7vKey zyJ-GE(A}_&z90J1o6E6$=H~LxKnIw&kcx3C$^BQlL4hl7O+|~HNd;7j_|~~$L_RWy zi_0Q#Cd+sAy?Kw{7C^r>cP|`SB8a~%9!)JupY{d*R0C>MY3xT2;b@F7GY##hMDd_F zDdX<4%Z86bh>ZjCM3wb^II=DZn}mm5SzUVFbpC$#eI230Xr}%tB%m83e%~unATQU; zpfP*P+hs5FC``Iu2mgX<9!Tg4L~21kv(nn(?$0P~9dPI;ofGzZ)o~l*_7l6|jKzPP ziU%iDC;y3#gUj#K1-z{^?iNo6b5m7}cHpM$B0xdawp`60u2ul8cdN#sPX<4Xw0;qs_ zhIK++D5bNCO!5{F)WV}cvq6|!CbbDDO*;)_7%p`$dUAXj80L8{zqa%+moOeAQKY?; zCM>~sIG4mYp^lQ5Hhe_b3Io7bOH}Cw;G;?O5c+@yULmPrs z;Hk=?-Dw==Ti6dwr~bsAQ5vzq`1owVJ3%--l6Tu4Avw{%(e2Mk9N=H1Hk)guHB+`I_IC*-S?JXdDVk7-k-1rl3L}E%?uI=|Ddig zNbc9^RqWPG$`G)y&hm(bs3ejgD4G%xB+Q7I^0R$QFp_ogIdae?E7q;{V|V*6VR^S4 z!SQ^2p?@E`t1W-gtglWjrnViCv#a_)??``*Pb@iBICX>wmeEgq{-cDOkgm+aPtnCo z=-dPJ$Q=!>Bg(Q0VtK)A(_hMKs8A%v5tK#8#5Xn@^gUFpJPUQ=iw*!f~hm9U;{LzNBKGdNYv zP1NA+GGm4;3*8sd?`QzCau!g5R`gZeetk~y-LDU|a&_0U%jy!2u-qrh$Y%`V7nYbt zg2~Ioy62&03Y#Wv+b-AwWf<*=L)IXJe4fJ9!f2mV4iHUUyw zJ~#s)Zj5c&2AazTW^ z`Z9sCj$np@JyVQ4O0e8~L?)}9+XIL>GulSQpiB?L4^QQqw$BNYZW}a1UFs1f#+**V zlFP<+Q2^X1E{HY*Y9oQqmSzyCqw*cG zT(^&U7>v)6cwKw>tkOzS@pvt5P}rcGJr2kyC2AxWGtEX2N@>c5zr**5RTPJZNbiVb z$9LMeV9y*+x5LVnq1-o|Q>Zyy+r0F#a!J#YFOm0a58!z+Y(=r;A~(Isrx-{<1W8zA zgPe>alC8x@yR4pdP@bI<^6CfwRN^L2jH+_mDKE#Nh7}#Hvo-+9RW~|W5W~s#I+O2j znUQh%Em$H^)v_$}kSwm*IUhb|$Ru55%@xU7fB&JVBsgeUF)b&^%;{}`JCe5sld2k< z8gNBGXTq!TVPp4n^dnqTFuOLPx!&ZnegjJ0D%7LWdPyE#nB?gI12IYi#*T-yj}U6y zqH{PS+Dhl70QkylJy&R?^RXjU2F!zV=F{;oNi1Yuz4w#5ky_7(TX}Y6`c8i1%aYxNw1 z*RF4PK*pbdad*r!Zy+(=zvv6^ajAw?8| zG1I}TF8(Rw2N6NU3mWPWwnf#pr9IdT5pkWaP`viuM*hz;F_Pnraay(6(1(CEjBmMs z4^R!XwKIUgv~}=K3^hq|vE&(COhQ5Iu0Jt&mkFI_W`cACN5x#Oo?mj3Z*sag;$t)l z%R@FmM?BpdC)UaQ^j@<&RUu0w9!@>0Aw1XhEI56idgHVemkN6r2fGbro{$KBLoAU_ z+P(EYfx~5l<3L60WABLtn>?sj#~H@RcU!H8&LhI_K1!|x1l1~6U@Fq08%jiU8&_$H zmdvN6Bsm@{l)M2vuoMpUVkVArQ(+3$YQ8ap+?;U>MimZKd!ttEB0W(d7iW}mUv7(_-1frB$=6o-u*I{rrJiu?Vm%*LR}lbq8M%lU$ z8sS=&>#W0pYaoUSfV@wxcvl>@acK7Cavr684OTj)F^r`ner}Y_(J3B1IkX){SMePy z!p?f@_b&>_h#r(4Bcj$b%a;TXT zQhxa}J!S^^0zKzI@724zsdqvar!0RS>y|-YHje`R&z&vI(7ANGqC$XNo2a#LKeLK* zs6Yfdc>YQ!*T;%GPn={7h0D0Es4UqrY?Iesd{KUqM<5Y#w(psC)f`p3W5fn+dXaq)3yXTy-D`V$avdQvk^^8J+GOQ6yS{SQ)u)b!x!sy^=0 z_zwFFzIFlNicCh9I(3mqNA@@y^G4QryK?&x+0nz#*Aig?HB$J03;PU5vMs8j{kw&w zFu=212?nN=G$!I3q#2?+z+YdmNK4Q3-KmnIFcE4HgsPP(6F2M8gUCdVyu?U`i06+{_@f(;kUk>Hm zqxwPTYWIC+nNATnCWVaatOAAiku)F6oorOtGKFM6ETZ>I4~kbm^o3>Kll{T|`gh}= z<-WEj*lX=-e4uwRSR=%6I9M=I#r@{OV9NQHNKT5EyGd2-&zR7LMmE2RC16!y8*XVP zy&?B`u3$AUc%Oe+;rG?>@e6*F;u=$Fik4Rr?!9jp)z@yTUbxwV!6Tzccdrglk4mFY zdV5bnII7e;ta-Tog6c4>vYq}{_5)Y76e@_^d6%Z6r+2rM(gS+fD4babqP4Wm_|DqAVH~iz8;rQ~ z;-vdXC5og!AcQ>w&(-WB6r5Te>PrwJ5#g}w+k=Th!JFmC(fip28Qg9Ui<8pIA#IK zm7a%z`m0Cqynl@j423G3&i;M)xx=!4LI2XpGs*QwJZ8~pmBmhZKY~5LTh}=yd-9;* zK0E+7*V!B}B0P~*G(PtmmCY-vUkqjyH?!gLRWTa6Y!OCsFvOPfEH=sFjOd1#hL z(_&U^#j~@JA^&y2hNJpx&sGOA!c}!AV+n12>N8gxaxxQEqZBSI?`Q87@=DbUZ+Lp6 zP=sqYO@cl3)K947@vYW!|895Z<^#86n74;cMBhr+Y5fs4ED`g88Tlmj5WhQjf;}~B zRv55<;67#LKlJ{!rLgJA$bh9dVb^~OOe?fT?TsY6V56W#?uegKMSYQM>oi@0bEI()_(nlKdw6MIi2e<^#oYUdHCAE0G<37dF^ZgMfdCAib>hf=j%-m zTU{R0FygaCl@M1i3(-e>2^+DIE-xKjZuf3d2)=tQx4MEoaKCCU!8c(o+)nPQ_~)AF z^OFHA0NLhG4+-PmjN>t<#v59;Y1^u7Zlr1#%k1ST3VUTJZbWi|rey1juxvFbce!(| zPXaKN-+oflRQ#)jx1MJ(23CpH84^sHwOGcNt{sGd4mQ2Sk?3{rN&SpB`%E3<=U=N# zevfy3e~&rvd)bVrSN0_f6!F*ZyqVR_)E2zknUcl zg;ocL`5#-ALfneIJo?YS0OkLO{r^MwKm8JV|B{VcG?$nTeC7X#q}Ei`Q$Z-biuoUg CHr$f{ literal 26212 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 G#{CZ!aBIK- diff --git a/assets/android/mipmap-xxhdpi/ic_launcher_round.png b/assets/android/mipmap-xxhdpi/ic_launcher_round.png index 749d072425c0e2d064a765eef3de63bd9364da2b..df92e92b1aeeba03c4bb24491b955ac952f111e5 100644 GIT binary patch literal 7174 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 literal 14106 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 RgMWU`RF+qltCKO0{4dd@3)27q literal 14708 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Ⓡ(Wad+F}l!#?h>57nE0U~J~lr*h`=cT5kQsDPop?|8%C79)E1 z;w@c^R5gy)cnzqE~#F(G9y=_hWWn>-nd??i1_2 z?(0;(0ei8&fvfYL@AFVs`@Pen_xSkh@}Q0ZHAc?1{^AGejkDb(<2kOubHx&~qS@D< z)*fN!8@Cr(8p`G0K18t^MGX_rS6ur{#=+P_7X z&MaN}e`J5b&jNd%{~udGoA+q_1Is%FVB_sL8uvh=H3Y?kr;Yi$svKUzoxzQ1{$AfsK8A~KvTR2a{)zoKNrS$Wo)$=i zdy@2NyYrC4?Q^#uIgBas-^t)uR5`@k0Bfq@E>8Gcae#dNs=p){O@I@K$|b2Gx>*hyLYJfOol0b>$(7nmIl z^5-H;ghA)(?CpKz@CyFm-s}_@BlJkBw6~v?Lmnt!4H?f$Q+V*hL?VT`$?(XnQgb^Z zwBc(d_!DH2(xq|oe_U^ZlNKIC8O4a~i`syDsPeKFl>Fy3zT5xEW=PTjzZfQfUTV39 zo8y{Z7fQy>Isezc2yuX6Lv*0@eYKRVbWABWLglDQ_NsA!NyI$QKPOSanEo`pq%l}f zPbBHL1kG)eMpPg;otGAQh7Cgt5oSD~pUqK#u1pNq9A}r~5AUfEfZv1uLBufE5Jwf@ zWty9QBg7YoEQ+U_8F`%b(7{$n+L6i8tMJ9rfMn5p=o}&SvSu@RduRjLr&7A{#{yVC zVqB!|8Iw_jIGphZ_qN@|`vKdOcmv(S9JNdEx*ktZ7Cu)JvDjvoKk$wr#~)!4q{W^? zNNuGqNuCD|T-KIM?xfn_2ncu>YBJUj4bnxrkxrXICCZt6vLhCuqK zI5Jso>m+?@$k}1(%H8(Kn56|<5{?{4tbvkJ#*!pm`5mFfV)pA@q z;EE*?Lxw%b_4?93QDCAep>Pa4V#f$?2HdwG;hZL)3I07;w zlfW;#{?^()94^OkG8vV{Ig!%GXcXv&jImOT6g&fRMG=b~(C;qkdn`jck;3d`;gD#I z5e=Oth=Yl7&ZAcqLI%T1=BWm9C-Jaqer7`>rDk65V+61{4RTTB9j(>n{@pZk=v1HHeyh2WHQYC$$jJS?F*mj05{4*Eo2 zSN2&^XIIi>+_Fr^6_M?7<}tntrfeuAiP%TQFNi&d2M9Q8Oxk!#`v4Fb!q0MvJ^de$ zrdF=%pQD9Y(A<9z(VY9earG4aAVu=C7jd!q|JmwB4i6Wi?@0iF`}_P&%Zvx@B;>z< a2n(Q9qv^hEphN#)0cfh~s#Ggk2LB(|X`Ltl diff --git a/assets/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/assets/android/mipmap-xxxhdpi/ic_launcher_foreground.png index 6cc901eb3a6d3f3657b25b4a5010b9608539378b..dbb459590a6e85af3c95e8c9c06b62495ec524da 100644 GIT binary patch literal 36522 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 RgMWU`RF+qltCKO0{4dd@3)27q literal 22325 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 C`gbM( diff --git a/assets/android/playstore-icon.png b/assets/android/playstore-icon.png index e5dd4a6b88aba886c5895f6710e8503207be4666..130efa790b62916319a51a8b5202503a4b98ab21 100644 GIT binary patch literal 47399 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�UjA`I(3}kWFb8980(o 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 HFb?`ZF+9bG literal 108009 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

J^5I!=VH?HPjpJ)Qy{fkBP^ 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 IOBe_L54twQ@c;k- diff --git a/assets/ios/AppIcon.appiconset/Icon-App-76x76@1x.png b/assets/ios/AppIcon.appiconset/Icon-App-76x76@1x.png index 533176028f580c0e573f5caa9a7992d43c456698..46ea3f49e0ae1c106f475218b66f071b477e71ef 100644 GIT binary patch literal 3235 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 literal 4280 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 aR09CDdnd*9q1G(`0000w diff --git a/assets/ios/AppIcon.appiconset/Icon-App-76x76@2x.png b/assets/ios/AppIcon.appiconset/Icon-App-76x76@2x.png index 082be8c5020bf53a36877c6e5fa0ccf3e2d41f99..2067acf4fe3b42a3be0120fc1e24cfd608e85347 100644 GIT binary patch literal 7772 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 DGNZg1bAE0>$0k-Q67u6ev&#Ew{{0HCHQ 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

    q$ z9LKw8M$N6C2^UK(6@5(uHC}Tyhv99!jy8r}&SwCF85Suc3manP9{$#M&1#*Jf;HUR zl-?u`R)vTSX5QOZ_DinO6wI6(2}S9m+)N8ENky|ypZyv*V}z|o^3mY(w77yJ|6^R@ z`yfseE>1n6ds+pEYP5&pA2+my+)>?ls6J$wEPBsVB4h=^?@q8YlejnC(ou0E#A~Cb z*tsm7l>JZk`znC+^s#syE|tUSZP*fHBn3`$_KCwaosM0-)p+ zAw;m!0I4{Y@#j51?Go%qi1mPpdG-KC1=d?E=UBff-xAD%gEBdC>Ka*B#+#wZ`UD~7 zOGg=vN-yVZZHR-Wz~l_mKH7g2jiD+P^|R8i@qe4^b{a}CA_A*Cf34`R9dB_O@9>xgv8eq1f%71zw zFK+qT5d6GhIAHf%XNwmcii0G2WJ7TaJHpYjHA7mox}!14;$w7)%y$;XoF|3L<~Emg zz`SjR@$Tioq@8h^ES``lW}SuIYs0WphKhC{P4&j|h~xK0%h^FF+zRUWw$C5=H{*Acp?ja;iw4sw{#BQrXKSsVl0aGH z&NE}rU*C`9fZzCiVopyRP76wYBdfp1-Vd~X69=9f%_qKc1?mXhRP+&mSl>cFelwjD zzh^P6qWGU{om2Py-UJ5sy(I#HdOKB*mm1rBfrfnt4|U7fH>&&7b^d9F9{VBB6VZ+a zU84v=RX*kCJfQw<0}@;pe)H2?%M8aX8aM zwo*G|8C>gcugB(lOc>)Az2c;2_Zd%XY?i<>K&UPQr-#^Y2+z|K9DG+z;7rbSI ziiI9A4sY@%Oh4p%G3>@1LuDwYh>;$Hv#}OiCX+GYCPsaL^JqvmZtXu$UNMLD#Q^ww zfUuAHI0O8zcSSJ#o5(-&h;ef!WS*JN!fWd%p_?QDwuqMg_@w4kmmU4{RdZ*QqkCSO z!SEkADup&H#C;NA5>}0{*!<*n*1=(z@BD1EFN!wf(&6i5C<;_cqF%#jhTnvTN$xHv zJkMkVayVGy;`>Nb@`WAj95qj^6j^4_6hxJXTGM*5Q=_Vx;Y_v`b!7IFd55f