449 lines
41 KiB
JSON
449 lines
41 KiB
JSON
{
|
|
"appName": { "message": "CinePlex" },
|
|
"appDescription": { "message": "Scanne les serveurs Plex à la recherche de contenu et l'affiche dans l'interface" },
|
|
"appTagline": { "message": "Films, Séries et Musique" },
|
|
"appLocaleCode": { "message": "fr-FR" },
|
|
"toggleNavigation": { "message": "Basculer la navigation" },
|
|
"searchPlaceholder": { "message": "Rechercher des films ou des séries..." },
|
|
"openMusicPlayer": { "message": "Ouvrir le lecteur de musique" },
|
|
"settings": { "message": "Paramètres" },
|
|
"navMovies": { "message": "Films" },
|
|
"navSeries": { "message": "Séries" },
|
|
"navProviders": { "message": "Fournisseurs" },
|
|
"navPhotos": { "message": "Photos" },
|
|
"navStats": { "message": "Statistiques" },
|
|
"navFavorites": { "message": "Favoris" },
|
|
"navHistory": { "message": "Historique" },
|
|
"navRecommendations": { "message": "Recommandations" },
|
|
"navMusic": { "message": "Musique" },
|
|
"navM3uGenerator": { "message": "Générateur M3U" },
|
|
"heroWelcome": { "message": "Bienvenue sur CinePlex" },
|
|
"heroSubtitle": { "message": "Explorez des milliers de films et de séries." },
|
|
"addStream": { "message": "Ajouter un flux" },
|
|
"moreInfo": { "message": "Plus d'infos" },
|
|
"popularMovies": { "message": "Films populaires" },
|
|
"allGenres": { "message": "Tous les genres" },
|
|
"allYears": { "message": "Toutes les années" },
|
|
"sortPopular": { "message": "Les plus populaires" },
|
|
"sortTopRated": { "message": "Les mieux notés" },
|
|
"sortRecent": { "message": "Les plus récents" },
|
|
"loadMore": { "message": "Charger plus" },
|
|
"photosBreadcrumbHome": { "message": "Albums" },
|
|
"selectServer": { "message": "Sélectionnez un serveur" },
|
|
"loading": { "message": "Chargement..." },
|
|
"loadingLibraries": { "message": "Chargement des bibliothèques..." },
|
|
"photosEmptyState": { "message": "Aucun album ou photo trouvé." },
|
|
"photosEmptyStateSub": { "message": "Veuillez sélectionner un serveur ou vous assurer que vous disposez d'une photothèque dans Plex." },
|
|
"statsTitle": { "message": "Statistiques de la bibliothèque" },
|
|
"statsAllTokens": { "message": "Tous les jetons" },
|
|
"statsAnalyzing": { "message": "Analyse de votre bibliothèque..." },
|
|
"statsActiveTokens": { "message": "Jetons actifs" },
|
|
"statsServersFound": { "message": "Serveurs trouvés" },
|
|
"statsUniqueMovies": { "message": "Films uniques" },
|
|
"statsUniqueSeries": { "message": "Séries uniques" },
|
|
"statsUniqueArtists": { "message": "Artistes uniques" },
|
|
"statsTokenServers": { "message": "Serveurs de jetons" },
|
|
"statsChartMoviesByGenre": { "message": "Contenu par genre (Films)" },
|
|
"statsChartSeriesByGenre": { "message": "Contenu par genre (Séries)" },
|
|
"statsChartByDecade": { "message": "Contenu par décennie" },
|
|
"recommendationsTitle": { "message": "Recommandations pour vous" },
|
|
"historyTitle": { "message": "Historique de visionnage" },
|
|
"clearHistory": { "message": "Tout effacer" },
|
|
"consoleTitle": { "message": "Console d'analyse Plex" },
|
|
"footerCredit": { "message": "Une interface pour votre univers Plex." },
|
|
"closeTrailer": { "message": "Fermer la bande-annonce" },
|
|
"close": { "message": "Fermer" },
|
|
"photoViewer": { "message": "Visionneuse de photos" },
|
|
"previous": { "message": "Précédent" },
|
|
"next": { "message": "Suivant" },
|
|
"notificationTemplateText": { "message": "Notification" },
|
|
"settingsTitleFull": { "message": "Paramètres et configuration" },
|
|
"settingsTabGeneral": { "message": "Général" },
|
|
"settingsTabPlex": { "message": "Plex" },
|
|
"settingsTabJellyfin": { "message": "Jellyfin" },
|
|
"settingsTabPhpGen": { "message": "Générateur PHP" },
|
|
"settingsTabData": { "message": "Données" },
|
|
"settingsApiServer": { "message": "Paramètres API et serveur" },
|
|
"settingsTmdbApiLabel": { "message": "Clé API TMDB (facultatif)" },
|
|
"settingsTmdbApiPlaceholder": { "message": "La clé par défaut sera utilisée si ce champ est laissé vide" },
|
|
"settingsGoogleApiLabel": { "message": "Clé API Google Gemini (facultatif)" },
|
|
"settingsGoogleApiPlaceholder": { "message": "Requis pour utiliser l'assistant IA" },
|
|
"settingsRegionLabel": { "message": "Région pour la découverte de contenu" },
|
|
"allRegions": { "message": "Toutes les régions" },
|
|
"settingsPhpUrlLabel": { "message": "URL du serveur pour l'ajout de flux" },
|
|
"settingsPhpUrlPlaceholder": { "message": "https://votre-serveur.com/chemin/vers/script.php" },
|
|
"settingsInterface": { "message": "Interface" },
|
|
"settingsLightTheme": { "message": "Mode clair" },
|
|
"settingsShowHero": { "message": "Afficher la section d'accueil 'Hero'" },
|
|
"settingsScanContent": { "message": "Analyse du contenu" },
|
|
"settingsScanDesc": { "message": "Sélectionnez les éléments à analyser et appuyez sur le bouton." },
|
|
"settingsScanMovies": { "message": "Films" },
|
|
"settingsScanShows": { "message": "Séries" },
|
|
"settingsScanArtists": { "message": "Musique" },
|
|
"settingsScanPhotos": { "message": "Photos" },
|
|
"settingsSelectAll": { "message": "Tout sélectionner" },
|
|
"settingsStartScan": { "message": "Démarrer l'analyse" },
|
|
"settingsPlexTokens": { "message": "Jetons Plex" },
|
|
"settingsPlexTokensDesc": { "message": "Modifiez la liste des jetons Plex (format JSON)." },
|
|
"settingsSaveTokens": { "message": "Enregistrer les jetons" },
|
|
"settingsJellyfinTitle": { "message": "Paramètres Jellyfin" },
|
|
"settingsJellyfinDesc": { "message": "Ajoutez les détails de votre serveur Jellyfin pour analyser son contenu." },
|
|
"jellyfinUrlLabel": { "message": "URL du serveur Jellyfin" },
|
|
"jellyfinUserLabel": { "message": "Nom d'utilisateur" },
|
|
"jellyfinPassLabel": { "message": "Mot de passe" },
|
|
"jellyfinConnectAndScan": { "message": "Connecter et analyser" },
|
|
"settingsPhpGenTitle": { "message": "Générateur de script PHP pour serveur" },
|
|
"settingsPhpFileOptions": { "message": "Options de fichier" },
|
|
"settingsPhpSavePathLabel": { "message": "Chemin d'enregistrement sur le serveur" },
|
|
"settingsPhpSavePathPlaceholder": { "message": "Ex: /var/www/html/listes (vide pour le même dossier)" },
|
|
"settingsPhpFilenameLabel": { "message": "Nom de fichier" },
|
|
"settingsPhpFileAction": { "message": "Action sur le fichier" },
|
|
"settingsPhpActionAppend": { "message": "Ajouter à la fin du fichier (cumulatif)" },
|
|
"settingsPhpActionOverwrite": { "message": "Écraser le fichier (repartir de zéro)" },
|
|
"settingsPhpSecurity": { "message": "Sécurité (facultatif)" },
|
|
"settingsPhpUseSecretKey": { "message": "Utiliser une clé secrète (recommandé)" },
|
|
"settingsPhpSecretKeyPlaceholder": { "message": "Saisissez une clé secrète sécurisée" },
|
|
"settingsPhpGeneratedCode": { "message": "Code généré" },
|
|
"settingsPhpGeneratedPlaceholder": { "message": "Le code PHP généré apparaîtra ici." },
|
|
"settingsGenerateScript": { "message": "Générer le script" },
|
|
"settingsCopyScript": { "message": "Copier le script" },
|
|
"settingsDataManagement": { "message": "Gestion de la base de données locale" },
|
|
"settingsImportDb": { "message": "Importer la base de données depuis un fichier" },
|
|
"settingsExportDb": { "message": "Exporter la base de données vers un fichier" },
|
|
"settingsClearContent": { "message": "Effacer les données de contenu local" },
|
|
"settingsClearContentDesc": { "message": "Cette action supprimera les films, les séries et la musique de la base de données locale, mais n'affectera pas vos favoris ni vos paramètres." },
|
|
"settingsClose": { "message": "Fermer" },
|
|
"settingsSave": { "message": "Enregistrer les paramètres" },
|
|
"musicSidenavTitle": { "message": "Musique Plex" },
|
|
"musicAllServers": { "message": "Tous les serveurs" },
|
|
"musicSearchArtistPlaceholder": { "message": "Rechercher un artiste..." },
|
|
"musicSearchDiscographyPlaceholder": { "message": "Rechercher dans la discographie..." },
|
|
"musicNothingPlaying": { "message": "Aucune lecture en cours" },
|
|
"musicSelectSong": { "message": "Sélectionnez une chanson" },
|
|
"musicToStart": { "message": "pour démarrer la lecture" },
|
|
"miniplayerDownloadSong": { "message": "Télécharger la chanson" },
|
|
"miniplayerDownloadAlbum": { "message": "Télécharger l'album M3U" },
|
|
"miniplayerVolume": { "message": "Volume" },
|
|
"miniplayerShuffle": { "message": "Aléatoire" },
|
|
"miniplayerEqualizer": { "message": "Égaliseur" },
|
|
"miniplayerOpenList": { "message": "Ouvrir la liste" },
|
|
"eqTitle": { "message": "Égaliseur graphique" },
|
|
"eqPresetsLabel": { "message": "Préréglages" },
|
|
"eqPresetFlat": { "message": "Plat" },
|
|
"eqPresetRock": { "message": "Rock" },
|
|
"eqPresetPop": { "message": "Pop" },
|
|
"eqPresetJazz": { "message": "Jazz" },
|
|
"eqPresetClassical": { "message": "Classique" },
|
|
"eqPresetBassBoost": { "message": "Amplification des basses" },
|
|
"eqPreampLabel": { "message": "Préampli" },
|
|
"infoModalTitle": { "message": "Informations" },
|
|
"infoModalFieldTitle": { "message": "Titre :" },
|
|
"infoModalFieldArtist": { "message": "Artiste :" },
|
|
"infoModalFieldAlbum": { "message": "Album :" },
|
|
"infoModalFieldSong": { "message": "Chanson :" },
|
|
"infoModalFieldYear": { "message": "Année :" },
|
|
"infoModalFieldGenre": { "message": "Genre :" },
|
|
"lang_en": { "message": "Anglais" },
|
|
"lang_es": { "message": "Espagnol" },
|
|
"lang_fr": { "message": "Français" },
|
|
"lang_de": { "message": "Allemand" },
|
|
"lang_it": { "message": "Italien" },
|
|
"lang_pt": { "message": "Portugais" },
|
|
"essentialFeaturesNotSupported": { "message": "Votre navigateur ne prend pas en charge les fonctionnalités essentielles." },
|
|
"dbAccessError": { "message": "Erreur d'accès à la base de données locale." },
|
|
"dbUpdateNeeded": { "message": "La base de données doit être mise à jour, veuillez recharger la page." },
|
|
"dbBlocked": { "message": "Veuillez fermer les autres onglets de cette application pour continuer." },
|
|
"deletingContentData": { "message": "Suppression des données de contenu local..." },
|
|
"noContentDataToDelete": { "message": "Aucune donnée de contenu à supprimer." },
|
|
"contentDataDeleted": { "message": "Données de contenu supprimées d'IndexedDB." },
|
|
"errorDeletingData": { "message": "Erreur lors de la suppression des données : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aceEditorNotAvailable": { "message": "Éditeur de texte non disponible." },
|
|
"errorLoadingTokens": { "message": "Erreur lors du chargement des jetons pour modification." },
|
|
"errorLoadingTokensMessage": { "message": "Erreur lors du chargement des jetons : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aceEditorNotAvailableToSave": { "message": "Éditeur non disponible pour l'enregistrement." },
|
|
"invalidJsonFormat": { "message": "Format JSON non valide. Il doit être { \"tokens\": [...] }" },
|
|
"tokensSaved": { "message": "Jetons enregistrés avec succès." },
|
|
"errorSavingTokens": { "message": "Erreur lors de l'enregistrement des jetons : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"dbNotAvailable": { "message": "IndexedDB n'est pas disponible." },
|
|
"dbExported": { "message": "Base de données exportée avec succès." },
|
|
"errorExportingDb": { "message": "Erreur lors de l'exportation de la base de données : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"invalidJsonFile": { "message": "Le fichier ne contient pas d'objet JSON valide." },
|
|
"noDataToImport": { "message": "Le fichier ne contient aucune donnée pour les sections actuelles de la base de données." },
|
|
"dbImported": { "message": "Base de données importée avec succès." },
|
|
"errorImportingDb": { "message": "Erreur lors de l'importation de la base de données : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"updatingView": { "message": "Mise à jour de la vue avec les nouvelles données..." },
|
|
"confirmClearContent": { "message": "Êtes-vous sûr de vouloir supprimer les données de contenu local (films, séries, musique, etc.) ? Les favoris et les paramètres ne seront PAS supprimés." },
|
|
"trailerNotFound": { "message": "Aucune bande-annonce trouvée pour ce titre." },
|
|
"confirmClearHistory": { "message": "Êtes-vous sûr de vouloir effacer tout votre historique de visionnage ? Cette action est irréversible." },
|
|
"historyCleared": { "message": "Historique de visionnage effacé." },
|
|
"historyItemDeleted": { "message": "Élément supprimé de l'historique." },
|
|
"errorGeneratingScript": { "message": "Générez d'abord un script pour pouvoir le copier." },
|
|
"scriptCopied": { "message": "Script PHP copié dans le presse-papiers." },
|
|
"errorCopyingScript": { "message": "Erreur lors de la copie du script." },
|
|
"scriptGenerated": { "message": "Script PHP généré." },
|
|
"errorLoadingAlbum": { "message": "Erreur lors du chargement de l'album : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"noPhotoServerSelected": { "message": "Erreur : Aucun serveur photo n'a été sélectionné." },
|
|
"loadingGenres": { "message": "Chargement des genres..." },
|
|
"errorLoadingGenres": { "message": "Erreur de chargement" },
|
|
"noContentFound": { "message": "Aucun résultat trouvé." },
|
|
"couldNotLoadContent": { "message": "Impossible de charger le contenu." },
|
|
"noFavorites": { "message": "Vous n'avez pas encore de favoris." },
|
|
"errorLoadingFavorites": { "message": "Erreur lors du chargement des favoris." },
|
|
"historyEmpty": { "message": "Votre historique est vide." },
|
|
"historyEmptySub": { "message": "Explorez et regardez du contenu pour qu'il apparaisse ici." },
|
|
"errorGeneratingRecommendations": { "message": "Erreur lors de la génération des recommandations." },
|
|
"noRecommendations": { "message": "Nous avons besoin de mieux vous connaître pour vous faire des recommandations !" },
|
|
"errorGeneratingStats": { "message": "Erreur lors de la génération des statistiques." },
|
|
"noServersForToken": { "message": "Aucun serveur associé trouvé pour ce jeton." },
|
|
"searchingActorContent": { "message": "Recherche de contenu de $actorName$", "placeholders": { "actorName": { "content": "$1" } } },
|
|
"errorLoadingActorContent": { "message": "Impossible de charger le contenu pour $actorName$.", "placeholders": { "actorName": { "content": "$1" } } },
|
|
"errorAddingStream": { "message": "Erreur lors de l'ajout de flux : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"phpUrlNotConfigured": { "message": "L'URL du serveur PHP n'est pas configurée. Veuillez la configurer dans les paramètres." },
|
|
"searchingStreams": { "message": "Recherche de flux pour \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
|
"sendingStreams": { "message": "Envoi de $count$ flux au serveur...", "placeholders": { "count": { "content": "$1" } } },
|
|
"streamAddedSuccess": { "message": "Flux ajouté(s) avec succès." },
|
|
"generatingM3U": { "message": "Génération de M3U pour \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
|
"m3uDownloaded": { "message": "\"$title$\" téléchargé.", "placeholders": { "title": { "content": "$1" } } },
|
|
"errorGeneratingM3U": { "message": "Erreur lors de la génération de M3U : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"settingsSavedSuccess": { "message": "Paramètres enregistrés avec succès." },
|
|
"errorSavingSettings": { "message": "Erreur lors de l'enregistrement des paramètres dans la base de données." },
|
|
"languageChangeReload": { "message": "Langue modifiée. L'application va maintenant se recharger." },
|
|
"addedToFavorites": { "message": "Ajouté aux favoris." },
|
|
"removedFromFavorites": { "message": "Supprimé des favoris." },
|
|
"plexScanInProgress": { "message": "L'analyse Plex est déjà en cours." },
|
|
"plexScanStarting": { "message": "Démarrage de l'analyse Plex..." },
|
|
"noPlexTokens": { "message": "Aucun jeton Plex configuré." },
|
|
"clearingSections": { "message": "Effacement des sections : $sections$", "placeholders": { "sections": { "content": "$1" } } },
|
|
"initialScanPhaseComplete": { "message": "Phase d'analyse initiale terminée." },
|
|
"retryPhaseFinished": { "message": "Phase de nouvelle tentative terminée." },
|
|
"plexScanFinished": { "message": "Analyse terminée. Mise à jour du contenu..." },
|
|
"scanCancelled": { "message": "Analyse annulée par l'utilisateur." },
|
|
"scanCancelledInfo": { "message": "Analyse annulée." },
|
|
"errorInitializingMusicPlayer": { "message": "Erreur lors de l'initialisation du lecteur de musique." },
|
|
"criticalErrorLoadingMusic": { "message": "Erreur critique lors du chargement des données musicales." },
|
|
"errorLoadingArtists": { "message": "Erreur lors du chargement des artistes." },
|
|
"dbUnavailableError": { "message": "Erreur : Base de données non disponible." },
|
|
"updatingMusicData": { "message": "Mise à jour des données musicales..." },
|
|
"musicDataUpdated": { "message": "Données musicales mises à jour." },
|
|
"errorFetchingArtistSongs": { "message": "Erreur lors de la récupération des chansons de l'artiste." },
|
|
"errorLoadingSongs": { "message": "Erreur lors du chargement des chansons." },
|
|
"noArtistsFound": { "message": "Aucun artiste trouvé." },
|
|
"shuffleOn": { "message": "Mode aléatoire activé." },
|
|
"shuffleOff": { "message": "Mode aléatoire désactivé." },
|
|
"playbackError": { "message": "Erreur de lecture" },
|
|
"errorLabel": { "message": "Erreur" },
|
|
"reloadingPage": { "message": "Rechargement de la page..." },
|
|
"viewed": { "message": "Vu" },
|
|
"local": { "message": "Local" },
|
|
"topRatedSort": {"message": "Les mieux notés"},
|
|
"recentSort": {"message": "Récents"},
|
|
"popularSort": {"message": "Populaires"},
|
|
"moviesSectionTitle": {"message": "Films"},
|
|
"seriesSectionTitle": {"message": "Séries"},
|
|
"searchResultsFor": {"message": "Résultats pour \"$query$\"", "placeholders": {"query": {"content": "$1"}}},
|
|
"contentFrom": {"message": "Contenu de $actor$", "placeholders": {"actor": {"content": "$1"}}},
|
|
"explore": {"message": "Explorer"},
|
|
"noGenre": {"message": "Non classé"},
|
|
"synopsis": {"message": "Synopsis"},
|
|
"noSynopsis": {"message": "Aucun synopsis disponible."},
|
|
"director": {"message": "Réalisateur :"},
|
|
"writer": {"message": "Scénariste :"},
|
|
"viewOnImdb": {"message": "Voir sur IMDb"},
|
|
"watchTrailer": {"message": "Regarder la bande-annonce"},
|
|
"addToFavorites": {"message": "Ajouter aux favoris"},
|
|
"removeFromFavorites": {"message": "Retirer des favoris"},
|
|
"notAvailable": {"message": "Non disponible"},
|
|
"mainCast": {"message": "Distribution principale"},
|
|
"seasonsAndEpisodes": {"message": "Saisons et épisodes"},
|
|
"similarContent": {"message": "Contenu similaire"},
|
|
"filmography": {"message": "Filmographie"},
|
|
"availableOn": {"message": "Disponible sur"},
|
|
"episodesCount": {"message": "$count$ épisodes", "placeholders": {"count": {"content": "$1"}}},
|
|
"seasonsCount": {"message": "$count$ saisons", "placeholders": {"count": {"content": "$1"}}},
|
|
"runtimeMinutes": {"message": "$count$ min", "placeholders": {"count": {"content": "$1"}}},
|
|
"noTrailerFound": {"message": "Aucune bande-annonce trouvée pour ce titre."},
|
|
"fatalInitError": {"message": "Erreur d'initialisation fatale"},
|
|
"fatalInitErrorSub": {"message": "Impossible de charger l'application."},
|
|
"invalidStreamInfo": {"message": "Informations non valides."},
|
|
"dbUnavailableForStreams": {"message": "Base de données locale non disponible."},
|
|
"noPlexServersForStreams": {"message": "Aucun serveur Plex."},
|
|
"notFoundOnServers": {"message": "\"$query$\" introuvable sur les serveurs Plex.", "placeholders": {"query": {"content": "$1"}}},
|
|
"relativeTime_justNow": { "message": "À l'instant" },
|
|
"relativeTime_minutesAgo": { "message": "Il y a $count$ minutes", "placeholders": { "count": { "content": "$1" } } },
|
|
"relativeTime_hoursAgo": { "message": "Il y a $count$ heures", "placeholders": { "count": { "content": "$1" } } },
|
|
"relativeTime_yesterday": { "message": "Hier" },
|
|
"relativeTime_daysAgo": { "message": "Il y a $count$ jours", "placeholders": { "count": { "content": "$1" } } },
|
|
"errorLoadingDetails": { "message": "Erreur lors du chargement des détails" },
|
|
"errorLoadingLocalContent": { "message": "Erreur lors du chargement du contenu local." },
|
|
"errorServerResponse": { "message": "Réponse du serveur infructueuse." },
|
|
"errorPlexApi": { "message": "Erreur $status$ de l'API Plex.", "placeholders": { "status": { "content": "$1" } } },
|
|
"errorParsingPlexXml": { "message": "Erreur lors de l'analyse du XML Plex." },
|
|
"untitled": { "message": "Sans titre" },
|
|
"itemCount": { "message": "$count$ éléments", "placeholders": { "count": { "content": "$1" } } },
|
|
"noPhotoServers": { "message": "Aucun serveur photo" },
|
|
"jellyfinScanInProgress": { "message": "L'analyse Jellyfin est déjà en cours." },
|
|
"jellyfinScanning": { "message": "Analyse de Jellyfin..." },
|
|
"jellyfinMissingCredentials": { "message": "Veuillez compléter l'URL et le nom d'utilisateur de Jellyfin." },
|
|
"jellyfinConnecting": { "message": "Connexion à Jellyfin à : $url$", "placeholders": { "url": { "content": "$1" } } },
|
|
"jellyfinAuthFailed": { "message": "Échec de l'authentification Jellyfin : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"jellyfinAuthSuccess": { "message": "Authentification Jellyfin réussie." },
|
|
"jellyfinFetchingLibraries": { "message": "Récupération des bibliothèques..." },
|
|
"jellyfinFetchFailed": { "message": "Erreur lors de la récupération des bibliothèques : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"jellyfinNoMediaLibraries": { "message": "Aucune bibliothèque de films ou de séries trouvée dans Jellyfin." },
|
|
"jellyfinLibrariesFound": { "message": "$count$ bibliothèque(s) multimédia(s) trouvée(s).", "placeholders": { "count": { "content": "$1" } } },
|
|
"jellyfinLibraryScanSuccess": { "message": "[Succès] '$libraryName' analysée, $count$ titres ajoutés.", "placeholders": { "libraryName": { "content": "$1" }, "count": { "content": "$2" } } },
|
|
"jellyfinLibraryScanFailed": { "message": "Erreur lors de l'analyse de la bibliothèque '$libraryName'.", "placeholders": { "libraryName": { "content": "$1" } } },
|
|
"jellyfinScanSuccess": { "message": "Analyse Jellyfin terminée. $movies$ films et $series$ séries ajoutés.", "placeholders": { "movies": { "content": "$1" }, "series": { "content": "$2" } } },
|
|
"noJellyfinCredentials": { "message": "Informations d'identification Jellyfin non configurées." },
|
|
"notFoundOnJellyfin": { "message": "\"$query$\" introuvable sur Jellyfin.", "placeholders": { "query": { "content": "$1" } } },
|
|
"notFoundOnAnyServer": { "message": "\"$query$\" introuvable sur aucun serveur.", "placeholders": { "query": { "content": "$1" } } },
|
|
"localOnPlex": { "message": "Sur Plex" },
|
|
"searchOnPlex": { "message": "Rechercher sur Plex" },
|
|
"jellyfinTitle": { "message": "Contenu Jellyfin" },
|
|
"noJellyfinContent": { "message": "Aucun contenu Jellyfin trouvé." },
|
|
"noJellyfinContentSub": { "message": "Assurez-vous d'avoir analysé votre serveur Jellyfin dans les paramètres." },
|
|
"activityViewerTitle": { "message": "Visionneuse d'activité du serveur" },
|
|
"activitySelectServer": { "message": "Sélectionnez un serveur" },
|
|
"activityCheckBtn": { "message": "Actualiser" },
|
|
"activityNoSessions": { "message": "Aucune session active sur ce serveur." },
|
|
"activitySessionUser": { "message": "Utilisateur" },
|
|
"activitySessionDevice": { "message": "Appareil" },
|
|
"activitySessionContent": { "message": "Contenu" },
|
|
"activitySessionState": { "message": "État" },
|
|
"activitySessionIdentifier": { "message": "Identifiant du client" },
|
|
"activityCopyID": { "message": "Copier l'ID" },
|
|
"activityError": { "message": "Impossible d'obtenir l'activité du serveur." },
|
|
"activityCopied": { "message": "Identifiant copié dans le presse-papiers !" },
|
|
"activityCopyError": { "message": "Erreur lors de la copie de l'identifiant." },
|
|
"noProvidersFound": { "message": "Aucun fournisseur trouvé." },
|
|
"availableOnPlex": { "message": "Disponible sur Plex" },
|
|
"m3uGeneratorTitle": { "message": "Générateur de listes M3U" },
|
|
"selectAServer": { "message": "Sélectionnez un serveur..." },
|
|
"downloadM3u": { "message": "Télécharger M3U" },
|
|
"m3uGenerator": { "message": "Générateur M3U" },
|
|
"selectLibraries": { "message": "Sélectionner les bibliothèques" },
|
|
"howToUse": { "message": "Comment utiliser" },
|
|
"m3uInstruction1": { "message": "Choisissez un serveur dans la liste." },
|
|
"m3uInstruction2": { "message": "Sélectionnez une ou plusieurs bibliothèques à inclure." },
|
|
"m3uInstruction3": { "message": "Cliquez sur le bouton de téléchargement." },
|
|
"m3uInstruction4": { "message": "Importez le fichier .m3u dans votre lecteur compatible." },
|
|
"chatOpen": { "message": "Ouvrir le chat" },
|
|
"chatTitle": { "message": "Assistant IA" },
|
|
"chatClose": { "message": "X" },
|
|
"chatPlaceholder": { "message": "Saisissez votre message..." },
|
|
"chatSend": { "message": "➤" },
|
|
"chatWelcome": { "message": "Bienvenue ! Je suis votre assistant CinePlex. Posez-moi des questions sur les films, les séries ou tout ce que vous voulez savoir." },
|
|
"chatGoogleApiKeyMissing": { "message": "La clé API Google Gemini n'est pas configurée. Veuillez la définir dans les paramètres de l'extension pour utiliser l'assistant IA." },
|
|
"chatApiInvalidResponse": { "message": "L'API a renvoyé une réponse non valide. Veuillez réessayer." },
|
|
"chatApiError": { "message": "Erreur de communication avec l'assistant IA" },
|
|
"downloadAll": { "message": "Tout télécharger" },
|
|
"download": { "message": "Télécharger" },
|
|
"aiToolSearchLibraryDesc": { "message": "Recherche dans la bibliothèque Plex de l'utilisateur des films ou des séries par titre." },
|
|
"aiToolSearchLibraryQueryParamDesc": { "message": "Le titre du film ou de la série à rechercher." },
|
|
"aiToolSearchLibraryTypeParamDesc": { "message": "Le type de contenu à rechercher. Peut être 'movie' pour les films ou 'series' pour les séries. (Facultatif)." },
|
|
"aiToolSearchLibraryResolutionParamDesc": { "message": "La résolution vidéo à rechercher (par exemple, '4k', '1080p'). (Facultatif)." },
|
|
"aiToolSearchLibraryContainerParamDesc": { "message": "Le format de conteneur vidéo à rechercher (par exemple, 'mkv', 'mp4'). (Facultatif)." },
|
|
"aiToolNavigateToPageDesc": { "message": "Dirige l'utilisateur vers une page spécifique de l'interface de l'application." },
|
|
"aiToolNavigateToPagePageParamDesc": { "message": "Le nom de la page vers laquelle naviguer, par exemple : 'movies', 'series', 'stats', 'favorites', 'history', 'recommendations', 'photos', 'providers' ou 'm3u-generator'." },
|
|
"aiToolGetUserStatsDesc": { "message": "Récupère et affiche les statistiques de la bibliothèque de l'utilisateur, telles que le nombre total de films, de séries et d'artistes uniques." },
|
|
"aiToolShowItemDetailsDesc": { "message": "Affiche la page de détails d'un film ou d'une série spécifique par son titre et son type." },
|
|
"aiToolShowItemDetailsTitleParamDesc": { "message": "Le titre exact du film ou de la série." },
|
|
"aiToolShowItemDetailsTypeParamDesc": { "message": "Le type de contenu. Doit être 'movie' ou 'series'." },
|
|
"aiToolAddToPlaylistDesc": { "message": "Ajoute un film ou une série à la liste de lecture actuelle de l'utilisateur pour le diffuser sur un serveur PHP configuré." },
|
|
"aiToolAddToPlaylistTitleParamDesc": { "message": "Le titre du film ou de la série à ajouter." },
|
|
"aiToolAddToPlaylistTypeParamDesc": { "message": "Le type de contenu. Doit être 'movie' ou 'series'." },
|
|
"aiToolCheckAndDownloadDesc": { "message": "Vérifie la disponibilité d'une liste de titres de films ou de séries sur les serveurs locaux de l'utilisateur et, si trouvés, génère et télécharge un fichier de liste de lecture M3U avec les flux trouvés." },
|
|
"aiToolCheckAndDownloadTitlesParamDesc": { "message": "Un tableau de titres de films ou de séries à rechercher et à télécharger." },
|
|
"aiToolCheckAndDownloadTypeParamDesc": { "message": "Le type de contenu de la liste. Doit être 'movie' ou 'series'." },
|
|
"aiToolCheckAndDownloadFilenameParamDesc": { "message": "Le nom du fichier M3U à télécharger (par exemple, 'MaListe.m3u'). Si aucun nom n'est fourni, un nom par défaut sera utilisé." },
|
|
"aiToolToggleFavoriteDesc": { "message": "Ajoute ou supprime un film ou une série de la liste des favoris de l'utilisateur." },
|
|
"aiToolToggleFavoriteTitleParamDesc": { "message": "Le titre du film ou de la série." },
|
|
"aiToolToggleFavoriteTypeParamDesc": { "message": "Le type de contenu. Doit être 'movie' ou 'series'." },
|
|
"aiToolGetRecommendationsDesc": { "message": "Génère et affiche une liste de recommandations de films ou de séries basées sur l'historique de visionnage et les favoris de l'utilisateur." },
|
|
"aiToolApplyFiltersDesc": { "message": "Applique des filtres à la vue actuelle des films ou des séries, permettant d'affiner les résultats par type, genre, année et ordre de tri." },
|
|
"aiToolApplyFiltersTypeParamDesc": { "message": "Le type de contenu auquel appliquer les filtres. Doit être 'movie' ou 'series'." },
|
|
"aiToolApplyFiltersGenreParamDesc": { "message": "Le nom du genre par lequel filtrer (par exemple, 'Action', 'Drame')." },
|
|
"aiToolApplyFiltersYearParamDesc": { "message": "L'année de sortie par laquelle filtrer (par exemple, '2023')." },
|
|
"aiToolApplyFiltersSortParamDesc": { "message": "Le critère de tri pour les résultats. Valeurs valides : 'popularity.desc' (populaires), 'vote_average.desc' (mieux notés), 'release_date.desc' (récents pour les films) ou 'first_air_date.desc' (récents pour les séries)." },
|
|
"aiToolPlayMusicByArtistDesc": { "message": "Ouvre le lecteur de musique et commence à jouer les chansons d'un artiste spécifique de la bibliothèque de l'utilisateur." },
|
|
"aiToolPlayMusicByArtistNameParamDesc": { "message": "Le nom exact de l'artiste dont les chansons doivent être jouées." },
|
|
"aiToolClearChatHistoryDesc": { "message": "Efface tout l'historique des messages de la conversation en cours avec l'assistant IA." },
|
|
"aiToolDeleteDatabaseDesc": { "message": "Supprime l'intégralité de la base de données locale de l'extension, y compris le contenu analysé, les paramètres et les favoris. Cette action est irréversible et rechargera l'application." },
|
|
"aiToolUpdateAllTokensDesc": { "message": "Lance une analyse complète de tous les serveurs et bibliothèques Plex associés aux jetons configurés dans l'extension. Met à jour tous les films, séries, artistes et photos." },
|
|
"aiToolAddPlexTokenDesc": { "message": "Ajoute un nouveau jeton X-Plex à la configuration de l'extension, permettant à l'application d'analyser le contenu de nouveaux serveurs Plex." },
|
|
"aiToolAddPlexTokenTokenParamDesc": { "message": "La chaîne de jeton X-Plex à ajouter." },
|
|
"aiToolChangeRegionDesc": { "message": "Modifie la région utilisée pour la découverte de contenu dans l'API TMDB. Cela affectera les résultats affichés dans les sections des films et des séries, ainsi que les fournisseurs de streaming." },
|
|
"aiToolChangeRegionRegionParamDesc": { "message": "Le code de pays ISO 3166-1 à deux lettres pour la nouvelle région (par exemple, 'US' pour les États-Unis, 'ES' pour l'Espagne, 'MX' pour le Mexique)." },
|
|
"aiToolClearAllFavoritesDesc": { "message": "Supprime tous les films et séries que l'utilisateur a marqués comme favoris." },
|
|
"aiToolClearViewingHistoryDesc": { "message": "Efface l'historique de visionnage de l'utilisateur de la page d'historique." },
|
|
"aiToolClearRecommendationsViewDesc": { "message": "Efface la vue des recommandations et supprime les recommandations mises en cache." },
|
|
"aiToolSearchNotFound": { "message": "'$query' introuvable dans votre bibliothèque.", "placeholders": { "query": { "content": "$1" } } },
|
|
"aiToolNavigateSuccess": { "message": "Navigation vers la page $page$.", "placeholders": { "page": { "content": "$1" } } },
|
|
"aiToolNavigateError": { "message": "Erreur lors de la navigation vers la page $page$.", "placeholders": { "page": { "content": "$1" } } },
|
|
"aiToolStatsError": { "message": "Erreur lors de l'obtention des statistiques." },
|
|
"aiToolItemNotFound": { "message": "Élément '$title' introuvable.", "placeholders": { "title": { "content": "$1" } } },
|
|
"aiToolShowItemDetailsSuccess": { "message": "Affichage des détails de '$title'.", "placeholders": { "title": { "content": "$1" } } },
|
|
"aiToolAddToPlaylistSuccess": { "message": "'$title' ajouté à la liste de lecture.", "placeholders": { "title": { "content": "$1" } } },
|
|
"aiToolFavoriteAdded": { "message": "'$title' ajouté aux favoris.", "placeholders": { "title": { "content": "$1" } } },
|
|
"aiToolFavoriteRemoved": { "message": "'$title' supprimé des favoris.", "placeholders": { "title": { "content": "$1" } } },
|
|
"aiToolRecommendationsSuccess": { "message": "Affichage des recommandations." },
|
|
"aiToolApplyFiltersGenreNotFound": { "message": "Genre '$genre' introuvable.", "placeholders": { "genre": { "content": "$1" } } },
|
|
"aiToolApplyFiltersSuccess": { "message": "Filtres appliqués avec succès." },
|
|
"aiToolPlayMusicNotReady": { "message": "Le lecteur de musique n'est pas prêt. Assurez-vous que votre bibliothèque musicale Plex a été analysée." },
|
|
"aiToolPlayMusicArtistNotFound": { "message": "Artiste '$artist_name' introuvable.", "placeholders": { "artist_name": { "content": "$1" } } },
|
|
"aiToolPlayMusicNoSongs": { "message": "Aucune chanson trouvée pour '$artist_name'.", "placeholders": { "artist_name": { "content": "$1" } } },
|
|
"aiToolPlayMusicSuccess": { "message": "Lecture de la musique de '$artist_name'.", "placeholders": { "artist_name": { "content": "$1" } } },
|
|
"aiToolChatHistoryCleared": { "message": "Historique du chat effacé." },
|
|
"aiToolConfirmDeleteDatabase": { "message": "Êtes-vous sûr de vouloir supprimer la base de données locale ? Cette action est irréversible." },
|
|
"aiToolDeleteDatabaseCancelled": { "message": "Suppression de la base de données annulée." },
|
|
"aiToolExecutionError": { "message": "Erreur lors de l'exécution de l'outil '$toolName' : $message$", "placeholders": { "toolName": { "content": "$1" }, "message": { "content": "$2" } } },
|
|
"aiToolUnknown": { "message": "Outil inconnu : '$toolName'.", "placeholders": { "toolName": { "content": "$1" } } },
|
|
"aiToolFavoritesCleared": { "message": "Favoris effacés." },
|
|
"aiToolFavoritesClearError": { "message": "Erreur lors de l'effacement des favoris : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aiToolRecommendationsCleared": { "message": "Recommandations effacées." },
|
|
"aiToolRecommendationsClearError": { "message": "Erreur lors de l'effacement des recommandations : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aiToolDatabaseDeleted": { "message": "Base de données supprimée. La page va être rechargée." },
|
|
"aiToolDatabaseDeleteError": { "message": "Erreur lors de la suppression de la base de données : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aiToolDatabaseDeleteBlocked": { "message": "La suppression de la base de données est bloquée. Fermez les autres onglets de l'application." },
|
|
"aiToolUpdateAllTokensSuccess": { "message": "Tous les jetons ont été mis à jour avec succès." },
|
|
"aiToolUpdateAllTokensError": { "message": "Erreur lors de la mise à jour des jetons : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aiToolAddPlexTokenSuccess": { "message": "Jeton Plex ajouté avec succès." },
|
|
"aiToolAddPlexTokenError": { "message": "Erreur lors de l'ajout du jeton Plex : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aiToolChangeRegionSuccess": { "message": "Région modifiée en $region$. Le contenu est en cours de mise à jour.", "placeholders": { "region": { "content": "$1" } } },
|
|
"aiToolChangeRegionError": { "message": "Erreur lors du changement de région : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aiToolViewingHistoryCleared": { "message": "Historique de visionnage effacé." },
|
|
"aiToolViewingHistoryClearError": { "message": "Erreur lors de l'effacement de l'historique de visionnage : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"aiSystemPrompt_v3": { "message": "Vous êtes un assistant expert en films et séries appelé CinePlex. Votre fonction principale est d'aider les utilisateurs à découvrir du contenu et à interagir avec leur bibliothèque. Suivez rigoureusement ces règles : 1. **N'INVENTEZ JAMAIS** avoir effectué une action si vous n'avez pas utilisé d'outil pour cela. Par exemple, ne dites pas 'J'ai téléchargé X' si vous n'avez pas utilisé l'outil de téléchargement. 2. Pour les demandes de recommandations ou de listes (par exemple, 'donnez-moi 5 films d'horreur'), utilisez vos propres connaissances pour générer la liste. Présentez-la sous forme de liste numérotée ou à puces. Après avoir affiché la liste, demandez de manière proactive à l'utilisateur s'il souhaite que vous vérifiiez la disponibilité sur ses serveurs locaux et que vous créiez un fichier M3U. 3. **UNIQUEMENT** si l'utilisateur confirme qu'il souhaite vérifier ou télécharger la liste, utilisez l'outil `check_and_download_titles_list`. Ne l'utilisez pas sans confirmation explicite. 4. Pour toute autre action telle que la navigation, l'obtention de statistiques, la recherche d'un titre spécifique ou le filtrage par résolution ou conteneur, utilisez les outils appropriés. Soyez toujours concis, amical et efficace." },
|
|
"aiToolM3UNoTitlesProvided": { "message": "Veuillez fournir une liste de titres pour créer la liste de lecture." },
|
|
"aiToolM3UCheckingTitles": { "message": "Vérification des titres sur vos serveurs locaux..." },
|
|
"aiToolM3UNoLocalMatchesForDownload": { "message": "Je n'ai trouvé aucun des films ou séries de la liste sur vos serveveurs locaux." },
|
|
"aiToolM3UDownloadStarted": { "message": "Terminé ! J'ai trouvé $1 des $2 titres sur vos serveurs et j'ai lancé le téléchargement de la liste de lecture M3U.", "placeholders": { "1": { "content": "$1" }, "2": { "content": "$2" } } },
|
|
"backToProviders": { "message": "Retour aux fournisseurs" },
|
|
"artistsCounterSingle": { "message": "$total$ artiste", "placeholders": { "total": { "content": "$1" } } },
|
|
"artistsCounterLoading": { "message": "Chargement..." },
|
|
"downloadingSong": { "message": "Début du téléchargement de \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
|
"songDownloaded": { "message": "\"$title$\" téléchargé.", "placeholders": { "title": { "content": "$1" } } },
|
|
"errorDownloadingSong": { "message": "Erreur lors du téléchargement de \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
|
"generatingAlbumM3U": { "message": "Génération de M3U pour \"$artist$\"", "placeholders": { "artist": { "content": "$1" } } },
|
|
"albumM3UGenerated": { "message": "M3U pour l'album \"$artist$\" généré.", "placeholders": { "artist": { "content": "$1" } } },
|
|
"retyingSection": { "message": "Nouvelle tentative de la section \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
|
|
"retrySuccess": { "message": "[SUCCÈS] Nouvelle tentative pour \"$title$\" terminée.", "placeholders": { "title": { "content": "$1" } } },
|
|
"retryError": { "message": "[ERREUR FINALE] Échec de la nouvelle tentative pour \"$title$\" : $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
|
|
"startingRetryPhase": { "message": "Démarrage de la phase de nouvelle tentative pour $count$ sections...", "placeholders": { "count": { "content": "$1" } } },
|
|
"tokenFoundServers": { "message": "Jeton $token$... a trouvé $count$ serveurs.", "placeholders": { "token": { "content": "$1" }, "count": { "content": "$2" } } },
|
|
"errorProcessingToken": { "message": "Erreur lors du traitement du jeton $token$... : $message$", "placeholders": { "token": { "content": "$1" }, "message": { "content": "$2" } } },
|
|
"plexScanFatalError": { "message": "ERREUR FATALE : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"errorDuringScan": { "message": "Erreur pendant l'analyse : $message$", "placeholders": { "message": { "content": "$1" } } },
|
|
"stoppingPlexScan": { "message": "Arrêt de l'analyse Plex..." },
|
|
"invalidTokenProvided": { "message": "Jeton non valide fourni." },
|
|
"tokenAlreadyExists": { "message": "Le jeton existe déjà." },
|
|
"tokenAddedSuccessfully": { "message": "Jeton ajouté avec succès." },
|
|
"noStreamsFoundForSelection": { "message": "Aucun flux trouvé pour la sélection." },
|
|
"autoplayBlocked": { "message": "Lecture automatique bloquée." },
|
|
"page": { "message": "Page" },
|
|
"all": { "message": "Tous" },
|
|
"userScore": { "message": "Score des utilisateurs" },
|
|
"duration": { "message": "Durée" },
|
|
"min": { "message": "Min" },
|
|
"max": { "message": "Max" }
|
|
} |