CinePlex/_locales/fr/messages.json

441 lines
40 KiB
JSON

{
"appName": { "message": "CinePlex" },
"appDescription": { "message": "Scanne les serveurs Plex pour trouver du contenu et l'affiche dans l'interface" },
"appTagline": { "message": "Films, Séries et Musique" },
"appLocaleCode": { "message": "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": "" },
"heroSubtitle": { "message": "Explorez des milliers de films et de séries." },
"addStream": { "message": "Ajouter un stream" },
"moreInfo": { "message": "Plus d'informations" },
"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électionner 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 assurez-vous d'avoir une bibliothèque de photos 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 du jeton" },
"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 de scan 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": "Réglages 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": "Configuration API et serveur" },
"settingsTmdbApiLabel": { "message": "Clé API TMDB (Facultatif)" },
"settingsTmdbApiPlaceholder": { "message": "La clé par défaut sera utilisée si laissée vide" },
"settingsGoogleApiLabel": { "message": "Clé API Google Gemini (Facultatif)" },
"settingsGoogleApiPlaceholder": { "message": "Nécessaire 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 ajouter des streams" },
"settingsPhpUrlPlaceholder": { "message": "https://votre-serveur.com/chemin/vers/le-script.php" },
"settingsInterface": { "message": "Interface" },
"settingsLightTheme": { "message": "Mode clair" },
"settingsShowHero": { "message": "Afficher la section de bienvenue 'Hero'" },
"settingsScanContent": { "message": "Scan de contenu" },
"settingsScanDesc": { "message": "Sélectionnez ce que vous voulez scanner et cliquez sur le bouton." },
"settingsScanMovies": { "message": "Films" },
"settingsScanShows": { "message": "Séries" },
"settingsScanArtists": { "message": "Musique" },
"settingsScanPhotos": { "message": "Photos" },
"settingsSelectAll": { "message": "Tout sélectionner" },
"settingsStartScan": { "message": "Lancer le scan" },
"settingsPlexTokens": { "message": "Jetons Plex" },
"settingsPlexTokensDesc": { "message": "Modifier la liste des jetons Plex (format JSON)." },
"settingsSaveTokens": { "message": "Sauvegarder les jetons" },
"settingsJellyfinTitle": { "message": "Configuration Jellyfin" },
"settingsJellyfinDesc": { "message": "Ajoutez les détails de votre serveur Jellyfin pour scanner son contenu." },
"jellyfinUrlLabel": { "message": "URL du serveur Jellyfin" },
"jellyfinUserLabel": { "message": "Nom d'utilisateur" },
"jellyfinPassLabel": { "message": "Mot de passe" },
"jellyfinConnectAndScan": { "message": "Connecter et scanner" },
"settingsPhpGenTitle": { "message": "Générateur de script PHP pour le serveur" },
"settingsPhpFileOptions": { "message": "Options de fichier" },
"settingsPhpSavePathLabel": { "message": "Chemin de sauvegarde 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, séries et musiques 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 de Plex" },
"musicAllServers": { "message": "Tous les serveurs" },
"musicSearchArtistPlaceholder": { "message": "Rechercher un artiste..." },
"musicSearchDiscographyPlaceholder": { "message": "Rechercher dans la discographie..." },
"musicNothingPlaying": { "message": "Rien ne joue" },
"musicSelectSong": { "message": "Sélectionnez une chanson" },
"musicToStart": { "message": "pour commencer à jouer" },
"miniplayerDownloadSong": { "message": "Télécharger la chanson" },
"miniplayerDownloadAlbum": { "message": "Télécharger l'album M3U" },
"miniplayerVolume": { "message": "Volume" },
"miniplayerShuffle": { "message": "Lecture 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": "Accentuation des basses" },
"eqPreampLabel": { "message": "Préamplificateur" },
"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 fonctions 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 l'édition." },
"errorLoadingTokensMessage": { "message": "Erreur lors du chargement des jetons : $message$", "placeholders": { "message": { "content": "$1" } } },
"aceEditorNotAvailableToSave": { "message": "Éditeur non disponible pour la sauvegarde." },
"invalidJsonFormat": { "message": "Format JSON invalide. 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 pas de données pour les sections de la base de données actuelle." },
"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 ne peut pas être annulée." },
"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 devons mieux vous connaître pour vous donner 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 stream(s) : $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 streams pour \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"sendingStreams": { "message": "Envoi de $count$ stream(s) au serveur...", "placeholders": { "count": { "content": "$1" } } },
"streamAddedSuccess": { "message": "Stream(s) ajouté(s) avec succès." },
"generatingM3U": { "message": "Génération 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 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 changée. L'application va maintenant être rechargée." },
"addedToFavorites": { "message": "Ajouté aux favoris." },
"removedFromFavorites": { "message": "Supprimé des favoris." },
"plexScanInProgress": { "message": "Le scan Plex est déjà en cours." },
"plexScanStarting": { "message": "Démarrage du scan Plex..." },
"noPlexTokens": { "message": "Aucun jeton Plex configuré." },
"clearingSections": { "message": "Nettoyage des sections : $sections$", "placeholders": { "sections": { "content": "$1" } } },
"initialScanPhaseComplete": { "message": "Phase de scan initiale terminée." },
"retryPhaseFinished": { "message": "Phase de réessais terminée." },
"plexScanFinished": { "message": "Scan terminé. Mise à jour du contenu..." },
"scanCancelled": { "message": "Scan annulé par l'utilisateur." },
"scanCancelledInfo": { "message": "Scan annulé." },
"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": "Sans catégorie"},
"synopsis": {"message": "Synopsis"},
"noSynopsis": {"message": "Aucune synopsis disponible."},
"director": {"message": "Réalisateur :"},
"writer": {"message": "Scénariste :"},
"viewOnImdb": {"message": "Voir sur IMDb"},
"watchTrailer": {"message": "Voir la bande-annonce"},
"addToFavorites": {"message": "Ajouter aux favoris"},
"removeFromFavorites": {"message": "Supprimer des favoris"},
"notAvailable": {"message": "Non disponible"},
"mainCast": {"message": "Distribution principale"},
"seasonsAndEpisodes": {"message": "Saisons et épisodes"},
"similarContent": {"message": "Contenu similaire"},
"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 invalides."},
"dbUnavailableForStreams": {"message": "Base de données locale non disponible."},
"noPlexServersForStreams": {"message": "Aucun serveur Plex."},
"notFoundOnServers": {"message": "Impossible de trouver \"$query$\" 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 non réussie." },
"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": "Le scan Jellyfin est déjà en cours." },
"jellyfinScanning": { "message": "Scan de Jellyfin en cours..." },
"jellyfinMissingCredentials": { "message": "Veuillez compléter l'URL et l'utilisateur de Jellyfin." },
"jellyfinConnecting": { "message": "Connexion à Jellyfin en cours : $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$' scanné, $count$ titres ajoutés.", "placeholders": { "libraryName": { "content": "$1" }, "count": { "content": "$2" } } },
"jellyfinLibraryScanFailed": { "message": "Erreur lors du scan de la bibliothèque '$libraryName$'.", "placeholders": { "libraryName": { "content": "$1" } } },
"jellyfinScanSuccess": { "message": "Scan Jellyfin terminé. $movies$ films et $series$ séries ajoutés.", "placeholders": { "movies": { "content": "$1" }, "series": { "content": "$2" } } },
"noJellyfinCredentials": { "message": "Identifiants Jellyfin non configurés." },
"notFoundOnJellyfin": { "message": "Impossible de trouver \"$query$\" sur Jellyfin.", "placeholders": {"query": {"content": "$1"}}},
"notFoundOnAnyServer": { "message": "Impossible de trouver \"$query$\" 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 scanné votre serveur Jellyfin dans les paramètres." },
"activityViewerTitle": { "message": "Visionneuse d'activité du serveur" },
"activitySelectServer": { "message": "Sélectionner 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électionner 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": "Écrivez votre message..." },
"chatSend": { "message": "➤" },
"chatWelcome": { "message": "Bienvenue ! Je suis votre assistant CinePlex. Demandez-moi des informations 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 configurer dans les paramètres de l'extension pour utiliser l'assistant IA." },
"chatApiInvalidResponse": { "message": "L'API a renvoyé une réponse invalide. 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 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)." },
"aiToolNavigateToPageDesc": { "message": "Navigue l'utilisateur vers une page spécifique de l'interface de l'application." },
"aiToolNavigateToPagePageParamDesc": { "message": "Le nom de la page à naviguer, par exemple : 'movies', 'series', 'stats', 'favorites', 'history', 'recommendations', 'photos', 'providers', ou 'm3u-generator'." },
"aiToolGetUserStatsDesc": { "message": "Obtient et affiche les statistiques de la bibliothèque de l'utilisateur, telles que le nombre total de films, séries et 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 la diffuser à 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 playlist M3U avec les streams 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'). S'il n'est pas fourni, un nom par défaut sera utilisé." },
"aiToolToggleFavoriteDesc": { "message": "Ajoute ou retire 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 classement." },
"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 des chansons d'un artiste spécifique de la bibliothèque de l'utilisateur." },
"aiToolPlayMusicByArtistNameParamDesc": { "message": "Le nom exact de l'artiste dont les chansons sont à jouer." },
"aiToolClearChatHistoryDesc": { "message": "Efface tout l'historique des messages de la conversation actuelle avec l'assistant IA." },
"aiToolDeleteDatabaseDesc": { "message": "Supprime toute la base de données locale de l'extension, y compris le contenu scanné, les paramètres et les favoris. Cette action est irréversible et rechargera l'application." },
"aiToolUpdateAllTokensDesc": { "message": "Lance un scan complet 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 de scanner le contenu des nouveaux serveurs Plex." },
"aiToolAddPlexTokenTokenParamDesc": { "message": "La chaîne du jeton X-Plex à ajouter." },
"aiToolChangeRegionDesc": { "message": "Change 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 de films et de séries, ainsi que les fournisseurs de streaming." },
"aiToolChangeRegionRegionParamDesc": { "message": "Le code 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": "Nettoie la vue des recommandations et supprime les recommandations mises en cache." },
"aiToolSearchNotFound": { "message": "Impossible de trouver '$query$' dans votre bibliothèque.", "placeholders": { "query": { "content": "$1" } } },
"aiToolNavigateSuccess": { "message": "Navigué 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'élément '$title$' n'a pas été trouvé.", "placeholders": { "title": { "content": "$1" } } },
"aiToolShowItemDetailsSuccess": { "message": "Affichage des détails de '$title$'.", "placeholders": { "title": { "content": "$1" } } },
"aiToolAddToPlaylistSuccess": { "message": "Ajouté '$title$' à la liste de lecture.", "placeholders": { "title": { "content": "$1" } } },
"aiToolFavoriteAdded": { "message": "Ajouté '$title$' aux favoris.", "placeholders": { "title": { "content": "$1" } } },
"aiToolFavoriteRemoved": { "message": "Supprimé '$title$' des favoris.", "placeholders": { "title": { "content": "$1" } } },
"aiToolRecommendationsSuccess": { "message": "Affichage des recommandations." },
"aiToolApplyFiltersGenreNotFound": { "message": "Genre '$genre$' non trouvé.", "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é scannée." },
"aiToolPlayMusicArtistNotFound": { "message": "Artiste '$artist_name$' non trouvé.", "placeholders": { "artist_name": { "content": "$1" } } },
"aiToolPlayMusicNoSongs": { "message": "Aucune chanson trouvée pour '$artist_name$'.", "placeholders": { "artist_name": { "content": "$1" } } },
"aiToolPlayMusicSuccess": { "message": "Lecture de 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 changé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 ces règles rigoureusement : 1. **NE JAMAIS** inventer que vous avez effectué une action si vous n'avez pas utilisé un 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 (ex. 'dis-moi 5 films d'horreur'), utilisez vos propres connaissances pour générer la liste. Présentez-la sous forme 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. **SEULEMENT** 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 comme naviguer, obtenir des statistiques ou rechercher un titre spécifique, utilisez les outils appropriés. Soyez toujours concis, amical et efficace." },
"aiToolM3UNoTitlesProvided": { "message": "Veuillez fournir une liste de titres pour créer la playlist." },
"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 serveurs locaux." },
"aiToolM3UDownloadStarted": { "message": "Fait ! J'ai trouvé $1 sur $2 titres sur vos serveurs et j'ai lancé le téléchargement de la playlist 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émarrage du téléchargement de \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"songDownloaded": { "message": "\"$title$\" téléchargée.", "placeholders": { "title": { "content": "$1" } } },
"errorDownloadingSong": { "message": "Erreur lors du téléchargement de \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"generatingAlbumM3U": { "message": "Génération M3U pour \"$artist$\"", "placeholders": { "artist": { "content": "$1" } } },
"albumM3UGenerated": { "message": "M3U pour l'album \"$artist$\" généré.", "placeholders": { "artist": { "content": "$1" } } },
"retyingSection": { "message": "Nouvel essai de la section \"$title$\"", "placeholders": { "title": { "content": "$1" } } },
"retrySuccess": { "message": "[SUCCÈS] Nouvel essai pour \"$title$\" terminé.", "placeholders": { "title": { "content": "$1" } } },
"retryError": { "message": "[ERREUR FINALE] L'essai a échoué pour \"$title$\" : $message$", "placeholders": { "title": { "content": "$1" }, "message": { "content": "$2" } } },
"startingRetryPhase": { "message": "Démarrage de la phase de réessais 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 le scan : $message$", "placeholders": { "message": { "content": "$1" } } },
"stoppingPlexScan": { "message": "Arrêt du scan Plex..." },
"invalidTokenProvided": { "message": "Jeton invalide fourni." },
"tokenAlreadyExists": { "message": "Le jeton existe déjà." },
"tokenAddedSuccessfully": { "message": "Jeton ajouté avec succès." },
"noStreamsFoundForSelection": { "message": "Aucun stream trouvé pour la sélection." },
"autoplayBlocked": { "message": "Lecture automatique bloquée." },
"welcomeToCinePlex": { "message": "" },
"page": { "message": "Page" }
}