# 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: 2016-06-09 11:24+0300\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 from CD."
msgstr "\"%s\" faylına yazıla bilmədi."

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

#, fuzzy
msgid "Disc is not an Audio CD."
msgstr "Avadanlıq açıq deyil."

msgid "Could not open DVD"
msgstr ""

#, fuzzy, c-format
msgid "Could not open DVD title %d"
msgstr "\"%s\" vfs faylı bağlana bilmədi."

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr ""

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
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."

msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr ""

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr ""

msgid "This stream contains no data."
msgstr ""

msgid "Internal data stream error."
msgstr ""

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

#, fuzzy
#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "\"%s\" vfs faylı bağlana bilmədi."

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

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

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

#~ msgid "No filename specified."
#~ msgstr "Fayl adı verilməyib."

#~ 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 "Could not open audio device \"%s\" for writing."
#~ msgstr "\"%s\" audio avadanlığı yazma üçün açıla 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 close control device \"%s\"."
#~ msgstr "\"%s\" idarə 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 "Could not write to device \"%s\"."
#~ msgstr "\"%s\" avadanlığına yazıla bilmədi."

#~ 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 "Device \"%s\" does not exist."
#~ msgstr "\"%s\" avadanlığı mövcud deyil."

#~ 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 "Volume"
#~ msgstr "Səs"

#~ msgid "Bass"
#~ msgstr "Bas"

#~ msgid "Treble"
#~ msgstr "İncə"

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

#~ msgid "PCM"
#~ msgstr "PCM"

#~ msgid "Speaker"
#~ msgstr "Spiker"

#~ msgid "Line-in"
#~ msgstr "Xətd-giriş"

#~ msgid "Microphone"
#~ msgstr "Mikrofon"

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

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

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

#~ msgid "Record"
#~ msgstr "Qeyd"

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

#~ msgid "Out-gain"
#~ msgstr "Çıxış-gain"

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

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

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

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

#~ 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 "Video"
#~ msgstr "Video"

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

#~ msgid "Monitor"
#~ msgstr "Monitor"

#, fuzzy
#~ msgid "PC Speaker"
#~ msgstr "Spiker"

#~ 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 "No device specified."
#~ msgstr "Avadanlıq bildirilməyib."

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

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

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

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

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