fix
This commit is contained in:
parent
859ebe1c4f
commit
7e41a6d29a
@ -136,7 +136,7 @@
|
|||||||
"lang_fr": { "message": "Französisch" },
|
"lang_fr": { "message": "Französisch" },
|
||||||
"lang_de": { "message": "Deutsch" },
|
"lang_de": { "message": "Deutsch" },
|
||||||
"lang_it": { "message": "Italienisch" },
|
"lang_it": { "message": "Italienisch" },
|
||||||
_pt": { "message": "Portugiesisch" },
|
"lang_pt": { "message": "Portugiesisch" },
|
||||||
"essentialFeaturesNotSupported": { "message": "Dein Browser unterstützt wesentliche Funktionen nicht." },
|
"essentialFeaturesNotSupported": { "message": "Dein Browser unterstützt wesentliche Funktionen nicht." },
|
||||||
"dbAccessError": { "message": "Fehler beim Zugriff auf die lokale Datenbank." },
|
"dbAccessError": { "message": "Fehler beim Zugriff auf die lokale Datenbank." },
|
||||||
"dbUpdateNeeded": { "message": "Die Datenbank muss aktualisiert werden, bitte lade die Seite neu." },
|
"dbUpdateNeeded": { "message": "Die Datenbank muss aktualisiert werden, bitte lade die Seite neu." },
|
||||||
@ -187,17 +187,17 @@ _pt": { "message": "Portugiesisch" },
|
|||||||
"errorLoadingActorContent": { "message": "Inhalt für $actorName$ konnte nicht geladen werden.", "placeholders": { "actorName": { "content": "$1" } } },
|
"errorLoadingActorContent": { "message": "Inhalt für $actorName$ konnte nicht geladen werden.", "placeholders": { "actorName": { "content": "$1" } } },
|
||||||
"errorAddingStream": { "message": "Fehler beim Hinzufügen von Stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorAddingStream": { "message": "Fehler beim Hinzufügen von Stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"phpUrlNotConfigured": { "message": "Die PHP-Server-URL ist nicht konfiguriert. Bitte richte sie in den Einstellungen ein." },
|
"phpUrlNotConfigured": { "message": "Die PHP-Server-URL ist nicht konfiguriert. Bitte richte sie in den Einstellungen ein." },
|
||||||
"searchingStreams": { "message": "Suche nach Streams für \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"searchingStreams": { "message": "Suche nach Streams für \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"sendingStreams": { "message": "Sende $count$ Stream(s) an den Server...", "placeholders": { "count": { "content": "$1" } } },
|
"sendingStreams": { "message": "Sende $count$ Stream(s) an den Server...", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"streamAddedSuccess": { "message": "Stream(s) erfolgreich hinzugefügt." },
|
"streamAddedSuccess": { "message": "Stream(s) erfolgreich hinzugefügt." },
|
||||||
"generatingM3U": { "message": "Generiere M3U für \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"generatingM3U": { "message": "Generiere M3U für \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"m3uDownloaded": { "message": "M3U für \"$title$\" heruntergeladen.", "placeholders": { "title": { "content": "$1" } } },
|
"m3uDownloaded": { "message": "M3U für \"$title$\" heruntergeladen.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"errorGeneratingM3U": { "message": "Fehler beim Generieren der M3U: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorGeneratingM3U": { "message": "Fehler beim Generieren der M3U: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"settingsSavedSuccess": { "message": "Einstellungen erfolgreich gespeichert." },
|
"settingsSavedSuccess": { "message": "Einstellungen erfolgreich gespeichert." },
|
||||||
"errorSavingSettings": { "message": "Fehler beim Speichern der Einstellungen in der Datenbank." },
|
"errorSavingSettings": { "message": "Fehler beim Speichern der Einstellungen in der Datenbank." },
|
||||||
"languageChangeReload": { "message": "Sprache geändert. Die Anwendung wird jetzt neu geladen." },
|
"languageChangeReload": { "message": "Sprache geändert. Die Anwendung wird jetzt neu geladen." },
|
||||||
"addedToFavorites": { "message": "Zu Favoriten hinzugefügt." },
|
"addedToFavorites": { "message": "Zu Favoriten hinzugefügt." },
|
||||||
"removedFromFavorites": { "message": "Aus Favoriten entfernt." },
|
"removedFromFavorites": { "message": "Aus Favoriten entfernen." },
|
||||||
"plexScanInProgress": { "message": "Plex-Scan läuft bereits." },
|
"plexScanInProgress": { "message": "Plex-Scan läuft bereits." },
|
||||||
"plexScanStarting": { "message": "Starte Plex-Scan..." },
|
"plexScanStarting": { "message": "Starte Plex-Scan..." },
|
||||||
"noPlexTokens": { "message": "Keine Plex-Tokens konfiguriert." },
|
"noPlexTokens": { "message": "Keine Plex-Tokens konfiguriert." },
|
||||||
@ -212,7 +212,7 @@ _pt": { "message": "Portugiesisch" },
|
|||||||
"errorDuringScan": { "message": "Fehler während des Scans: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorDuringScan": { "message": "Fehler während des Scans: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"scanCancelled": { "message": "Scan vom Benutzer abgebrochen." },
|
"scanCancelled": { "message": "Scan vom Benutzer abgebrochen." },
|
||||||
"scanCancelledInfo": { "message": "Scan abgebrochen." },
|
"scanCancelledInfo": { "message": "Scan abgebrochen." },
|
||||||
"retyingSection": { "message": "Wiederhole Abschnitt \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"retyingSection": { "message": "Wiederhole Abschnitt \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"retrySuccess": { "message": "[ERFOLG] Wiederholung von \"$title$\" abgeschlossen.", "placeholders": { "title": { "content": "$1" } } },
|
"retrySuccess": { "message": "[ERFOLG] Wiederholung von \"$title$\" abgeschlossen.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"retryError": { "message": "[FINALER FEHLER] Wiederholung für \"$title$\" fehlgeschlagen: $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
|
"retryError": { "message": "[FINALER FEHLER] Wiederholung für \"$title$\" fehlgeschlagen: $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
|
||||||
"noRetriesPending": { "message": "Keine ausstehenden Wiederholungen." },
|
"noRetriesPending": { "message": "Keine ausstehenden Wiederholungen." },
|
||||||
@ -233,10 +233,10 @@ _pt": { "message": "Portugiesisch" },
|
|||||||
"noSongsFound": { "message": "Keine Lieder gefunden." },
|
"noSongsFound": { "message": "Keine Lieder gefunden." },
|
||||||
"shuffleOn": { "message": "Zufallsmodus aktiviert." },
|
"shuffleOn": { "message": "Zufallsmodus aktiviert." },
|
||||||
"shuffleOff": { "message": "Zufallsmodus deaktiviert." },
|
"shuffleOff": { "message": "Zufallsmodus deaktiviert." },
|
||||||
"downloadingSong": { "message": "Starte Download von \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"downloadingSong": { "message": "Starte Download von \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"songDownloaded": { "message": "\"$title$\" heruntergeladen.", "placeholders": { "title": { "content": "$1" } } },
|
"songDownloaded": { "message": "\"$title$\" heruntergeladen.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"errorDownloadingSong": { "message": "Fehler beim Herunterladen von \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
"errorDownloadingSong": { "message": "Fehler beim Herunterladen von \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"generatingAlbumM3U": { "message": "Generiere M3U für \"$artist$\"...", "placeholders": { "artist": { "content": "$1" } } },
|
"generatingAlbumM3U": { "message": "Generiere M3U für \"$artist$\"", "placeholders": { "artist": { "content": "$1" } } },
|
||||||
"albumM3UGenerated": { "message": "M3U für Album \"$artist$\" generiert.", "placeholders": { "artist": { "content": "$1" } } },
|
"albumM3UGenerated": { "message": "M3U für Album \"$artist$\" generiert.", "placeholders": { "artist": { "content": "$1" } } },
|
||||||
"playbackError": { "message": "Wiedergabefehler" },
|
"playbackError": { "message": "Wiedergabefehler" },
|
||||||
"errorLabel": { "message": "Fehler" },
|
"errorLabel": { "message": "Fehler" },
|
||||||
@ -251,15 +251,15 @@ _pt": { "message": "Portugiesisch" },
|
|||||||
"searchResultsFor": {"message": "Ergebnisse für \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
"searchResultsFor": {"message": "Ergebnisse für \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
||||||
"contentFrom": {"message": "Inhalt von $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
"contentFrom": {"message": "Inhalt von $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
||||||
"explore": {"message": "Entdecken"},
|
"explore": {"message": "Entdecken"},
|
||||||
"noGenre": {"message": "Ohne Kategorie"},
|
"noGenre": {"message": "Unkategorisiert"},
|
||||||
"synopsis": {"message": "Zusammenfassung"},
|
"synopsis": {"message": "Zusammenfassung"},
|
||||||
"noSynopsis": {"message": "Keine Zusammenfassung verfügbar."},
|
"noSynopsis": {"message": "Keine Zusammenfassung verfügbar."},
|
||||||
"director": {"message": "Regisseur:"},
|
"director": {"message": "Regisseur:"},
|
||||||
"writer": {"message": "Autor:"},
|
"writer": {"message": "Autor:"},
|
||||||
"viewOnImdb": {"message": "Auf IMDb ansehen"},
|
"viewOnImdb": {"message": "Auf IMDb ansehen"},
|
||||||
"watchTrailer": {"message": "Trailer ansehen"},
|
"watchTrailer": {"message": "Trailer ansehen"},
|
||||||
"addToFavorites": {"message": "Favorit"},
|
"addToFavorites": {"message": "Zu Favoriten hinzufügen"},
|
||||||
"removeFromFavorites": {"message": "Entfernen"},
|
"removeFromFavorites": {"message": "Aus Favoriten entfernen"},
|
||||||
"notAvailable": {"message": "Nicht verfügbar"},
|
"notAvailable": {"message": "Nicht verfügbar"},
|
||||||
"mainCast": {"message": "Hauptbesetzung"},
|
"mainCast": {"message": "Hauptbesetzung"},
|
||||||
"seasonsAndEpisodes": {"message": "Staffeln & Episoden"},
|
"seasonsAndEpisodes": {"message": "Staffeln & Episoden"},
|
||||||
|
@ -1,290 +1,290 @@
|
|||||||
{
|
{
|
||||||
"appName": { "message": "CinePlex" },
|
"appName": { "message": "CinePlex" },
|
||||||
"appDescription": { "message": "Scans Plex servers to find content and displays it in the interface" },
|
"appDescription": { "message": "Escanea servidores de Plex para encontrar contenido y lo muestra en la interfaz" },
|
||||||
"appTagline": { "message": "Movies, Series & Music" },
|
"appTagline": { "message": "Películas, Series y Música" },
|
||||||
"appLocaleCode": { "message": "en-US" },
|
"appLocaleCode": { "message": "es-ES" },
|
||||||
"toggleNavigation": { "message": "Toggle Navigation" },
|
"toggleNavigation": { "message": "Alternar Navegación" },
|
||||||
"searchPlaceholder": { "message": "Search for movies or series..." },
|
"searchPlaceholder": { "message": "Buscar películas o series..." },
|
||||||
"openMusicPlayer": { "message": "Open Music Player" },
|
"openMusicPlayer": { "message": "Abrir Reproductor de Música" },
|
||||||
"settings": { "message": "Settings" },
|
"settings": { "message": "Ajustes" },
|
||||||
"navMovies": { "message": "Movies" },
|
"navMovies": { "message": "Películas" },
|
||||||
"navSeries": { "message": "Series" },
|
"navSeries": { "message": "Series" },
|
||||||
"navPhotos": { "message": "Photos" },
|
"navPhotos": { "message": "Fotos" },
|
||||||
"navStats": { "message": "Statistics" },
|
"navStats": { "message": "Estadísticas" },
|
||||||
"navFavorites": { "message": "Favorites" },
|
"navFavorites": { "message": "Favoritos" },
|
||||||
"navHistory": { "message": "History" },
|
"navHistory": { "message": "Historial" },
|
||||||
"navRecommendations": { "message": "Recommendations" },
|
"navRecommendations": { "message": "Recomendaciones" },
|
||||||
"navMusic": { "message": "Music" },
|
"navMusic": { "message": "Música" },
|
||||||
"heroWelcome": { "message": "Welcome to CinePlex" },
|
"heroWelcome": { "message": "Bienvenido a CinePlex" },
|
||||||
"heroSubtitle": { "message": "Explore thousands of movies and series." },
|
"heroSubtitle": { "message": "Explora miles de películas y series." },
|
||||||
"addStream": { "message": "Add Stream" },
|
"addStream": { "message": "Añadir Stream" },
|
||||||
"moreInfo": { "message": "More Info" },
|
"moreInfo": { "message": "Más información" },
|
||||||
"popularMovies": { "message": "Popular Movies" },
|
"popularMovies": { "message": "Películas Populares" },
|
||||||
"allGenres": { "message": "All Genres" },
|
"allGenres": { "message": "Todos los géneros" },
|
||||||
"allYears": { "message": "All Years" },
|
"allYears": { "message": "Todos los años" },
|
||||||
"sortPopular": { "message": "Most Popular" },
|
"sortPopular": { "message": "Más populares" },
|
||||||
"sortTopRated": { "message": "Top Rated" },
|
"sortTopRated": { "message": "Mejor valoradas" },
|
||||||
"sortRecent": { "message": "Most Recent" },
|
"sortRecent": { "message": "Más recientes" },
|
||||||
"loadMore": { "message": "Load More" },
|
"loadMore": { "message": "Cargar más" },
|
||||||
"photosBreadcrumbHome": { "message": "Albums" },
|
"photosBreadcrumbHome": { "message": "Álbumes" },
|
||||||
"selectServer": { "message": "Select a server" },
|
"selectServer": { "message": "Selecciona un servidor" },
|
||||||
"loading": { "message": "Loading..." },
|
"loading": { "message": "Cargando..." },
|
||||||
"photosEmptyState": { "message": "No albums or photos found." },
|
"photosEmptyState": { "message": "No se encontraron álbumes ni fotos." },
|
||||||
"photosEmptyStateSub": { "message": "Please select a server or make sure you have a photo library in Plex." },
|
"photosEmptyStateSub": { "message": "Por favor, selecciona un servidor o asegúrate de tener una biblioteca de fotos en Plex." },
|
||||||
"statsTitle": { "message": "Library Statistics" },
|
"statsTitle": { "message": "Estadísticas de la Biblioteca" },
|
||||||
"statsAllTokens": { "message": "All Tokens" },
|
"statsAllTokens": { "message": "Todos los Tokens" },
|
||||||
"statsAnalyzing": { "message": "Analyzing your library..." },
|
"statsAnalyzing": { "message": "Analizando tu biblioteca..." },
|
||||||
"statsActiveTokens": { "message": "Active Tokens" },
|
"statsActiveTokens": { "message": "Tokens Activos" },
|
||||||
"statsServersFound": { "message": "Servers Found" },
|
"statsServersFound": { "message": "Servidores Encontrados" },
|
||||||
"statsUniqueMovies": { "message": "Unique Movies" },
|
"statsUniqueMovies": { "message": "Películas Únicas" },
|
||||||
"statsUniqueSeries": { "message": "Unique Series" },
|
"statsUniqueSeries": { "message": "Series Únicas" },
|
||||||
"statsUniqueArtists": { "message": "Unique Artists" },
|
"statsUniqueArtists": { "message": "Artistas Únicos" },
|
||||||
"statsTokenServers": { "message": "Token's Servers" },
|
"statsTokenServers": { "message": "Servidores del Token" },
|
||||||
"statsChartMoviesByGenre": { "message": "Content by Genre (Movies)" },
|
"statsChartMoviesByGenre": { "message": "Contenido por Género (Películas)" },
|
||||||
"statsChartSeriesByGenre": { "message": "Content by Genre (Series)" },
|
"statsChartSeriesByGenre": { "message": "Contenido por Género (Series)" },
|
||||||
"statsChartByDecade": { "message": "Content by Decade" },
|
"statsChartByDecade": { "message": "Contenido por Década" },
|
||||||
"recommendationsTitle": { "message": "Recommendations For You" },
|
"recommendationsTitle": { "message": "Recomendaciones para ti" },
|
||||||
"historyTitle": { "message": "Viewing History" },
|
"historyTitle": { "message": "Historial de Visualización" },
|
||||||
"clearHistory": { "message": "Clear All" },
|
"clearHistory": { "message": "Borrar Todo" },
|
||||||
"consoleTitle": { "message": "Plex Scan Console" },
|
"consoleTitle": { "message": "Consola de Escaneo Plex" },
|
||||||
"footerCredit": { "message": "An interface for your Plex universe." },
|
"footerCredit": { "message": "Una interfaz para tu universo Plex." },
|
||||||
"backButton": { "message": "Back" },
|
"backButton": { "message": "Atrás" },
|
||||||
"closeTrailer": { "message": "Close trailer" },
|
"closeTrailer": { "message": "Cerrar tráiler" },
|
||||||
"close": { "message": "Close" },
|
"close": { "message": "Cerrar" },
|
||||||
"photoViewer": { "message": "Photo Viewer" },
|
"photoViewer": { "message": "Visor de fotos" },
|
||||||
"previous": { "message": "Previous" },
|
"previous": { "message": "Anterior" },
|
||||||
"next": { "message": "Next" },
|
"next": { "message": "Siguiente" },
|
||||||
"notificationTemplateText": { "message": "Notification" },
|
"notificationTemplateText": { "message": "Notificación" },
|
||||||
"settingsTitleFull": { "message": "Settings and Configuration" },
|
"settingsTitleFull": { "message": "Ajustes y Configuración" },
|
||||||
"settingsTabGeneral": { "message": "General" },
|
"settingsTabGeneral": { "message": "General" },
|
||||||
"settingsTabPlex": { "message": "Plex" },
|
"settingsTabPlex": { "message": "Plex" },
|
||||||
"settingsTabPhpGen": { "message": "PHP Generator" },
|
"settingsTabPhpGen": { "message": "Generador PHP" },
|
||||||
"settingsTabData": { "message": "Data" },
|
"settingsTabData": { "message": "Datos" },
|
||||||
"settingsApiServer": { "message": "API and Server Configuration" },
|
"settingsApiServer": { "message": "Configuración de API y Servidor" },
|
||||||
"settingsTmdbApiLabel": { "message": "TMDB API Key (Optional)" },
|
"settingsTmdbApiLabel": { "message": "Clave de API de TMDB (Opcional)" },
|
||||||
"settingsTmdbApiPlaceholder": { "message": "Will use default key if left blank" },
|
"settingsTmdbApiPlaceholder": { "message": "Se usará la clave por defecto si se deja en blanco" },
|
||||||
"settingsTmdbLangLabel": { "message": "Language for TMDB & UI" },
|
"settingsTmdbLangLabel": { "message": "Idioma para TMDB y la interfaz" },
|
||||||
"settingsPhpUrlLabel": { "message": "Server URL for Adding Streams" },
|
"settingsPhpUrlLabel": { "message": "URL del Servidor para Añadir Streams" },
|
||||||
"settingsPhpUrlPlaceholder": { "message": "https://your-server.com/path/to/script.php" },
|
"settingsPhpUrlPlaceholder": { "message": "https://tu-servidor.com/ruta/al/script.php" },
|
||||||
"settingsInterface": { "message": "Interface" },
|
"settingsInterface": { "message": "Interfaz" },
|
||||||
"settingsLightTheme": { "message": "Light Mode" },
|
"settingsLightTheme": { "message": "Modo Claro" },
|
||||||
"settingsShowHero": { "message": "Show 'Hero' welcome section" },
|
"settingsShowHero": { "message": "Mostrar sección de bienvenida 'Hero'" },
|
||||||
"settingsScanContent": { "message": "Content Scanning" },
|
"settingsScanContent": { "message": "Escaneo de Contenido" },
|
||||||
"settingsScanDesc": { "message": "Select what to scan and press the button." },
|
"settingsScanDesc": { "message": "Selecciona qué escanear y pulsa el botón." },
|
||||||
"settingsScanMovies": { "message": "Movies" },
|
"settingsScanMovies": { "message": "Películas" },
|
||||||
"settingsScanShows": { "message": "Series" },
|
"settingsScanShows": { "message": "Series" },
|
||||||
"settingsScanArtists": { "message": "Music" },
|
"settingsScanArtists": { "message": "Música" },
|
||||||
"settingsScanPhotos": { "message": "Photos" },
|
"settingsScanPhotos": { "message": "Fotos" },
|
||||||
"settingsSelectAll": { "message": "Select All" },
|
"settingsSelectAll": { "message": "Seleccionar Todo" },
|
||||||
"settingsStartScan": { "message": "Start Scan" },
|
"settingsStartScan": { "message": "Iniciar Escaneo" },
|
||||||
"settingsPlexTokens": { "message": "Plex Tokens" },
|
"settingsPlexTokens": { "message": "Tokens de Plex" },
|
||||||
"settingsPlexTokensDesc": { "message": "Edit the list of Plex tokens (JSON format)." },
|
"settingsPlexTokensDesc": { "message": "Edita la lista de tokens de Plex (formato JSON)." },
|
||||||
"settingsSaveTokens": { "message": "Save Tokens" },
|
"settingsSaveTokens": { "message": "Guardar Tokens" },
|
||||||
"settingsPhpGenTitle": { "message": "PHP Server Script Generator" },
|
"settingsPhpGenTitle": { "message": "Generador de Script PHP para el Servidor" },
|
||||||
"settingsPhpFileOptions": { "message": "File Options" },
|
"settingsPhpFileOptions": { "message": "Opciones del Archivo" },
|
||||||
"settingsPhpSavePathLabel": { "message": "Save Path on Server" },
|
"settingsPhpSavePathLabel": { "message": "Ruta de Guardado en el Servidor" },
|
||||||
"settingsPhpSavePathPlaceholder": { "message": "Ex: /var/www/html/lists (blank for same folder)" },
|
"settingsPhpSavePathPlaceholder": { "message": "Ej: /var/www/html/listas (en blanco para la misma carpeta)" },
|
||||||
"settingsPhpFilenameLabel": { "message": "Filename" },
|
"settingsPhpFilenameLabel": { "message": "Nombre del Archivo" },
|
||||||
"settingsPhpFileAction": { "message": "File Action" },
|
"settingsPhpFileAction": { "message": "Acción sobre el Archivo" },
|
||||||
"settingsPhpActionAppend": { "message": "Append to the end of the file (cumulative)" },
|
"settingsPhpActionAppend": { "message": "Añadir al final del archivo (acumulativo)" },
|
||||||
"settingsPhpActionOverwrite": { "message": "Overwrite the file (start fresh)" },
|
"settingsPhpActionOverwrite": { "message": "Sobrescribir el archivo (empezar de nuevo)" },
|
||||||
"settingsPhpSecurity": { "message": "Security (Optional)" },
|
"settingsPhpSecurity": { "message": "Seguridad (Opcional)" },
|
||||||
"settingsPhpUseSecretKey": { "message": "Use secret key (Recommended)" },
|
"settingsPhpUseSecretKey": { "message": "Usar clave secreta (Recomendado)" },
|
||||||
"settingsPhpSecretKeyPlaceholder": { "message": "Enter a secure secret key" },
|
"settingsPhpSecretKeyPlaceholder": { "message": "Introduce una clave secreta segura" },
|
||||||
"settingsPhpGeneratedCode": { "message": "Generated Code" },
|
"settingsPhpGeneratedCode": { "message": "Código Generado" },
|
||||||
"settingsPhpGeneratedPlaceholder": { "message": "The generated PHP code will appear here." },
|
"settingsPhpGeneratedPlaceholder": { "message": "El código PHP generado aparecerá aquí." },
|
||||||
"settingsGenerateScript": { "message": "Generate Script" },
|
"settingsGenerateScript": { "message": "Generar Script" },
|
||||||
"settingsCopyScript": { "message": "Copy Script" },
|
"settingsCopyScript": { "message": "Copiar Script" },
|
||||||
"settingsDataManagement": { "message": "Local Database Management" },
|
"settingsDataManagement": { "message": "Gestión de la Base de Datos Local" },
|
||||||
"settingsImportDb": { "message": "Import DB from File" },
|
"settingsImportDb": { "message": "Importar BD desde Archivo" },
|
||||||
"settingsExportDb": { "message": "Export DB to File" },
|
"settingsExportDb": { "message": "Exportar BD a Archivo" },
|
||||||
"settingsClearContent": { "message": "Clear Local Content Data" },
|
"settingsClearContent": { "message": "Borrar Datos de Contenido Local" },
|
||||||
"settingsClearContentDesc": { "message": "This action will delete movies, series, and music from the local database, but will not affect your favorites or settings." },
|
"settingsClearContentDesc": { "message": "Esta acción borrará películas, series y música de la base de datos local, pero no afectará a tus favoritos ni a tus ajustes." },
|
||||||
"settingsClose": { "message": "Close" },
|
"settingsClose": { "message": "Cerrar" },
|
||||||
"settingsSave": { "message": "Save Settings" },
|
"settingsSave": { "message": "Guardar Ajustes" },
|
||||||
"musicSidenavTitle": { "message": "Plex Music" },
|
"musicSidenavTitle": { "message": "Música de Plex" },
|
||||||
"musicAllServers": { "message": "All Servers" },
|
"musicAllServers": { "message": "Todos los Servidores" },
|
||||||
"musicSearchArtistPlaceholder": { "message": "Search artist..." },
|
"musicSearchArtistPlaceholder": { "message": "Buscar artista..." },
|
||||||
"musicSearchDiscographyPlaceholder": { "message": "Search in discography..." },
|
"musicSearchDiscographyPlaceholder": { "message": "Buscar en la discografía..." },
|
||||||
"musicNothingPlaying": { "message": "Nothing playing" },
|
"musicNothingPlaying": { "message": "Nada en reproducción" },
|
||||||
"musicSelectSong": { "message": "Select a song" },
|
"musicSelectSong": { "message": "Selecciona una canción" },
|
||||||
"musicToStart": { "message": "to start playing" },
|
"musicToStart": { "message": "para empezar a reproducir" },
|
||||||
"miniplayerDownloadSong": { "message": "Download song" },
|
"miniplayerDownloadSong": { "message": "Descargar canción" },
|
||||||
"miniplayerDownloadAlbum": { "message": "Download M3U album" },
|
"miniplayerDownloadAlbum": { "message": "Descargar álbum M3U" },
|
||||||
"miniplayerVolume": { "message": "Volume" },
|
"miniplayerVolume": { "message": "Volumen" },
|
||||||
"miniplayerShuffle": { "message": "Shuffle" },
|
"miniplayerShuffle": { "message": "Aleatorio" },
|
||||||
"miniplayerEqualizer": { "message": "Equalizer" },
|
"miniplayerEqualizer": { "message": "Ecualizador" },
|
||||||
"miniplayerOpenList": { "message": "Open list" },
|
"miniplayerOpenList": { "message": "Abrir lista" },
|
||||||
"eqTitle": { "message": "Graphic Equalizer" },
|
"eqTitle": { "message": "Ecualizador Gráfico" },
|
||||||
"eqPresetsLabel": { "message": "Presets" },
|
"eqPresetsLabel": { "message": "Preajustes" },
|
||||||
"eqPresetFlat": { "message": "Flat" },
|
"eqPresetFlat": { "message": "Plano" },
|
||||||
"eqPresetRock": { "message": "Rock" },
|
"eqPresetRock": { "message": "Rock" },
|
||||||
"eqPresetPop": { "message": "Pop" },
|
"eqPresetPop": { "message": "Pop" },
|
||||||
"eqPresetJazz": { "message": "Jazz" },
|
"eqPresetJazz": { "message": "Jazz" },
|
||||||
"eqPresetClassical": { "message": "Classical" },
|
"eqPresetClassical": { "message": "Clásica" },
|
||||||
"eqPresetBassBoost": { "message": "Bass Boost" },
|
"eqPresetBassBoost": { "message": "Refuerzo de Graves" },
|
||||||
"eqPreampLabel": { "message": "Pre-Amp" },
|
"eqPreampLabel": { "message": "Preamplificador" },
|
||||||
"infoModalTitle": { "message": "Information" },
|
"infoModalTitle": { "message": "Información" },
|
||||||
"infoModalFieldTitle": { "message": "Title:" },
|
"infoModalFieldTitle": { "message": "Título:" },
|
||||||
"infoModalFieldArtist": { "message": "Artist:" },
|
"infoModalFieldArtist": { "message": "Artista:" },
|
||||||
"infoModalFieldAlbum": { "message": "Album:" },
|
"infoModalFieldAlbum": { "message": "Álbum:" },
|
||||||
"infoModalFieldSong": { "message": "Song:" },
|
"infoModalFieldSong": { "message": "Canción:" },
|
||||||
"infoModalFieldYear": { "message": "Year:" },
|
"infoModalFieldYear": { "message": "Año:" },
|
||||||
"infoModalFieldGenre": { "message": "Genre:" },
|
"infoModalFieldGenre": { "message": "Género:" },
|
||||||
"lang_en": { "message": "English" },
|
"lang_en": { "message": "Inglés" },
|
||||||
"lang_es": { "message": "Spanish" },
|
"lang_es": { "message": "Español" },
|
||||||
"lang_fr": { "message": "French" },
|
"lang_fr": { "message": "Francés" },
|
||||||
"lang_de": { "message": "German" },
|
"lang_de": { "message": "Alemán" },
|
||||||
"lang_it": { "message": "Italian" },
|
"lang_it": { "message": "Italiano" },
|
||||||
"lang_pt": { "message": "Portuguese" },
|
"lang_pt": { "message": "Portugués" },
|
||||||
"essentialFeaturesNotSupported": { "message": "Your browser does not support essential features." },
|
"essentialFeaturesNotSupported": { "message": "Tu navegador no soporta funciones esenciales." },
|
||||||
"dbAccessError": { "message": "Error accessing the local database." },
|
"dbAccessError": { "message": "Error al acceder a la base de datos local." },
|
||||||
"dbUpdateNeeded": { "message": "The database needs to be updated, please reload the page." },
|
"dbUpdateNeeded": { "message": "La base de datos necesita actualizarse, por favor recarga la página." },
|
||||||
"dbBlocked": { "message": "Please close other tabs of this application to continue." },
|
"dbBlocked": { "message": "Por favor, cierra otras pestañas de esta aplicación para continuar." },
|
||||||
"deletingContentData": { "message": "Deleting local content data..." },
|
"deletingContentData": { "message": "Borrando datos de contenido locales..." },
|
||||||
"noContentDataToDelete": { "message": "No content data to delete." },
|
"noContentDataToDelete": { "message": "No hay datos de contenido que borrar." },
|
||||||
"contentDataDeleted": { "message": "Content data deleted from IndexedDB." },
|
"contentDataDeleted": { "message": "Datos de contenido borrados de IndexedDB." },
|
||||||
"errorDeletingData": { "message": "Error deleting data: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorDeletingData": { "message": "Error al borrar datos: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"aceEditorNotAvailable": { "message": "Text editor not available." },
|
"aceEditorNotAvailable": { "message": "Editor de texto no disponible." },
|
||||||
"errorLoadingTokens": { "message": "Error loading tokens to editor." },
|
"errorLoadingTokens": { "message": "Error al cargar tokens para editar." },
|
||||||
"errorLoadingTokensMessage": { "message": "Error loading tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorLoadingTokensMessage": { "message": "Error al cargar tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"aceEditorNotAvailableToSave": { "message": "Editor not available for saving." },
|
"aceEditorNotAvailableToSave": { "message": "Editor no disponible para guardar." },
|
||||||
"invalidJsonFormat": { "message": "Invalid JSON format. Must be { \"tokens\": [...] }" },
|
"invalidJsonFormat": { "message": "Formato JSON inválido. Debe ser { \"tokens\": [...] }" },
|
||||||
"tokensSaved": { "message": "Tokens saved successfully." },
|
"tokensSaved": { "message": "Tokens guardados correctamente." },
|
||||||
"errorSavingTokens": { "message": "Error saving tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorSavingTokens": { "message": "Error al guardar tokens: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"dbNotAvailable": { "message": "IndexedDB is not available." },
|
"dbNotAvailable": { "message": "IndexedDB no está disponible." },
|
||||||
"dbExported": { "message": "Database exported successfully." },
|
"dbExported": { "message": "Base de datos exportada con éxito." },
|
||||||
"errorExportingDb": { "message": "Error exporting database: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorExportingDb": { "message": "Error al exportar la base de datos: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"invalidJsonFile": { "message": "The file does not contain a valid JSON object." },
|
"invalidJsonFile": { "message": "El archivo no contiene un objeto JSON válido." },
|
||||||
"noDataToImport": { "message": "The file does not contain data for the current DB sections." },
|
"noDataToImport": { "message": "El archivo no contiene datos para las secciones de la BD actual." },
|
||||||
"dbImported": { "message": "Database imported successfully." },
|
"dbImported": { "message": "Base de datos importada correctamente." },
|
||||||
"errorImportingDb": { "message": "Error importing database: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorImportingDb": { "message": "Error al importar la base de datos: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"updatingView": { "message": "Updating view with new data..." },
|
"updatingView": { "message": "Actualizando la vista con los nuevos datos..." },
|
||||||
"confirmClearContent": { "message": "Are you sure you want to delete local content data (Movies, Series, Music, etc.)? Favorites and Settings will NOT be deleted." },
|
"confirmClearContent": { "message": "¿Estás seguro de que deseas borrar los datos de contenido locales (Películas, Series, Música, etc.)? Los Favoritos y Ajustes NO se borrarán." },
|
||||||
"trailerNotFound": { "message": "No trailer found for this title." },
|
"trailerNotFound": { "message": "No se encontró tráiler para este título." },
|
||||||
"confirmClearHistory": { "message": "Are you sure you want to delete your entire viewing history? This action cannot be undone." },
|
"confirmClearHistory": { "message": "¿Estás seguro de que deseas borrar todo tu historial de visualización? Esta acción no se puede deshacer." },
|
||||||
"historyCleared": { "message": "Viewing history cleared." },
|
"historyCleared": { "message": "Historial de visualización borrado." },
|
||||||
"historyItemDeleted": { "message": "Item deleted from history." },
|
"historyItemDeleted": { "message": "Elemento borrado del historial." },
|
||||||
"errorGeneratingScript": { "message": "First, generate a script to be able to copy it." },
|
"errorGeneratingScript": { "message": "Primero genera un script para poder copiarlo." },
|
||||||
"scriptCopied": { "message": "PHP script copied to clipboard." },
|
"scriptCopied": { "message": "Script PHP copiado al portapapeles." },
|
||||||
"errorCopyingScript": { "message": "Error copying script." },
|
"errorCopyingScript": { "message": "Error al copiar el script." },
|
||||||
"scriptGenerated": { "message": "PHP script generated." },
|
"scriptGenerated": { "message": "Script PHP generado." },
|
||||||
"errorLoadingAlbum": { "message": "Error loading album: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorLoadingAlbum": { "message": "Error al cargar álbum: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"noPhotoServerSelected": { "message": "Error: No photo server has been selected." },
|
"noPhotoServerSelected": { "message": "Error: No se ha seleccionado un servidor de fotos." },
|
||||||
"loadingGenres": { "message": "Loading genres..." },
|
"loadingGenres": { "message": "Cargando géneros..." },
|
||||||
"errorLoadingGenres": { "message": "Error loading" },
|
"errorLoadingGenres": { "message": "Error al cargar" },
|
||||||
"noContentFound": { "message": "No results found." },
|
"noContentFound": { "message": "No se encontraron resultados." },
|
||||||
"couldNotLoadContent": { "message": "Could not load content." },
|
"couldNotLoadContent": { "message": "No se pudo cargar el contenido." },
|
||||||
"noFavorites": { "message": "You don't have any favorites yet." },
|
"noFavorites": { "message": "Aún no tienes favoritos." },
|
||||||
"errorLoadingFavorites": { "message": "Error loading favorites." },
|
"errorLoadingFavorites": { "message": "Error al cargar favoritos." },
|
||||||
"historyEmpty": { "message": "Your history is empty." },
|
"historyEmpty": { "message": "Tu historial está vacío." },
|
||||||
"historyEmptySub": { "message": "Browse and watch content for it to appear here." },
|
"historyEmptySub": { "message": "Explora y mira contenido para que aparezca aquí." },
|
||||||
"errorGeneratingRecommendations": { "message": "Error generating recommendations." },
|
"errorGeneratingRecommendations": { "message": "Error al generar recomendaciones." },
|
||||||
"noRecommendations": { "message": "We need to know you better to give you recommendations!" },
|
"noRecommendations": { "message": "¡Necesitamos conocerte mejor para darte recomendaciones!" },
|
||||||
"errorGeneratingStats": { "message": "Error generating statistics." },
|
"errorGeneratingStats": { "message": "Error al generar estadísticas." },
|
||||||
"noServersForToken": { "message": "No associated servers found for this token." },
|
"noServersForToken": { "message": "No se encontraron servidores asociados para este token." },
|
||||||
"searchingActorContent": { "message": "Searching for content from $actorName$", "placeholders": { "actorName": { "content": "$1" } } },
|
"searchingActorContent": { "message": "Buscando contenido de $actorName$", "placeholders": { "actorName": { "content": "$1" } } },
|
||||||
"errorLoadingActorContent": { "message": "Could not load content for $actorName$.", "placeholders": { "actorName": { "content": "$1" } } },
|
"errorLoadingActorContent": { "message": "No se pudo cargar el contenido para $actorName$.", "placeholders": { "actorName": { "content": "$1" } } },
|
||||||
"errorAddingStream": { "message": "Error adding stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorAddingStream": { "message": "Error al añadir stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"phpUrlNotConfigured": { "message": "The PHP server URL is not configured. Please set it up in Settings." },
|
"phpUrlNotConfigured": { "message": "La URL del servidor PHP no está configurada. Por favor, configúrala en Ajustes." },
|
||||||
"searchingStreams": { "message": "Searching for streams for \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"searchingStreams": { "message": "Buscando streams para \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"sendingStreams": { "message": "Sending $count$ stream(s) to the server...", "placeholders": { "count": { "content": "$1" } } },
|
"sendingStreams": { "message": "Enviando $count$ stream(s) al servidor...", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"streamAddedSuccess": { "message": "Stream(s) added successfully." },
|
"streamAddedSuccess": { "message": "Stream(s) añadido(s) con éxito." },
|
||||||
"generatingM3U": { "message": "Generating M3U for \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"generatingM3U": { "message": "Generando M3U para \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"m3uDownloaded": { "message": "M3U for \"$title$\" downloaded.", "placeholders": { "title": { "content": "$1" } } },
|
"m3uDownloaded": { "message": "M3U para \"$title$\" descargado.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"errorGeneratingM3U": { "message": "Error generating M3U: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorGeneratingM3U": { "message": "Error al generar M3U: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"settingsSavedSuccess": { "message": "Settings saved successfully." },
|
"settingsSavedSuccess": { "message": "Ajustes guardados correctamente." },
|
||||||
"errorSavingSettings": { "message": "Error saving settings to the database." },
|
"errorSavingSettings": { "message": "Error al guardar los ajustes en la base de datos." },
|
||||||
"languageChangeReload": { "message": "Language changed. The application will now reload." },
|
"languageChangeReload": { "message": "Idioma cambiado. La aplicación se recargará ahora." },
|
||||||
"addedToFavorites": { "message": "Added to favorites." },
|
"addedToFavorites": { "message": "Añadido a favoritos." },
|
||||||
"removedFromFavorites": { "message": "Removed from favorites." },
|
"removedFromFavorites": { "message": "Eliminado de favoritos." },
|
||||||
"plexScanInProgress": { "message": "Plex scan is already in progress." },
|
"plexScanInProgress": { "message": "El escaneo Plex ya está en curso." },
|
||||||
"plexScanStarting": { "message": "Starting Plex scan..." },
|
"plexScanStarting": { "message": "Iniciando escaneo Plex..." },
|
||||||
"noPlexTokens": { "message": "No Plex tokens configured." },
|
"noPlexTokens": { "message": "No hay tokens de Plex configurados." },
|
||||||
"clearingSections": { "message": "Clearing sections: $sections$", "placeholders": { "sections": { "content": "$1" } } },
|
"clearingSections": { "message": "Limpiando secciones: $sections$", "placeholders": { "sections": { "content": "$1" } } },
|
||||||
"sectionsCleared": { "message": "Sections cleared." },
|
"sectionsCleared": { "message": "Secciones limpiadas." },
|
||||||
"tokenFoundServers": { "message": "Token $token$... found $count$ servers.", "placeholders": { "token": { "content": "$1" }, "count": { "content": "$2" } } },
|
"tokenFoundServers": { "message": "Token $token$... encontró $count$ servidores.", "placeholders": { "token": { "content": "$1" }, "count": { "content": "$2" } } },
|
||||||
"errorProcessingToken": { "message": "Error processing token $token$...: $message$", "placeholders": { "token": { "content": "$1" }, "message": { "content": "$2" } } },
|
"errorProcessingToken": { "message": "Error procesando token $token$...: $message$", "placeholders": { "token": { "content": "$1" }, "message": { "content": "$2" } } },
|
||||||
"initialScanPhaseComplete": { "message": "Initial scan phase completed." },
|
"initialScanPhaseComplete": { "message": "Fase de escaneo inicial finalizada." },
|
||||||
"retryPhaseFinished": { "message": "Retry phase finished." },
|
"retryPhaseFinished": { "message": "Fase de reintentos finalizada." },
|
||||||
"plexScanFinished": { "message": "Plex scan finished. Updating content..." },
|
"plexScanFinished": { "message": "Escaneo finalizado. Actualizando contenido..." },
|
||||||
"plexScanFatalError": { "message": "FATAL ERROR: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"plexScanFatalError": { "message": "ERROR FATAL: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"errorDuringScan": { "message": "Error during scan: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorDuringScan": { "message": "Error durante el escaneo: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"scanCancelled": { "message": "Scan cancelled by user." },
|
"scanCancelled": { "message": "Escaneo cancelado por el usuario." },
|
||||||
"scanCancelledInfo": { "message": "Scan cancelled." },
|
"scanCancelledInfo": { "message": "Escaneo cancelado." },
|
||||||
"retyingSection": { "message": "Retrying section \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"retyingSection": { "message": "Reintentando sección \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"retrySuccess": { "message": "[SUCCESS] Retry of \"$title$\" completed.", "placeholders": { "title": { "content": "$1" } } },
|
"retrySuccess": { "message": "[ÉXITO] Reintento de \"$title$\" completado.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"retryError": { "message": "[FINAL ERROR] Retry failed for \"$title$\": $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
|
"retryError": { "message": "[ERROR FINAL] Falló el reintento para \"$title$\": $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
|
||||||
"noRetriesPending": { "message": "No pending retries." },
|
"noRetriesPending": { "message": "No hay reintentos pendientes." },
|
||||||
"startingRetryPhase": { "message": "Starting retry phase for $count$ sections...", "placeholders": { "count": { "content": "$1" } } },
|
"startingRetryPhase": { "message": "Iniciando fase de reintentos para $count$ secciones...", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"retryPhaseCancelled": { "message": "Retry phase cancelled." },
|
"retryPhaseCancelled": { "message": "Fase de reintentos cancelada." },
|
||||||
"errorInitializingMusicPlayer": { "message": "Error initializing music player." },
|
"errorInitializingMusicPlayer": { "message": "Error inicializando el reproductor de música." },
|
||||||
"criticalErrorLoadingMusic": { "message": "Critical error loading music data." },
|
"criticalErrorLoadingMusic": { "message": "Error crítico al cargar datos de música." },
|
||||||
"errorLoadingArtists": { "message": "Error loading artists." },
|
"errorLoadingArtists": { "message": "Error al cargar artistas." },
|
||||||
"dbUnavailableError": { "message": "Error: Database not available." },
|
"dbUnavailableError": { "message": "Error: Base de datos no disponible." },
|
||||||
"updatingMusicData": { "message": "Updating music data..." },
|
"updatingMusicData": { "message": "Actualizando datos de música..." },
|
||||||
"musicDataUpdated": { "message": "Music data updated." },
|
"musicDataUpdated": { "message": "Datos de música actualizados." },
|
||||||
"errorFetchingArtistSongs": { "message": "Error getting artist's songs." },
|
"errorFetchingArtistSongs": { "message": "Error al obtener las canciones del artista." },
|
||||||
"errorLoadingSongs": { "message": "Error loading songs." },
|
"errorLoadingSongs": { "message": "Error cargando canciones." },
|
||||||
"noArtistsFound": { "message": "No artists found." },
|
"noArtistsFound": { "message": "No se encontraron artistas." },
|
||||||
"artistsCounter": { "message": "$start$-$end$ of $total$", "placeholders": { "start": { "content": "$1" }, "end": { "content": "$2" }, "total": { "content": "$3" } } },
|
"artistsCounter": { "message": "$start$-$end$ de $total$", "placeholders": { "start": { "content": "$1" }, "end": { "content": "$2" }, "total": { "content": "$3" } } },
|
||||||
"artistsCounterSingle": { "message": "$total$ Artists", "placeholders": { "total": { "content": "$1" } } },
|
"artistsCounterSingle": { "message": "$total$ Artistas", "placeholders": { "total": { "content": "$1" } } },
|
||||||
"artistsCounterLoading": { "message": "Loading..." },
|
"artistsCounterLoading": { "message": "Cargando..." },
|
||||||
"noSongsFound": { "message": "No songs found." },
|
"noSongsFound": { "message": "No se encontraron canciones." },
|
||||||
"shuffleOn": { "message": "Shuffle mode enabled." },
|
"shuffleOn": { "message": "Modo aleatorio activado." },
|
||||||
"shuffleOff": { "message": "Shuffle mode disabled." },
|
"shuffleOff": { "message": "Modo aleatorio desactivado." },
|
||||||
"downloadingSong": { "message": "Starting download of \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"downloadingSong": { "message": "Iniciando descarga de \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"songDownloaded": { "message": "\"$title$\" downloaded.", "placeholders": { "title": { "content": "$1" } } },
|
"songDownloaded": { "message": "\"$title$\" descargado.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"errorDownloadingSong": { "message": "Error downloading \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
"errorDownloadingSong": { "message": "Error al descargar \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"generatingAlbumM3U": { "message": "Generating M3U for \"$artist$\"...", "placeholders": { "artist": { "content": "$1" } } },
|
"generatingAlbumM3U": { "message": "Generando M3U para \"$artist$\"", "placeholders": { "artist": { "content": "$1" } } },
|
||||||
"albumM3UGenerated": { "message": "M3U for album \"$artist$\" generated.", "placeholders": { "artist": { "content": "$1" } } },
|
"albumM3UGenerated": { "message": "M3U para el álbum \"$artist$\" generado.", "placeholders": { "artist": { "content": "$1" } } },
|
||||||
"playbackError": { "message": "Playback error" },
|
"playbackError": { "message": "Error de reproducción" },
|
||||||
"errorLabel": { "message": "Error" },
|
"errorLabel": { "message": "Error" },
|
||||||
"reloadingPage": { "message": "Reloading page..." },
|
"reloadingPage": { "message": "Recargando la página..." },
|
||||||
"viewed": { "message": "Viewed" },
|
"viewed": { "message": "Visto" },
|
||||||
"local": { "message": "Local" },
|
"local": { "message": "Local" },
|
||||||
"topRatedSort": {"message": "Top Rated"},
|
"topRatedSort": {"message": "Mejor Valoradas"},
|
||||||
"recentSort": {"message": "Recent"},
|
"recentSort": {"message": "Recientes"},
|
||||||
"popularSort": {"message": "Popular"},
|
"popularSort": {"message": "Populares"},
|
||||||
"moviesSectionTitle": {"message": "Movies"},
|
"moviesSectionTitle": {"message": "Películas"},
|
||||||
"seriesSectionTitle": {"message": "Series"},
|
"seriesSectionTitle": {"message": "Series"},
|
||||||
"searchResultsFor": {"message": "Results for \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
"searchResultsFor": {"message": "Resultados para \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
||||||
"contentFrom": {"message": "Content from $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
"contentFrom": {"message": "Contenido de $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
||||||
"explore": {"message": "Explore"},
|
"explore": {"message": "Explorar"},
|
||||||
"noGenre": {"message": "Uncategorized"},
|
"noGenre": {"message": "Sin categoría"},
|
||||||
"synopsis": {"message": "Synopsis"},
|
"synopsis": {"message": "Sinopsis"},
|
||||||
"noSynopsis": {"message": "No synopsis available."},
|
"noSynopsis": {"message": "No hay sinopsis disponible."},
|
||||||
"director": {"message": "Director:"},
|
"director": {"message": "Director:"},
|
||||||
"writer": {"message": "Writer:"},
|
"writer": {"message": "Escritor:"},
|
||||||
"viewOnImdb": {"message": "View on IMDb"},
|
"viewOnImdb": {"message": "Ver en IMDb"},
|
||||||
"watchTrailer": {"message": "Watch Trailer"},
|
"watchTrailer": {"message": "Ver Tráiler"},
|
||||||
"addToFavorites": {"message": "Favorite"},
|
"addToFavorites": {"message": "Añadir a favoritos"},
|
||||||
"removeFromFavorites": {"message": "Unfavorite"},
|
"removeFromFavorites": {"message": "Quitar de favoritos"},
|
||||||
"notAvailable": {"message": "Not Available"},
|
"notAvailable": {"message": "No disponible"},
|
||||||
"mainCast": {"message": "Main Cast"},
|
"mainCast": {"message": "Reparto Principal"},
|
||||||
"seasonsAndEpisodes": {"message": "Seasons & Episodes"},
|
"seasonsAndEpisodes": {"message": "Temporadas y Episodios"},
|
||||||
"similarContent": {"message": "Similar Content"},
|
"similarContent": {"message": "Contenido Similar"},
|
||||||
"episodesCount": {"message": "$count$ Episodes", "placeholders": {"count": {"content": "$1"}}},
|
"episodesCount": {"message": "$count$ Episodios", "placeholders": {"count": {"content": "$1"}}},
|
||||||
"seasonsCount": {"message": "$count$ Seasons", "placeholders": {"count": {"content": "$1"}}},
|
"seasonsCount": {"message": "$count$ Temporadas", "placeholders": {"count": {"content": "$1"}}},
|
||||||
"runtimeMinutes": {"message": "$count$ min", "placeholders": {"count": {"content": "$1"}}},
|
"runtimeMinutes": {"message": "$count$ min", "placeholders": {"count": {"content": "$1"}}},
|
||||||
"noTrailerFound": {"message": "No trailer was found for this title."},
|
"noTrailerFound": {"message": "No se encontró tráiler para este título."},
|
||||||
"fatalInitError": {"message": "Fatal Initialization Error"},
|
"fatalInitError": {"message": "Error fatal de inicialización"},
|
||||||
"fatalInitErrorSub": {"message": "The application could not be loaded."},
|
"fatalInitErrorSub": {"message": "No se pudo cargar la aplicación."},
|
||||||
"invalidStreamInfo": {"message": "Invalid information."},
|
"invalidStreamInfo": {"message": "Información inválida."},
|
||||||
"dbUnavailableForStreams": {"message": "Local database not available."},
|
"dbUnavailableForStreams": {"message": "Base de datos local no disponible."},
|
||||||
"noPlexServersForStreams": {"message": "No Plex servers."},
|
"noPlexServersForStreams": {"message": "No hay servidores Plex."},
|
||||||
"notFoundOnServers": {"message": "\"$query$\" not found on servers.", "placeholders": {"query": {"content": "$1"}}},
|
"notFoundOnServers": {"message": "No se encontró \"$query$\" en los servidores.", "placeholders": {"query": {"content": "$1"}}},
|
||||||
"relativeTime_justNow": { "message": "Just now" },
|
"relativeTime_justNow": { "message": "Ahora mismo" },
|
||||||
"relativeTime_minutesAgo": { "message": "$count$ minutes ago", "placeholders": { "count": { "content": "$1" } } },
|
"relativeTime_minutesAgo": { "message": "Hace $count$ minutos", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"relativeTime_hoursAgo": { "message": "$count$ hours ago", "placeholders": { "count": { "content": "$1" } } },
|
"relativeTime_hoursAgo": { "message": "Hace $count$ horas", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"relativeTime_yesterday": { "message": "Yesterday" },
|
"relativeTime_yesterday": { "message": "Ayer" },
|
||||||
"relativeTime_daysAgo": { "message": "$count$ days ago", "placeholders": { "count": { "content": "$1" } } },
|
"relativeTime_daysAgo": { "message": "Hace $count$ días", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"errorLoadingDetails": { "message": "Error Loading Details" },
|
"errorLoadingDetails": { "message": "Error al Cargar los Detalles" },
|
||||||
"errorLoadingLocalContent": { "message": "Error loading local content." },
|
"errorLoadingLocalContent": { "message": "Error al cargar el contenido local." },
|
||||||
"errorServerResponse": { "message": "Unsuccessful response from server." },
|
"errorServerResponse": { "message": "Respuesta no exitosa del servidor." },
|
||||||
"errorPlexApi": { "message": "Error $status$ from Plex API.", "placeholders": { "status": { "content": "$1" } } },
|
"errorPlexApi": { "message": "Error $status$ de la API de Plex.", "placeholders": { "status": { "content": "$1" } } },
|
||||||
"errorParsingPlexXml": { "message": "Error parsing Plex XML." },
|
"errorParsingPlexXml": { "message": "Error al analizar el XML de Plex." },
|
||||||
"untitled": { "message": "Untitled" },
|
"untitled": { "message": "Sin título" },
|
||||||
"itemCount": { "message": "$count$ items", "placeholders": { "count": { "content": "$1" } } },
|
"itemCount": { "message": "$count$ elementos", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"noPhotoServers": { "message": "No photo servers" }
|
"noPhotoServers": { "message": "No hay servidores de fotos" }
|
||||||
}
|
}
|
@ -18,7 +18,7 @@
|
|||||||
"heroWelcome": { "message": "Bienvenido a CinePlex" },
|
"heroWelcome": { "message": "Bienvenido a CinePlex" },
|
||||||
"heroSubtitle": { "message": "Explora miles de películas y series." },
|
"heroSubtitle": { "message": "Explora miles de películas y series." },
|
||||||
"addStream": { "message": "Añadir Stream" },
|
"addStream": { "message": "Añadir Stream" },
|
||||||
"moreInfo": { "message": "Más info" },
|
"moreInfo": { "message": "Más información" },
|
||||||
"popularMovies": { "message": "Películas Populares" },
|
"popularMovies": { "message": "Películas Populares" },
|
||||||
"allGenres": { "message": "Todos los géneros" },
|
"allGenres": { "message": "Todos los géneros" },
|
||||||
"allYears": { "message": "Todos los años" },
|
"allYears": { "message": "Todos los años" },
|
||||||
@ -29,11 +29,11 @@
|
|||||||
"photosBreadcrumbHome": { "message": "Álbumes" },
|
"photosBreadcrumbHome": { "message": "Álbumes" },
|
||||||
"selectServer": { "message": "Selecciona un servidor" },
|
"selectServer": { "message": "Selecciona un servidor" },
|
||||||
"loading": { "message": "Cargando..." },
|
"loading": { "message": "Cargando..." },
|
||||||
"photosEmptyState": { "message": "No se encontraron álbumes o fotos." },
|
"photosEmptyState": { "message": "No se encontraron álbumes ni fotos." },
|
||||||
"photosEmptyStateSub": { "message": "Por favor, selecciona un servidor o asegúrate de tener una librería de fotos en Plex." },
|
"photosEmptyStateSub": { "message": "Por favor, selecciona un servidor o asegúrate de tener una biblioteca de fotos en Plex." },
|
||||||
"statsTitle": { "message": "Estadísticas de la Librería" },
|
"statsTitle": { "message": "Estadísticas de la Biblioteca" },
|
||||||
"statsAllTokens": { "message": "Todos los Tokens" },
|
"statsAllTokens": { "message": "Todos los Tokens" },
|
||||||
"statsAnalyzing": { "message": "Analizando tu librería..." },
|
"statsAnalyzing": { "message": "Analizando tu biblioteca..." },
|
||||||
"statsActiveTokens": { "message": "Tokens Activos" },
|
"statsActiveTokens": { "message": "Tokens Activos" },
|
||||||
"statsServersFound": { "message": "Servidores Encontrados" },
|
"statsServersFound": { "message": "Servidores Encontrados" },
|
||||||
"statsUniqueMovies": { "message": "Películas Únicas" },
|
"statsUniqueMovies": { "message": "Películas Únicas" },
|
||||||
@ -62,13 +62,13 @@
|
|||||||
"settingsTabData": { "message": "Datos" },
|
"settingsTabData": { "message": "Datos" },
|
||||||
"settingsApiServer": { "message": "Configuración de API y Servidor" },
|
"settingsApiServer": { "message": "Configuración de API y Servidor" },
|
||||||
"settingsTmdbApiLabel": { "message": "Clave de API de TMDB (Opcional)" },
|
"settingsTmdbApiLabel": { "message": "Clave de API de TMDB (Opcional)" },
|
||||||
"settingsTmdbApiPlaceholder": { "message": "Usará la clave por defecto si se deja en blanco" },
|
"settingsTmdbApiPlaceholder": { "message": "Se usará la clave por defecto si se deja en blanco" },
|
||||||
"settingsTmdbLangLabel": { "message": "Idioma para TMDB y UI" },
|
"settingsTmdbLangLabel": { "message": "Idioma para TMDB y la interfaz" },
|
||||||
"settingsPhpUrlLabel": { "message": "URL del Servidor para Añadir Streams" },
|
"settingsPhpUrlLabel": { "message": "URL del Servidor para Añadir Streams" },
|
||||||
"settingsPhpUrlPlaceholder": { "message": "https://tu-servidor.com/ruta/al/script.php" },
|
"settingsPhpUrlPlaceholder": { "message": "https://tu-servidor.com/ruta/al/script.php" },
|
||||||
"settingsInterface": { "message": "Interfaz" },
|
"settingsInterface": { "message": "Interfaz" },
|
||||||
"settingsLightTheme": { "message": "Modo Claro" },
|
"settingsLightTheme": { "message": "Modo Claro" },
|
||||||
"settingsShowHero": { "message": "Mostrar sección de bienvenida \"Hero\"" },
|
"settingsShowHero": { "message": "Mostrar sección de bienvenida 'Hero'" },
|
||||||
"settingsScanContent": { "message": "Escaneo de Contenido" },
|
"settingsScanContent": { "message": "Escaneo de Contenido" },
|
||||||
"settingsScanDesc": { "message": "Selecciona qué escanear y pulsa el botón." },
|
"settingsScanDesc": { "message": "Selecciona qué escanear y pulsa el botón." },
|
||||||
"settingsScanMovies": { "message": "Películas" },
|
"settingsScanMovies": { "message": "Películas" },
|
||||||
@ -82,7 +82,7 @@
|
|||||||
"settingsSaveTokens": { "message": "Guardar Tokens" },
|
"settingsSaveTokens": { "message": "Guardar Tokens" },
|
||||||
"settingsPhpGenTitle": { "message": "Generador de Script PHP para el Servidor" },
|
"settingsPhpGenTitle": { "message": "Generador de Script PHP para el Servidor" },
|
||||||
"settingsPhpFileOptions": { "message": "Opciones del Archivo" },
|
"settingsPhpFileOptions": { "message": "Opciones del Archivo" },
|
||||||
"settingsPhpSavePathLabel": { "message": "Ruta de Guardado en Servidor" },
|
"settingsPhpSavePathLabel": { "message": "Ruta de Guardado en el Servidor" },
|
||||||
"settingsPhpSavePathPlaceholder": { "message": "Ej: /var/www/html/listas (en blanco para la misma carpeta)" },
|
"settingsPhpSavePathPlaceholder": { "message": "Ej: /var/www/html/listas (en blanco para la misma carpeta)" },
|
||||||
"settingsPhpFilenameLabel": { "message": "Nombre del Archivo" },
|
"settingsPhpFilenameLabel": { "message": "Nombre del Archivo" },
|
||||||
"settingsPhpFileAction": { "message": "Acción sobre el Archivo" },
|
"settingsPhpFileAction": { "message": "Acción sobre el Archivo" },
|
||||||
@ -99,10 +99,10 @@
|
|||||||
"settingsImportDb": { "message": "Importar BD desde Archivo" },
|
"settingsImportDb": { "message": "Importar BD desde Archivo" },
|
||||||
"settingsExportDb": { "message": "Exportar BD a Archivo" },
|
"settingsExportDb": { "message": "Exportar BD a Archivo" },
|
||||||
"settingsClearContent": { "message": "Borrar Datos de Contenido Local" },
|
"settingsClearContent": { "message": "Borrar Datos de Contenido Local" },
|
||||||
"settingsClearContentDesc": { "message": "Esta acción borrará películas, series y música de la base de datos local, pero no afectará a tus favoritos o ajustes." },
|
"settingsClearContentDesc": { "message": "Esta acción borrará películas, series y música de la base de datos local, pero no afectará a tus favoritos ni a tus ajustes." },
|
||||||
"settingsClose": { "message": "Cerrar" },
|
"settingsClose": { "message": "Cerrar" },
|
||||||
"settingsSave": { "message": "Guardar Ajustes" },
|
"settingsSave": { "message": "Guardar Ajustes" },
|
||||||
"musicSidenavTitle": { "message": "Plex Música" },
|
"musicSidenavTitle": { "message": "Música de Plex" },
|
||||||
"musicAllServers": { "message": "Todos los Servidores" },
|
"musicAllServers": { "message": "Todos los Servidores" },
|
||||||
"musicSearchArtistPlaceholder": { "message": "Buscar artista..." },
|
"musicSearchArtistPlaceholder": { "message": "Buscar artista..." },
|
||||||
"musicSearchDiscographyPlaceholder": { "message": "Buscar en la discografía..." },
|
"musicSearchDiscographyPlaceholder": { "message": "Buscar en la discografía..." },
|
||||||
@ -116,14 +116,14 @@
|
|||||||
"miniplayerEqualizer": { "message": "Ecualizador" },
|
"miniplayerEqualizer": { "message": "Ecualizador" },
|
||||||
"miniplayerOpenList": { "message": "Abrir lista" },
|
"miniplayerOpenList": { "message": "Abrir lista" },
|
||||||
"eqTitle": { "message": "Ecualizador Gráfico" },
|
"eqTitle": { "message": "Ecualizador Gráfico" },
|
||||||
"eqPresetsLabel": { "message": "Presets" },
|
"eqPresetsLabel": { "message": "Preajustes" },
|
||||||
"eqPresetFlat": { "message": "Plano (Flat)" },
|
"eqPresetFlat": { "message": "Plano" },
|
||||||
"eqPresetRock": { "message": "Rock" },
|
"eqPresetRock": { "message": "Rock" },
|
||||||
"eqPresetPop": { "message": "Pop" },
|
"eqPresetPop": { "message": "Pop" },
|
||||||
"eqPresetJazz": { "message": "Jazz" },
|
"eqPresetJazz": { "message": "Jazz" },
|
||||||
"eqPresetClassical": { "message": "Clásico" },
|
"eqPresetClassical": { "message": "Clásica" },
|
||||||
"eqPresetBassBoost": { "message": "Refuerzo de Graves" },
|
"eqPresetBassBoost": { "message": "Refuerzo de Graves" },
|
||||||
"eqPreampLabel": { "message": "Pre-Amp" },
|
"eqPreampLabel": { "message": "Preamplificador" },
|
||||||
"infoModalTitle": { "message": "Información" },
|
"infoModalTitle": { "message": "Información" },
|
||||||
"infoModalFieldTitle": { "message": "Título:" },
|
"infoModalFieldTitle": { "message": "Título:" },
|
||||||
"infoModalFieldArtist": { "message": "Artista:" },
|
"infoModalFieldArtist": { "message": "Artista:" },
|
||||||
@ -187,10 +187,10 @@
|
|||||||
"errorLoadingActorContent": { "message": "No se pudo cargar el contenido para $actorName$.", "placeholders": { "actorName": { "content": "$1" } } },
|
"errorLoadingActorContent": { "message": "No se pudo cargar el contenido para $actorName$.", "placeholders": { "actorName": { "content": "$1" } } },
|
||||||
"errorAddingStream": { "message": "Error al añadir stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorAddingStream": { "message": "Error al añadir stream(s): $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"phpUrlNotConfigured": { "message": "La URL del servidor PHP no está configurada. Por favor, configúrala en Ajustes." },
|
"phpUrlNotConfigured": { "message": "La URL del servidor PHP no está configurada. Por favor, configúrala en Ajustes." },
|
||||||
"searchingStreams": { "message": "Buscando streams para \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"searchingStreams": { "message": "Buscando streams para \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"sendingStreams": { "message": "Enviando $count$ stream(s) al servidor...", "placeholders": { "count": { "content": "$1" } } },
|
"sendingStreams": { "message": "Enviando $count$ stream(s) al servidor...", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"streamAddedSuccess": { "message": "Stream(s) añadido(s) con éxito." },
|
"streamAddedSuccess": { "message": "Stream(s) añadido(s) con éxito." },
|
||||||
"generatingM3U": { "message": "Generando M3U para \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"generatingM3U": { "message": "Generando M3U para \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"m3uDownloaded": { "message": "M3U para \"$title$\" descargado.", "placeholders": { "title": { "content": "$1" } } },
|
"m3uDownloaded": { "message": "M3U para \"$title$\" descargado.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"errorGeneratingM3U": { "message": "Error al generar M3U: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorGeneratingM3U": { "message": "Error al generar M3U: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"settingsSavedSuccess": { "message": "Ajustes guardados correctamente." },
|
"settingsSavedSuccess": { "message": "Ajustes guardados correctamente." },
|
||||||
@ -212,7 +212,7 @@
|
|||||||
"errorDuringScan": { "message": "Error durante el escaneo: $message$", "placeholders": { "message": { "content": "$1" } } },
|
"errorDuringScan": { "message": "Error durante el escaneo: $message$", "placeholders": { "message": { "content": "$1" } } },
|
||||||
"scanCancelled": { "message": "Escaneo cancelado por el usuario." },
|
"scanCancelled": { "message": "Escaneo cancelado por el usuario." },
|
||||||
"scanCancelledInfo": { "message": "Escaneo cancelado." },
|
"scanCancelledInfo": { "message": "Escaneo cancelado." },
|
||||||
"retyingSection": { "message": "Reintentando sección \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"retyingSection": { "message": "Reintentando sección \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"retrySuccess": { "message": "[ÉXITO] Reintento de \"$title$\" completado.", "placeholders": { "title": { "content": "$1" } } },
|
"retrySuccess": { "message": "[ÉXITO] Reintento de \"$title$\" completado.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"retryError": { "message": "[ERROR FINAL] Falló el reintento para \"$title$\": $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
|
"retryError": { "message": "[ERROR FINAL] Falló el reintento para \"$title$\": $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
|
||||||
"noRetriesPending": { "message": "No hay reintentos pendientes." },
|
"noRetriesPending": { "message": "No hay reintentos pendientes." },
|
||||||
@ -224,7 +224,7 @@
|
|||||||
"dbUnavailableError": { "message": "Error: Base de datos no disponible." },
|
"dbUnavailableError": { "message": "Error: Base de datos no disponible." },
|
||||||
"updatingMusicData": { "message": "Actualizando datos de música..." },
|
"updatingMusicData": { "message": "Actualizando datos de música..." },
|
||||||
"musicDataUpdated": { "message": "Datos de música actualizados." },
|
"musicDataUpdated": { "message": "Datos de música actualizados." },
|
||||||
"errorFetchingArtistSongs": { "message": "Error al obtener canciones del artista." },
|
"errorFetchingArtistSongs": { "message": "Error al obtener las canciones del artista." },
|
||||||
"errorLoadingSongs": { "message": "Error cargando canciones." },
|
"errorLoadingSongs": { "message": "Error cargando canciones." },
|
||||||
"noArtistsFound": { "message": "No se encontraron artistas." },
|
"noArtistsFound": { "message": "No se encontraron artistas." },
|
||||||
"artistsCounter": { "message": "$start$-$end$ de $total$", "placeholders": { "start": { "content": "$1" }, "end": { "content": "$2" }, "total": { "content": "$3" } } },
|
"artistsCounter": { "message": "$start$-$end$ de $total$", "placeholders": { "start": { "content": "$1" }, "end": { "content": "$2" }, "total": { "content": "$3" } } },
|
||||||
@ -233,11 +233,11 @@
|
|||||||
"noSongsFound": { "message": "No se encontraron canciones." },
|
"noSongsFound": { "message": "No se encontraron canciones." },
|
||||||
"shuffleOn": { "message": "Modo aleatorio activado." },
|
"shuffleOn": { "message": "Modo aleatorio activado." },
|
||||||
"shuffleOff": { "message": "Modo aleatorio desactivado." },
|
"shuffleOff": { "message": "Modo aleatorio desactivado." },
|
||||||
"downloadingSong": { "message": "Iniciando descarga de \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
|
"downloadingSong": { "message": "Iniciando descarga de \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"songDownloaded": { "message": "\"$title$\" descargado.", "placeholders": { "title": { "content": "$1" } } },
|
"songDownloaded": { "message": "\"\"$title$\" descargado.", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"errorDownloadingSong": { "message": "Error al descargar \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
"errorDownloadingSong": { "message": "Error al descargar \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
||||||
"generatingAlbumM3U": { "message": "Generando M3U para \"$artist$\"...", "placeholders": { "artist": { "content": "$1" } } },
|
"generatingAlbumM3U": { "message": "Generando M3U para \"$artist$\"", "placeholders": { "artist": { "content": "$1" } } },
|
||||||
"albumM3UGenerated": { "message": "M3U del álbum \"$artist$\" generado.", "placeholders": { "artist": { "content": "$1" } } },
|
"albumM3UGenerated": { "message": "M3U para el álbum \"$artist$\" generado.", "placeholders": { "artist": { "content": "$1" } } },
|
||||||
"playbackError": { "message": "Error de reproducción" },
|
"playbackError": { "message": "Error de reproducción" },
|
||||||
"errorLabel": { "message": "Error" },
|
"errorLabel": { "message": "Error" },
|
||||||
"reloadingPage": { "message": "Recargando la página..." },
|
"reloadingPage": { "message": "Recargando la página..." },
|
||||||
@ -251,15 +251,15 @@
|
|||||||
"searchResultsFor": {"message": "Resultados para \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
"searchResultsFor": {"message": "Resultados para \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
||||||
"contentFrom": {"message": "Contenido de $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
"contentFrom": {"message": "Contenido de $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
||||||
"explore": {"message": "Explorar"},
|
"explore": {"message": "Explorar"},
|
||||||
"noGenre": {"message": "Sin Género"},
|
"noGenre": {"message": "Sin categoría"},
|
||||||
"synopsis": {"message": "Sinopsis"},
|
"synopsis": {"message": "Sinopsis"},
|
||||||
"noSynopsis": {"message": "No hay sinopsis disponible."},
|
"noSynopsis": {"message": "No hay sinopsis disponible."},
|
||||||
"director": {"message": "Director:"},
|
"director": {"message": "Director:"},
|
||||||
"writer": {"message": "Escritor:"},
|
"writer": {"message": "Escritor:"},
|
||||||
"viewOnImdb": {"message": "Ver en IMDb"},
|
"viewOnImdb": {"message": "Ver en IMDb"},
|
||||||
"watchTrailer": {"message": "Ver Tráiler"},
|
"watchTrailer": {"message": "Ver Tráiler"},
|
||||||
"addToFavorites": {"message": "Favorito"},
|
"addToFavorites": {"message": "Añadir a favoritos"},
|
||||||
"removeFromFavorites": {"message": "Quitar Fav."},
|
"removeFromFavorites": {"message": "Quitar de favoritos"},
|
||||||
"notAvailable": {"message": "No disponible"},
|
"notAvailable": {"message": "No disponible"},
|
||||||
"mainCast": {"message": "Reparto Principal"},
|
"mainCast": {"message": "Reparto Principal"},
|
||||||
"seasonsAndEpisodes": {"message": "Temporadas y Episodios"},
|
"seasonsAndEpisodes": {"message": "Temporadas y Episodios"},
|
||||||
@ -268,22 +268,22 @@
|
|||||||
"seasonsCount": {"message": "$count$ Temporadas", "placeholders": {"count": {"content": "$1"}}},
|
"seasonsCount": {"message": "$count$ Temporadas", "placeholders": {"count": {"content": "$1"}}},
|
||||||
"runtimeMinutes": {"message": "$count$ min", "placeholders": {"count": {"content": "$1"}}},
|
"runtimeMinutes": {"message": "$count$ min", "placeholders": {"count": {"content": "$1"}}},
|
||||||
"noTrailerFound": {"message": "No se encontró tráiler para este título."},
|
"noTrailerFound": {"message": "No se encontró tráiler para este título."},
|
||||||
"fatalInitError": {"message": "Error de Inicialización"},
|
"fatalInitError": {"message": "Error fatal de inicialización"},
|
||||||
"fatalInitErrorSub": {"message": "No se pudo cargar la aplicación."},
|
"fatalInitErrorSub": {"message": "No se pudo cargar la aplicación."},
|
||||||
"invalidStreamInfo": {"message": "Información inválida."},
|
"invalidStreamInfo": {"message": "Información inválida."},
|
||||||
"dbUnavailableForStreams": {"message": "Base de datos local no disponible."},
|
"dbUnavailableForStreams": {"message": "Base de datos local no disponible."},
|
||||||
"noPlexServersForStreams": {"message": "No hay servidores Plex."},
|
"noPlexServersForStreams": {"message": "No hay servidores Plex."},
|
||||||
"notFoundOnServers": {"message": "No se encontró \"$query$\" en los servidores.", "placeholders": {"query": {"content": "$1"}}},
|
"notFoundOnServers": {"message": "No se encontró \"$query$\" en los servidores.", "placeholders": {"query": {"content": "$1"}}},
|
||||||
"relativeTime_justNow": { "message": "Hace un momento" },
|
"relativeTime_justNow": { "message": "Ahora mismo" },
|
||||||
"relativeTime_minutesAgo": { "message": "Hace $count$ minutos", "placeholders": { "count": { "content": "$1" } } },
|
"relativeTime_minutesAgo": { "message": "Hace $count$ minutos", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"relativeTime_hoursAgo": { "message": "Hace $count$ horas", "placeholders": { "count": { "content": "$1" } } },
|
"relativeTime_hoursAgo": { "message": "Hace $count$ horas", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"relativeTime_yesterday": { "message": "Ayer" },
|
"relativeTime_yesterday": { "message": "Ayer" },
|
||||||
"relativeTime_daysAgo": { "message": "Hace $count$ días", "placeholders": { "count": { "content": "$1" } } },
|
"relativeTime_daysAgo": { "message": "Hace $count$ días", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"errorLoadingDetails": { "message": "Error al Cargar Detalles" },
|
"errorLoadingDetails": { "message": "Error al Cargar los Detalles" },
|
||||||
"errorLoadingLocalContent": { "message": "Error al cargar contenido local." },
|
"errorLoadingLocalContent": { "message": "Error al cargar el contenido local." },
|
||||||
"errorServerResponse": { "message": "Respuesta no exitosa del servidor." },
|
"errorServerResponse": { "message": "Respuesta no exitosa del servidor." },
|
||||||
"errorPlexApi": { "message": "Error $status$ de la API de Plex.", "placeholders": { "status": { "content": "$1" } } },
|
"errorPlexApi": { "message": "Error $status$ de la API de Plex.", "placeholders": { "status": { "content": "$1" } } },
|
||||||
"errorParsingPlexXml": { "message": "Error al parsear XML de Plex." },
|
"errorParsingPlexXml": { "message": "Error al analizar el XML de Plex." },
|
||||||
"untitled": { "message": "Sin título" },
|
"untitled": { "message": "Sin título" },
|
||||||
"itemCount": { "message": "$count$ elementos", "placeholders": { "count": { "content": "$1" } } },
|
"itemCount": { "message": "$count$ elementos", "placeholders": { "count": { "content": "$1" } } },
|
||||||
"noPhotoServers": { "message": "No hay servidores de fotos" }
|
"noPhotoServers": { "message": "No hay servidores de fotos" }
|
||||||
|
30
js/ui.js
30
js/ui.js
@ -7,7 +7,7 @@ let charts = {};
|
|||||||
|
|
||||||
export async function loadInitialContent() {
|
export async function loadInitialContent() {
|
||||||
await Promise.all([loadGenres(), loadYears()]);
|
await Promise.all([loadGenres(), loadYears()]);
|
||||||
await Promise.all([loadContent(), initializeHeroSection()]);
|
resetView(); // Show hero-only view first
|
||||||
setupScrollEffects();
|
setupScrollEffects();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,12 +41,34 @@ export async function loadLocalContent() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function resetView() {
|
export function resetView() {
|
||||||
switchView('movies');
|
if (state.isLoading) return;
|
||||||
|
|
||||||
|
const heroSection = document.getElementById('hero-section');
|
||||||
|
if (heroSection) {
|
||||||
|
heroSection.style.display = 'flex';
|
||||||
|
if (state.settings.showHero) {
|
||||||
|
initializeHeroSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const contentSection = document.getElementById('content-section');
|
||||||
|
if (contentSection) {
|
||||||
|
contentSection.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
state.currentView = 'home';
|
||||||
|
updateActiveNav('home');
|
||||||
|
updateSectionTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function switchView(viewType) {
|
export function switchView(viewType) {
|
||||||
if (state.isLoading) return;
|
if (state.isLoading) return;
|
||||||
|
|
||||||
|
const heroSection = document.getElementById('hero-section');
|
||||||
|
if (heroSection) {
|
||||||
|
heroSection.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
const sidebar = document.getElementById('sidebar-nav');
|
const sidebar = document.getElementById('sidebar-nav');
|
||||||
if (sidebar.classList.contains('open')) {
|
if (sidebar.classList.contains('open')) {
|
||||||
sidebar.classList.remove('open');
|
sidebar.classList.remove('open');
|
||||||
@ -148,6 +170,7 @@ export function switchView(viewType) {
|
|||||||
|
|
||||||
function updateActiveNav(activeView) {
|
function updateActiveNav(activeView) {
|
||||||
document.querySelectorAll('.nav-link, .footer-link').forEach(link => link.classList.remove('active'));
|
document.querySelectorAll('.nav-link, .footer-link').forEach(link => link.classList.remove('active'));
|
||||||
|
if (activeView === 'home') return;
|
||||||
let navId = (activeView === 'search') ? (state.currentParams.contentType === 'movie' ? 'movies' : 'series') : activeView;
|
let navId = (activeView === 'search') ? (state.currentParams.contentType === 'movie' ? 'movies' : 'series') : activeView;
|
||||||
const activeLink = document.getElementById(`nav-${navId}`);
|
const activeLink = document.getElementById(`nav-${navId}`);
|
||||||
const activeFooterLink = document.getElementById(`footer-${navId}`);
|
const activeFooterLink = document.getElementById(`footer-${navId}`);
|
||||||
@ -160,6 +183,9 @@ export function updateSectionTitle() {
|
|||||||
const mainTitleElement = document.getElementById('main-section-title');
|
const mainTitleElement = document.getElementById('main-section-title');
|
||||||
|
|
||||||
switch (state.currentView) {
|
switch (state.currentView) {
|
||||||
|
case 'home':
|
||||||
|
title = _('explore');
|
||||||
|
break;
|
||||||
case 'movies': case 'series':
|
case 'movies': case 'series':
|
||||||
const sortMap = {
|
const sortMap = {
|
||||||
'popularity.desc': _('popularSort'),
|
'popularity.desc': _('popularSort'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user