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" } ,
2025-07-11 12:10:50 +02:00
"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" } ,
2025-07-11 12:10:50 +02:00
"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" } } } ,
2025-07-11 12:10:50 +02:00
"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." } ,
2025-07-11 12:10:50 +02:00
"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" } } } ,
2025-07-11 12:10:50 +02:00
"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" } } } ,
2025-07-11 12:10:50 +02:00
"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" } ,
2025-07-30 11:19:29 +02:00
"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" } } } ,
2025-07-30 11:19:29 +02:00
"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." } ,
2025-07-30 11:19:29 +02:00
"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." } ,
2025-07-30 11:19:29 +02:00
"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" } } } ,
2025-07-30 11:19:29 +02:00
"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
}