# French translations for DRI driver options.
# Copyright (C) 2005 Stephane Marchesin
# This file is distributed under the same license as the Mesa package.
# Stephane Marchesin <marchesin@icps.u-strasbg.fr>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: Mesa 6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-04-11 23:19+0200\n"
"PO-Revision-Date: 2005-04-11 01:34+0200\n"
"Last-Translator: Stephane Marchesin <marchesin@icps.u-strasbg.fr>\n"
"Language-Team: French <fr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: t_options.h:53
msgid "Debugging"
msgstr "Debogage"

#: t_options.h:57
msgid "Disable 3D acceleration"
msgstr "Désactiver l'accélération 3D"

#: t_options.h:62
msgid "Show performance boxes"
msgstr "Afficher les boîtes de performance"

#: t_options.h:69
msgid "Image Quality"
msgstr "Qualité d'image"

#: t_options.h:77
msgid "Texture color depth"
msgstr "Profondeur de texture"

#: t_options.h:78
msgid "Prefer frame buffer color depth"
msgstr "Profondeur de couleur"

#: t_options.h:79
msgid "Prefer 32 bits per texel"
msgstr "Préférer 32 bits par texel"

#: t_options.h:80
msgid "Prefer 16 bits per texel"
msgstr "Prérérer 16 bits par texel"

#: t_options.h:81
msgid "Force 16 bits per texel"
msgstr "Forcer 16 bits par texel"

#: t_options.h:87
msgid "Initial maximum value for anisotropic texture filtering"
msgstr "Valeur maximale initiale pour le filtrage anisotropique de texture"

#: t_options.h:92
msgid "Forbid negative texture LOD bias"
msgstr "Interdire le LOD bias negatif"

#: t_options.h:97
msgid ""
"Enable S3TC texture compression even if software support is not available"
msgstr ""
"Activer la compression de texture S3TC même si le support logiciel est absent"

#: t_options.h:104
msgid "Initial color reduction method"
msgstr "Technique de réduction de couleurs"

#: t_options.h:105
msgid "Round colors"
msgstr "Arrondir les valeurs de couleur"

#: t_options.h:106
msgid "Dither colors"
msgstr "Tramer les couleurs"

#: t_options.h:114
msgid "Color rounding method"
msgstr "Méthode d'arrondi des couleurs"

#: t_options.h:115
msgid "Round color components downward"
msgstr "Arrondi à l'inférieur"

#: t_options.h:116
msgid "Round to nearest color"
msgstr "Arrondi au plus proche"

#: t_options.h:125
msgid "Color dithering method"
msgstr "Méthode de tramage"

#: t_options.h:126
msgid "Horizontal error diffusion"
msgstr "Diffusion d'erreur horizontale"

#: t_options.h:127
msgid "Horizontal error diffusion, reset error at line start"
msgstr "Diffusion d'erreur horizontale, réinitialisé pour chaque ligne"

#: t_options.h:128
msgid "Ordered 2D color dithering"
msgstr "Tramage ordonné des couleurs"

#: t_options.h:134
msgid "Floating point depth buffer"
msgstr "Z-buffer en virgule flottante"

#: t_options.h:140
msgid "Performance"
msgstr "Performance"

#: t_options.h:148
msgid "TCL mode (Transformation, Clipping, Lighting)"
msgstr "Mode de TCL (Transformation, Clipping, Eclairage)"

#: t_options.h:149
msgid "Use software TCL pipeline"
msgstr "Utiliser un pipeline TCL logiciel"

#: t_options.h:150
msgid "Use hardware TCL as first TCL pipeline stage"
msgstr "Utiliser le TCL matériel pour le premier niveau de pipeline"

#: t_options.h:151
msgid "Bypass the TCL pipeline"
msgstr "Court-circuiter le pipeline TCL"

#: t_options.h:152
msgid ""
"Bypass the TCL pipeline with state-based machine code generated on-the-fly"
msgstr ""
"Court-circuiter le pipeline TCL par une machine à états qui génère le code"
"de TCL à la volée"

#: t_options.h:161
msgid "Method to limit rendering latency"
msgstr "Méthode d'attente de la carte graphique"

#: t_options.h:162
msgid "Busy waiting for the graphics hardware"
msgstr "Attente active de la carte graphique"

#: t_options.h:163
msgid "Sleep for brief intervals while waiting for the graphics hardware"
msgstr "Attente utilisant usleep()"

#: t_options.h:164
msgid "Let the graphics hardware emit a software interrupt and sleep"
msgstr "Utiliser les interruptions"

#: t_options.h:174
msgid "Synchronization with vertical refresh (swap intervals)"
msgstr "Synchronisation de l'affichage avec le balayage vertical"

#: t_options.h:175
msgid "Never synchronize with vertical refresh, ignore application's choice"
msgstr "Ne jamais synchroniser avec le balayage vertical, ignorer le choix de l'application"

#: t_options.h:176
msgid "Initial swap interval 0, obey application's choice"
msgstr "Ne pas synchroniser avec le balayage vertical par défaut, mais obéir au choix de l'application"

#: t_options.h:177
msgid "Initial swap interval 1, obey application's choice"
msgstr "Synchroniser avec le balayage vertical par défaut, mais obéir au choix de l'application"

#: t_options.h:178
msgid ""
"Always synchronize with vertical refresh, application chooses the minimum "
"swap interval"
msgstr ""
"Toujours synchroniser avec le balayage vertical, l'application choisit l'intervalle minimal"

#: t_options.h:186
msgid "Use HyperZ to boost performance"
msgstr "Utiliser le HyperZ pour améliorer les performances"

#: t_options.h:191
msgid "Number of texture units used"
msgstr "Nombre d'unités de texture"

#: t_options.h:196
msgid ""
"Enable hack to allow larger textures with texture compression on radeon/r200"
msgstr ""
"Activer le hack permettant l'utilisation de textures de grande taille avec la "
"compression de textures sur radeon/r200"

#: t_options.h:201
msgid "Texture filtering quality vs. speed, AKA “brilinear” texture filtering"
msgstr ""
"Qualité/performance du filtrage trilinéaire de texture (filtrage brilinéaire)"

#: t_options.h:209
msgid "Used types of texture memory"
msgstr "Types de mémoire de texture"

#: t_options.h:210
msgid "All available memory"
msgstr "Utiliser toute la mémoire disponible"

#: t_options.h:211
msgid "Only card memory (if available)"
msgstr "Utiliser uniquement la mémoire graphique (si disponible)"

#: t_options.h:212
msgid "Only GART (AGP/PCIE) memory (if available)"
msgstr "Utiliser uniquement la mémoire GART (AGP/PCIE) (si disponible)"

#: t_options.h:220
msgid "Features that are not hardware-accelerated"
msgstr "Fonctionnalités ne bénéficiant pas d'une accélération matérielle"

#: t_options.h:224
msgid "Enable extension GL_ARB_vertex_program"
msgstr "Activer l'extension GL_ARB_vertex_program"

#: t_options.h:229
msgid "Enable extension GL_NV_vertex_program"
msgstr "Activer l'extension GL_NV_vertex_program"
