# Translation of gst-plugins-bad to French
# Copyright (C) 2003-2011 GStreamer core team
# This file is distributed under the same license as the gst-plugins-bad package.
#
# Claude Paroz <claude@2xlibre.net>, 2008-2011.
# Stéphane Aulery <lkppo@free.fr>, 2015-2016.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.10.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-05-04 15:09+0300\n"
"PO-Revision-Date: 2016-12-23 20:45+0100\n"
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"

msgid "failed to draw pattern"
msgstr "échec du rendu de motif"

msgid "A GL error occured"
msgstr "Une erreur de rendu GL s’est produite"

msgid "format wasn't negotiated before get function"
msgstr "Format non négocié avant l'appel de la fonction get"

msgid "OpenCV failed to load template image"
msgstr "OpenCV n’a pas pu charger l’image modèle"

msgid "Could not read title information for DVD."
msgstr "Impossible de lire les informations de titre du DVD."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Impossible d’ouvrir le périphérique du DVD « %s »."

msgid "Failed to set PGC based seeking."
msgstr "Impossible de définir la recherche basée sur PGC."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Impossible de lire le DVD. Il se peut qu’il soit chiffré et qu’aucune "
"bibliothèque de déchiffrement DVD ne soit installée."

msgid "Could not read DVD."
msgstr "Impossible de lire le DVD."

msgid "This file contains no playable streams."
msgstr "Ce fichier ne contient aucun flux exploitable."

msgid "Could not open sndfile stream for reading."
msgstr "Impossible d’ouvrir le fichier snd en lecture."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"Le fichier généré a un temps de lancement plus long que la durée du flux"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Élément « %s » manquant — Vérifiez votre installation de GStreamer."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""
"L’emplacement du fichier est inconnu (NULL), veuillez choisir un nom de "
"fichier valide"

msgid "Digitalzoom element couldn't be created"
msgstr "L’élément Digitalzoom n’a pu être créé"

msgid "Subpicture format was not configured before data flow"
msgstr "Le format de sous-image n’était pas configuré avant le flux de données"

msgid "Failed to get fragment URL."
msgstr "Échec de la récupération de l’URL de fragment."

msgid "Couldn't download fragments"
msgstr "Impossible de télécharger les fragments"

msgid "Internal data stream error."
msgstr "Erreur interne de flux de données."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Le périphérique « %s » n’existe pas."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Impossible d’ouvrir le périphérique frontal « %s »."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Impossible d’obtenir les paramètres du périphérique frontal « %s »."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr ""
"Impossible d'énumérer les systèmes d’émission du périphérique frontal « %s »."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Impossible d’ouvrir le fichier « %s » en lecture."

msgid "Couldn't find channel configuration file"
msgstr "Impossible de trouver le fichier de configuration de canal"

#, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Impossible de charger le fichier de configuration du canal « %s »"

#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr "Impossible de trouver des informations sur le canal « %s »"

#, c-format
msgid "No properties for channel '%s'"
msgstr "Aucun réglage pour le canal « %s »"

#, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Impossible d’enregistrer le réglage du canal « %s »."

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Impossible de trouver le fichier de configuration du canal « %s »"

msgid "Channel configuration file doesn't contain any channels"
msgstr "Le fichier de configuration ne contient aucun canal"

#~ msgid "Could not establish connection to sndio"
#~ msgstr "Impossible de se connecter à sndio"

#~ msgid "Failed to query sndio capabilities"
#~ msgstr "Impossible d’interroger les capacités de sndio"

#~ msgid "Could not configure sndio"
#~ msgstr "Impossible de configurer sndio"

#~ msgid "Could not start sndio"
#~ msgstr "Impossible de démarrer sndio"

#~ msgid "No file name specified for writing."
#~ msgstr "Aucun nom de fichier indiqué en écriture."

#~ msgid ""
#~ "Given file name \"%s\" can't be converted to local file name encoding."
#~ msgstr ""
#~ "Le nom de fichier indiqué « %s » ne peut pas être converti dans "
#~ "l’encodage local au système de fichier."

#~ msgid "Could not open file \"%s\" for writing."
#~ msgstr "Impossible d’ouvrir le fichier « %s » en écriture."
