"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 BD depuis un Fichier"},
"settingsExportDb":{"message":"Exporter BD vers un Fichier"},
"settingsClearContent":{"message":"Effacer les Données de Contenu Locales"},
"settingsClearContentDesc":{"message":"Cette action supprimera les films, séries et musiques de la base de données locale, mais n'affectera pas vos favoris ou paramètres."},
"settingsClose":{"message":"Fermer"},
"settingsSave":{"message":"Sauvegarder les Paramètres"},
"musicSidenavTitle":{"message":"Plex Musique"},
"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 commencer la lecture"},
"miniplayerDownloadSong":{"message":"Télécharger la chanson"},
"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 locales..."},
"noContentDataToDelete":{"message":"Aucune donnée de contenu à supprimer."},
"contentDataDeleted":{"message":"Données de contenu supprimées de 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 tokens pour l'édition."},
"errorLoadingTokensMessage":{"message":"Erreur de chargement des tokens : $message$","placeholders":{"message":{"content":"$1"}}},
"aceEditorNotAvailableToSave":{"message":"Éditeur non disponible pour la sauvegarde."},
"invalidJsonFormat":{"message":"Format JSON invalide. Doit être { \"tokens\": [...] }"},
"tokensSaved":{"message":"Tokens sauvegardés avec succès."},
"errorSavingTokens":{"message":"Erreur lors de la sauvegarde des tokens : $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 un objet JSON valide."},
"noDataToImport":{"message":"Le fichier ne contient pas de données pour les sections actuelles de la BD."},
"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 locales (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 avant de pouvoir le copier."},
"scriptCopied":{"message":"Script PHP copié dans le presse-papiers."},
"errorCopyingScript":{"message":"Erreur lors de la copie du script."},
"tokenFoundServers":{"message":"Le token $token$... a trouvé $count$ serveurs.","placeholders":{"token":{"content":"$1"},"count":{"content":"$2"}}},
"errorProcessingToken":{"message":"Erreur lors du traitement du token $token$... : $message$","placeholders":{"token":{"content":"$1"},"message":{"content":"$2"}}},
"initialScanPhaseComplete":{"message":"Phase de scan initiale terminée."},
"retryPhaseFinished":{"message":"Phase de relance terminée."},
"plexScanFinished":{"message":"Scan terminé. Mise à jour du contenu..."},
"retrySuccess":{"message":"[SUCCÈS] Relance de \"$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"}}},
"noRetriesPending":{"message":"Aucune relance en attente."},
"startingRetryPhase":{"message":"Démarrage de la phase de relance pour $count$ sections...","placeholders":{"count":{"content":"$1"}}},
"retryPhaseCancelled":{"message":"Phase de relance 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."},
"jellyfinLibraryScanFailed":{"message":"Échec 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."},
"chatGptError":{"message":"Désolé, je n'ai pas pu obtenir de réponse. Veuillez réessayer."},
"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."},
"chatApiKeyMissing":{"message":"La clé API OpenAI n'est pas définie. Veuillez la configurer dans les paramètres de l'extension."},
"chatApiInvalidResponse":{"message":"L'API a renvoyé une réponse non valide. Veuillez réessayer."},
"chatApiError":{"message":"Erreur de communication avec l'assistant IA"},
"aiToolRecommendationsClearError":{"message":"Erreur lors de la suppression des recommandations : $message$","placeholders":{"message":{"content":"$1"}}},
"aiToolDatabaseDeleted":{"message":"Base de données supprimée. La page va maintenant se recharger."},
"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. Veuillez fermer 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"}}},
"aiSystemPrompt_v2":{"message":"Vous êtes un assistant expert en films et séries nommé CinePlex. Votre fonction principale est d'aider les utilisateurs à interagir avec leur médiathèque et à découvrir du contenu. Suivez ces règles : 1. Lorsqu'un utilisateur demande une liste ou une recommandation (par exemple, 'donnez-moi 5 films d'horreur', 'les meilleures séries de science-fiction'), vous DEVEZ utiliser vos propres connaissances pour générer la liste et la présenter sous forme de liste numérotée ou à puces. N'UTILISEZ PAS d'outils pour cette tâche de découverte initiale. 2. Après avoir présenté la liste, si l'utilisateur vous demande de la télécharger, de la vérifier ou de créer un M3U, ALORS et seulement alors, utilisez l'outil 'generate_m3u_from_titles_list' en lui passant les titres que vous venez de mentionner. 3. Pour toute autre action telle que la navigation dans l'application, l'obtention de statistiques ou la recherche d'un TITRE SPÉCIFIQUE dans la bibliothèque de l'utilisateur, utilisez les outils appropriés. Soyez concis, amical et efficace."},
"aiToolSearchLibraryDesc_v2":{"message":"La liste des titres à traiter est vide."},
"aiToolM3UNoLocalMatches":{"message":"Il semble que vous n'ayez aucun des titres de cette liste sur vos serveurs locaux."},
"aiToolGenerateM3UTypeDesc":{"message":"Le type de contenu à rechercher : 'movie' ou 'series'."},
"aiToolGenerateM3UFilenameDesc":{"message":"Un nom de fichier personnalisé pour la liste de lecture M3U téléchargée."},
"aiToolGenerateM3USuccess":{"message":"Compris ! Je génère une liste de lecture M3U avec $1 éléments. Le téléchargement devrait commencer sous peu.","placeholders":{"1":{"content":"$1"}}}