Files
plezy/lib/i18n/fr.i18n.json
T
edde746 7f0cad339c fix(startup): report and repair a failed launch instead of showing "Error"
Since 2.10.0 the whole app sits behind one all-or-nothing initialization
gate, and that gate discarded the only evidence of its own failure. It
caught the error, logged nothing but `error.runtimeType`, rendered an
icon plus the word "Error" plus Retry, and never reported the error
because catching it kept the crash reporter from ever seeing it. There
is no log file on any platform, the buffer is in memory only, a
double-clicked Windows release build has no console, and the log viewer
lives in Settings, behind the gate that just failed. #1732 is the result:
a Windows 11 user whose app will not boot and who cannot produce a single
byte of diagnostic detail.

The gate now names its phases. Each step is wrapped so a throw carries
the phase it came from, replacing a `Future.wait` that discarded every
error but the first and could not attribute it to any of four concurrent
steps. The failure screen renders the phase, the exception type, the
message and an expandable stack, plus copy and upload actions that reuse
the existing log-relay flow. The record is persisted next to the database
so the next successful launch can surface it in Settings > Logs, and it
is reported to the crash reporter explicitly.

Only preferences and the database still gate the launch. Window chrome,
locale, crash-reporting init, TV/performance detection, the image-cache
budget and download storage are best-effort and time-bounded, so a
stalled platform thread degrades instead of holding the splash forever.
Sentry no longer receives the startup work as its `appRunner`: that made
a startup failure indistinguishable from a Sentry failure, and the guard
would then have re-run migrations and the database open a second time.

The two remaining fatal steps become recoverable. Preference reads
tolerate a value whose stored type no longer matches, dropping the key
and defaulting instead of failing the boot. A store that cannot be parsed
is detected before either desktop plugin backend can memoise it, which is
what makes an in-process repair possible at all. Repair is never
automatic: it states what it will cost, salvages the credential-vault key
and every tracker and Seerr session it can validate out of the damaged
bytes, reseeds them, and moves the original aside rather than deleting
it. Servers and profiles survive a salvaged key because their tokens are
ciphertext in the database; tracker and Seerr sessions are plaintext
preference entries, so the copy says they may still need reconnecting.

Nothing derived from the store reaches a diagnostic. `FormatException`
prints an excerpt of whatever it failed to parse, and during startup that
document holds the vault key, refresh tokens and session cookies while
the redaction manager still has nothing registered, so the wrapper keeps
only the cause's type and offset and the record is an allowlist of
already-redacted fields. The quarantined copy is labelled as containing
credentials, is never offered for upload, and can be deleted from the
dialog.

Also self-heals orphaned WAL/SHM sidecars on desktop rather than only
tvOS, makes every `createTable` migration step idempotent, keeps MSVC
link by-products out of the Windows bundle, and asserts bundle contents
in CI.

Refs #1732
2026-07-31 21:45:32 +02:00

