# German translations for DRI driver options.
# Copyright (C) 2005 Felix Kuehling
# This file is distributed under the same license as the Mesa package.
# Felix Kuehling <fxkuehl@gmx.de>, 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: Felix Kuehling <fxkuehl@gmx.de>\n"
"Language-Team: German <de@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 "Fehlersuche"

#: t_options.h:57
msgid "Disable 3D acceleration"
msgstr "3D-Beschleunigung abschalten"

#: t_options.h:62
msgid "Show performance boxes"
msgstr "Zeige Performanceboxen"

#: t_options.h:69
msgid "Image Quality"
msgstr "Bildqualität"

#: t_options.h:77
msgid "Texture color depth"
msgstr "Texturfarbtiefe"

#: t_options.h:78
msgid "Prefer frame buffer color depth"
msgstr "Bevorzuge Farbtiefe des Framebuffers"

#: t_options.h:79
msgid "Prefer 32 bits per texel"
msgstr "Bevorzuge 32 bits pro Texel"

#: t_options.h:80
msgid "Prefer 16 bits per texel"
msgstr "Bevorzuge 16 bits pro Texel"

#: t_options.h:81
msgid "Force 16 bits per texel"
msgstr "Erzwinge 16 bits pro Texel"

#: t_options.h:87
msgid "Initial maximum value for anisotropic texture filtering"
msgstr "Initialer Maximalwert für anisotropische Texturfilterung"

#: t_options.h:92
msgid "Forbid negative texture LOD bias"
msgstr "Verbiete negative Textur-Detailgradverschiebung"

#: t_options.h:97
msgid ""
"Enable S3TC texture compression even if software support is not available"
msgstr ""
"Aktiviere S3TC Texturkomprimierung auch wenn die nötige "
"Softwareunterstützung fehlt"

#: t_options.h:104
msgid "Initial color reduction method"
msgstr "Initiale Farbreduktionsmethode"

#: t_options.h:105
msgid "Round colors"
msgstr "Farben runden"

#: t_options.h:106
msgid "Dither colors"
msgstr "Farben rastern"

#: t_options.h:114
msgid "Color rounding method"
msgstr "Farbrundungsmethode"

#: t_options.h:115
msgid "Round color components downward"
msgstr "Farbkomponenten abrunden"

#: t_options.h:116
msgid "Round to nearest color"
msgstr "Zur ähnlichsten Farbe runden"

#: t_options.h:125
msgid "Color dithering method"
msgstr "Farbrasterungsmethode"

#: t_options.h:126
msgid "Horizontal error diffusion"
msgstr "Horizontale Fehlerstreuung"

#: t_options.h:127
msgid "Horizontal error diffusion, reset error at line start"
msgstr "Horizontale Fehlerstreuung, Fehler am Zeilenanfang zurücksetzen"

#: t_options.h:128
msgid "Ordered 2D color dithering"
msgstr "Geordnete 2D Farbrasterung"

#: t_options.h:134
msgid "Floating point depth buffer"
msgstr "Fließkomma z-Puffer"

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

#: t_options.h:148
msgid "TCL mode (Transformation, Clipping, Lighting)"
msgstr "TCL-Modus (Transformation, Clipping, Licht)"

#: t_options.h:149
msgid "Use software TCL pipeline"
msgstr "Benutze die Software-TCL-Pipeline"

#: t_options.h:150
msgid "Use hardware TCL as first TCL pipeline stage"
msgstr "Benutze Hardware TCL als erste Stufe der TCL-Pipeline"

#: t_options.h:151
msgid "Bypass the TCL pipeline"
msgstr "Umgehe die TCL-Pipeline"

#: t_options.h:152
msgid ""
"Bypass the TCL pipeline with state-based machine code generated on-the-fly"
msgstr ""
"Umgehe die TCL-Pipeline mit zur Laufzeit erzeugtem, zustandsbasiertem "
"Maschinencode"

#: t_options.h:161
msgid "Method to limit rendering latency"
msgstr "Methode zur Begrenzung der Bildverzögerung"

#: t_options.h:162
msgid "Busy waiting for the graphics hardware"
msgstr "Aktives Warten auf die Grafikhardware"

#: t_options.h:163
msgid "Sleep for brief intervals while waiting for the graphics hardware"
msgstr "Kurze Schlafintervalle beim Warten auf die Grafikhardware"

#: t_options.h:164
msgid "Let the graphics hardware emit a software interrupt and sleep"
msgstr ""
"Die Grafikhardware eine Softwareunterbrechnung erzeugen lassen und schlafen"

#: t_options.h:174
msgid "Synchronization with vertical refresh (swap intervals)"
msgstr "Synchronisation mit der vertikalen Bildwiederholung"

#: t_options.h:175
msgid "Never synchronize with vertical refresh, ignore application's choice"
msgstr ""
"Niemals mit der Bildwiederholung synchronisieren, Anweisungen der Anwendung "
"ignorieren"

#: t_options.h:176
msgid "Initial swap interval 0, obey application's choice"
msgstr "Initiales Bildinterval 0, Anweisungen der Anwendung gehorchen"

#: t_options.h:177
msgid "Initial swap interval 1, obey application's choice"
msgstr "Initiales Bildinterval 1, Anweisungen der Anwendung gehorchen"

#: t_options.h:178
msgid ""
"Always synchronize with vertical refresh, application chooses the minimum "
"swap interval"
msgstr ""
"Immer mit der Bildwiederholung synchronisieren, Anwendung wählt das minimale "
"Bildintervall"

#: t_options.h:186
msgid "Use HyperZ to boost performance"
msgstr "HyperZ zur Leistungssteigerung verwenden"

#: t_options.h:191
msgid "Number of texture units used"
msgstr "Anzahl der benutzten Textureinheiten"

#: t_options.h:196
msgid "Support larger textures not guaranteed to fit into graphics memory"
msgstr "Unterstütze grosse Texturen die evtl. nicht in den Grafikspeicher passen"

#: t_options.h:197
msgid "No"
msgstr "Nein"

#: t_options.h:198
msgid "At least 1 texture must fit under worst-case assumptions"
msgstr "Mindestens 1 Textur muss auch im schlechtesten Fall Platz haben"

#: t_options.h:199
msgid "Announce hardware limits"
msgstr "Benutze Hardware-Limits"

#: t_options.h:205
msgid "Texture filtering quality vs. speed, AKA “brilinear” texture filtering"
msgstr ""
"Texturfilterqualität versus -geschwindigkeit, auch bekannt als „brilineare“ "
"Texturfilterung"

#: t_options.h:213
msgid "Used types of texture memory"
msgstr "Benutzte Arten von Texturspeicher"

#: t_options.h:214
msgid "All available memory"
msgstr "Aller verfügbarer Speicher"

#: t_options.h:215
msgid "Only card memory (if available)"
msgstr "Nur Grafikspeicher (falls verfügbar)"

#: t_options.h:216
msgid "Only GART (AGP/PCIE) memory (if available)"
msgstr "Nur GART-Speicher (AGP/PCIE) (falls verfügbar)"

#: t_options.h:224
msgid "Features that are not hardware-accelerated"
msgstr "Funktionalität, die nicht hardwarebeschleunigt ist"

#: t_options.h:228
msgid "Enable extension GL_ARB_vertex_program"
msgstr "Erweiterung GL_ARB_vertex_program aktivieren"

#: t_options.h:233
msgid "Enable extension GL_NV_vertex_program"
msgstr "Erweiterung GL_NV_vertex_program aktivieren"
