# Translation of 'gst-plugins' messages to Azerbaijani.
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is put in the public domain.
# Mətin Əmirov <metin@karegen.com>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-0.8.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2012-05-13 16:42+0200\n"
"PO-Revision-Date: 2004-03-19 18:29+0200\n"
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.0.2\n"

#, fuzzy
msgid "Could not read title information for DVD."
msgstr "\"%s\" faylına yazıla bilmədi."

#, fuzzy, c-format
msgid "Failed to open DVD device '%s'."
msgstr "\"%s\" idarə avadanlığı bağlana bilmədi."

msgid "Failed to set PGC based seeking."
msgstr ""

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""

#, fuzzy
msgid "Could not read DVD."
msgstr "\"%s\" faylına yazıla bilmədi."

#, fuzzy
msgid "No file name specified for writing."
msgstr "Fayl adı verilməyib."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "\"%s\" faylı yazma üçün açıla bilmədi."

msgid "Internal data stream error."
msgstr ""

#, c-format
msgid "Could not write to file \"%s\"."
msgstr "\"%s\" faylına yazıla bilmədi."

msgid "Internal data flow error."
msgstr ""

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "\"%s\" avadanlığı mövcud deyil."

#, fuzzy, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "\"%s\" idarə avadanlığı bağlana bilmədi."

#, fuzzy, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "\"%s\" avadanlığından kifayət qədər bufferlər alına bilmədi."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "\"%s\" faylı oxuma üçün açıla bilmədi."

#~ msgid "Could not open device \"%s\" for reading and writing."
#~ msgstr "\"%s\" avadanlığı oxuma və yazma üçün açıla bilmədi."

#~ msgid "Device \"%s\" is not a capture device."
#~ msgstr "\"%s\" avadanlığı capture avadanlığı deyil."

#~ msgid "Could not write to device \"%s\"."
#~ msgstr "\"%s\" avadanlığına yazıla bilmədi."

#~ msgid "Could not get buffers from device \"%s\"."
#~ msgstr "\"%s\" avadanlığından bufferlər alına bilmədi."

#~ msgid "Could not open control device \"%s\" for writing."
#~ msgstr "\"%s\" idarə avadanlığı yazma üçün açıla bilmədi."

#~ msgid "Could not configure audio device \"%s\"."
#~ msgstr "\"%s\" audio avadanlığı quraşdırıla bilmədi."

#~ msgid "Could not set audio device \"%s\" to %d Hz."
#~ msgstr "\"%s\" audio avadanlığı %d Hz-ə keçirilə bilmədi."

#~ msgid "Could not close audio device \"%s\"."
#~ msgstr "\"%s\" audio avadanlığı bağlana bilmədi."

#~ msgid "Could not open video device \"%s\" for writing."
#~ msgstr "\"%s\" video avadanlığı yazma üçün açıla bilmədi."

#~ msgid "Could not close video device \"%s\"."
#~ msgstr "\"%s\" video avadanlığı bağlana bilmədi."

#~ msgid "Error closing file \"%s\"."
#~ msgstr "\"%s\" faylı bağlana bilmədi."

#~ msgid "No or invalid input audio, AVI stream will be corrupt."
#~ msgstr "Səhv ya da olmayan audio girişi, AVI yayımı pozulacaqdır."

#~ msgid "OSS device \"%s\" is already in use by another program."
#~ msgstr "\"%s\" OSS avadanlığı başqa bir proqram tərəfindən istifadədədir."

#~ msgid "Could not access device \"%s\", check its permissions."
#~ msgstr "\"%s\" avadanlığına yetişə bilmədi, səlahiyyətlərini yoxlayın."

#~ msgid "Could not open device \"%s\" for writing."
#~ msgstr "\"%s\" avadanlığı yazma üçün açıla bilmədi."

#~ msgid "Could not open device \"%s\" for reading."
#~ msgstr "\"%s\" avadanlığı oxuma üçün açıla bilmədi."

#~ msgid "Synth"
#~ msgstr "Sint"

#~ msgid "CD"
#~ msgstr "CD"

#~ msgid "Mixer"
#~ msgstr "Mikser"

#~ msgid "PCM-2"
#~ msgstr "PCM-2"

#~ msgid "In-gain"
#~ msgstr "Giriş-gain"

#~ msgid "Line-1"
#~ msgstr "Xətd-1"

#~ msgid "Line-2"
#~ msgstr "Xətd-2"

#~ msgid "Line-3"
#~ msgstr "Xətd-3"

#~ msgid "Digital-2"
#~ msgstr "Dijital-2"

#~ msgid "Digital-3"
#~ msgstr "Dijital-3"

#~ msgid "Phone-in"
#~ msgstr "Telefon-girişi"

#~ msgid "Phone-out"
#~ msgstr "Telefon-çıxışı"

#~ msgid "Radio"
#~ msgstr "Radio"

#~ msgid "Could not open CD device for reading."
#~ msgstr "CD avadanlığı oxuma üçün açıla bilmədi."

#~ msgid "Could not open vfs file \"%s\" for reading."
#~ msgstr "\"%s\" vfs faylı oxuma üçün açıla bilmədi."

#, fuzzy
#~ msgid "No filename given."
#~ msgstr "Fayl adı verilməyib."

#, fuzzy
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "\"%s\" vfs faylı yazma üçün açıla bilmədi."

#, fuzzy
#~ msgid "No filename given"
#~ msgstr "Fayl adı verilməyib."

#~ msgid "Could not close vfs file \"%s\"."
#~ msgstr "\"%s\" vfs faylı bağlana bilmədi."

#~ msgid "No device specified."
#~ msgstr "Avadanlıq bildirilməyib."

#~ msgid "Device is not open."
#~ msgstr "Avadanlıq açıq deyil."

#~ msgid "Device is open."
#~ msgstr "Avadanlıq açıqdır."
