# translation of gst-plugins-ugly-1.0.3.po to Turkish
# This file is put in the public domain.
# Server Acim <sacim@kde.org.tr>, 2009.
# Server Acim <sacim@kde.org.tr>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly-1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2018-10-02 23:04+0100\n"
"PO-Revision-Date: 2012-12-01 01:19+0200\n"
"Last-Translator: Server Acim <serveracim@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"

msgid "Could not read from CD."
msgstr "CD okuyamıyor."

msgid "Could not open CD device for reading."
msgstr "Okumak için CD aygıtını açamıyor."

msgid "Disc is not an Audio CD."
msgstr "Bu disk bir Ses CD'si değil."

msgid "Could not open DVD"
msgstr "DVD açılamıyor"

#, c-format
msgid "Could not open DVD title %d"
msgstr "DVD başlığı açılamıyor %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Bu dosyalara okunamadı:bölüm %d ve DVD başlığı %d"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"DVD başlığı açılamadı %d. Bu öğede etkileşimli Interactive başlıklar "
"desteklenmiyor"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"DVD okunamıyor. Bunun sebebi, DVD'nin şifrelenmiş olması veya DVD şifre "
"çzöme kitaplığının kurulu olmaması olabilir."

msgid "Could not read DVD."
msgstr "DVD okunamıyor."

msgid "This stream contains no data."
msgstr "Akış veri içermiyor."

#~ msgid ""
#~ "Failed to configure LAME mp3 audio encoder. Check your encoding "
#~ "parameters."
#~ msgstr ""
#~ "LAME mp3 kodlayıcı yapılandırılamadı. Kodlama parametrelerinizi "
#~ "denetleyiniz."

#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "İstenen bit oranı %d kbit/s bu özellik için '%s' onaylanmadı. Bu yüzden "
#~ "bit oranı şuna dönüştürüldü %d kbit/s."

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "TwoLAME kodlayıcı yapılandırılamadı. Kodlama parametrelerinizi "
#~ "denetleyiniz."

#~ msgid "Internal data stream error."
#~ msgstr "İç veri akış hatası."

#~ msgid "Invalid title information on DVD."
#~ msgstr "DVD'de geçersiz başlık bilgisi."

#~ msgid "Could not read title information for DVD."
#~ msgstr "DVD'deki başlık bilgisi okunamıyor."

#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "DVD aygıtı açılamadı '%s'."

#~ msgid "Failed to set PGC based seeking."
#~ msgstr "PGC tabanlı arama ayarlanamadı."
