CinePlex/_locales/en/messages.json

441 lines
36 KiB
JSON
Raw Normal View History

2025-07-02 14:16:25 +02:00
{
"appName": { "message": "CinePlex" },
2025-07-07 17:29:43 +02:00
"appDescription": { "message": "Scans Plex servers to find content and displays it in the interface" },
2025-07-30 20:47:55 +02:00
"appTagline": { "message": "Movies, Series, and Music" },
"appLocaleCode": { "message": "en" },
2025-07-07 17:29:43 +02:00
"toggleNavigation": { "message": "Toggle Navigation" },
2025-07-30 20:47:55 +02:00
"searchPlaceholder": { "message": "Search movies or series..." },
2025-07-07 17:29:43 +02:00
"openMusicPlayer": { "message": "Open Music Player" },
"settings": { "message": "Settings" },
"navMovies": { "message": "Movies" },
2025-07-02 14:16:25 +02:00
"navSeries": { "message": "Series" },
2025-07-25 23:57:03 +02:00
"navProviders": { "message": "Providers" },
2025-07-07 17:29:43 +02:00
"navPhotos": { "message": "Photos" },
"navStats": { "message": "Statistics" },
"navFavorites": { "message": "Favorites" },
"navHistory": { "message": "History" },
"navRecommendations": { "message": "Recommendations" },
"navMusic": { "message": "Music" },
2025-07-30 20:47:55 +02:00
"navM3uGenerator": { "message": "M3U Generator" },
2025-07-13 11:14:42 +02:00
"heroWelcome": { "message": "" },
2025-07-07 17:29:43 +02:00
"heroSubtitle": { "message": "Explore thousands of movies and series." },
"addStream": { "message": "Add Stream" },
2025-07-30 20:47:55 +02:00
"moreInfo": { "message": "More Information" },
2025-07-07 17:29:43 +02:00
"popularMovies": { "message": "Popular Movies" },
"allGenres": { "message": "All Genres" },
"allYears": { "message": "All Years" },
"sortPopular": { "message": "Most Popular" },
"sortTopRated": { "message": "Top Rated" },
"sortRecent": { "message": "Most Recent" },
"loadMore": { "message": "Load More" },
"photosBreadcrumbHome": { "message": "Albums" },
"selectServer": { "message": "Select a server" },
"loading": { "message": "Loading..." },
2025-07-26 18:53:03 +02:00
"loadingLibraries": { "message": "Loading libraries..." },
2025-07-07 17:29:43 +02:00
"photosEmptyState": { "message": "No albums or photos found." },
2025-07-30 20:47:55 +02:00
"photosEmptyStateSub": { "message": "Please select a server or ensure you have a photo library in Plex." },
2025-07-07 17:29:43 +02:00
"statsTitle": { "message": "Library Statistics" },
"statsAllTokens": { "message": "All Tokens" },
"statsAnalyzing": { "message": "Analyzing your library..." },
"statsActiveTokens": { "message": "Active Tokens" },
"statsServersFound": { "message": "Servers Found" },
"statsUniqueMovies": { "message": "Unique Movies" },
"statsUniqueSeries": { "message": "Unique Series" },
"statsUniqueArtists": { "message": "Unique Artists" },
2025-07-30 20:47:55 +02:00
"statsTokenServers": { "message": "Token Servers" },
2025-07-07 17:29:43 +02:00
"statsChartMoviesByGenre": { "message": "Content by Genre (Movies)" },
"statsChartSeriesByGenre": { "message": "Content by Genre (Series)" },
"statsChartByDecade": { "message": "Content by Decade" },
2025-07-30 20:47:55 +02:00
"recommendationsTitle": { "message": "Recommendations for you" },
2025-07-07 17:29:43 +02:00
"historyTitle": { "message": "Viewing History" },
"clearHistory": { "message": "Clear All" },
"consoleTitle": { "message": "Plex Scan Console" },
"footerCredit": { "message": "An interface for your Plex universe." },
"closeTrailer": { "message": "Close trailer" },
"close": { "message": "Close" },
"photoViewer": { "message": "Photo Viewer" },
"previous": { "message": "Previous" },
"next": { "message": "Next" },
"notificationTemplateText": { "message": "Notification" },
"settingsTitleFull": { "message": "Settings and Configuration" },
2025-07-02 14:16:25 +02:00
"settingsTabGeneral": { "message": "General" },
"settingsTabPlex": { "message": "Plex" },
"settingsTabJellyfin": { "message": "Jellyfin" },
2025-07-07 17:29:43 +02:00
"settingsTabPhpGen": { "message": "PHP Generator" },
"settingsTabData": { "message": "Data" },
2025-07-30 20:47:55 +02:00
"settingsApiServer": { "message": "API and Server Settings" },
2025-07-07 17:29:43 +02:00
"settingsTmdbApiLabel": { "message": "TMDB API Key (Optional)" },
2025-07-30 20:47:55 +02:00
"settingsTmdbApiPlaceholder": { "message": "Default key will be used if left blank" },
"settingsGoogleApiLabel": { "message": "Google Gemini API Key (Optional)" },
"settingsGoogleApiPlaceholder": { "message": "Required to use AI assistant" },
"settingsRegionLabel": { "message": "Region for content discovery" },
"allRegions": { "message": "All Regions" },
2025-07-07 17:29:43 +02:00
"settingsPhpUrlLabel": { "message": "Server URL for Adding Streams" },
"settingsPhpUrlPlaceholder": { "message": "https://your-server.com/path/to/script.php" },
"settingsInterface": { "message": "Interface" },
"settingsLightTheme": { "message": "Light Mode" },
"settingsShowHero": { "message": "Show 'Hero' welcome section" },
2025-07-30 20:47:55 +02:00
"settingsScanContent": { "message": "Content Scan" },
"settingsScanDesc": { "message": "Select what to scan and click the button." },
2025-07-07 17:29:43 +02:00
"settingsScanMovies": { "message": "Movies" },
2025-07-02 14:16:25 +02:00
"settingsScanShows": { "message": "Series" },
2025-07-07 17:29:43 +02:00
"settingsScanArtists": { "message": "Music" },
"settingsScanPhotos": { "message": "Photos" },
"settingsSelectAll": { "message": "Select All" },
"settingsStartScan": { "message": "Start Scan" },
"settingsPlexTokens": { "message": "Plex Tokens" },
"settingsPlexTokensDesc": { "message": "Edit the list of Plex tokens (JSON format)." },
"settingsSaveTokens": { "message": "Save Tokens" },
2025-07-30 20:47:55 +02:00
"settingsJellyfinTitle": { "message": "Jellyfin Configuration" },
"settingsJellyfinDesc": { "message": "Add your Jellyfin server details to scan its content." },
"jellyfinUrlLabel": { "message": "Jellyfin Server URL" },
"jellyfinUserLabel": { "message": "Username" },
"jellyfinPassLabel": { "message": "Password" },
"jellyfinConnectAndScan": { "message": "Connect and Scan" },
2025-07-30 20:47:55 +02:00
"settingsPhpGenTitle": { "message": "PHP Script Generator for Server" },
2025-07-07 17:29:43 +02:00
"settingsPhpFileOptions": { "message": "File Options" },
2025-07-30 20:47:55 +02:00
"settingsPhpSavePathLabel": { "message": "Server Save Path" },
2025-07-07 17:29:43 +02:00
"settingsPhpSavePathPlaceholder": { "message": "Ex: /var/www/html/lists (blank for same folder)" },
2025-07-30 20:47:55 +02:00
"settingsPhpFilenameLabel": { "message": "File Name" },
2025-07-07 17:29:43 +02:00
"settingsPhpFileAction": { "message": "File Action" },
2025-07-30 20:47:55 +02:00
"settingsPhpActionAppend": { "message": "Append to file (cumulative)" },
"settingsPhpActionOverwrite": { "message": "Overwrite file (start fresh)" },
2025-07-07 17:29:43 +02:00
"settingsPhpSecurity": { "message": "Security (Optional)" },
"settingsPhpUseSecretKey": { "message": "Use secret key (Recommended)" },
"settingsPhpSecretKeyPlaceholder": { "message": "Enter a secure secret key" },
"settingsPhpGeneratedCode": { "message": "Generated Code" },
2025-07-30 20:47:55 +02:00
"settingsPhpGeneratedPlaceholder": { "message": "Generated PHP code will appear here." },
2025-07-07 17:29:43 +02:00
"settingsGenerateScript": { "message": "Generate Script" },
"settingsCopyScript": { "message": "Copy Script" },
"settingsDataManagement": { "message": "Local Database Management" },
"settingsImportDb": { "message": "Import DB from File" },
"settingsExportDb": { "message": "Export DB to File" },
"settingsClearContent": { "message": "Clear Local Content Data" },
"settingsClearContentDesc": { "message": "This action will delete movies, series, and music from the local database, but will not affect your favorites or settings." },
"settingsClose": { "message": "Close" },
"settingsSave": { "message": "Save Settings" },
"musicSidenavTitle": { "message": "Plex Music" },
"musicAllServers": { "message": "All Servers" },
"musicSearchArtistPlaceholder": { "message": "Search artist..." },
2025-07-30 20:47:55 +02:00
"musicSearchDiscographyPlaceholder": { "message": "Search discography..." },
2025-07-07 17:29:43 +02:00
"musicNothingPlaying": { "message": "Nothing playing" },
"musicSelectSong": { "message": "Select a song" },
"musicToStart": { "message": "to start playing" },
"miniplayerDownloadSong": { "message": "Download song" },
2025-07-30 20:47:55 +02:00
"miniplayerDownloadAlbum": { "message": "Download album M3U" },
2025-07-07 17:29:43 +02:00
"miniplayerVolume": { "message": "Volume" },
"miniplayerShuffle": { "message": "Shuffle" },
"miniplayerEqualizer": { "message": "Equalizer" },
"miniplayerOpenList": { "message": "Open list" },
"eqTitle": { "message": "Graphic Equalizer" },
"eqPresetsLabel": { "message": "Presets" },
"eqPresetFlat": { "message": "Flat" },
2025-07-02 14:16:25 +02:00
"eqPresetRock": { "message": "Rock" },
"eqPresetPop": { "message": "Pop" },
"eqPresetJazz": { "message": "Jazz" },
2025-07-07 17:29:43 +02:00
"eqPresetClassical": { "message": "Classical" },
"eqPresetBassBoost": { "message": "Bass Boost" },
2025-07-30 20:47:55 +02:00
"eqPreampLabel": { "message": "Preamp" },
2025-07-07 17:29:43 +02:00
"infoModalTitle": { "message": "Information" },
"infoModalFieldTitle": { "message": "Title:" },
"infoModalFieldArtist": { "message": "Artist:" },
"infoModalFieldAlbum": { "message": "Album:" },
"infoModalFieldSong": { "message": "Song:" },
"infoModalFieldYear": { "message": "Year:" },
"infoModalFieldGenre": { "message": "Genre:" },
"lang_en": { "message": "English" },
"lang_es": { "message": "Spanish" },
"lang_fr": { "message": "French" },
"lang_de": { "message": "German" },
"lang_it": { "message": "Italian" },
"lang_pt": { "message": "Portuguese" },
"essentialFeaturesNotSupported": { "message": "Your browser does not support essential features." },
2025-07-30 20:47:55 +02:00
"dbAccessError": { "message": "Error accessing local database." },
"dbUpdateNeeded": { "message": "Database needs updating, please reload the page." },
"dbBlocked": { "message": "Please close other tabs of this app to continue." },
2025-07-07 17:29:43 +02:00
"deletingContentData": { "message": "Deleting local content data..." },
"noContentDataToDelete": { "message": "No content data to delete." },
"contentDataDeleted": { "message": "Content data deleted from IndexedDB." },
"errorDeletingData": { "message": "Error deleting data: $message$", "placeholders": { "message": { "content": "$1" } } },
"aceEditorNotAvailable": { "message": "Text editor not available." },
2025-07-30 20:47:55 +02:00
"errorLoadingTokens": { "message": "Error loading tokens for editing." },
2025-07-07 17:29:43 +02:00
"errorLoadingTokensMessage": { "message": "Error loading tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"aceEditorNotAvailableToSave": { "message": "Editor not available to save." },
2025-07-07 17:29:43 +02:00
"invalidJsonFormat": { "message": "Invalid JSON format. Must be { \"tokens\": [...] }" },
"tokensSaved": { "message": "Tokens saved successfully." },
"errorSavingTokens": { "message": "Error saving tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
"dbNotAvailable": { "message": "IndexedDB is not available." },
"dbExported": { "message": "Database exported successfully." },
"errorExportingDb": { "message": "Error exporting database: $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"invalidJsonFile": { "message": "File does not contain a valid JSON object." },
"noDataToImport": { "message": "File contains no data for current DB sections." },
2025-07-07 17:29:43 +02:00
"dbImported": { "message": "Database imported successfully." },
"errorImportingDb": { "message": "Error importing database: $message$", "placeholders": { "message": { "content": "$1" } } },
"updatingView": { "message": "Updating view with new data..." },
"confirmClearContent": { "message": "Are you sure you want to delete local content data (Movies, Series, Music, etc.)? Favorites and Settings will NOT be deleted." },
"trailerNotFound": { "message": "No trailer found for this title." },
2025-07-30 20:47:55 +02:00
"confirmClearHistory": { "message": "Are you sure you want to clear all your viewing history? This action cannot be undone." },
2025-07-07 17:29:43 +02:00
"historyCleared": { "message": "Viewing history cleared." },
"historyItemDeleted": { "message": "Item deleted from history." },
2025-07-30 20:47:55 +02:00
"errorGeneratingScript": { "message": "First generate a script to copy it." },
2025-07-07 17:29:43 +02:00
"scriptCopied": { "message": "PHP script copied to clipboard." },
"errorCopyingScript": { "message": "Error copying script." },
"scriptGenerated": { "message": "PHP script generated." },
"errorLoadingAlbum": { "message": "Error loading album: $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"noPhotoServerSelected": { "message": "Error: No photo server selected." },
2025-07-07 17:29:43 +02:00
"loadingGenres": { "message": "Loading genres..." },
"errorLoadingGenres": { "message": "Error loading" },
"noContentFound": { "message": "No results found." },
"couldNotLoadContent": { "message": "Could not load content." },
"noFavorites": { "message": "You don't have any favorites yet." },
"errorLoadingFavorites": { "message": "Error loading favorites." },
"historyEmpty": { "message": "Your history is empty." },
"historyEmptySub": { "message": "Browse and watch content for it to appear here." },
"errorGeneratingRecommendations": { "message": "Error generating recommendations." },
"noRecommendations": { "message": "We need to know you better to give you recommendations!" },
"errorGeneratingStats": { "message": "Error generating statistics." },
"noServersForToken": { "message": "No associated servers found for this token." },
2025-07-30 20:47:55 +02:00
"searchingActorContent": { "message": "Searching content for $actorName$", "placeholders": { "actorName": { "content": "$1" } } },
2025-07-07 17:29:43 +02:00
"errorLoadingActorContent": { "message": "Could not load content for $actorName$.", "placeholders": { "actorName": { "content": "$1" } } },
"errorAddingStream": { "message": "Error adding stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"phpUrlNotConfigured": { "message": "PHP server URL is not configured. Please configure it in Settings." },
"searchingStreams": { "message": "Searching streams for \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"sendingStreams": { "message": "Sending $count$ stream(s) to server...", "placeholders": { "count": { "content": "$1" } } },
2025-07-07 17:29:43 +02:00
"streamAddedSuccess": { "message": "Stream(s) added successfully." },
2025-07-30 20:47:55 +02:00
"generatingM3U": { "message": "Generating M3U for \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
2025-07-25 23:57:03 +02:00
"m3uDownloaded": { "message": "\"$title$\" downloaded.", "placeholders": { "title": { "content": "$1" } } },
2025-07-07 17:29:43 +02:00
"errorGeneratingM3U": { "message": "Error generating M3U: $message$", "placeholders": { "message": { "content": "$1" } } },
"settingsSavedSuccess": { "message": "Settings saved successfully." },
"errorSavingSettings": { "message": "Error saving settings to the database." },
"languageChangeReload": { "message": "Language changed. The application will now reload." },
"addedToFavorites": { "message": "Added to favorites." },
"removedFromFavorites": { "message": "Removed from favorites." },
"plexScanInProgress": { "message": "Plex scan is already in progress." },
"plexScanStarting": { "message": "Starting Plex scan..." },
"noPlexTokens": { "message": "No Plex tokens configured." },
"clearingSections": { "message": "Clearing sections: $sections$", "placeholders": { "sections": { "content": "$1" } } },
"initialScanPhaseComplete": { "message": "Initial scan phase completed." },
"retryPhaseFinished": { "message": "Retry phase finished." },
2025-07-30 20:47:55 +02:00
"plexScanFinished": { "message": "Scan finished. Updating content..." },
2025-07-07 17:29:43 +02:00
"scanCancelled": { "message": "Scan cancelled by user." },
"scanCancelledInfo": { "message": "Scan cancelled." },
"errorInitializingMusicPlayer": { "message": "Error initializing music player." },
"criticalErrorLoadingMusic": { "message": "Critical error loading music data." },
"errorLoadingArtists": { "message": "Error loading artists." },
2025-07-30 20:47:55 +02:00
"dbUnavailableError": { "message": "Error: Database unavailable." },
2025-07-07 17:29:43 +02:00
"updatingMusicData": { "message": "Updating music data..." },
"musicDataUpdated": { "message": "Music data updated." },
2025-07-30 20:47:55 +02:00
"errorFetchingArtistSongs": { "message": "Error fetching artist songs." },
2025-07-07 17:29:43 +02:00
"errorLoadingSongs": { "message": "Error loading songs." },
"noArtistsFound": { "message": "No artists found." },
"shuffleOn": { "message": "Shuffle mode enabled." },
"shuffleOff": { "message": "Shuffle mode disabled." },
"playbackError": { "message": "Playback error" },
2025-07-02 14:16:25 +02:00
"errorLabel": { "message": "Error" },
2025-07-07 17:29:43 +02:00
"reloadingPage": { "message": "Reloading page..." },
"viewed": { "message": "Viewed" },
2025-07-02 14:16:25 +02:00
"local": { "message": "Local" },
2025-07-07 17:29:43 +02:00
"topRatedSort": {"message": "Top Rated"},
"recentSort": {"message": "Recent"},
"popularSort": {"message": "Popular"},
"moviesSectionTitle": {"message": "Movies"},
2025-07-02 14:16:25 +02:00
"seriesSectionTitle": {"message": "Series"},
2025-07-07 17:29:43 +02:00
"searchResultsFor": {"message": "Results for \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
"contentFrom": {"message": "Content from $actor$", "placeholders": {"actor": {"content": "$1"}}},
"explore": {"message": "Explore"},
2025-07-30 20:47:55 +02:00
"noGenre": {"message": "No category"},
2025-07-07 17:29:43 +02:00
"synopsis": {"message": "Synopsis"},
"noSynopsis": {"message": "No synopsis available."},
2025-07-02 14:16:25 +02:00
"director": {"message": "Director:"},
2025-07-07 17:29:43 +02:00
"writer": {"message": "Writer:"},
"viewOnImdb": {"message": "View on IMDb"},
"watchTrailer": {"message": "Watch Trailer"},
2025-07-30 20:47:55 +02:00
"addToFavorites": {"message": "Add to favorites"},
"removeFromFavorites": {"message": "Remove from favorites"},
"notAvailable": {"message": "Not available"},
2025-07-07 17:29:43 +02:00
"mainCast": {"message": "Main Cast"},
2025-07-30 20:47:55 +02:00
"seasonsAndEpisodes": {"message": "Seasons and Episodes"},
2025-07-07 17:29:43 +02:00
"similarContent": {"message": "Similar Content"},
"episodesCount": {"message": "$count$ Episodes", "placeholders": {"count": {"content": "$1"}}},
"seasonsCount": {"message": "$count$ Seasons", "placeholders": {"count": {"content": "$1"}}},
2025-07-02 14:16:25 +02:00
"runtimeMinutes": {"message": "$count$ min", "placeholders": {"count": {"content": "$1"}}},
2025-07-30 20:47:55 +02:00
"noTrailerFound": {"message": "No trailer found for this title."},
"fatalInitError": {"message": "Fatal initialization error"},
"fatalInitErrorSub": {"message": "Could not load the application."},
2025-07-07 17:29:43 +02:00
"invalidStreamInfo": {"message": "Invalid information."},
2025-07-30 20:47:55 +02:00
"dbUnavailableForStreams": {"message": "Local database unavailable."},
2025-07-07 17:29:43 +02:00
"noPlexServersForStreams": {"message": "No Plex servers."},
2025-07-30 20:47:55 +02:00
"notFoundOnServers": {"message": "Could not find \"$query$\" on Plex servers.", "placeholders": {"query": {"content": "$1"}}},
2025-07-07 17:29:43 +02:00
"relativeTime_justNow": { "message": "Just now" },
"relativeTime_minutesAgo": { "message": "$count$ minutes ago", "placeholders": { "count": { "content": "$1" } } },
"relativeTime_hoursAgo": { "message": "$count$ hours ago", "placeholders": { "count": { "content": "$1" } } },
"relativeTime_yesterday": { "message": "Yesterday" },
"relativeTime_daysAgo": { "message": "$count$ days ago", "placeholders": { "count": { "content": "$1" } } },
"errorLoadingDetails": { "message": "Error Loading Details" },
"errorLoadingLocalContent": { "message": "Error loading local content." },
2025-07-30 20:47:55 +02:00
"errorServerResponse": { "message": "Unsuccessful server response." },
"errorPlexApi": { "message": "Plex API error $status$.", "placeholders": { "status": { "content": "$1" } } },
2025-07-07 17:29:43 +02:00
"errorParsingPlexXml": { "message": "Error parsing Plex XML." },
"untitled": { "message": "Untitled" },
"itemCount": { "message": "$count$ items", "placeholders": { "count": { "content": "$1" } } },
"noPhotoServers": { "message": "No photo servers" },
"jellyfinScanInProgress": { "message": "Jellyfin scan is already in progress." },
"jellyfinScanning": { "message": "Scanning Jellyfin..." },
2025-07-30 20:47:55 +02:00
"jellyfinMissingCredentials": { "message": "Please fill in Jellyfin URL and username." },
"jellyfinConnecting": { "message": "Connecting to Jellyfin at: $url$", "placeholders": { "url": { "content": "$1" } } },
"jellyfinAuthFailed": { "message": "Jellyfin authentication failed: $message$", "placeholders": { "message": { "content": "$1" } } },
"jellyfinAuthSuccess": { "message": "Jellyfin authentication successful." },
"jellyfinFetchingLibraries": { "message": "Fetching libraries..." },
2025-07-30 20:47:55 +02:00
"jellyfinFetchFailed": { "message": "Error fetching libraries: $message$", "placeholders": { "message": { "content": "$1" } } },
"jellyfinNoMediaLibraries": { "message": "No movie or series libraries found in Jellyfin." },
"jellyfinLibrariesFound": { "message": "$count$ media library(ies) found.", "placeholders": { "count": { "content": "$1" } } },
"jellyfinLibraryScanSuccess": { "message": "[Success] '$libraryName$' scanned, $count$ titles added.", "placeholders": { "libraryName": { "content": "$1" }, "count": { "content": "$2" } } },
"jellyfinLibraryScanFailed": { "message": "Error scanning library '$libraryName$'.", "placeholders": { "libraryName": { "content": "$1" } } },
"jellyfinScanSuccess": { "message": "Jellyfin scan completed. Added $movies$ movies and $series$ series.", "placeholders": { "movies": { "content": "$1" }, "series": { "content": "$2" } } },
"noJellyfinCredentials": { "message": "Jellyfin credentials not configured." },
2025-07-30 20:47:55 +02:00
"notFoundOnJellyfin": { "message": "Could not find \"$query$\" on Jellyfin.", "placeholders": { "query": { "content": "$1" } } },
"notFoundOnAnyServer": { "message": "Could not find \"$query$\" on any server.", "placeholders": { "query": { "content": "$1" } } },
"localOnPlex": { "message": "On Plex" },
"searchOnPlex": { "message": "Search on Plex" },
"jellyfinTitle": { "message": "Jellyfin Content" },
"noJellyfinContent": { "message": "No Jellyfin content found." },
2025-07-30 20:47:55 +02:00
"noJellyfinContentSub": { "message": "Make sure you have scanned your Jellyfin server in settings." },
2025-07-12 12:56:04 +02:00
"activityViewerTitle": { "message": "Server Activity Viewer" },
"activitySelectServer": { "message": "Select a server" },
"activityCheckBtn": { "message": "Refresh" },
"activityNoSessions": { "message": "No active sessions on this server." },
"activitySessionUser": { "message": "User" },
"activitySessionDevice": { "message": "Device" },
"activitySessionContent": { "message": "Content" },
"activitySessionState": { "message": "State" },
"activitySessionIdentifier": { "message": "Client Identifier" },
"activityCopyID": { "message": "Copy ID" },
2025-07-30 20:47:55 +02:00
"activityError": { "message": "Could not get server activity." },
2025-07-12 12:56:04 +02:00
"activityCopied": { "message": "Identifier copied to clipboard!" },
2025-07-30 20:47:55 +02:00
"activityCopyError": { "message": "Error copying identifier." },
2025-07-25 23:57:03 +02:00
"noProvidersFound": { "message": "No providers found." },
2025-07-26 18:53:03 +02:00
"availableOnPlex": { "message": "Available on Plex" },
2025-07-30 20:47:55 +02:00
"m3uGeneratorTitle": { "message": "M3U List Generator" },
2025-07-26 18:53:03 +02:00
"selectAServer": { "message": "Select a server..." },
"downloadM3u": { "message": "Download M3U" },
"m3uGenerator": { "message": "M3U Generator" },
"selectLibraries": { "message": "Select Libraries" },
2025-07-30 20:47:55 +02:00
"howToUse": { "message": "How To Use" },
2025-07-26 18:53:03 +02:00
"m3uInstruction1": { "message": "Choose a server from the list." },
"m3uInstruction2": { "message": "Select one or more libraries to include." },
"m3uInstruction3": { "message": "Click the download button." },
2025-07-28 13:58:30 +02:00
"m3uInstruction4": { "message": "Import the .m3u file into your compatible player." },
2025-07-29 15:05:06 +02:00
"chatOpen": { "message": "Open Chat" },
"chatTitle": { "message": "AI Assistant" },
"chatClose": { "message": "X" },
"chatPlaceholder": { "message": "Type your message..." },
"chatSend": { "message": "➤" },
2025-07-30 20:47:55 +02:00
"chatWelcome": { "message": "Welcome! I'm your CinePlex assistant. Ask me about movies, series, or anything else you want to know." },
"chatGoogleApiKeyMissing": { "message": "Google Gemini API key is not configured. Please set it in the extension settings to use the AI assistant." },
2025-07-29 15:05:06 +02:00
"chatApiInvalidResponse": { "message": "The API returned an invalid response. Please try again." },
"chatApiError": { "message": "Error communicating with the AI assistant" },
2025-07-30 20:47:55 +02:00
"downloadAll": { "message": "Download all" },
"download": { "message": "Download" },
2025-07-30 20:47:55 +02:00
"aiToolSearchLibraryDesc": { "message": "Searches the user's Plex library for movies or series by title." },
"aiToolSearchLibraryQueryParamDesc": { "message": "The title of the movie or series to search for." },
"aiToolSearchLibraryTypeParamDesc": { "message": "The type of content to search for. Can be 'movie' for movies or 'series' for series. (Optional)." },
"aiToolNavigateToPageDesc": { "message": "Navigates the user to a specific page of the application interface." },
"aiToolNavigateToPagePageParamDesc": { "message": "The name of the page to navigate to, e.g.: 'movies', 'series', 'stats', 'favorites', 'history', 'recommendations', 'photos', 'providers', or 'm3u-generator'." },
"aiToolGetUserStatsDesc": { "message": "Retrieves and displays the user's library statistics, such as the total number of unique movies, series, and artists." },
"aiToolShowItemDetailsDesc": { "message": "Displays the details page for a specific movie or series by its title and type." },
"aiToolShowItemDetailsTitleParamDesc": { "message": "The exact title of the movie or series." },
"aiToolShowItemDetailsTypeParamDesc": { "message": "The type of content. Must be 'movie' or 'series'." },
"aiToolAddToPlaylistDesc": { "message": "Adds a movie or series to the user's current playlist to stream to a configured PHP server." },
"aiToolAddToPlaylistTitleParamDesc": { "message": "The title of the movie or series to add." },
"aiToolAddToPlaylistTypeParamDesc": { "message": "The type of content. Must be 'movie' or 'series'." },
"aiToolCheckAndDownloadDesc": { "message": "Checks the availability of a list of movie or series titles on the user's local servers and, if found, generates and downloads an M3U playlist file with the found streams." },
"aiToolCheckAndDownloadTitlesParamDesc": { "message": "An array of movie or series titles to search for and download." },
"aiToolCheckAndDownloadTypeParamDesc": { "message": "The content type of the list. Must be 'movie' or 'series'." },
"aiToolCheckAndDownloadFilenameParamDesc": { "message": "The name of the M3U file to download (e.g., 'MyList.m3u'). If not provided, a default name will be used." },
"aiToolToggleFavoriteDesc": { "message": "Adds or removes a movie or series from the user's favorites list." },
"aiToolToggleFavoriteTitleParamDesc": { "message": "The title of the movie or series." },
"aiToolToggleFavoriteTypeParamDesc": { "message": "The type of content. Must be 'movie' or 'series'." },
"aiToolGetRecommendationsDesc": { "message": "Generates and displays a list of movie or series recommendations based on the user's viewing history and favorites." },
"aiToolApplyFiltersDesc": { "message": "Applies filters to the current movie or series view, allowing refinement of results by type, genre, year, and sort order." },
"aiToolApplyFiltersTypeParamDesc": { "message": "The type of content to apply filters to. Must be 'movie' or 'series'." },
"aiToolApplyFiltersGenreParamDesc": { "message": "The name of the genre to filter by (e.g., 'Action', 'Drama')." },
"aiToolApplyFiltersYearParamDesc": { "message": "The release year to filter by (e.g., '2023')." },
"aiToolApplyFiltersSortParamDesc": { "message": "The sort criterion for the results. Valid values: 'popularity.desc' (popular), 'vote_average.desc' (top rated), 'release_date.desc' (recent for movies) or 'first_air_date.desc' (recent for series)." },
"aiToolPlayMusicByArtistDesc": { "message": "Opens the music player and starts playing songs by a specific artist from the user's library." },
"aiToolPlayMusicByArtistNameParamDesc": { "message": "The exact name of the artist whose songs are desired to be played." },
"aiToolClearChatHistoryDesc": { "message": "Clears all message history from the current conversation with the AI assistant." },
"aiToolDeleteDatabaseDesc": { "message": "Deletes the entire local database of the extension, including scanned content, settings, and favorites. This action is irreversible and will reload the application." },
"aiToolUpdateAllTokensDesc": { "message": "Initiates a full scan of all Plex servers and libraries associated with the configured tokens in the extension. Updates all movies, series, artists, and photos." },
"aiToolAddPlexTokenDesc": { "message": "Adds a new X-Plex token to the extension's configuration, allowing the app to scan content from new Plex servers." },
"aiToolAddPlexTokenTokenParamDesc": { "message": "The X-Plex token string to add." },
"aiToolChangeRegionDesc": { "message": "Changes the region used for content discovery in the TMDB API. This will affect results displayed in movie and series sections, as well as streaming providers." },
"aiToolChangeRegionRegionParamDesc": { "message": "The two-letter ISO 3166-1 country code for the new region (e.g., 'US' for United States, 'ES' for Spain, 'MX' for Mexico)." },
"aiToolClearAllFavoritesDesc": { "message": "Removes all movies and series the user has marked as favorites." },
"aiToolClearViewingHistoryDesc": { "message": "Clears the user's viewing history from the history page." },
"aiToolClearRecommendationsViewDesc": { "message": "Clears the recommendations view and removes cached recommendations." },
"aiToolSearchNotFound": { "message": "Could not find '$query$' in your library.", "placeholders": { "query": { "content": "$1" } } },
"aiToolNavigateSuccess": { "message": "Navigated to $page$ page.", "placeholders": { "page": { "content": "$1" } } },
"aiToolNavigateError": { "message": "Error navigating to $page$ page.", "placeholders": { "page": { "content": "$1" } } },
"aiToolStatsError": { "message": "Error getting statistics." },
"aiToolItemNotFound": { "message": "Item '$title$' not found.", "placeholders": { "title": { "content": "$1" } } },
"aiToolShowItemDetailsSuccess": { "message": "Showing details for '$title$'.", "placeholders": { "title": { "content": "$1" } } },
"aiToolAddToPlaylistSuccess": { "message": "Added '$title$' to playlist.", "placeholders": { "title": { "content": "$1" } } },
"aiToolFavoriteAdded": { "message": "Added '$title$' to favorites.", "placeholders": { "title": { "content": "$1" } } },
"aiToolFavoriteRemoved": { "message": "Removed '$title$' from favorites.", "placeholders": { "title": { "content": "$1" } } },
"aiToolRecommendationsSuccess": { "message": "Showing recommendations." },
"aiToolApplyFiltersGenreNotFound": { "message": "Genre '$genre$' not found.", "placeholders": { "genre": { "content": "$1" } } },
"aiToolApplyFiltersSuccess": { "message": "Filters applied successfully." },
"aiToolPlayMusicNotReady": { "message": "Music player is not ready. Make sure your Plex music library has been scanned." },
"aiToolPlayMusicArtistNotFound": { "message": "Artist '$artist_name$' not found.", "placeholders": { "artist_name": { "content": "$1" } } },
"aiToolPlayMusicNoSongs": { "message": "No songs found for '$artist_name$'.", "placeholders": { "artist_name": { "content": "$1" } } },
"aiToolPlayMusicSuccess": { "message": "Playing music by '$artist_name$'.", "placeholders": { "artist_name": { "content": "$1" } } },
"aiToolChatHistoryCleared": { "message": "Chat history cleared." },
"aiToolConfirmDeleteDatabase": { "message": "Are you sure you want to delete the local database? This action is irreversible." },
"aiToolDeleteDatabaseCancelled": { "message": "Database deletion cancelled." },
"aiToolExecutionError": { "message": "Error executing tool '$toolName$': $message$", "placeholders": { "toolName": { "content": "$1" }, "message": { "content": "$2" } } },
"aiToolUnknown": { "message": "Unknown tool: '$toolName$'.", "placeholders": { "toolName": { "content": "$1" } } },
"aiToolFavoritesCleared": { "message": "Favorites cleared." },
"aiToolFavoritesClearError": { "message": "Error clearing favorites: $message$", "placeholders": { "message": { "content": "$1" } } },
"aiToolRecommendationsCleared": { "message": "Recommendations cleared." },
"aiToolRecommendationsClearError": { "message": "Error clearing recommendations: $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"aiToolDatabaseDeleted": { "message": "Database deleted. The page will reload." },
"aiToolDatabaseDeleteError": { "message": "Error deleting database: $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"aiToolDatabaseDeleteBlocked": { "message": "Database deletion is blocked. Close other app tabs." },
"aiToolUpdateAllTokensSuccess": { "message": "All tokens updated successfully." },
"aiToolUpdateAllTokensError": { "message": "Error updating tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
"aiToolAddPlexTokenSuccess": { "message": "Plex token added successfully." },
"aiToolAddPlexTokenError": { "message": "Error adding Plex token: $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"aiToolChangeRegionSuccess": { "message": "Region changed to $region$. Content is updating.", "placeholders": { "region": { "content": "$1" } } },
"aiToolChangeRegionError": { "message": "Error changing region: $message$", "placeholders": { "message": { "content": "$1" } } },
2025-07-30 20:47:55 +02:00
"aiToolViewingHistoryCleared": { "message": "Viewing history cleared." },
"aiToolViewingHistoryClearError": { "message": "Error clearing viewing history: $message$", "placeholders": { "message": { "content": "$1" } } },
"aiSystemPrompt_v3": { "message": "You are a movie and series expert assistant called CinePlex. Your main function is to help users discover content and interact with their library. Follow these rules rigorously: 1. **NEVER** invent that you have performed an action if you have not used a tool for it. For example, do not say 'I have downloaded X' if you have not used the download tool. 2. For recommendation requests or lists (e.g., 'tell me 5 horror movies'), use your own knowledge to generate the list. Present it in a numbered or bulleted format. After showing the list, proactively ask the user if they want you to check availability on their local servers and create an M3U file. 3. **ONLY** if the user confirms that they want to check or download the list, use the `check_and_download_titles_list` tool. Do not use it without explicit confirmation. 4. For any other action such as navigating, getting statistics, or searching for a specific title, use the appropriate tools. Always be concise, friendly, and efficient." },
2025-07-30 11:34:30 +02:00
"aiToolM3UNoTitlesProvided": { "message": "Please provide a list of titles to create the playlist." },
2025-07-30 20:47:55 +02:00
"aiToolM3UCheckingTitles": { "message": "Checking titles on your local servers..." },
"aiToolM3UNoLocalMatchesForDownload": { "message": "I haven't found any of the movies or series from the list on your local servers." },
"aiToolM3UDownloadStarted": { "message": "Done! I found $1 of $2 titles on your servers and started the M3U playlist download.", "placeholders": { "1": { "content": "$1" }, "2": { "content": "$2" } } },
"backToProviders": { "message": "Back to Providers" },
"artistsCounterSingle": { "message": "$total$ Artist", "placeholders": { "total": { "content": "$1" } } },
"artistsCounterLoading": { "message": "Loading..." },
"downloadingSong": { "message": "Starting download of \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"songDownloaded": { "message": "\"$title$\" downloaded.", "placeholders": { "title": { "content": "$1" } } },
"errorDownloadingSong": { "message": "Error downloading \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"generatingAlbumM3U": { "message": "Generating M3U for \"$artist$\"", "placeholders": { "artist": { "content": "$1" } } },
"albumM3UGenerated": { "message": "M3U for album \"$artist$\" generated.", "placeholders": { "artist": { "content": "$1" } } },
"retyingSection": { "message": "Retrying section \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"retrySuccess": { "message": "[SUCCESS] Retry for \"$title$\" completed.", "placeholders": { "title": { "content": "$1" } } },
"retryError": { "message": "[FINAL ERROR] Retry failed for \"$title$\": $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
"startingRetryPhase": { "message": "Starting retry phase for $count$ sections...", "placeholders": { "count": { "content": "$1" } } },
"tokenFoundServers": { "message": "Token $token$... found $count$ servers.", "placeholders": { "token": { "content": "$1" }, "count": { "content": "$2" } } },
"errorProcessingToken": { "message": "Error processing token $token$...: $message$", "placeholders": { "token": { "content": "$1" }, "message": { "content": "$2" } } },
"plexScanFatalError": { "message": "FATAL ERROR: $message$", "placeholders": { "message": { "content": "$1" } } },
"errorDuringScan": { "message": "Error during scan: $message$", "placeholders": { "message": { "content": "$1" } } },
"stoppingPlexScan": { "message": "Stopping Plex scan..." },
"invalidTokenProvided": { "message": "Invalid token provided." },
"tokenAlreadyExists": { "message": "Token already exists." },
"tokenAddedSuccessfully": { "message": "Token added successfully." },
"noStreamsFoundForSelection": { "message": "No streams found for selection." },
"autoplayBlocked": { "message": "Autoplay blocked." },
"welcomeToCinePlex": { "message": "" },
"page": { "message": "Page" }
2025-07-02 14:16:25 +02:00
}