{
    "appName": { "message": "CinePlex" },
    "appDescription": { "message": "Scanne les serveurs Plex pour trouver du contenu et l'affiche dans l'interface" },
    "appTagline": { "message": "Films, Séries & 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" },
    "navPhotos": { "message": "Photos" },
    "navStats": { "message": "Statistiques" },
    "navFavorites": { "message": "Favoris" },
    "navHistory": { "message": "Historique" },
    "navRecommendations": { "message": "Recommandations" },
    "navMusic": { "message": "Musique" },
    "heroWelcome": { "message": "Bienvenue sur CinePlex" },
    "heroSubtitle": { "message": "Explorez des milliers de films et de séries." },
    "addStream": { "message": "Ajouter le 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..." },
    "photosEmptyState": { "message": "Aucun album ou photo trouvé." },
    "photosEmptyStateSub": { "message": "Veuillez sélectionner un serveur ou vous assurer d'avoir une bibliothèque de photos dans Plex." },
    "statsTitle": { "message": "Statistiques de la Bibliothèque" },
    "statsAllTokens": { "message": "Tous les Tokens" },
    "statsAnalyzing": { "message": "Analyse de votre bibliothèque..." },
    "statsActiveTokens": { "message": "Tokens Actifs" },
    "statsServersFound": { "message": "Serveurs Trouvés" },
    "statsUniqueMovies": { "message": "Films Uniques" },
    "statsUniqueSeries": { "message": "Séries Uniques" },
    "statsUniqueArtists": { "message": "Artistes Uniques" },
    "statsTokenServers": { "message": "Serveurs du Token" },
    "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." },
    "backButton": { "message": "Retour" },
    "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" },
    "settingsTabPhpGen": { "message": "Générateur PHP" },
    "settingsTabData": { "message": "Données" },
    "settingsApiServer": { "message": "Configuration API et Serveur" },
    "settingsTmdbApiLabel": { "message": "Clé API de TMDB (Optionnel)" },
    "settingsTmdbApiPlaceholder": { "message": "Utilisera la clé par défaut si laissé vide" },
    "settingsTmdbLangLabel": { "message": "Langue pour TMDB & UI" },
    "settingsPhpUrlLabel": { "message": "URL du Serveur pour 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": "Scan de Contenu" },
    "settingsScanDesc": { "message": "Sélectionnez ce que vous voulez scanner 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 le Scan" },
    "settingsPlexTokens": { "message": "Tokens Plex" },
    "settingsPlexTokensDesc": { "message": "Modifiez la liste des tokens Plex (format JSON)." },
    "settingsSaveTokens": { "message": "Sauvegarder les Tokens" },
    "settingsPhpGenTitle": { "message": "Générateur de Script PHP pour Serveur" },
    "settingsPhpFileOptions": { "message": "Options du 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 du Fichier" },
    "settingsPhpFileAction": { "message": "Action sur le Fichier" },
    "settingsPhpActionAppend": { "message": "Ajouter à la fin du fichier (cumulatif)" },
    "settingsPhpActionOverwrite": { "message": "Écraser le fichier (repartir à zéro)" },
    "settingsPhpSecurity": { "message": "Sécurité (Optionnel)" },
    "settingsPhpUseSecretKey": { "message": "Utiliser une clé secrète (Recommandé)" },
    "settingsPhpSecretKeyPlaceholder": { "message": "Entrez 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 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" },
    "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": "Renforcement des Basses" },
    "eqPreampLabel": { "message": "Pré-Amp" },
    "infoModalTitle": { "message": "Information" },
    "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" },
    "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." },
    "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 de photos 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": "Parcourez 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 token." },
    "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 du ou des 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 du M3U pour \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
    "m3uDownloaded": { "message": "M3U pour \"$title$\" téléchargé.", "placeholders": { "title": { "content": "$1" } } },
    "errorGeneratingM3U": { "message": "Erreur lors de la génération du M3U : $message$", "placeholders": { "message": { "content": "$1" } } },
    "settingsSavedSuccess": { "message": "Paramètres sauvegardés avec succès." },
    "errorSavingSettings": { "message": "Erreur lors de la sauvegarde 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": "Retiré des favoris." },
    "plexScanInProgress": { "message": "Le scan Plex est déjà en cours." },
    "plexScanStarting": { "message": "Démarrage du scan Plex..." },
    "noPlexTokens": { "message": "Aucun token Plex configuré." },
    "clearingSections": { "message": "Nettoyage des sections : $sections$", "placeholders": { "sections": { "content": "$1" } } },
    "sectionsCleared": { "message": "Sections nettoyées." },
    "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..." },
    "plexScanFatalError": { "message": "ERREUR FATALE : $message$", "placeholders": { "message": { "content": "$1" } } },
    "errorDuringScan": { "message": "Erreur pendant le scan : $message$", "placeholders": { "message": { "content": "$1" } } },
    "scanCancelled": { "message": "Scan annulé par l'utilisateur." },
    "scanCancelledInfo": { "message": "Scan annulé." },
    "retyingSection": { "message": "Nouvelle tentative pour la section \"$title$\"...", "placeholders": { "title": { "content": "$1" } } },
    "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." },
    "noArtistsFound": { "message": "Aucun artiste trouvé." },
    "artistsCounter": { "message": "$start$-$end$ sur $total$", "placeholders": { "start": { "content": "$1" }, "end": { "content": "$2" }, "total": { "content": "$3" } } },
    "artistsCounterSingle": { "message": "$total$ Artistes", "placeholders": { "total": { "content": "$1" } } },
    "artistsCounterLoading": { "message": "Chargement..." },
    "noSongsFound": { "message": "Aucune chanson trouvée." },
    "shuffleOn": { "message": "Mode aléatoire activé." },
    "shuffleOff": { "message": "Mode aléatoire désactivé." },
    "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 du M3U pour \"$artist$\"...", "placeholders": { "artist": { "content": "$1" } } },
    "albumM3UGenerated": { "message": "M3U de l'album \"$artist$\" généré.", "placeholders": { "artist": { "content": "$1" } } },
    "playbackError": { "message": "Erreur de lecture" },
    "errorLabel": { "message": "Erreur" },
    "reloadingPage": { "message": "Rechargement de la page..." },
    "viewed": { "message": "Vu" },
    "local": { "message": "Local" },
    "topRatedSort": {"message": "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": "Voir la bande-annonce"},
    "addToFavorites": {"message": "Ajouter aux favoris"},
    "removeFromFavorites": {"message": "Retirer des favoris"},
    "notAvailable": {"message": "Non disponible"},
    "mainCast": {"message": "Distribution Principale"},
    "seasonsAndEpisodes": {"message": "Saisons & É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 n'a été trouvée pour ce titre."},
    "fatalInitError": {"message": "Erreur d'Initialisation Fatale"},
    "fatalInitErrorSub": {"message": "L'application n'a pas pu être chargée."},
    "invalidStreamInfo": {"message": "Information invalide."},
    "dbUnavailableForStreams": {"message": "Base de données locale non disponible."},
    "noPlexServersForStreams": {"message": "Pas de serveurs Plex."},
    "notFoundOnServers": {"message": "\"$query$\" non trouvé sur les serveurs.", "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 de Chargement des Détails" },
    "errorLoadingLocalContent": { "message": "Erreur lors du chargement du contenu local." },
    "errorServerResponse": { "message": "Réponse non réussie du serveur." },
    "errorPlexApi": { "message": "Erreur $status$ de l'API Plex.", "placeholders": { "status": { "content": "$1" } } },
    "errorParsingPlexXml": { "message": "Erreur d'analyse du XML de Plex." },
    "untitled": { "message": "Sans titre" },
    "itemCount": { "message": "$count$ éléments", "placeholders": { "count": { "content": "$1" } } },
    "noPhotoServers": { "message": "Aucun serveur de photos" }
}