1898 lines
88 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"app": {
"title": "Plezy"
},
"auth": {
"signInWithPlex": "Se connecter avec Plex",
"showQRCode": "Afficher le code QR",
"authenticate": "S'authentifier",
"authenticationTimeout": "Délai d'authentification expiré. Veuillez réessayer.",
"scanQRToSignIn": "Scannez ce QR code pour vous connecter",
"waitingForAuth": "En attente d'authentification...\nConnectez-vous depuis votre navigateur.",
"useBrowser": "Utiliser le navigateur",
"or": "ou",
"connectToJellyfin": "Se connecter à Jellyfin",
"useQuickConnect": "Utiliser Quick Connect",
"quickConnectInstructions": "Ouvrez Quick Connect dans Jellyfin et saisissez ce code.",
"quickConnectWaiting": "En attente d'approbation…",
"quickConnectCancel": "Annuler",
"quickConnectExpired": "Quick Connect a expiré. Réessayez.",
"localDataRecoveryRequired": "Plezy na pas pu récupérer en toute sécurité les données locales de connexion et de lecture en attente. Veuillez vous reconnecter."
},
"common": {
"cancel": "Annuler",
"save": "Enregistrer",
"close": "Fermer",
"clear": "Effacer",
"reset": "Réinitialiser",
"later": "Plus tard",
"submit": "Soumettre",
"confirm": "Confirmer",
"retry": "Réessayer",
"logout": "Se déconnecter",
"unknown": "Inconnu",
"refresh": "Rafraîchir",
"yes": "Oui",
"no": "Non",
"delete": "Supprimer",
"edit": "Modifier",
"shuffle": "Mélanger",
"addTo": "Ajouter à…",
"createNew": "Créer",
"connect": "Se connecter",
"disconnect": "Se déconnecter",
"play": "Lire",
"pause": "Pause",
"resume": "Reprendre",
"error": "Erreur",
"search": "Rechercher",
"home": "Accueil",
"back": "Retour",
"settings": "Paramètres",
"mute": "Couper le son",
"ok": "OK",
"off": "Désactivé",
"seasonNumber": "Saison ${number}",
"episodeNumberTitle": "Épisode ${number} ${title}",
"chapterNumber": "Chapitre ${number}",
"reconnect": "Se reconnecter",
"viewAll": "Tout afficher",
"checkingNetwork": "Vérification du réseau...",
"loadingServers": "Chargement des serveurs...",
"connectingToServers": "Connexion aux serveurs...",
"startingOfflineMode": "Démarrage en mode hors ligne…",
"loading": "Chargement...",
"fullscreen": "Plein écran",
"exitFullscreen": "Quitter le plein écran",
"pressBackAgainToExit": "Appuyez à nouveau sur retour pour quitter"
},
"screens": {
"licenses": "Licences",
"switchProfile": "Changer de profil",
"subtitleStyling": "Configuration des sous-titres",
"mpvConfig": "mpv.conf",
"logs": "Journaux"
},
"update": {
"available": "Mise à jour disponible",
"versionAvailable": "Version ${version} disponible",
"currentVersion": "Actuelle : ${version}",
"skipVersion": "Ignorer cette version",
"viewRelease": "Voir les notes de version",
"latestVersion": "Vous utilisez la dernière version",
"checkFailed": "Échec de la vérification des mises à jour"
},
"settings": {
"title": "Paramètres",
"supportDeveloper": "Soutenir Plezy",
"supportDeveloperDescription": "Faites un don via Liberapay pour financer le développement",
"language": "Langue",
"theme": "Thème",
"appearance": "Apparence",
"videoPlayback": "Lecture vidéo",
"videoPlaybackDescription": "Configurer le comportement de lecture",
"advanced": "Avancé",
"episodePosterMode": "Style de laffiche de l’épisode",
"seriesPoster": "Affiche de la série",
"seasonPoster": "Affiche de la saison",
"episodeThumbnail": "Miniature",
"showHeroSectionDescription": "Afficher le carrousel de contenu en vedette sur l'écran d'accueil",
"secondsLabel": "Secondes",
"minutesLabel": "Minutes",
"secondsShort": "s",
"minutesShort": "m",
"durationHint": "Saisissez la durée (${min}${max})",
"systemTheme": "Système",
"lightTheme": "Clair",
"darkTheme": "Sombre",
"oledTheme": "OLED",
"libraryDensity": "Densité des bibliothèques",
"compact": "Compact",
"comfortable": "Confortable",
"tvCornerSpotlightBackdrop": "Illustration en vedette dans le coin",
"tvCornerSpotlightBackdropDescription": "Afficher lillustration en vedette dans le coin supérieur droit plutôt quen plein écran",
"viewMode": "Mode d'affichage",
"gridView": "Grille",
"listView": "Liste",
"showHeroSection": "Afficher la section à la une",
"continueWatchingAction": "Action de « Continuer à regarder »",
"continueWatchingPlay": "Lire",
"continueWatchingDetails": "Ouvrir les détails",
"episodeAction": "Action des épisodes",
"episodePlay": "Lire",
"episodeDetails": "Ouvrir les détails",
"useGlobalHubs": "Utiliser la mise en page d'accueil",
"useGlobalHubsDescription": "Afficher des hubs d'accueil unifiés. Sinon, utiliser les recommandations de bibliothèque.",
"showServerNameOnHubs": "Afficher le nom du serveur sur les hubs",
"showServerNameOnHubsDescription": "Toujours afficher les noms des serveurs dans les titres des hubs.",
"groupLibrariesByServer": "Grouper les bibliothèques par serveur",
"groupLibrariesByServerDescription": "Regrouper les bibliothèques de la barre latérale par serveur multimédia.",
"alwaysKeepSidebarOpen": "Toujours garder la barre latérale ouverte",
"alwaysKeepSidebarOpenDescription": "La barre latérale reste étendue et la zone de contenu s'adapte",
"showUnwatchedCount": "Afficher le nombre d’éléments non vus",
"showUnwatchedCountDescription": "Afficher le nombre d’épisodes non vus pour les séries et les saisons",
"showEpisodeNumberOnCards": "Afficher le numéro de l’épisode sur les cartes",
"showEpisodeNumberOnCardsDescription": "Afficher les numéros de saison et d’épisode sur les cartes d’épisode",
"showSeasonPostersOnTabs": "Afficher les affiches de saison sur les onglets",
"showSeasonPostersOnTabsDescription": "Afficher laffiche de chaque saison au-dessus de son onglet",
"tvFullCardLayout": "Cartes TV plein format",
"tvFullCardLayoutDescription": "Utiliser des cartes TV composées uniquement dune image, avec le nom des acteurs en surimpression",
"focusGlow": "Halo de sélection",
"focusGlowDescription": "Afficher un léger halo autour de la carte sélectionnée",
"visualEffects": "Effets visuels",
"visualEffectsAuto": "Automatique",
"visualEffectsAutoDescription": "Réduire automatiquement les effets sur les appareils peu puissants",
"visualEffectsFull": "Complets",
"visualEffectsReduced": "Réduits",
"visualEffectsReducedDescription": "Moins danimations et dillustrations de plus faible résolution",
"hideSpoilers": "Masquer les spoilers des épisodes non vus",
"hideSpoilersDescription": "Flouter les miniatures et descriptions des épisodes non vus",
"playerBackend": "Moteur de lecture",
"exoPlayer": "ExoPlayer",
"mpv": "mpv",
"hardwareDecoding": "Décodage matériel",
"hardwareDecodingDescription": "Utiliser laccélération matérielle lorsquelle est disponible",
"bufferSize": "Taille du tampon",
"bufferSizeMB": "${size} Mo",
"bufferSizeAuto": "Automatique (recommandé)",
"bufferSizeWarning": "${heap} Mo de mémoire disponible. Un tampon de ${size} Mo peut affecter la lecture.",
"defaultQualityTitle": "Qualité par défaut",
"musicQualityTitle": "Qualité de la musique",
"subtitleStyling": "Style des sous-titres",
"subtitleStylingDescription": "Personnaliser lapparence des sous-titres",
"smallSkipDuration": "Durée du saut court",
"largeSkipDuration": "Durée du saut long",
"rewindOnResume": "Rembobiner à la reprise",
"secondsUnit": "${seconds} secondes",
"defaultSleepTimer": "Minuterie de mise en veille par défaut",
"minutesUnit": "${minutes} minutes",
"rememberTrackSelections": "Mémoriser les pistes choisies pour chaque série ou film",
"rememberTrackSelectionsDescription": "Mémoriser les choix audio et sous-titres par titre",
"followServerTrackSelections": "Utiliser les pistes sélectionnées sur le serveur pour chaque épisode",
"followServerTrackSelectionsDescription": "Au changement d'épisode, appliquer l'audio et les sous-titres sélectionnés sur le serveur au lieu de conserver le choix en cours",
"showChapterMarkersOnTimeline": "Afficher les marqueurs de chapitres sur la barre de lecture",
"showChapterMarkersOnTimelineDescription": "Segmenter la barre de lecture aux limites des chapitres",
"clickVideoTogglesPlayback": "Cliquer sur la vidéo pour alterner entre lecture et pause",
"clickVideoTogglesPlaybackDescription": "Cliquer sur la vidéo pour lire ou mettre en pause plutôt que dafficher les commandes",
"videoPlayerControls": "Commandes du lecteur vidéo",
"keyboardShortcuts": "Raccourcis clavier",
"keyboardShortcutsDescription": "Personnaliser les raccourcis clavier",
"videoPlayerNavigation": "Navigation dans le lecteur vidéo",
"videoPlayerNavigationDescription": "Utiliser les touches fléchées pour parcourir les commandes du lecteur vidéo",
"watchTogetherRelay": "Relais pour Regarder ensemble",
"watchTogetherRelayDescription": "Définir un relais personnalisé. Tous les participants doivent utiliser le même serveur.",
"watchTogetherRelayHint": "https://mon-relais.exemple.fr",
"watchTogetherRelayInvalid": "Saisissez une URL de base HTTP ou HTTPS valide pour le relais.",
"crashReporting": "Rapports de plantage",
"crashReportingDescription": "Envoyer des rapports de plantage pour améliorer l'application",
"debugLogging": "Journalisation de débogage",
"debugLoggingDescription": "Activer la journalisation détaillée pour le dépannage",
"viewLogs": "Voir les journaux",
"viewLogsDescription": "Voir les journaux de lapplication",
"clearImageCache": "",
"clearImageCacheDescription": "",
"clearImageCacheSuccess": "",
"resetSettings": "Réinitialiser les paramètres",
"resetSettingsDescription": "Restaurer les paramètres par défaut. Action irréversible.",
"resetSettingsSuccess": "Réinitialisation des paramètres réussie",
"backup": "Sauvegarde",
"exportSettings": "Exporter les paramètres",
"exportSettingsDescription": "Enregistrer vos préférences dans un fichier",
"exportSettingsSuccess": "Paramètres exportés",
"importSettings": "Importer les paramètres",
"importSettingsDescription": "Restaurer les préférences depuis un fichier",
"importSettingsConfirm": "Cela remplacera vos paramètres actuels. Continuer ?",
"importSettingsSuccess": "Paramètres importés",
"importSettingsInvalidFile": "Ce fichier nest pas une exportation valide des paramètres de Plezy",
"importSettingsNoUser": "Connectez-vous avant dimporter les paramètres",
"shortcutsReset": "Raccourcis réinitialisés aux valeurs par défaut",
"about": "À propos",
"aboutDescription": "Informations sur l'application et licences",
"updates": "Mises à jour",
"updateAvailable": "Mise à jour disponible",
"checkForUpdates": "Vérifier les mises à jour",
"autoCheckUpdatesOnStartup": "Vérifier automatiquement les mises à jour au démarrage",
"autoCheckUpdatesOnStartupDescription": "Notifier au lancement quand une mise à jour est disponible",
"validationErrorEnterNumber": "Veuillez saisir un nombre valide",
"validationErrorDuration": "La durée doit être comprise entre ${min} et ${max} ${unit}",
"shortcutAlreadyAssigned": "Raccourci déjà attribué à ${action}",
"shortcutUpdated": "Raccourci mis à jour pour ${action}",
"saveFailed": "Impossible denregistrer les modifications. Réessayez.",
"autoSkip": "Saut automatique",
"autoSkipIntro": "Passer automatiquement lintroduction",
"autoSkipIntroDescription": "Passer automatiquement les marqueurs dintroduction après quelques secondes",
"autoSkipCredits": "Passer automatiquement le générique",
"autoSkipCreditsDescription": "Passer automatiquement le générique et lire l’épisode suivant",
"forceSkipMarkerFallback": "Forcer les marqueurs de secours",
"forceSkipMarkerFallbackDescription": "Utiliser les motifs des titres de chapitre même lorsque Plex fournit des marqueurs",
"autoSkipDelay": "Délai avant le saut automatique",
"autoSkipDelayDescription": "Attendre ${seconds} secondes avant le saut automatique",
"introPattern": "Motif du marqueur dintroduction",
"introPatternDescription": "Expression régulière permettant de reconnaître les marqueurs dintroduction dans les titres de chapitre",
"creditsPattern": "Motif du marqueur de générique",
"creditsPatternDescription": "Expression régulière permettant de reconnaître les marqueurs de générique dans les titres de chapitre",
"invalidRegex": "Expression régulière invalide",
"regex": "Expression régulière",
"downloads": "Téléchargements",
"downloadLocationDescription": "Choisir où stocker le contenu téléchargé",
"downloadLocationDefault": "Par défaut (stockage de l'application)",
"downloadLocationCustom": "Emplacement personnalisé",
"selectFolder": "Sélectionner un dossier",
"resetToDefault": "Réinitialiser les paramètres par défaut",
"currentPath": "Actuel : ${path}",
"downloadLocationChanged": "Emplacement de téléchargement modifié",
"downloadLocationReset": "Emplacement de téléchargement réinitialisé à la valeur par défaut",
"downloadLocationInvalid": "Le dossier sélectionné n'est pas accessible en écriture",
"downloadLocationPickerUnavailable": "La sélection de dossier nest pas disponible sur cet appareil",
"downloadOnWifiOnly": "Télécharger uniquement en Wi-Fi",
"downloadOnWifiOnlyDescription": "Empêcher les téléchargements via les données mobiles",
"autoRemoveWatchedDownloads": "Supprimer automatiquement les téléchargements vus",
"autoRemoveWatchedDownloadsDescription": "Supprimer automatiquement les téléchargements vus",
"cellularDownloadBlocked": "Les téléchargements sont bloqués sur le réseau mobile. Utilisez le Wi-Fi ou modifiez ce paramètre.",
"maxVolume": "Volume maximal",
"maxVolumeDescription": "Autoriser l'augmentation du volume au-delà de 100 % pour les médias silencieux",
"maxVolumePercent": "${percent}%",
"discordRichPresence": "Discord Rich Presence",
"discordRichPresenceDescription": "Afficher sur Discord ce que vous regardez",
"services": "Services",
"servicesDescription": "Connecter Trakt, MyAnimeList, Seerr et dautres services",
"manageLibrariesDescription": "Réorganiser et masquer les bibliothèques",
"companionRemoteServer": "Serveur de télécommande",
"companionRemoteServerDescription": "Autoriser les appareils mobiles de votre réseau à contrôler cette application",
"autoPip": "Mode image dans limage automatique",
"autoPipDescription": "Passer en mode image dans limage si vous quittez lapplication pendant la lecture",
"matchContentFrameRate": "Adapter la fréquence dimages au contenu",
"matchContentFrameRateDescription": "Adapter la fréquence de rafraîchissement de l’écran au contenu vidéo",
"matchRefreshRate": "Adapter la fréquence de rafraîchissement",
"matchRefreshRateDescription": "Adapter la fréquence d'affichage en plein écran",
"matchDynamicRange": "Adapter la plage dynamique",
"matchDynamicRangeDescription": "Activer HDR pour le contenu HDR, puis revenir en SDR",
"displaySwitchDelay": "Délai de changement d'affichage",
"tunneledPlayback": "Lecture tunnelée",
"tunneledPlaybackDescription": "Utiliser le tunneling vidéo. Désactivez si la lecture HDR affiche un écran noir.",
"audioPassthrough": "Transmission audio directe",
"audioPassthroughDescription": "Envoyer laudio Dolby/DTS à votre ampli ou téléviseur sans le réencoder afin de préserver le son surround. Désactivez cette option en labsence de son.",
"audioPassthroughDescriptionAppleTv": "Utiliser le décodeur Dolby natif dApple pour le Dolby Digital Plus, y compris Atmos. Le DTS et le TrueHD sont toujours lus en PCM multicanal. Désactivez cette option en labsence de son.",
"audioDownmix": "Conversion en stéréo",
"audioDownmixDescription": "Convertir le son surround en deux canaux pour les enceintes stéréo ou le casque",
"downmixCenterBoost": "Renforcement du canal central",
"downmixCenterBoostValue": "${db} dB",
"downmixCenterBoostLabel": "Renforcement (dB)",
"downmixCenterBoostShort": "dB",
"audioDownmixNormalize": "Normaliser le volume lors de la conversion en stéréo",
"audioDownmixNormalizeDescription": "Atténuer le mixage pour éviter la saturation. Désactivez cette option pour conserver le volume dorigine, au risque de déformer les scènes bruyantes.",
"atmosDiagnostics": "Test de sortie Atmos",
"atmosDiagnosticsDescription": "Diagnostiquer la sortie Dolby Atmos en lisant des signaux de test via le lecteur système",
"atmosTestHlsAtmos": "Flux Atmos d'Apple",
"atmosTestHlsAtmosDescription": "Flux Dolby Atmos réputé fiable. L'ampli devrait afficher Dolby Atmos.",
"atmosTestHlsControl": "Flux surround d'Apple",
"atmosTestHlsControlDescription": "Flux témoin sans Atmos. L'ampli devrait afficher du surround sans Atmos.",
"atmosTestRawStream": "Flux EAC3 brut",
"atmosTestRawStreamDescription": "Diffuse le fichier de test exactement comme la lecture Atmos du lecteur. Nécessite l'URL du fichier de test.",
"atmosTestRawFile": "Fichier EAC3 brut",
"atmosTestRawFileDescription": "Lit le fichier de test avec une longueur connue. Nécessite l'URL du fichier de test.",
"atmosTestAsbarNative": "Moteur de rendu à tampon d'échantillons (natif)",
"atmosTestAsbarNativeDescription": "Transmet l'audio compressé intact du fichier directement au moteur de rendu du système. Nécessite l'URL du fichier de test.",
"atmosTestAsbarGenerated": "Moteur de rendu à tampon d'échantillons (reconstruit)",
"atmosTestAsbarGeneratedDescription": "Identique, mais avec la description audio reconstruite comme à la lecture. Nécessite l'URL du fichier de test.",
"atmosTestSessionMode": "Utiliser le mode lecture de films",
"atmosTestSessionModeDescription": "Désactivé utilise le mode documenté par Dolby. Activé utilise le mode précédent.",
"atmosTestShowRoutePicker": "Choisir la sortie AirPlay",
"atmosTestHideRoutePicker": "Masquer le sélecteur AirPlay",
"atmosTestRoutePickerDescription": "Envoie le test vers un récepteur AirPlay. Seul AirPlay indique le mode audio retenu.",
"atmosTestStop": "Arrêter le test",
"atmosTestUrl": "URL du fichier de test",
"atmosTestUrlDescription": "URL HTTP d'un fichier .ec3 Dolby Atmos brut (extrait par ex. avec ffmpeg)",
"atmosTestUrlMissing": "Définissez d'abord l'URL du fichier de test",
"atmosTestStatus": "État",
"dvConversionMode": "Conversion Dolby Vision",
"dvConversionModeDescription": "Choisir comment ExoPlayer gère les fichiers Dolby Vision de profil 7.",
"dvConversionAuto": "Auto",
"dvConversionNative": "Natif / désactivé",
"dvConversionDv81": "P7 → P8.1",
"dvConversionHevcStrip": "P7 → HEVC",
"dvConversionAutoDescription": "Utiliser la détection des capacités de lappareil et le comportement de repli normal",
"dvConversionNativeDescription": "Forcer le DV7 natif et bloquer la nouvelle tentative de conversion DV",
"dvConversionDv81Description": "Forcer la conversion RPU intégrée vers le profil 8.1 de Dolby Vision",
"dvConversionHevcStripDescription": "Supprimer les couches RPU/EL Dolby Vision et présenter du HEVC simple",
"requireProfileSelectionOnOpen": "Demander le profil à l'ouverture",
"requireProfileSelectionOnOpenDescription": "Afficher la sélection de profil à chaque ouverture de l'application",
"forceTvMode": "Forcer le mode TV",
"forceTvModeDescription": "Forcer linterface TV sur les appareils qui ne sont pas détectés automatiquement. Redémarrage requis.",
"startInFullscreen": "Démarrer en plein écran",
"startInFullscreenDescription": "Ouvrir Plezy en mode plein écran au lancement",
"exitFullscreenOnPlayerClose": "Quitter le plein écran à la fermeture du lecteur",
"exitFullscreenOnPlayerCloseDescription": "Quitter automatiquement le plein écran lors de la fermeture du lecteur vidéo",
"autoHidePerformanceOverlay": "Masquer automatiquement les données de performance",
"autoHidePerformanceOverlayDescription": "Masquer progressivement les données de performance avec les commandes de lecture",
"showNavBarLabels": "Afficher les libellés de la barre de navigation",
"showNavBarLabelsDescription": "Afficher les libellés sous les icônes de la barre de navigation",
"startupSection": "Section de démarrage",
"liveTvDefaultFavorites": "Chaînes favorites par défaut",
"liveTvDefaultFavoritesDescription": "Afficher uniquement les chaînes favorites à l'ouverture de la TV en direct",
"display": "Affichage",
"homeScreen": "Écran d'accueil",
"navigation": "Navigation",
"window": "Fenêtre",
"content": "Contenu",
"player": "Lecteur",
"subtitlesAndConfig": "Sous-titres et configuration",
"seekAndTiming": "Déplacement et minutage",
"behavior": "Comportement"
},
"search": {
"hint": "Rechercher des films, des séries, de la musique...",
"tryDifferentTerm": "Essayez un autre terme de recherche",
"searchYourMedia": "Rechercher dans vos médias",
"enterTitleActorOrKeyword": "Entrez un titre, un acteur ou un mot-clé"
},
"hotkeys": {
"setShortcutFor": "Définir un raccourci pour ${actionName}",
"clearShortcut": "Effacer le raccourci",
"noShortcutSet": "Aucun raccourci défini",
"currentShortcut": "Raccourci actuel :",
"pressToRecord": "Sélectionner pour enregistrer un raccourci",
"recordingShortcut": "Appuyez maintenant sur le raccourci",
"actions": {
"playPause": "Lecture/Pause",
"volumeUp": "Augmenter le volume",
"volumeDown": "Baisser le volume",
"seekForward": "Avancer (${seconds}s)",
"seekBackward": "Reculer (${seconds}s)",
"fullscreenToggle": "Basculer en mode plein écran",
"muteToggle": "Activer/désactiver le mode silencieux",
"subtitleToggle": "Activer/désactiver les sous-titres",
"audioTrackNext": "Piste audio suivante",
"subtitleTrackNext": "Piste de sous-titres suivante",
"chapterNext": "Chapitre suivant",
"chapterPrevious": "Chapitre précédent",
"episodeNext": "Épisode suivant",
"episodePrevious": "Épisode précédent",
"speedIncrease": "Augmenter la vitesse",
"speedDecrease": "Réduire la vitesse",
"speedReset": "Réinitialiser la vitesse",
"zoomIn": "Zoom avant",
"zoomOut": "Zoom arrière",
"zoomReset": "Réinitialiser le zoom",
"subSeekNext": "Rechercher le sous-titre suivant",
"subSeekPrev": "Rechercher le sous-titre précédent",
"shaderToggle": "Activer/désactiver les shaders",
"skipMarker": "Passer l'intro/le générique",
"screenshot": "Prendre une capture d'écran"
}
},
"fileInfo": {
"title": "Informations sur le fichier",
"overview": "",
"video": "Vidéo",
"audio": "Audio",
"subtitles": "Sous-titres",
"images": "",
"dataStreams": "",
"lyrics": "",
"file": "Fichier",
"attachments": "",
"delivery": "",
"versionCounter": "",
"fileCounter": "",
"noStreams": "",
"copyPath": "",
"pathCopied": "",
"codec": "Codec",
"codecTag": "",
"resolution": "Résolution",
"codedResolution": "",
"bitrate": "Débit",
"frameRate": "Fréquence d'images",
"rotation": "",
"comment": "",
"audioDescription": "",
"headerCompression": "",
"sidecarFile": "",
"transportTimestamp": "",
"displayOffset": "",
"previewFailureCode": "",
"previewRetries": "",
"aspectRatio": "Format d'image",
"pixelAspectRatio": "",
"profile": "Profil",
"level": "",
"bitDepth": "Profondeur de bits",
"pixelFormat": "",
"colorSpace": "Espace colorimétrique",
"colorRange": "Gamme de couleurs",
"colorPrimaries": "Couleurs primaires",
"colorTransfer": "",
"chromaSubsampling": "Sous-échantillonnage chromatique",
"chromaLocation": "",
"scanType": "",
"interlaced": "",
"anamorphic": "",
"referenceFrames": "",
"dynamicRange": "",
"dolbyVision": "",
"dolbyVisionLevel": "",
"dolbyVisionVersion": "",
"dolbyVisionLayers": "",
"baseLayerCompatibility": "",
"avcBitstream": "",
"nalLengthSize": "",
"scalingMatrix": "",
"streamIdentifier": "",
"streamIndex": "",
"streamId": "",
"language": "",
"languageCode": "",
"streamTitle": "",
"channels": "Canaux",
"sampleRate": "",
"spatialAudio": "",
"textBased": "",
"subtitleFormat": "",
"provider": "",
"matchScore": "",
"externalDelivery": "",
"sidecarPath": "",
"sourceStream": "",
"temporary": "",
"timeBase": "",
"overallBitrate": "Débit global",
"path": "Chemin",
"fileName": "",
"size": "Taille",
"totalSize": "",
"container": "Conteneur",
"duration": "Durée",
"previewThumbnails": "",
"previewIndex": "",
"packetLength": "",
"filePresent": "",
"fileReadable": "",
"streamPath": "",
"optimizedForStreaming": "Optimisé pour le streaming",
"has64bitOffsets": "Décalages 64 bits",
"protocol": "",
"mediaType": "",
"sourceKind": "",
"optimizedVersion": "",
"optimizationTarget": "",
"deletedAt": "",
"remoteSource": "",
"infiniteStream": "",
"directPlay": "",
"directStream": "",
"transcoding": "",
"etag": "",
"versionId": "",
"fileId": "",
"defaultAudioTrack": "",
"defaultSubtitleTrack": "",
"subtitlesOff": "",
"flagDefault": "",
"flagForced": "",
"flagSelected": "",
"flagExternal": "",
"flagHearingImpaired": "",
"flagDub": "",
"flagOriginal": ""
},
"mediaMenu": {
"markAsWatched": "Marquer comme vu",
"markAsUnwatched": "Marquer comme non visionné",
"removeFromContinueWatching": "Supprimer de la liste \"Continuer à regarder\"",
"viewDetails": "Voir les détails",
"goToSeries": "Aller à la série",
"shufflePlay": "Lecture aléatoire",
"shuffleNotAvailableOffline": "La lecture aléatoire nest pas disponible hors ligne",
"fileInfo": "Informations sur le fichier",
"deleteFromServer": "Supprimer du serveur",
"confirmDelete": "Supprimer ce média et ses fichiers de votre serveur ?",
"deleteMultipleWarning": "Cela inclut tous les épisodes et leurs fichiers.",
"mediaDeletedSuccessfully": "Élément média supprimé avec succès",
"mediaFailedToDelete": "Échec de la suppression de l'élément média",
"rate": "Noter",
"playFromBeginning": "Lire depuis le début",
"playVersion": "Lire la version..."
},
"rateSheet": {
"title": "Noter",
"server": "Serveur",
"favorite": "Favori",
"favorited": "Ajouté aux favoris",
"saved": "Enregistré",
"notAvailable": "Aucune correspondance trouvée",
"noConnectedServices": "Connectez un service dans les paramètres pour pouvoir y attribuer une note."
},
"accessibility": {
"mediaCardMovie": "${title}, film",
"mediaCardShow": "${title}, série TV",
"mediaCardEpisode": "${title}, ${episodeInfo}",
"mediaCardSeason": "${title}, ${seasonInfo}",
"mediaCardWatched": "visionné",
"mediaCardPartiallyWatched": "${percent} pour cent visionné",
"mediaCardUnwatched": "non visionné",
"tapToPlay": "Appuyez pour lire",
"decrease": "Diminuer",
"increase": "Augmenter",
"decreaseValue": "Diminuer ${label}",
"increaseValue": "Augmenter ${label}",
"hue": "Teinte",
"saturation": "Saturation",
"brightness": "Luminosité",
"hexColor": "Couleur hexadécimale",
"expandText": "Développer le texte",
"collapseText": "Replier le texte",
"alphabetNavigation": "Navigation alphabétique",
"alphabetScrollHint": "Balayez vers le haut ou le bas pour changer de lettre",
"rowColumnPosition": "Ligne ${row} sur ${rowCount}, colonne ${column} sur ${columnCount}",
"rowPosition": "Ligne ${row} sur ${rowCount}"
},
"tooltips": {
"shufflePlay": "Lecture aléatoire",
"playTrailer": "Lire la bande-annonce",
"markAsWatched": "Marquer comme vu",
"markAsUnwatched": "Marquer comme non vu"
},
"audioTracks": {
"track": "Piste audio ${n}"
},
"videoControls": {
"audioLabel": "Audio",
"subtitlesLabel": "Sous-titres",
"resetToZero": "Réinitialiser à 0 ms",
"addTime": "+${amount}${unit}",
"minusTime": "-${amount}${unit}",
"playsLater": "${label} : lecture retardée",
"playsEarlier": "${label} : lecture avancée",
"noOffset": "Pas de décalage",
"letterbox": "Format letterbox",
"fillScreen": "Remplir l’écran",
"stretch": "Étirer",
"lockRotation": "Verrouiller la rotation",
"unlockRotation": "Déverrouiller la rotation",
"timerActive": "Minuterie active",
"playbackWillPauseIn": "La lecture sera mise en pause dans ${duration}",
"sleepTimerEndOfVideo": "Fin de la vidéo actuelle",
"sleepTimerStopAtHeader": "Arrêter à",
"sleepTimerDurationHeader": "Minuterie",
"playbackWillPauseAtEnd": "La lecture sera mise en pause à la fin de cette vidéo",
"stillWatching": "Toujours en train de regarder ?",
"pausingIn": "Pause dans ${seconds}s",
"continueWatching": "Continuer",
"autoPlayNext": "Lecture automatique de l’élément suivant",
"playNext": "Lire l'épisode suivant",
"playButton": "Lire",
"pauseButton": "Pause",
"playbackPaused": "",
"playbackResumed": "",
"showPlaybackControls": "Afficher les commandes de lecture",
"hidePlaybackControls": "Masquer les commandes de lecture",
"seekBackwardButton": "Reculer de ${seconds} secondes",
"seekForwardButton": "Avancer de ${seconds} secondes",
"previousButton": "Épisode précédent",
"nextButton": "Épisode suivant",
"previousChapterButton": "Chapitre précédent",
"nextChapterButton": "Chapitre suivant",
"muteButton": "Couper le son",
"unmuteButton": "Rétablir le son",
"settingsButton": "Paramètres de lecture",
"tracksButton": "Audio et sous-titres",
"chaptersButton": "Chapitres",
"versionQualityButton": "Version et qualité",
"versionColumnHeader": "Version",
"qualityColumnHeader": "Qualité",
"qualityOriginal": "Originale",
"qualityPresetLabel": "${resolution}p ${bitrate} Mbps",
"transcodeUnavailableFallback": "Transcodage indisponible — lecture en qualité originale",
"subtitleUnavailableFallback": "Impossible de charger les sous-titres sélectionnés — poursuite de la lecture sans sous-titres",
"pipButton": "Mode image dans limage",
"aspectRatioButton": "Format d'image",
"ambientLighting": "Éclairage ambiant",
"fullscreenButton": "Passer en mode plein écran",
"exitFullscreenButton": "Quitter le mode plein écran",
"alwaysOnTopButton": "Toujours au premier plan",
"rotationLockButton": "Verrouillage de rotation",
"lockScreen": "Verrouiller l'écran",
"screenLockButton": "Verrouillage de l'écran",
"longPressToUnlock": "Appui long pour déverrouiller",
"timelineSlider": "Barre de progression vidéo",
"volumeSlider": "Niveau du volume",
"endsAt": "Se termine à ${time}",
"pipActive": "Lecture en mode image dans l'image",
"pipFailed": "Échec du démarrage du mode image dans l'image",
"screenshotSaved": "Capture d'écran enregistrée",
"zoomPercent": "Zoom ${percent} %",
"pipErrors": {
"androidVersion": "Nécessite Android 8.0 ou plus récent",
"iosVersion": "Nécessite iOS 15.0 ou plus récent",
"permissionDisabled": "Le mode image dans limage est désactivé. Activez-le dans les paramètres système.",
"notSupported": "Cet appareil ne prend pas en charge le mode image dans l'image",
"voSwitchFailed": "Échec du changement de sortie vidéo pour l'image dans l'image",
"failed": "Échec du démarrage du mode image dans l'image",
"unknown": "Une erreur s'est produite : ${error}"
},
"chapters": "Chapitres",
"noChaptersAvailable": "Aucun chapitre disponible",
"queue": "File d'attente",
"noQueueItems": "Aucun élément dans la file d'attente",
"searchSubtitles": "Rechercher des sous-titres",
"language": "Langue",
"noSubtitlesFound": "Aucun sous-titre trouvé",
"subtitleDownloaded": "Sous-titre téléchargé",
"subtitleDownloadedNotApplied": "Le sous-titre a été téléchargé, mais na pas pu être sélectionné",
"subtitleDownloadFailed": "Échec du téléchargement du sous-titre",
"searchLanguages": "Rechercher des langues..."
},
"userStatus": {},
"messages": {
"markedAsWatched": "Marqué comme vu",
"markedAsUnwatched": "Marqué comme non vu",
"markedAsWatchedOffline": "Marqué comme vu (se synchronisera lorsque vous serez en ligne)",
"markedAsUnwatchedOffline": "Marqué comme non vu (sera synchronisé lorsque vous serez en ligne)",
"autoRemovedWatchedDownload": "Supprimé automatiquement : ${title}",
"autoRemovedWatchedDownloads": {
"one": "${n} téléchargement vu supprimé automatiquement",
"other": "${n} téléchargements vus supprimés automatiquement"
},
"removedFromContinueWatching": "Supprimé de « Continuer à regarder »",
"errorLoading": "Erreur : ${error}",
"searchPartialResults": "",
"streamInterrupted": "La lecture a été interrompue. Appuyez sur Lecture ou avancez pour réessayer.",
"liveStreamInterrupted": "Le direct a été interrompu. Appuyez sur Lecture pour réessayer.",
"fileInfoNotAvailable": "Informations sur le fichier non disponibles",
"playbackAuthenticationRequired": "Reconnectez-vous au serveur multimédia pour lire cet élément.",
"playbackServerUnavailable": "Le serveur multimédia est indisponible. Réessayez plus tard.",
"playbackDataInvalid": "Le serveur a renvoyé des informations de lecture non valides.",
"playbackCancelled": "La lecture a été annulée.",
"playbackFailed": "Impossible de démarrer la lecture.",
"errorLoadingFileInfo": "Erreur lors du chargement des informations sur le fichier : ${error}",
"errorLoadingSeries": "Erreur lors du chargement de la série",
"musicNotSupported": "La lecture de musique n'est pas encore prise en charge",
"noDescriptionAvailable": "Aucune description disponible",
"noProfilesAvailable": "Aucun profil disponible",
"contactAdminForProfiles": "Contactez votre administrateur serveur pour ajouter des profils",
"unableToDetermineLibrarySection": "Impossible de déterminer la section de la bibliothèque pour cet élément",
"logsCleared": "Journaux effacés",
"logsCopied": "Journaux copiés dans le presse-papiers",
"noLogsAvailable": "Aucun journal disponible",
"libraryScanning": "Analyse de « ${title} »…",
"libraryScanStarted": "Analyse de la bibliothèque lancée pour « ${title} »",
"libraryScanFailed": "Échec de lanalyse de la bibliothèque : ${error}",
"metadataRefreshing": "Actualisation des métadonnées de « ${title} »…",
"metadataRefreshStarted": "Actualisation des métadonnées lancée pour « ${title} »",
"metadataRefreshFailed": "Échec de lactualisation des métadonnées : ${error}",
"logoutConfirm": "Êtes-vous sûr de vouloir vous déconnecter ?",
"noSeasonsFound": "Aucune saison trouvée",
"seasonsLoadFailed": "Impossible de charger les saisons",
"noEpisodesFound": "Aucun épisode trouvé dans la première saison",
"noEpisodesFoundGeneral": "Aucun épisode trouvé",
"episodesLoadFailed": "Impossible de charger les épisodes",
"noResultsFound": "Aucun résultat trouvé",
"sleepTimerSet": "Minuterie de mise en veille réglée sur ${label}",
"noItemsAvailable": "Aucun élément disponible",
"failedToCreatePlayQueueNoItems": "Impossible de créer la file dattente de lecture : aucun élément",
"failedPlayback": "Échec de ${action} : ${error}",
"switchingToCompatiblePlayer": "Passage au lecteur compatible...",
"serverLimitTitle": "Échec de la lecture",
"serverLimitBody": "Erreur serveur (HTTP 500). Une limite de bande passante/transcodage a probablement rejeté cette session. Demandez au propriétaire de l'ajuster.",
"logsUploaded": "Journaux envoyés",
"logsUploadFailed": "Échec de lenvoi des journaux",
"logId": "Identifiant du journal"
},
"subtitlingStyling": {
"text": "Texte",
"border": "Bordure",
"background": "Arrière-plan",
"fontSize": "Taille de la police",
"textColor": "Couleur du texte",
"borderSize": "Taille de la bordure",
"borderColor": "Couleur de la bordure",
"backgroundOpacity": "Opacité d'arrière-plan",
"backgroundColor": "Couleur d'arrière-plan",
"position": "Position",
"assOverride": "Remplacement ASS",
"overrideScale": "Mettre à l’échelle",
"overrideForce": "Forcer",
"overrideStrip": "Supprimer le style",
"positionTop": "Haut",
"positionBottom": "Bas",
"bold": "Gras",
"italic": "Italique",
"renderResolution": "Résolution de rendu",
"renderResolutionScreen": "Résolution de l'écran",
"renderResolutionVideo": "Résolution de la vidéo"
},
"mpvConfig": {
"title": "Configuration mpv",
"description": "Paramètres avancés du lecteur vidéo",
"presets": "Préréglages",
"noPresets": "Aucun préréglage enregistré",
"saveAsPreset": "Enregistrer comme préréglage...",
"presetName": "Nom du préréglage",
"presetNameHint": "Entrez un nom pour ce préréglage",
"loadPreset": "Charger",
"deletePreset": "Supprimer",
"presetSaved": "Préréglage enregistré",
"presetLoaded": "Préréglage chargé",
"presetDeleted": "Préréglage supprimé",
"confirmDeletePreset": "Êtes-vous sûr de vouloir supprimer ce préréglage ?",
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
},
"dialog": {
"confirmAction": "Confirmer l'action"
},
"profiles": {
"addPlezyProfile": "Ajouter un profil Plezy",
"switchingProfile": "Changement de profil…",
"deleteThisProfileTitle": "Supprimer ce profil ?",
"deleteThisProfileMessage": "Supprimer ${displayName}. Les connexions ne sont pas affectées.",
"active": "Actif",
"manage": "Gérer",
"delete": "Supprimer",
"signOut": "Se déconnecter",
"signOutPlexTitle": "Se déconnecter de Plex ?",
"signOutPlexMessage": "Supprimer ${displayName} et tous les utilisateurs Plex Home ? Reconnexion possible à tout moment.",
"signedOutPlex": "Déconnecté de Plex.",
"signOutFailed": "Échec de la déconnexion.",
"sectionTitle": "Profils",
"summarySingle": "Ajoutez des profils pour mélanger utilisateurs gérés et identités locales",
"summaryMultipleWithActive": "${count} profils · actif : ${activeName}",
"summaryMultiple": "${count} profils",
"removeConnectionTitle": "Retirer la connexion ?",
"removeConnectionMessage": "Supprimer l'accès de ${displayName} à ${connectionLabel}. Les autres profils le conservent.",
"deleteProfileTitle": "Supprimer le profil ?",
"deleteProfileMessage": "Supprimer ${displayName} et ses connexions. Les serveurs restent disponibles.",
"profileNameLabel": "Nom du profil",
"pinProtectionLabel": "Protection par code PIN",
"pinManagedByPlex": "PIN géré par Plex. Modifier sur plex.tv.",
"noPinSetEditOnPlex": "Aucun PIN défini. Pour en exiger un, modifiez l'utilisateur Home sur plex.tv.",
"setPin": "Définir un PIN",
"setPinTitle": "Définir un PIN",
"confirmPinTitle": "Confirmer le PIN",
"pinSet": "PIN défini",
"changePin": "Modifier",
"removePin": "Retirer",
"connectionsLabel": "Connexions",
"add": "Ajouter",
"deleteProfileButton": "Supprimer le profil",
"noConnectionsHint": "Aucune connexion — ajoutez-en une pour utiliser ce profil.",
"noConnections": "Aucune connexion",
"plexHomeAccount": "Compte Plex Home",
"connectionDefault": "Par défaut",
"connectionAs": "en tant que ${displayName}",
"makeDefault": "Définir par défaut",
"removeConnection": "Retirer",
"profileRenamed": "Profil renommé.",
"borrowAddTo": "Ajouter à ${displayName}",
"borrowExplain": "Emprunter la connexion d'un autre profil. Les profils protégés par PIN exigent un PIN.",
"borrowEmpty": "Rien à emprunter pour le moment.",
"borrowEmptySubtitle": "Connectez d'abord Plex ou Jellyfin à un autre profil.",
"borrowLoadFailed": "Impossible de charger les connexions disponibles. Réessayez.",
"borrowFromProfile": "De ${displayName}",
"borrowConnectionBorrowed": "Connexion empruntée.",
"borrowFailed": "Impossible d'emprunter la connexion.",
"incorrectPin": "PIN incorrect.",
"incorrectPinTryAgain": "PIN incorrect. Veuillez réessayer.",
"sourceProfileMissingParentAccount": "Le profil source ne possède pas de compte parent.",
"failedToLoadHomeUsers": "Impossible de charger vos utilisateurs Plex Home. Vérifiez votre connexion et réessayez.",
"failedToVerifyPin": "Impossible de vérifier le PIN.",
"newProfile": "Nouveau profil",
"profileNameHint": "ex. Invités, Enfants, Salon familial",
"pinProtectionOptional": "Protection par PIN (optionnelle)",
"pinExplain": "PIN à 4 chiffres requis pour changer de profil.",
"continueButton": "Continuer",
"pinsDontMatch": "Les PIN ne correspondent pas"
},
"connections": {
"sectionTitle": "Connexions",
"addConnection": "Ajouter une connexion",
"addConnectionSubtitleNoProfile": "Connectez-vous avec Plex ou connectez un serveur Jellyfin",
"addConnectionSubtitleScoped": "Ajouter à ${displayName} : Plex, Jellyfin ou une autre connexion de profil",
"sessionExpiredOne": "Session expirée pour ${name}",
"sessionExpiredMany": "Session expirée pour ${count} serveurs",
"signInAgain": "Se reconnecter",
"editJellyfinTitle": "Modifier la connexion Jellyfin",
"editJellyfinIntro": "Ajoutez ou supprimez des URL pour ${serverName}. Plezy utilisera l'URL joignable avec la latence la plus faible."
},
"discover": {
"title": "Découvrir",
"noContentAvailable": "Aucun contenu disponible",
"addMediaToLibraries": "Ajoutez des médias à vos bibliothèques",
"continueWatching": "Continuer à regarder",
"continueWatchingIn": "Continuer à regarder dans ${library}",
"nextUp": "À suivre",
"nextUpIn": "À suivre dans ${library}",
"recentlyAdded": "Récemment ajouté",
"recentlyAddedIn": "Récemment ajouté dans ${library}",
"latestAlbumsIn": "Derniers albums dans ${library}",
"recentlyPlayedIn": "Récemment lus dans ${library}",
"mostPlayedIn": "Les plus lus dans ${library}",
"playEpisode": "S${season}E${episode}",
"overview": "Aperçu",
"cast": "Distribution",
"extras": "Bandes-annonces et bonus",
"studio": "Studio",
"rating": "Évaluation",
"director": "Réalisateur",
"directors": "Réalisateurs",
"movie": "Film",
"tvShow": "Série TV",
"minutesLeft": "${minutes} min restantes",
"moreLikeThis": "Plus de contenus similaires"
},
"errors": {
"searchFailed": "Échec de la recherche : ${error}",
"searchUnavailable": "",
"connectionTimeout": "Délai d'attente de connexion dépassé pendant le chargement ${context}",
"connectionFailed": "Impossible de se connecter au serveur multimédia",
"unableToLoad": "Impossible de charger ${context}. Réessayez.",
"noClientAvailable": "Aucun client disponible",
"pleaseEnterToken": "Veuillez saisir un jeton",
"invalidToken": "Jeton non valide",
"failedToVerifyToken": "Échec de la vérification du jeton : ${error}",
"failedToSwitchProfile": "Impossible de changer de profil vers ${displayName}",
"failedToDeleteProfile": "Impossible de supprimer ${displayName}",
"failedToRate": "Impossible de mettre à jour la note"
},
"libraries": {
"title": "Bibliothèques",
"fallbackTitle": "Bibliothèque",
"scanLibraryFiles": "Scanner les fichiers de la bibliothèque",
"scanLibrary": "Scanner la bibliothèque",
"analyze": "Analyser",
"analyzeLibrary": "Analyser la bibliothèque",
"refreshMetadata": "Actualiser les métadonnées",
"emptyTrash": "Vider la corbeille",
"emptyingTrash": "Vidage de la corbeille de « ${title} »…",
"trashEmptied": "Corbeille vidée pour « ${title} »",
"failedToEmptyTrash": "Échec du vidage de la corbeille : ${error}",
"analyzing": "Analyse de « ${title} »…",
"analysisStarted": "Analyse lancée pour « ${title} »",
"failedToAnalyze": "Échec de lanalyse de la bibliothèque : ${error}",
"noLibrariesFound": "Aucune bibliothèque trouvée",
"allLibrariesHidden": "Toutes les bibliothèques sont masquées",
"hiddenLibrariesCount": "Bibliothèques masquées (${count})",
"thisLibraryIsEmpty": "Cette bibliothèque est vide",
"noItemsMatchFilters": "Aucun élément ne correspond aux filtres actifs",
"resetFilters": "Réinitialiser les filtres",
"all": "Tout",
"clearAll": "Tout effacer",
"scanLibraryConfirm": "Voulez-vous vraiment scanner « ${title} » ?",
"analyzeLibraryConfirm": "Voulez-vous vraiment analyser « ${title} » ?",
"refreshMetadataConfirm": "Voulez-vous vraiment actualiser les métadonnées de « ${title} » ?",
"emptyTrashConfirm": "Voulez-vous vraiment vider la corbeille de « ${title} » ?",
"manageLibraries": "Gérer les bibliothèques",
"sort": "Trier",
"sortBy": "Trier par",
"filters": "Filtres",
"confirmActionMessage": "Êtes-vous sûr de vouloir effectuer cette action ?",
"showLibrary": "Afficher la bibliothèque",
"hideLibrary": "Masquer la bibliothèque",
"libraryOptions": "Options de bibliothèque",
"content": "contenu de la bibliothèque",
"selectLibrary": "Sélectionner la bibliothèque",
"filtersWithCount": "Filtres (${count})",
"noRecommendations": "Aucune recommandation disponible",
"noCollections": "Aucune collection dans cette bibliothèque",
"noFoldersFound": "Aucun dossier trouvé",
"folders": "dossiers",
"tabs": {
"recommended": "Recommandé",
"browse": "Parcourir",
"collections": "Collections",
"playlists": "Playlists"
},
"groupings": {
"title": "Regroupement",
"all": "Tous",
"movies": "Films",
"shows": "Séries TV",
"seasons": "Saisons",
"episodes": "Épisodes",
"artists": "Artistes",
"albums": "Albums",
"tracks": "Titres",
"folders": "Dossiers"
},
"filterCategories": {
"genre": "Genre",
"year": "Année",
"contentRating": "Classification",
"tag": "Étiquette",
"unwatched": "Non vus",
"unplayed": "Non lus",
"favorites": "Favoris"
},
"sortLabels": {
"title": "Titre",
"dateAdded": "Date d'ajout",
"releaseDate": "Date de sortie",
"rating": "Note",
"communityRating": "Note communautaire",
"criticRating": "Note critique",
"userRating": "Note utilisateur",
"datePlayed": "Date de lecture",
"playCount": "Lectures",
"productionYear": "Année de production",
"runtime": "Durée",
"officialRating": "Classification officielle",
"premiereDate": "Date de première",
"startDate": "Date de début",
"airTime": "Heure de diffusion",
"studio": "Studio",
"random": "Aléatoire",
"dateShared": "Date de partage",
"latestEpisodeAirDate": "Dernière date de diffusion",
"lastEpisodeDateAdded": "Date d'ajout du dernier épisode"
}
},
"about": {
"title": "À propos",
"openSourceLicenses": "Licences libres",
"versionLabel": "Version ${version}",
"appDescription": "Un magnifique client Plex et Jellyfin pour Flutter",
"viewLicensesDescription": "Afficher les licences des bibliothèques tierces"
},
"serverSelection": {
"noServersFoundForAccount": "Aucun serveur trouvé pour ${username} (${email})",
"failedToLoadServers": "Échec du chargement des serveurs : ${error}"
},
"hubDetail": {
"title": "Titre",
"releaseYear": "Année de sortie",
"dateAdded": "Date d'ajout",
"rating": "Évaluation",
"noItemsFound": "Aucun élément trouvé"
},
"logs": {
"clearLogs": "Effacer les journaux",
"copyLogs": "Copier les journaux",
"uploadLogs": "Envoyer les journaux"
},
"startup": {
"failedTitle": "",
"failedBody": "",
"phaseLabel": "",
"showDetails": "",
"hideDetails": "",
"copyDetails": "",
"detailsCopied": "",
"uploadDetails": "",
"repairStorage": "",
"repairTitle": "",
"repairBodyCommon": "",
"repairBodyOneCredential": "",
"repairBodySessionsAtRisk": "",
"repairConfirm": "",
"repairSucceeded": "",
"repairNeedsRestart": "",
"repairFailed": "",
"repairKeptSignIns": "",
"repairLostSignIns": "",
"repairLostSessions": "",
"backupTitle": "",
"backupWarning": "",
"deleteBackup": "",
"backupDeleted": "",
"previousFailureTitle": ""
},
"licenses": {
"relatedPackages": "Paquets associés",
"license": "Licence",
"licenseNumber": "Licence ${number}",
"licensesCount": "${count} licences"
},
"navigation": {
"libraries": "Bibliothèques",
"downloads": "Téléchargements",
"liveTv": "TV en direct",
"explore": "Explorer"
},
"explore": {
"title": "Explorer",
"selectSource": "Sélectionner la source",
"rows": {
"watchlist": "Liste de suivi",
"recommendedMovies": "Films recommandés",
"recommendedShows": "Séries recommandées",
"trendingMovies": "Films tendance",
"trendingShows": "Séries tendance",
"popularMovies": "Films populaires",
"popularShows": "Séries populaires",
"trendingAnime": "Animes tendance",
"suggestedAnime": "Animes suggérés",
"airingAnime": "Meilleurs animes en diffusion",
"popularAnime": "Animes les plus populaires",
"trending": "Tendances",
"upcomingMovies": "Films à venir",
"upcomingShows": "Séries à venir"
},
"status": {
"airing": "En cours",
"ended": "Terminé",
"canceled": "Annulé",
"upcoming": "À venir"
},
"episodeCount": {
"one": "${n} épisode",
"other": "${n} épisodes"
},
"cast": "Distribution",
"characters": "Personnages",
"addToWatchlist": "Ajouter à la liste de suivi",
"removeFromWatchlist": "Retirer de la liste de suivi",
"watchlistUpdateFailed": "Impossible de mettre à jour la liste de suivi",
"notInLibrary": "Absent de votre bibliothèque",
"inTheseLibraries": "Dans ces bibliothèques",
"checkingLibrary": "Vérification de votre bibliothèque...",
"emptyTitle": "Rien ici pour l'instant",
"emptyMessage": "Les lignes de ${source} apparaîtront ici dès quelles contiendront des éléments.",
"searchHint": "Rechercher dans ${source}",
"searchEmpty": "Aucun résultat pour \"${query}\"",
"searchPrompt": "Recherchez des films et des séries sur ${source}.",
"searchFailed": "Échec de la recherche. Vérifiez votre connexion et réessayez.",
"badge": {
"rankPopular": "",
"rankAiring": "",
"rankRated": "",
"rankFavorited": "",
"rankTrending": "",
"rankSeasonal": "",
"watchingNow": "",
"available": "",
"partiallyAvailable": "",
"availableIn4k": "",
"requested": "",
"pendingApproval": "",
"processing": "",
"declined": "",
"requestFailed": "",
"requested4k": "",
"seasonsAvailable": "",
"nextEpisodeIn": "",
"nextAiringIn": "",
"episodesShort": "",
"minutesPerEpisode": "",
"adult": ""
},
"stats": {
"listed": "",
"viewersDay": "",
"viewersWeek": "",
"viewersMonth": "",
"viewersYear": "",
"viewersAllTime": "",
"planning": "",
"favorited": "",
"dropRate": "",
"comments": {
"one": "",
"other": ""
},
"votes": "",
"watching": "",
"completed": "",
"onHold": "",
"dropped": ""
},
"season": {
"winter": "",
"spring": "",
"summer": "",
"fall": "",
"withYear": ""
},
"format": {
"tv": "",
"tvShort": "",
"movie": "",
"special": "",
"ova": "",
"ona": "",
"music": "",
"other": ""
},
"sourceMaterial": {
"original": "",
"manga": "",
"lightNovel": "",
"novel": "",
"visualNovel": "",
"game": "",
"webComic": "",
"musicRelease": "",
"otherMedia": ""
},
"creditRole": {
"director": "",
"writer": "",
"producer": "",
"creator": "",
"composer": ""
},
"ratingSource": {
"critic": "",
"audience": "",
"imdb": "",
"tmdb": "",
"rottenTomatoes": "",
"simkl": "",
"mal": "",
"anilist": "",
"trakt": "",
"rottenTomatoesCritic": "",
"rottenTomatoesAudience": ""
},
"broadcast": "",
"broadcastWithZone": "",
"detail": {
"originalTitle": "",
"alsoKnownAs": "",
"studios": "",
"country": "",
"language": "",
"released": "",
"physicalRelease": "",
"ended": "",
"addedOn": "",
"yourRating": "",
"budget": "",
"revenue": "",
"contentAdvisory": "",
"tags": "",
"revealSpoilerTags": "",
"links": "",
"watchOn": "",
"watchTrailer": "",
"openOn": "",
"crew": "",
"ratings": "",
"schedule": "",
"recommendedByUsers": {
"one": "",
"other": ""
},
"recommendedBy": "",
"favoritedBy": "",
"unairedEpisodes": "",
"recommendedByPercent": "",
"relatedTitles": "",
"background": ""
},
"totalResults": {
"one": "",
"other": ""
},
"relation": {
"prequel": "",
"sequel": "",
"sideStory": "",
"spinOff": "",
"alternativeVersion": "",
"summary": "",
"parentStory": "",
"adaptation": "",
"other": ""
}
},
"liveTv": {
"title": "TV en direct",
"guide": "Guide",
"noChannels": "Aucune chaîne disponible",
"noDvr": "Aucun DVR configuré sur les serveurs",
"serverUnavailable": "Le serveur de TV en direct nest pas disponible.",
"serverNotConnected": "Le serveur de TV en direct nest pas connecté.",
"noPrograms": "Aucune donnée de programme disponible",
"liveStreamFailed": "Échec du direct",
"unknownProgram": "Programme inconnu",
"unknownHub": "Inconnu",
"unknownError": "Erreur inconnue",
"channelNumber": "Chaîne ${number}",
"unknownChannel": "Chaîne inconnue",
"live": "EN DIRECT",
"reloadGuide": "Recharger le guide",
"now": "Maintenant",
"today": "Aujourd'hui",
"tomorrow": "Demain",
"midnight": "Minuit",
"overnight": "Nuit",
"morning": "Matin",
"daytime": "Journée",
"evening": "Soirée",
"lateNight": "Fin de soirée",
"whatsOn": "En ce moment",
"watchChannel": "Regarder la chaîne",
"favorites": "Favoris",
"reorderFavorites": "Réorganiser les favoris",
"favoritesLoadFailed": "Impossible de charger les favoris. Vérifiez votre connexion et réessayez.",
"favoritesUpdateFailed": "Impossible de mettre à jour les favoris. Vérifiez votre connexion et réessayez.",
"joinSession": "Rejoindre la session en cours",
"watchFromStart": "Regarder depuis le début (il y a ${minutes} min)",
"watchLive": "Regarder en direct",
"goToLive": "Aller au direct",
"record": "Enregistrer",
"recordEpisode": "Enregistrer l'épisode",
"recordSeries": "Enregistrer la série",
"recordOptions": "Options d'enregistrement",
"saveTo": "Enregistrer dans",
"recordings": "Enregistrements",
"scheduledRecordings": "Programmés",
"recordingRules": "Règles d'enregistrement",
"noScheduledRecordings": "Aucun enregistrement programmé",
"manageRecording": "Gérer l'enregistrement",
"cancelRecording": "Annuler l'enregistrement",
"cancelRecordingTitle": "Annuler cet enregistrement ?",
"cancelRecordingMessage": "${title} ne sera plus enregistré.",
"deleteRule": "Supprimer la règle",
"deleteRuleTitle": "Supprimer la règle d'enregistrement ?",
"deleteRuleMessage": "Les prochains épisodes de ${title} ne seront pas enregistrés.",
"recordingScheduled": "Enregistrement programmé",
"alreadyScheduled": "Ce programme est déjà programmé",
"dvrAdminRequired": "Les paramètres DVR nécessitent un compte administrateur",
"recordingFailed": "Impossible de programmer l'enregistrement",
"recordingTargetMissing": "Impossible de déterminer la bibliothèque d'enregistrement",
"recordNotAvailable": "Enregistrement non disponible pour ce programme",
"recordingCancelled": "Enregistrement annulé",
"recordingRuleDeleted": "Règle d'enregistrement supprimée",
"processRecordingRules": "Réévaluer les règles",
"recordingInProgress": "Enregistrement en cours",
"recordingsCount": "${count} programmés",
"editRule": "Modifier la règle",
"editRuleAction": "Modifier",
"recordingRuleUpdated": "Règle d'enregistrement mise à jour",
"guideReloadRequested": "Mise à jour du guide demandée",
"rulesProcessRequested": "Réévaluation des règles demandée",
"recordShow": "Enregistrer l'émission"
},
"collections": {
"title": "Collections",
"collection": "Collection",
"empty": "La collection est vide",
"deleteCollection": "Supprimer la collection",
"deleteConfirm": "Supprimer \"${title}\" ? Action irréversible.",
"deleted": "Collection supprimée",
"deleteFailed": "Échec de la suppression de la collection",
"deleteFailedWithError": "Échec de la suppression de la collection : ${error}",
"selectCollection": "Sélectionner une collection",
"collectionName": "Nom de la collection",
"enterCollectionName": "Entrez le nom de la collection",
"addedToCollection": "Ajouté à la collection",
"errorAddingToCollection": "Échec de l'ajout à la collection",
"created": "Collection créée",
"removeFromCollection": "Supprimer de la collection",
"removeFromCollectionConfirm": "Retirer \"${title}\" de cette collection ?",
"removedFromCollection": "Retiré de la collection",
"removeFromCollectionFailed": "Impossible de supprimer de la collection",
"removeFromCollectionError": "Erreur lors du retrait de la collection : ${error}",
"searchCollections": "Rechercher des collections..."
},
"playlists": {
"title": "Playlists",
"playlist": "Playlist",
"noPlaylists": "Aucune playlist trouvée",
"create": "Créer une playlist",
"playlistName": "Nom de playlist",
"enterPlaylistName": "Saisissez le nom de la playlist",
"delete": "Supprimer la playlist",
"removeItem": "Retirer de la playlist",
"smartPlaylist": "Playlist intelligente",
"itemCount": "${count} éléments",
"oneItem": "1 élément",
"emptyPlaylist": "Cette playlist est vide",
"deleteConfirm": "Supprimer la playlist ?",
"deleteMessage": "Voulez-vous vraiment supprimer « ${name} » ?",
"created": "Playlist créée",
"deleted": "Playlist supprimée",
"itemAdded": "Ajouté à la playlist",
"itemRemoved": "Retiré de la playlist",
"selectPlaylist": "Sélectionner une playlist",
"searchPlaylists": "Rechercher des playlists...",
"errorCreating": "Échec de la création de la playlist",
"errorDeleting": "Échec de la suppression de la playlist",
"errorLoading": "Échec du chargement des playlists",
"errorAdding": "Échec de lajout à la playlist",
"errorReordering": "Échec de la réorganisation de l’élément de la playlist",
"errorRemoving": "Échec du retrait de l’élément de la playlist"
},
"music": {
"goToAlbum": "Aller à l'album",
"goToArtist": "Aller à l'artiste",
"instantMix": "Mix instantané",
"playNext": "Lire ensuite",
"addToQueue": "Ajouter à la file d'attente",
"discNumber": "Disque ${n}",
"trackCount": {
"one": "${n} titre",
"other": "${n} titres"
},
"nowPlaying": "Lecture en cours",
"playingFrom": "Lecture depuis ${title}",
"queue": "File d'attente",
"clearQueue": "Vider la file d'attente",
"lyrics": "Paroles",
"noLyrics": "Aucune parole disponible",
"sleepTimer": "Minuterie de veille",
"sleepTimerEndOfTrack": "Fin du titre",
"sleepTimerMinutes": "${n} minutes",
"stopPlayback": "Arrêter la lecture",
"previousTrack": "Titre précédent",
"nextTrack": "Titre suivant",
"repeat": "Répéter",
"repeatAll": "Tout répéter",
"repeatOne": "Répéter le titre"
},
"watchTogether": {
"title": "Regarder ensemble",
"description": "Regarder du contenu en synchronisation avec vos proches",
"createSession": "Créer une session",
"creating": "Création...",
"joinSession": "Rejoindre la session",
"joining": "Connexion…",
"controlMode": "Mode de contrôle",
"controlModeQuestion": "Qui peut contrôler la lecture ?",
"hostOnly": "Hôte uniquement",
"anyone": "N'importe qui",
"hostingSession": "Session hébergée",
"inSession": "Session en cours",
"sessionCode": "Code de session",
"openSessionControls": "Ouvrir les commandes de la session Regarder ensemble",
"copySessionCode": "Copier le code de session",
"hostControlsPlayback": "L'hôte contrôle la lecture",
"anyoneCanControl": "Tout le monde peut contrôler la lecture",
"hostControls": "Commandes de l'hôte",
"anyoneControls": "Tout le monde contrôle",
"participants": "Participants",
"host": "Hôte",
"hostBadge": "HÔTE",
"youAreHost": "Vous êtes l'hôte",
"watchingWithOthers": "Regarder avec d'autres personnes",
"endSession": "Terminer la session",
"leaveSession": "Quitter la session",
"endSessionQuestion": "Terminer la session ?",
"leaveSessionQuestion": "Quitter la session ?",
"endSessionConfirm": "Cela mettra fin à la session pour tous les participants.",
"leaveSessionConfirm": "Vous allez être déconnecté de la session.",
"endSessionConfirmOverlay": "Cela mettra fin à la session de visionnage pour tous les participants.",
"leaveSessionConfirmOverlay": "Vous serez déconnecté de la session de visionnage.",
"end": "Terminer",
"leave": "Quitter",
"syncing": "Synchronisation…",
"joinWatchSession": "Rejoindre la session de visionnage",
"enterCodeHint": "Entrez le code à 5 caractères",
"pasteFromClipboard": "Coller depuis le presse-papiers",
"pleaseEnterCode": "Veuillez saisir un code de session",
"codeMustBe5Chars": "Le code de session doit comporter 5 caractères",
"joinInstructions": "Saisissez le code de session de l'hôte pour rejoindre.",
"failedToCreate": "Échec de la création de la session",
"failedToJoin": "Échec de la connexion à la session",
"sessionCodeCopied": "Code de session copié dans le presse-papiers",
"relayUnreachable": "Serveur relais inaccessible. Un blocage par le fournisseur daccès peut empêcher le fonctionnement de Regarder ensemble.",
"reconnectingToHost": "Reconnexion à l'hôte...",
"currentPlayback": "Lecture en cours",
"joinCurrentPlayback": "Rejoindre la lecture en cours",
"joinCurrentPlaybackDescription": "Reprendre le contenu que lhôte regarde actuellement",
"failedToOpenCurrentPlayback": "Impossible d'ouvrir la lecture en cours",
"participantJoined": "${name} a rejoint",
"participantLeft": "${name} est parti",
"participantPaused": "${name} a mis en pause",
"participantResumed": "${name} a repris",
"participantSeeked": "${name} a changé la position de lecture",
"participantBuffering": "La lecture de ${name} est en cours de mise en mémoire tampon",
"participantNeedsUpdate": "${name} utilise une ancienne version de lapp — synchronisation indisponible",
"resumingWithout": "Reprise sans ${name}",
"waitingForParticipants": "En attente du chargement des autres...",
"waitingForName": "En attente de ${name}...",
"recentRooms": "Salons récents",
"renameRoom": "Renommer le salon",
"removeRoom": "Supprimer",
"guestSwitchUnavailable": "Impossible de changer — serveur indisponible pour la synchronisation",
"guestSwitchFailed": "Impossible de changer — contenu introuvable sur ce serveur"
},
"downloads": {
"title": "Téléchargements",
"manage": "Gérer",
"tvShows": "Séries TV",
"movies": "Films",
"music": "Musique",
"tracksQueued": "${count} titres en file d'attente de téléchargement",
"noDownloads": "Aucun téléchargement pour le moment",
"noDownloadsDescription": "Le contenu téléchargé apparaîtra ici pour être consulté hors ligne.",
"downloadNow": "Télécharger",
"deleteDownload": "Supprimer le téléchargement",
"retryDownload": "Réessayer le téléchargement",
"downloadQueued": "Téléchargement en attente",
"downloadResumed": "Téléchargement repris",
"serverErrorBitrate": "Erreur du serveur : le fichier peut dépasser la limite de débit distant",
"storageFull": "Les téléchargements ont été arrêtés car le stockage de lappareil est plein. Libérez de lespace, puis réessayez.",
"episodesQueued": "${count} épisodes en attente de téléchargement",
"downloadDeleted": "Téléchargement supprimé",
"deleteConfirm": "Supprimer « ${title} » de cet appareil ?",
"cancelledDownloadTitle": "Téléchargement annulé",
"cancelledDownloadMessage": "Ce téléchargement a été annulé. Que voulez-vous faire ?",
"allEpisodesAlreadyDownloaded": "Tous les épisodes sont déjà téléchargés",
"resumeDownload": "Reprendre le téléchargement",
"cancelledDownload": "Téléchargement annulé",
"syncingFile": "${file} (synchronisation ${status})",
"downloadedFileClickToComplete": "${file} téléchargé — cliquez pour terminer",
"partialDownloadClickToComplete": "Téléchargement partiel — cliquez pour terminer",
"deleting": "Suppression...",
"deletingWithProgress": "Suppression de ${title}... (${current} sur ${total})",
"queuedTooltip": "En attente",
"queuedFilesTooltip": "En attente : ${files}",
"downloadingTooltip": "Téléchargement...",
"downloadingFilesTooltip": "Téléchargement de ${files}",
"noDownloadsTree": "Aucun téléchargement",
"pauseAll": "Tout mettre en pause",
"resumeAll": "Tout reprendre",
"deleteAll": "Tout supprimer",
"selectVersion": "Sélectionner la version",
"allEpisodes": "Tous les épisodes",
"unwatchedOnly": "Non vus uniquement",
"nextNUnwatched": "${count} prochains non vus",
"customAmount": "Quantité personnalisée...",
"includeSpecials": "Inclure les spéciaux",
"howManyEpisodes": "Combien d'épisodes ?",
"invalidEpisodeCount": "Saisissez un nombre d'épisodes valide.",
"keepSynced": "Garder synchronisé",
"downloadOnce": "Télécharger une fois",
"keepNUnwatched": "Garder ${count} non vus",
"editSyncRule": "Modifier la règle de synchronisation",
"removeSyncRule": "Supprimer la règle de synchronisation",
"removeSyncRuleConfirm": "Arrêter la synchronisation de « ${title} » ? Les épisodes téléchargés seront conservés.",
"removeListSyncRuleConfirm": "",
"deleteSyncRuleDownloads": "",
"deleteSyncRuleDownloadsDescription": "",
"syncRuleCreated": "Règle de synchronisation créée — ${count} épisodes non vus conservés",
"syncRuleUpdated": "Règle de synchronisation mise à jour",
"syncRuleRemoved": "Règle de synchronisation supprimée",
"syncRuleAndDownloadsRemoved": "",
"syncRuleCleanupBusy": "",
"syncRuleCleanupUnavailable": "",
"syncedNewEpisodes": "${count} nouveaux épisodes synchronisés pour ${title}",
"activeSyncRules": "Règles de synchronisation",
"noSyncRules": "Aucune règle de synchronisation",
"manageSyncRule": "Gérer la synchronisation",
"editEpisodeCount": "Nombre d’épisodes",
"editSyncFilter": "Filtre de synchronisation",
"syncAllItems": "Synchronisation de tous les éléments",
"syncUnwatchedItems": "Synchronisation des éléments non vus",
"syncRuleServerContext": "Serveur : ${server} • ${status}",
"syncRuleAvailable": "Disponible",
"syncRuleOffline": "Hors ligne",
"syncRuleSignInRequired": "Connexion requise",
"syncRuleNotAvailableForProfile": "Non disponible pour le profil actuel",
"syncRuleUnknownServer": "Serveur inconnu",
"syncRuleListCreated": "Règle de synchronisation créée",
"backgroundWarning": {
"bannerBlocked": "Les téléchargements sarrêteront lorsque vous quitterez lapplication",
"bannerDegraded": "Les téléchargements en arrière-plan peuvent être limités",
"bannerAction": "Détails",
"sheetTitle": "Les téléchargements en arrière-plan sont bloqués",
"sheetTitleDegraded": "Les téléchargements en arrière-plan peuvent être limités",
"sheetIntro": "Android empêche Plezy de télécharger de façon fiable en arrière-plan.",
"sheetIntroDegraded": "Votre appareil limite les moments où Plezy peut télécharger en arrière-plan.",
"reasonBackgroundRestricted": "Lutilisation de Plezy en arrière-plan est restreinte. Dans les paramètres de batterie ou dutilisation en arrière-plan, sélectionnez « Sans restriction ».",
"reasonStandbyRestricted": "Android a placé Plezy en veille restreinte. Réglez lutilisation de la batterie sur « Sans restriction ».",
"reasonDownloadChannelBlocked": "Les notifications de téléchargement sont désactivées. La progression et les commandes peuvent donc être indisponibles.",
"reasonNotificationsDisabled": "Les notifications sont désactivées. Sur Android 13 ou version ultérieure, elles sont nécessaires pour les longs téléchargements en arrière-plan.",
"reasonDataSaver": "L’Économiseur de données est activé et bloque les téléchargements en arrière-plan via les données mobiles. Ils devraient toujours fonctionner en Wi-Fi.",
"reasonOemUnknown": "Les téléchargements se sont arrêtés plusieurs fois lorsque Plezy était en arrière-plan. Vérifiez les paramètres de batterie ou dutilisation en arrière-plan de Plezy.",
"openSettings": "Ouvrir les paramètres",
"stillNotWorking": "Aide spécifique à lappareil",
"stillNotWorkingDescription": "Consultez les étapes adaptées à votre appareil ou, si le problème persiste, envoyez un journal depuis Paramètres Voir les journaux.",
"dialogTitle": "Les téléchargements risquent de ne pas aboutir",
"dialogDownloadAnyway": "Télécharger quand même",
"dialogFixFirst": "Corriger dabord",
"statusTile": "Téléchargements en arrière-plan",
"statusOk": "Exécution en arrière-plan autorisée",
"statusBlocked": "Bloqués par les paramètres système",
"statusDegraded": "Limités par les paramètres système",
"statusUnknown": "Pas encore vérifié",
"settingsUnavailable": "Impossible douvrir les paramètres système sur cet appareil",
"linkUnavailable": "Impossible douvrir dontkillmyapp.com sur cet appareil"
}
},
"shaders": {
"title": "Shaders",
"noShaderDescription": "Aucune amélioration vidéo",
"nvscalerDescription": "Mise à l'échelle NVIDIA pour une vidéo plus nette",
"artcnnVariantNeutral": "Neutre",
"artcnnVariantDenoise": "Réduction du bruit",
"artcnnVariantDenoiseSharpen": "Réduction du bruit + netteté",
"qualityFast": "Rapide",
"qualityHQ": "Haute qualité",
"mode": "Mode",
"importShader": "Importer un shader",
"customShaderDescription": "Shader GLSL personnalisé",
"shaderImported": "Shader importé",
"shaderImportFailed": "Échec de l'importation du shader",
"deleteShader": "Supprimer le shader",
"deleteShaderConfirm": "Supprimer \"${name}\" ?"
},
"companionRemote": {
"title": "Télécommande compagnon",
"connectedTo": "Connecté à ${name}",
"unknownDevice": "Appareil inconnu",
"session": {
"startingServer": "Démarrage du serveur de télécommande…",
"hostAddress": "Adresse de lhôte",
"connected": "Connecté",
"serverRunning": "Serveur de télécommande actif",
"serverStopped": "Serveur de télécommande arrêté",
"serverRunningDescription": "Les appareils mobiles de votre réseau peuvent se connecter à cette application",
"serverStoppedDescription": "Démarrez le serveur pour permettre aux appareils mobiles de se connecter",
"usePhoneToControl": "Utilisez votre appareil mobile pour contrôler cette application",
"startServer": "Démarrer le serveur",
"stopServer": "Arrêter le serveur",
"minimize": "Réduire"
},
"pairing": {
"discoveryDescription": "Les appareils Plezy avec le même compte Plex apparaissent ici",
"hostAddressHint": "192.168.1.100:48632",
"connecting": "Connexion...",
"searchingForDevices": "Recherche d'appareils...",
"noDevicesFound": "Aucun appareil trouvé sur votre réseau",
"noDevicesHint": "Ouvrez Plezy sur votre ordinateur et utilisez le même réseau Wi-Fi",
"availableDevices": "Appareils disponibles",
"manualConnection": "Connexion manuelle",
"cryptoInitFailed": "Impossible de démarrer la connexion sécurisée. Connectez-vous d'abord à Plex.",
"validationHostRequired": "Veuillez saisir ladresse de lhôte",
"validationHostFormat": "Le format doit être IP:port (p. ex. 192.168.1.100:48632)",
"connectionTimedOut": "Délai de connexion dépassé. Utilisez le même réseau sur les deux appareils.",
"sessionNotFound": "Appareil introuvable. Assurez-vous que Plezy fonctionne sur l'hôte.",
"authFailed": "Échec de l'authentification. Les deux appareils doivent utiliser le même compte Plex.",
"failedToConnect": "Échec de la connexion : ${error}"
},
"remote": {
"disconnectConfirm": "Voulez-vous vous déconnecter de la session distante ?",
"reconnecting": "Reconnexion...",
"attemptOf": "Tentative ${current} sur 5",
"retryNow": "Réessayer maintenant",
"tabRemote": "Télécommande",
"tabPlay": "Lecture",
"tabMore": "Plus",
"menu": "Menu",
"tabNavigation": "Navigation par onglets",
"tabDiscover": "Découvrir",
"tabLibraries": "Bibliothèques",
"tabSearch": "Rechercher",
"tabDownloads": "Téléchargements",
"tabSettings": "Paramètres",
"previous": "Précédent",
"playPause": "Lecture/Pause",
"next": "Suivant",
"seekBack": "Reculer",
"stop": "Arrêter",
"seekForward": "Avancer",
"volume": "Volume",
"volumeDown": "Baisser",
"volumeUp": "Augmenter",
"fullscreen": "Plein écran",
"subtitles": "Sous-titres",
"audio": "Audio",
"searchHint": "Rechercher sur lordinateur…"
},
"errors": {
"noNetworkInterface": "Aucune interface réseau trouvée",
"authenticationFailed": "Échec de lauthentification",
"serverStartFailed": "Impossible de démarrer le serveur de télécommande : ${error}",
"commandFailed": "Impossible denvoyer la commande à distance : ${error}",
"joinTimedOut": "Délai dépassé lors de la connexion à la session",
"failedToConnectAnyAddress": "Impossible de se connecter à une adresse",
"connectionLostAfterAttempts": "Connexion perdue après ${attempts} tentatives",
"connectionLost": "Connexion perdue"
}
},
"videoSettings": {
"playbackSpeed": "Vitesse de lecture",
"normalSpeed": "Normale",
"sleepTimerActive": "Actif (${duration})",
"zoom": "Zoom",
"sleepTimer": "Minuterie de mise en veille",
"audioSync": "Synchronisation audio",
"subtitleSync": "Synchronisation des sous-titres",
"hdr": "HDR",
"audioOutput": "Sortie audio",
"performanceOverlay": "Données de performance",
"audioPassthrough": "Transmission audio directe",
"audioOutputDolbyAtmos": "Dolby Atmos",
"audioOutputDolbyAudio": "Dolby Audio",
"audioOutputSurround": "Surround",
"audioOutputSpatial": "Audio spatial",
"audioOutputStereo": "Stéréo",
"audioNormalization": "Normaliser le volume",
"audioDownmix": "Conversion en stéréo"
},
"performanceOverlay": {
"color": "Couleur",
"performance": "Performances",
"buffer": "Tampon",
"app": "Application",
"decoder": "Décodeur",
"rawDecoder": "Décodeur brut",
"tunneling": "Tunnel",
"aspect": "Format",
"rotation": "Rotation",
"dvSource": "Source DV",
"dvPath": "Chemin DV",
"p7Conversion": "Conv. P7",
"sampleRate": "Fréquence d’échantillonnage",
"pixelFormat": "Fmt pixel",
"hwFormat": "Fmt HW",
"matrix": "Matrice",
"primaries": "Primaires",
"transfer": "Transfert",
"renderFps": "FPS rendu",
"displayFps": "FPS écran",
"avSync": "Synchro A/V",
"dropped": "Perdues",
"dvRpus": "DV RPU",
"dvRpuAverage": "Moy. DV RPU",
"dvSampleAverage": "Moy. échant. DV",
"maxLuma": "Luma max.",
"minLuma": "Luma min.",
"maxCll": "MaxCLL",
"maxFall": "MaxFALL",
"cacheUsed": "Cache utilisé",
"cacheLimit": "Limite du cache",
"speed": "Vitesse",
"player": "Lecteur",
"memory": "Mémoire",
"uiFps": "FPS UI"
},
"externalPlayer": {
"title": "Lecteur externe",
"useExternalPlayer": "Utiliser un lecteur externe",
"useExternalPlayerDescription": "Ouvrir les vidéos dans une autre application",
"selectPlayer": "Sélectionner le lecteur",
"customPlayers": "Lecteurs personnalisés",
"systemDefault": "Par défaut du système",
"addCustomPlayer": "Ajouter un lecteur personnalisé",
"playerName": "Nom du lecteur",
"playerNameHint": "Mon lecteur",
"playerCommand": "Commande",
"playerPackage": "Nom du paquet",
"playerUrlScheme": "Schéma URL",
"off": "Désactivé",
"launchFailed": "Impossible d'ouvrir le lecteur externe",
"appNotInstalled": "${name} n'est pas installé",
"playInExternalPlayer": "Lire dans un lecteur externe"
},
"metadataEdit": {
"editMetadata": "Modifier...",
"screenTitle": "Modifier les métadonnées",
"basicInfo": "Informations de base",
"artwork": "Illustrations",
"advancedSettings": "Paramètres avancés",
"title": "Titre",
"sortTitle": "Titre de tri",
"originalTitle": "Titre original",
"releaseDate": "Date de sortie",
"contentRating": "Classification",
"studio": "Studio",
"tagline": "Slogan",
"summary": "Résumé",
"poster": "Affiche",
"background": "Arrière-plan",
"logo": "Logo",
"squareArt": "Image carrée",
"selectPoster": "Sélectionner l'affiche",
"selectBackground": "Sélectionner l'arrière-plan",
"selectLogo": "Sélectionner le logo",
"selectSquareArt": "Sélectionner l'image carrée",
"fromUrl": "Depuis une URL",
"uploadFile": "Importer un fichier",
"enterImageUrl": "Entrer l'URL de l'image",
"imageUrl": "URL de l'image",
"metadataUpdated": "Métadonnées mises à jour",
"metadataUpdateFailed": "Échec de la mise à jour des métadonnées",
"artworkUpdated": "Illustrations mises à jour",
"artworkUpdateFailed": "Échec de la mise à jour des illustrations",
"noArtworkAvailable": "Aucune illustration disponible",
"artworkOption": "Option d'illustration ${index}",
"selectedArtworkOption": "Option d'illustration ${index}, sélectionnée",
"notSet": "Non défini",
"libraryDefault": "Par défaut de la bibliothèque",
"accountDefault": "Par défaut du compte",
"seriesDefault": "Par défaut de la série",
"episodeSorting": "Tri des épisodes",
"oldestFirst": "Plus anciens en premier",
"newestFirst": "Plus récents en premier",
"keep": "Conserver",
"allEpisodes": "Tous les épisodes",
"latestEpisodes": "${count} derniers épisodes",
"latestEpisode": "Dernier épisode",
"episodesAddedPastDays": "Épisodes ajoutés ces ${count} derniers jours",
"deleteAfterPlaying": "Supprimer les épisodes après lecture",
"never": "Jamais",
"afterADay": "Après un jour",
"afterAWeek": "Après une semaine",
"afterAMonth": "Après un mois",
"onNextRefresh": "Au prochain rafraîchissement",
"seasons": "Saisons",
"show": "Afficher",
"hide": "Masquer",
"episodeOrdering": "Ordre des épisodes",
"tmdbAiring": "The Movie Database (Diffusion)",
"tvdbAiring": "TheTVDB (Diffusion)",
"tvdbAbsolute": "TheTVDB (Absolu)",
"metadataLanguage": "Langue des métadonnées",
"useOriginalTitle": "Utiliser le titre original",
"preferredAudioLanguage": "Langue audio préférée",
"preferredSubtitleLanguage": "Langue de sous-titres préférée",
"subtitleMode": "Sélection automatique des sous-titres",
"manuallySelected": "Sélectionné manuellement",
"shownWithForeignAudio": "Avec laudio en langue étrangère",
"alwaysEnabled": "Toujours activé",
"tags": "Étiquettes",
"addTag": "Ajouter une étiquette",
"genre": "Genre",
"director": "Réalisateur",
"writer": "Scénariste",
"producer": "Producteur",
"country": "Pays",
"collection": "Collection",
"label": "Label",
"style": "Style",
"mood": "Ambiance"
},
"matchScreen": {
"match": "Associer...",
"fixMatch": "Corriger l'association...",
"unmatch": "Dissocier",
"unmatchConfirm": "Effacer cette correspondance ? Plex la traitera comme non associée jusqu'à réassociation.",
"unmatchSuccess": "Association supprimée",
"unmatchFailed": "Échec de la dissociation",
"matchApplied": "Association appliquée",
"matchFailed": "Échec de l'application",
"titleHint": "Titre",
"yearHint": "Année",
"search": "Rechercher",
"noMatchesFound": "Aucune correspondance"
},
"serverTasks": {
"title": "Tâches du serveur",
"failedToLoad": "Échec du chargement des tâches",
"noTasks": "Aucune tâche en cours"
},
"trakt": {
"title": "Trakt",
"connected": "Connecté",
"connectedAs": "Connecté en tant que @${username}",
"disconnectConfirm": "Déconnecter le compte Trakt ?",
"disconnectConfirmBody": "Plezy cessera denvoyer des événements à Trakt. Vous pourrez vous reconnecter à tout moment.",
"scrobble": "Scrobbling en temps réel",
"scrobbleDescription": "Envoyer les événements de lecture, pause et arrêt à Trakt pendant la lecture.",
"watchedSync": "Synchroniser le statut « vu »",
"watchedSyncDescription": "Lorsque vous marquez des éléments comme vus dans Plezy, ils sont également marqués comme vus sur Trakt."
},
"seerr": {
"title": "Seerr",
"connectTitle": "Se connecter à Seerr",
"serverUrl": "URL du serveur",
"serverUrlHelper": "L'adresse de votre instance Seerr",
"checkServer": "Continuer",
"signInWithJellyfin": "Se connecter avec Jellyfin",
"signInWithEmby": "Se connecter avec Emby",
"signInWithLocal": "Utiliser un compte local",
"email": "E-mail",
"noSignInMethods": "Cette instance Seerr ne propose aucune méthode de connexion prise en charge par Plezy.",
"instance": "Instance",
"disconnectConfirm": "Déconnecter Seerr ?",
"disconnectConfirmBody": "Plezy oubliera cette instance Seerr. Vous pourrez vous reconnecter à tout moment.",
"request": "Demander",
"request4k": "Demander en 4K",
"seasons": "Saisons",
"allSeasons": "Toutes les saisons",
"advancedOptions": "Avancé",
"destinationServer": "Serveur de destination",
"qualityProfile": "Profil de qualité",
"rootFolder": "Dossier racine",
"languageProfile": "Profil de langue",
"requestSubmitted": "Demande envoyée",
"requestFailed": "Échec de la demande : ${error}",
"requestsLoadFailed": "Impossible de charger les options de demande",
"nothingToRequest": "Tout est déjà disponible ou demandé.",
"statusAvailable": "Disponible",
"statusPartiallyAvailable": "Partiellement disponible",
"statusRequested": "Demandé",
"statusProcessing": "En cours de traitement"
},
"services": {
"title": "Services",
"hubSubtitle": "Synchronisez votre progression et demandez de nouveaux titres.",
"notConnected": "Non connecté",
"connectedAs": "Connecté en tant que @${username}",
"scrobble": "Suivre la progression automatiquement",
"scrobbleDescription": "Mettre à jour votre liste lorsque vous terminez un épisode ou un film.",
"disconnectConfirm": "Déconnecter ${service} ?",
"disconnectConfirmBody": "Plezy cessera de mettre à jour ${service}. Vous pourrez vous reconnecter à tout moment.",
"connectFailed": "Échec de la connexion à ${service}. Réessayez.",
"names": {
"mal": "MyAnimeList",
"anilist": "AniList",
"simkl": "Simkl",
"seerr": "Seerr"
},
"deviceCode": {
"title": "Activer Plezy sur ${service}",
"body": "Rendez-vous sur ${url} et entrez ce code :",
"openToActivate": "Ouvrir ${service} pour activer",
"copyCode": "Copier le code d'activation",
"waitingForAuthorization": "En attente d'autorisation…",
"codeCopied": "Code copié"
},
"oauthProxy": {
"title": "Se connecter à ${service}",
"body": "Scannez ce code QR ou ouvrez l'URL sur n'importe quel appareil.",
"openToSignIn": "Ouvrir ${service} pour se connecter",
"copyUrl": "Copier l'URL de connexion",
"urlCopied": "URL copiée"
},
"libraryFilter": {
"title": "Filtre de bibliothèques",
"subtitleAllSyncing": "Synchronisation de toutes les bibliothèques",
"subtitleNoneSyncing": "Aucune synchronisation",
"subtitleBlocked": "${count} bloquées",
"subtitleAllowed": "${count} autorisées",
"mode": "Mode de filtrage",
"modeBlacklist": "Liste dexclusion",
"modeWhitelist": "Liste dinclusion",
"modeHintBlacklist": "Synchroniser toutes les bibliothèques sauf celles cochées ci-dessous.",
"modeHintWhitelist": "Synchroniser uniquement les bibliothèques cochées ci-dessous.",
"libraries": "Bibliothèques",
"noLibraries": "Aucune bibliothèque disponible"
}
},
"addServer": {
"addJellyfinTitle": "Ajouter un serveur Jellyfin",
"serverUrls": "URL du serveur",
"serverUrlsHelper": "Plusieurs URL possibles, séparées par des virgules.",
"findServer": "Rechercher un serveur",
"searchingLocalServers": "Recherche de serveurs Jellyfin locaux...",
"localServers": "Serveurs Jellyfin locaux",
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"signIn": "Se connecter",
"change": "Modifier",
"required": "Requis",
"couldNotReachServer": "Impossible de joindre le serveur : ${error}",
"signInFailed": "Échec de la connexion : ${error}",
"quickConnectFailed": "Échec de Quick Connect : ${error}",
"addPlexTitle": "Se connecter avec Plex",
"pinExpired": "Le PIN a expiré avant la connexion. Veuillez réessayer.",
"failedToRegisterAccount": "Échec de l'enregistrement du compte : ${error}",
"enterJellyfinUrlError": "Saisissez l'URL de votre serveur Jellyfin",
"addConnectionTitle": "Ajouter une connexion",
"addConnectionTitleScoped": "Ajouter à ${name}",
"signInWithPlexCard": "Se connecter avec Plex",
"signInWithPlexCardSubtitle": "Autorisez cet appareil. Les serveurs partagés sont ajoutés.",
"signInWithPlexCardSubtitleScoped": "Autorisez un compte Plex. Les utilisateurs Home deviennent des profils.",
"connectToJellyfinCard": "Se connecter à Jellyfin",
"connectToJellyfinCardSubtitle": "Saisissez l'URL du serveur, le nom d'utilisateur et le mot de passe.",
"connectToJellyfinCardSubtitleScoped": "Connectez-vous à un serveur Jellyfin. Cette connexion sera liée à ${name}.",
"borrowFromAnotherProfile": "Emprunter à un autre profil",
"borrowFromAnotherProfileSubtitle": "Réutiliser la connexion d'un autre profil. Les profils protégés par PIN exigent un PIN."
}
}