516 lines
44 KiB
JSON
516 lines
44 KiB
JSON
{
|
||
"appName": { "message": "CinePlex" },
|
||
"appDescription": { "message": "Scans Plex servers to find content and displays it in the interface" },
|
||
"appTagline": { "message": "Movies, Series, and Music" },
|
||
"appLocaleCode": { "message": "en-US" },
|
||
"toggleNavigation": { "message": "Toggle Navigation" },
|
||
"searchPlaceholder": { "message": "Search for movies or series..." },
|
||
"openMusicPlayer": { "message": "Open Music Player" },
|
||
"settings": { "message": "Settings" },
|
||
"navMovies": { "message": "Movies" },
|
||
"navSeries": { "message": "Series" },
|
||
"navProviders": { "message": "Providers" },
|
||
"navPhotos": { "message": "Photos" },
|
||
"navStats": { "message": "Statistics" },
|
||
"navFavorites": { "message": "Favorites" },
|
||
"navHistory": { "message": "History" },
|
||
"navRecommendations": { "message": "Recommendations" },
|
||
"navMusic": { "message": "Music" },
|
||
"musicFeaturedPlaylists": { "message": "Featured Playlists" },
|
||
"musicRecentlyAdded": { "message": "Recently Added" },
|
||
"navM3uGenerator": { "message": "M3U Generator" },
|
||
"heroWelcome": { "message": "" },
|
||
"heroSubtitle": { "message": "Explore thousands of movies and series." },
|
||
"addStream": { "message": "Add Stream" },
|
||
"moreInfo": { "message": "More info" },
|
||
"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..." },
|
||
"loadingLibraries": { "message": "Loading libraries..." },
|
||
"photosEmptyState": { "message": "No albums or photos found." },
|
||
"photosEmptyStateSub": { "message": "Please select a server or ensure you have a photo library in Plex." },
|
||
"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" },
|
||
"statsTokenServers": { "message": "Token's Servers" },
|
||
"statsChartMoviesByGenre": { "message": "Content by Genre (Movies)" },
|
||
"statsChartSeriesByGenre": { "message": "Content by Genre (Series)" },
|
||
"statsChartByDecade": { "message": "Content by Decade" },
|
||
"recommendationsTitle": { "message": "Recommendations for you" },
|
||
"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" },
|
||
"settingsTabGeneral": { "message": "General" },
|
||
"settingsTabPlex": { "message": "Plex" },
|
||
"settingsTabJellyfin": { "message": "Jellyfin" },
|
||
"settingsTabPhpGen": { "message": "PHP Generator" },
|
||
"settingsTabData": { "message": "Data" },
|
||
"settingsApiServer": { "message": "API and Server Configuration" },
|
||
"settingsTmdbApiLabel": { "message": "TMDB API Key (Optional)" },
|
||
"settingsTmdbApiPlaceholder": { "message": "The default key will be used if left blank" },
|
||
"settingsGoogleApiLabel": { "message": "Google Gemini API Key (Optional)" },
|
||
"settingsGoogleApiPlaceholder": { "message": "Required to use the AI assistant" },
|
||
"settingsRegionLabel": { "message": "Region for content discovery" },
|
||
"allRegions": { "message": "All regions" },
|
||
"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" },
|
||
"settingsScanContent": { "message": "Content Scan" },
|
||
"settingsScanDesc": { "message": "Select what to scan and press the button." },
|
||
"settingsScanMovies": { "message": "Movies" },
|
||
"settingsScanShows": { "message": "Series" },
|
||
"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" },
|
||
"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" },
|
||
"settingsPhpGenTitle": { "message": "PHP Script Generator for Server" },
|
||
"settingsPhpFileOptions": { "message": "File Options" },
|
||
"settingsPhpSavePathLabel": { "message": "Save Path on Server" },
|
||
"settingsPhpSavePathPlaceholder": { "message": "Ex: /var/www/html/lists (blank for the same folder)" },
|
||
"settingsPhpFilenameLabel": { "message": "Filename" },
|
||
"settingsPhpFileAction": { "message": "File Action" },
|
||
"settingsPhpActionAppend": { "message": "Append to the end of the file (cumulative)" },
|
||
"settingsPhpActionOverwrite": { "message": "Overwrite the file (start over)" },
|
||
"settingsPhpSecurity": { "message": "Security (Optional)" },
|
||
"settingsPhpUseSecretKey": { "message": "Use secret key (Recommended)" },
|
||
"settingsPhpSecretKeyPlaceholder": { "message": "Enter a secure secret key" },
|
||
"settingsPhpGeneratedCode": { "message": "Generated Code" },
|
||
"settingsPhpGeneratedPlaceholder": { "message": "The generated PHP code will appear here." },
|
||
"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 for artist..." },
|
||
"musicSearchDiscographyPlaceholder": { "message": "Search in discography..." },
|
||
"musicNothingPlaying": { "message": "Nothing playing" },
|
||
"musicSelectSong": { "message": "Select a song" },
|
||
"musicToStart": { "message": "to start playing" },
|
||
"miniplayerDownloadSong": { "message": "Download song" },
|
||
"miniplayerDownloadAlbum": { "message": "Download M3U" },
|
||
"miniplayerVolume": { "message": "Volume" },
|
||
"miniplayerShuffle": { "message": "Shuffle" },
|
||
"miniplayerEqualizer": { "message": "Equalizer" },
|
||
"miniplayerOpenList": { "message": "Open list" },
|
||
"eqTitle": { "message": "Graphic Equalizer" },
|
||
"eqPresetsLabel": { "message": "Presets" },
|
||
"eqPresetFlat": { "message": "Flat" },
|
||
"eqPresetRock": { "message": "Rock" },
|
||
"eqPresetPop": { "message": "Pop" },
|
||
"eqPresetJazz": { "message": "Jazz" },
|
||
"eqPresetClassical": { "message": "Classical" },
|
||
"eqPresetBassBoost": { "message": "Bass Boost" },
|
||
"eqPreampLabel": { "message": "Preamplifier" },
|
||
"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." },
|
||
"dbAccessError": { "message": "Error accessing the local database." },
|
||
"dbUpdateNeeded": { "message": "The database needs to be updated, please reload the page." },
|
||
"dbBlocked": { "message": "Please close other tabs of this application to continue." },
|
||
"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." },
|
||
"errorLoadingTokens": { "message": "Error loading tokens for editing." },
|
||
"errorLoadingTokensMessage": { "message": "Error loading tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||
"aceEditorNotAvailableToSave": { "message": "Editor not available for saving." },
|
||
"invalidJsonFormat": { "message": "Invalid JSON format. It 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" } } },
|
||
"invalidJsonFile": { "message": "The file does not contain a valid JSON object." },
|
||
"noDataToImport": { "message": "The file does not contain data for the current DB sections." },
|
||
"dbImported": { "message": "Database imported successfully." },
|
||
"errorImportingDb": { "message": "Error importing database: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||
"updatingView": { "message": "Updating the view with new data..." },
|
||
"confirmClearContent": { "message": "Are you sure you want to delete the local content data (Movies, Series, Music, etc.)? Favorites and Settings will NOT be deleted." },
|
||
"trailerNotFound": { "message": "No trailer found for this title." },
|
||
"confirmClearHistory": { "message": "Are you sure you want to delete all your viewing history? This action cannot be undone." },
|
||
"historyCleared": { "message": "Viewing history cleared." },
|
||
"historyItemDeleted": { "message": "Item deleted from history." },
|
||
"errorGeneratingScript": { "message": "First generate a script to be able to copy it." },
|
||
"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" } } },
|
||
"noPhotoServerSelected": { "message": "Error: No photo server has been selected." },
|
||
"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": "Explore 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." },
|
||
"searchingActorContent": { "message": "Searching for content by $actorName$", "placeholders": { "actorName": { "content": "$1" } } },
|
||
"errorLoadingActorContent": { "message": "Could not load content for $actorName$.", "placeholders": { "actorName": { "content": "$1" } } },
|
||
"errorAddingStream": { "message": "Error adding stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
|
||
"phpUrlNotConfigured": { "message": "The PHP server URL is not configured. Please set it up in Settings." },
|
||
"searchingStreams": { "message": "Searching for streams for \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||
"sendingStreams": { "message": "Sending $count$ stream(s) to the server...", "placeholders": { "count": { "content": "$1" } } },
|
||
"streamAddedSuccess": { "message": "Stream(s) added successfully." },
|
||
"generatingM3U": { "message": "Generating M3U for \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||
"m3uDownloaded": { "message": "\"$title$\" downloaded.", "placeholders": { "title": { "content": "$1" } } },
|
||
"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." },
|
||
"plexScanFinished": { "message": "Scan finished. Updating content..." },
|
||
"scanCancelled": { "message": "Scan canceled by the user." },
|
||
"scanCancelledInfo": { "message": "Scan canceled." },
|
||
"errorInitializingMusicPlayer": { "message": "Error initializing music player." },
|
||
"criticalErrorLoadingMusic": { "message": "Critical error loading music data." },
|
||
"errorLoadingArtists": { "message": "Error loading artists." },
|
||
"dbUnavailableError": { "message": "Error: Database not available." },
|
||
"updatingMusicData": { "message": "Updating music data..." },
|
||
"musicDataUpdated": { "message": "Music data updated." },
|
||
"errorFetchingArtistSongs": { "message": "Error fetching artist's songs." },
|
||
"errorLoadingSongs": { "message": "Error loading songs." },
|
||
"noArtistsFound": { "message": "No artists found." },
|
||
"shuffleOn": { "message": "Shuffle mode on." },
|
||
"shuffleOff": { "message": "Shuffle mode off." },
|
||
"playbackError": { "message": "Playback error" },
|
||
"errorLabel": { "message": "Error" },
|
||
"reloadingPage": { "message": "Reloading page..." },
|
||
"viewed": { "message": "Viewed" },
|
||
"local": { "message": "Local" },
|
||
"topRatedSort": {"message": "Top Rated"},
|
||
"recentSort": {"message": "Recent"},
|
||
"popularSort": {"message": "Popular"},
|
||
"moviesSectionTitle": {"message": "Movies"},
|
||
"seriesSectionTitle": {"message": "Series"},
|
||
"searchResultsFor": {"message": "Results for \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
||
"contentFrom": {"message": "Content from $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
||
"explore": {"message": "Explore"},
|
||
"noGenre": {"message": "Uncategorized"},
|
||
"synopsis": {"message": "Synopsis"},
|
||
"noSynopsis": {"message": "No synopsis available."},
|
||
"director": {"message": "Director:"},
|
||
"writer": {"message": "Writer:"},
|
||
"viewOnImdb": {"message": "View on IMDb"},
|
||
"watchTrailer": {"message": "Watch Trailer"},
|
||
"addToFavorites": {"message": "Add to favorites"},
|
||
"removeFromFavorites": {"message": "Remove from favorites"},
|
||
"notAvailable": {"message": "Not available"},
|
||
"mainCast": {"message": "Main Cast"},
|
||
"seasonsAndEpisodes": {"message": "Seasons and Episodes"},
|
||
"similarContent": {"message": "Similar Content"},
|
||
"filmography": {"message": "Filmography"},
|
||
"availableOn": {"message": "Available on"},
|
||
"episodesCount": {"message": "$count$ Episodes", "placeholders": {"count": {"content": "$1"}}},
|
||
"seasonsCount": {"message": "$count$ Seasons", "placeholders": {"count": {"content": "$1"}}},
|
||
"runtimeMinutes": {"message": "$count$ min", "placeholders": {"count": {"content": "$1"}}},
|
||
"noTrailerFound": {"message": "No trailer found for this title."},
|
||
"fatalInitError": {"message": "Fatal initialization error"},
|
||
"fatalInitErrorSub": {"message": "Could not load the application."},
|
||
"invalidStreamInfo": {"message": "Invalid stream info."},
|
||
"dbUnavailableForStreams": {"message": "Local database not available."},
|
||
"noPlexServersForStreams": {"message": "No Plex servers."},
|
||
"notFoundOnServers": {"message": "\"$query$\" not found on Plex servers.", "placeholders": {"query": {"content": "$1"}}},
|
||
"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." },
|
||
"errorServerResponse": { "message": "Unsuccessful server response." },
|
||
"errorPlexApi": { "message": "Plex API error $status$.", "placeholders": { "status": { "content": "$1" } } },
|
||
"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..." },
|
||
"jellyfinMissingCredentials": { "message": "Please fill in the 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..." },
|
||
"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(s) 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." },
|
||
"notFoundOnJellyfin": { "message": "\"$query$\" not found on Jellyfin.", "placeholders": {"query": {"content": "$1"}}},
|
||
"notFoundOnAnyServer": { "message": "\"$query$\" not found 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." },
|
||
"noJellyfinContentSub": { "message": "Make sure you have scanned your Jellyfin server in the settings." },
|
||
"activityViewerTitle": { "message": "Server Activity Viewer" },
|
||
"activitySelectServer": { "message": "Select a server" },
|
||
"activityCheckBtn": { "message": "Refresh" },
|
||
"activityNoSessions": { "message": "There are 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" },
|
||
"activityError": { "message": "Could not get server activity." },
|
||
"activityCopied": { "message": "Identifier copied to clipboard!" },
|
||
"activityCopyError": { "message": "Error copying identifier." },
|
||
"noProvidersFound": { "message": "No providers found." },
|
||
"availableOnPlex": { "message": "Available on Plex" },
|
||
"m3uGeneratorTitle": { "message": "M3U List Generator" },
|
||
"selectAServer": { "message": "Select a server..." },
|
||
"downloadM3u": { "message": "Download M3U" },
|
||
"m3uGenerator": { "message": "M3U Generator" },
|
||
"selectLibraries": { "message": "Select Libraries" },
|
||
"howToUse": { "message": "How to Use" },
|
||
"m3uInstruction1": { "message": "Choose a server from the list." },
|
||
"m3uInstruction2": { "message": "Select one or more libraries to include." },
|
||
"m3uInstruction3": { "message": "Click the download button." },
|
||
"m3uInstruction4": { "message": "Import the .m3u file into your compatible player." },
|
||
"chatOpen": { "message": "Open Chat" },
|
||
"chatTitle": { "message": "AI Assistant" },
|
||
"chatClose": { "message": "X" },
|
||
"chatPlaceholder": { "message": "Type your message..." },
|
||
"chatSend": { "message": "➤" },
|
||
"chatWelcome": { "message": "Welcome! I'm your CinePlex assistant. Ask me about movies, series, or anything else you'd like to know." },
|
||
"chatGoogleApiKeyMissing": { "message": "The Google Gemini API key is not configured. Please set it up in the extension settings to use the AI assistant." },
|
||
"chatApiInvalidResponse": { "message": "The API returned an invalid response. Please try again." },
|
||
"chatApiError": { "message": "Error communicating with the AI assistant" },
|
||
"downloadAll": { "message": "Download all" },
|
||
"download": { "message": "Download" },
|
||
"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' or 'series'. (Optional)." },
|
||
"aiToolSearchLibraryResolutionParamDesc": { "message": "The video resolution to search for (e.g., '4k', '1080p'). (Optional)." },
|
||
"aiToolSearchLibraryContainerParamDesc": { "message": "The video container format to search for (e.g., 'mkv', 'mp4'). (Optional)." },
|
||
"aiToolNavigateToPageDesc": { "message": "Navigates the user to a specific page within the application's interface." },
|
||
"aiToolNavigateToPagePageParamDesc": { "message": "The name of the page to navigate to, e.g., 'movies', 'series', 'stats', 'favorites', 'history', 'recommendations', 'photos', 'providers', 'm3u-generator', or 'music'." },
|
||
"aiToolGetUserStatsDesc": { "message": "Gets 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 be streamed 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'." },
|
||
"aiToolDownloadSingleMovieM3UDesc": { "message": "Generates and downloads an M3U playlist file for a single locally available movie." },
|
||
"aiToolDownloadSingleMovieM3UTitleParamDesc": { "message": "The title of the movie for which the M3U will be generated." },
|
||
"aiToolDownloadSingleMovieM3UYearParamDesc": { "message": "The release year of the movie (optional, for better accuracy)." },
|
||
"aiToolDownloadSeriesSeasonM3UDesc": { "message": "Generates and downloads an M3U playlist file for a specific season of a locally available series." },
|
||
"aiToolDownloadSeriesSeasonM3UTitleParamDesc": { "message": "The title of the series." },
|
||
"aiToolDownloadSeriesSeasonM3USeasonParamDesc": { "message": "The season number to download." },
|
||
"aiToolDownloadSeriesSeasonM3UYearParamDesc": { "message": "The release year of the series (optional)." },
|
||
"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 results to be refined by type, genre, year, and sort order." },
|
||
"aiToolApplyFiltersTypeParamDesc": { "message": "The content type 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 sorting criteria 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)." },
|
||
"aiToolListAvailableMusicGenresDesc": { "message": "Lists all unique music genres available in the user's local library." },
|
||
"aiToolSearchMusicByGenreDesc": { "message": "Searches for artists in the user's music library that belong to a specific genre." },
|
||
"aiToolSearchMusicByGenreNameParamDesc": { "message": "The name of the music genre to search for (e.g., 'Rock', 'Pop', 'Jazz')." },
|
||
"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 to be played." },
|
||
"aiToolClearChatHistoryDesc": { "message": "Clears the entire message history of 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 application to scan content from new Plex servers." },
|
||
"aiToolAddPlexTokenTokenParamDesc": { "message": "The X-Plex token string to be added." },
|
||
"aiToolChangeRegionDesc": { "message": "Changes the region used for content discovery in the TMDB API. This will affect the results displayed in the movies and series sections, as well as the 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 that 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 the $page$ page.", "placeholders": { "page": { "content": "$1" } } },
|
||
"aiToolNavigateError": { "message": "Error navigating to the $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 the 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." },
|
||
"aiToolSearchMusicByGenreNotFound": { "message": "I couldn't find artists of the genre '$genre_name' in your library.", "placeholders": { "genre_name": { "content": "$1" } } },
|
||
"aiToolPlayMusicNotReady": { "message": "The 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" } } },
|
||
"aiToolDatabaseDeleted": { "message": "Database deleted. The page will now reload." },
|
||
"aiToolDatabaseDeleteError": { "message": "Error deleting database: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||
"aiToolDatabaseDeleteBlocked": { "message": "Database deletion is blocked. Please close other application tabs." },
|
||
"aiToolUpdateAllTokensSuccess": { "message": "All tokens have been 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" } } },
|
||
"aiToolChangeRegionSuccess": { "message": "Region changed to $region$. Content is being updated.", "placeholders": { "region": { "content": "$1" } } },
|
||
"aiToolChangeRegionError": { "message": "Error changing region: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||
"aiToolViewingHistoryCleared": { "message": "Viewing history cleared." },
|
||
"aiToolViewingHistoryClearError": { "message": "Error clearing viewing history: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||
"aiToolM3UDownloadStartedSingle": { "message": "Starting M3U download for '$movie_title'.", "placeholders": { "movie_title": { "content": "$1" } } },
|
||
"aiToolM3UDownloadStartedSeason": { "message": "Starting M3U download for season $1 of '$2'.", "placeholders": { "1": { "content": "$1" }, "2": { "content": "$2" } } },
|
||
"aiToolM3UNoTitlesProvided": { "message": "Please provide a list of titles to create the playlist." },
|
||
"aiToolM3UCheckingTitles": { "message": "Checking titles on your local servers..." },
|
||
"aiToolM3UNoLocalMatchesForDownload": { "message": "I couldn't find any of the movies or series from the list on your local servers." },
|
||
"aiToolM3UDownloadStarted": { "message": "Done! I found $1 of the $2 titles on your servers and have started downloading the M3U playlist.", "placeholders": { "1": { "content": "$1" }, "2": { "content": "$2" } } },
|
||
"aiToolTrailerNotFoundSpecific": { "message": "Sorry, I couldn't find an available trailer for '$title'.", "placeholders": { "title": { "content": "$1" } } },
|
||
"aiSystemPrompt_v4": {
|
||
"message": "You are a virtual assistant integrated into a Chrome extension that interacts with Plex and Jellyfin servers. Your main function is to help the user search, manage, play, and download multimedia content, as well as manage custom settings.\n\nTOP PRIORITY: Whenever the user's question refers to multimedia content (movies, series, music), you MUST assume it refers to their local library. Use the tools to search their database BEFORE searching the web.\n\n🎯 General behavior rules:\nAlways respond clearly, concisely, and directly. Be proactive and provide all relevant information at once to avoid follow-up questions. For example, when confirming the availability of a series, include the season details.\n\nCompare the current date with Google search results when asked for external information to ensure it is up-to-date.\n\nUse the exact names of the commands defined in the system (function.name) when calling tools.\n\n📦 Key functions for multimedia content:\nTo generate an M3U for a single movie, use download_single_movie_m3u.\nTo download a specific season of a series, use download_series_season_m3u.\nFor multiple titles (movies or full series), always use check_and_download_titles_list.\nTo search local content: search_library.\nTo search TMDB: search_tmdb_content.\nFor trending content: get_trending_content.\nTo show details of a title: show_item_details.\nTo add to the PHP playlist: add_to_playlist.\nTo check local availability: check_local_availability.\nIf a series is available locally, report how many seasons there are and on which servers using get_local_series_seasons.\nTo see recommendations: get_recommendations.\nTo apply filters: apply_filters.\nTo view history or favorites: view_history, view_favorites.\nTo mark as favorite: toggle_favorite.\nTo play trailer: play_trailer.\n\n🎵 Music functions:\nIf the user asks for general music genre recommendations (e.g., 'recommend a genre to cheer me up'), first use list_available_music_genres to see what genres they have and base your recommendation on that list.\nTo list all available music genres in the library: list_available_music_genres.\nTo search for artists by genre: search_music_by_genre.\nTo play songs by title and/or artist: play_song.\nTo play music by an artist: play_music_by_artist.\n\n🧰 Management and configuration functions:\nTo get user statistics: get_user_stats.\nTo navigate to specific sections: navigate_to_page.\nTo update tokens: update_all_tokens, add_plex_token.\nTo change content region: change_region.\nTo export or import the local database: export_local_database, import_local_database.\nTo delete the database: delete_database.\nTo clear favorites, history, or recommendations: clear_all_favorites, clear_viewing_history, clear_recommendations_view.\nTo toggle light/dark mode: toggle_light_mode.\nTo show or hide the hero section: toggle_hero_section.\n\n⚠️ Additional considerations:\nPrioritize locally available content. Use check_local_availability before showing playback or download options.\nIf an action fails, report it clearly and bluntly.\nAvoid unnecessarily repeating the user's request, unless it helps to contextualize the response."
|
||
},
|
||
"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 of \"$title$\" completed.", "placeholders": { "title": { "content": "$1" } } },
|
||
"retryError": { "message": "[FINAL ERROR] Retry for \"$title$\" failed: $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 the selection." },
|
||
"autoplayBlocked": { "message": "Autoplay blocked." },
|
||
"welcomeToCinePlex": { "message": "" },
|
||
"page": { "message": "Page" },
|
||
"all": { "message": "All" },
|
||
"userScore": { "message": "Score" },
|
||
"duration": { "message": "Duration" },
|
||
"min": { "message": "Min" },
|
||
"max": { "message": "Max" },
|
||
"aiToolFindStreamingProvidersDesc": { "message": "Finds where to watch a movie or series on streaming services." },
|
||
"aiToolFindStreamingProvidersTitleParamDesc": { "message": "The title of the movie or series to search for." },
|
||
"aiToolFindStreamingProvidersTypeParamDesc": { "message": "The content type (movie or series)." },
|
||
"aiToolFindStreamingProvidersYearParamDesc": { "message": "The release year of the content (optional)." },
|
||
"aiToolNoStreamingProviders": { "message": "No streaming providers found for {title}." },
|
||
"aiToolStreamingProvidersFound": { "message": "{title} is available on the following services: {providers}." },
|
||
"aiToolStreamingProviderError": { "message": "Error searching for streaming providers: {message}." },
|
||
"aiToolGetLocalSeriesSeasonsDesc": { "message": "Checks if a TV series is available locally and returns a detailed breakdown of the available seasons on each server." },
|
||
"aiToolGetLocalSeriesSeasonsTitleParamDesc": { "message": "The title of the series to check." },
|
||
"aiToolGetLocalSeriesSeasonsYearParamDesc": { "message": "The release year of the series (optional for greater accuracy)." },
|
||
"aiToolLocalSeriesNoSeasons": { "message": "The series '$series_title' is in your library, but no season details were found.", "placeholders": { "series_title": { "content": "$1" } } },
|
||
"artist": { "message": "Artist" },
|
||
"tracks": { "message": "tracks" },
|
||
"noSongsFound": { "message": "No songs found for this artist." },
|
||
"durationMin": { "message": "Duration (Min)" },
|
||
"score": { "message": "Score" },
|
||
"searchGenre": { "message": "Search genre..." },
|
||
"searchArtists": { "message": "Search artists..." },
|
||
"preparingMusicLibrary": { "message": "Preparing your music library..." },
|
||
"preparingMusicLibraryDesc": { "message": "This one-time process may take a few minutes if you have many artists." },
|
||
"artistsProgress": { "message": "0 / 0 artists" },
|
||
"starting": { "message": "Starting..." },
|
||
"artistName": { "message": "Artist Name" },
|
||
"playPause": { "message": "Play/Pause" },
|
||
"noLocalFilesFound": { "message": "No local files found for this title." },
|
||
"server": { "message": "Server" },
|
||
"title": { "message": "Title" },
|
||
"year": { "message": "Year" },
|
||
"resolution": { "message": "Resolution" },
|
||
"size": { "message": "Size" },
|
||
"container": { "message": "Container" },
|
||
"action": { "message": "Action" },
|
||
"generate": { "message": "Generate" },
|
||
"availableLocalFiles": { "message": "Available Local Files" },
|
||
"downloadSeason": { "message": "Download Season" },
|
||
"errorLoadingServersM3u": { "message": "Error loading servers for the M3U generator:" },
|
||
"errorFetchingLibraries": { "message": "Error fetching libraries." },
|
||
"selectServerAndLibrary": { "message": "Please select a server and at least one library." },
|
||
"generating": { "message": "Generating..." },
|
||
"errorProcessingLibrary": { "message": "Error processing library" },
|
||
"errorProcessingLibrarySkipping": { "message": "Error processing library. Skipping." },
|
||
"allLibrariesFailed": { "message": "All selected libraries failed to process." },
|
||
"m3uGeneratedWithErrors": { "message": "M3U generated with some errors. Some libraries may be missing." },
|
||
"m3uDownloadedSuccess": { "message": "M3U playlist downloaded successfully." },
|
||
"errorGeneratingM3uFile": { "message": "Error generating the M3U file." },
|
||
"chatSources": { "message": "Sources" },
|
||
"chatUnnamedSource": { "message": "Unnamed source" },
|
||
"googleApiFailure": { "message": "Google AI API call failed:" }
|
||
} |