# Indonesian translations for gst-plugins-bad package.
# This file is put in the public domain.
# Andika Triwidada <andika@gmail.com>, 2013.
# Andhika Padmawan <andhika.padmawan@gmail.com>, 2009-2014.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-03-24 11:27+0200\n"
"PO-Revision-Date: 2014-05-31 22:16+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.7\n"

msgid "format wasn't negotiated before get function"
msgstr ""

msgid "OpenCV failed to load template image"
msgstr ""

msgid "Could not read title information for DVD."
msgstr "Tak dapat membaca informasi judul untuk DVD."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Gagal membuka divais DVD '%s'."

msgid "Failed to set PGC based seeking."
msgstr "Gagal mengatur pencarian berbasis PGC."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Tak dapat membaca DVD. Hal ini kemungkinan karena DVD terenkripsi dan "
"pustaka dekripsi tidak diinstal."

msgid "Could not read DVD."
msgstr "Tak dapat membaca DVD."

msgid "This file contains no playable streams."
msgstr "Berkas ini tidak memuat stream yang dapat dimainkan."

msgid "Could not open sndfile stream for reading."
msgstr "Tak dapat membuka stream sndfile untuk dibaca."

msgid "Could not establish connection to sndio"
msgstr "Tak bisa menjalin koneksi ke sndio"

msgid "Failed to query sndio capabilities"
msgstr "Gagal mengkuiri kapabilitas sndio"

msgid "Could not configure sndio"
msgstr "Tak dapat menata sndio"

msgid "Could not start sndio"
msgstr "Tak dapat memulai sndio"

msgid "Internal data flow error."
msgstr "Galat arus data internal."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"Berkas yang dihasilkan memiliki waktu preroll lebih besar daripada durasi "
"streamnya"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Kurang elemen '%s' - periksa instalasi GStreamer Anda."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr "Lokasi berkas diisi NULL, harap isi dengan nama berkas yang valid"

msgid "Digitalzoom element couldn't be created"
msgstr ""

msgid "Subpicture format was not configured before data flow"
msgstr "Format subgambar tak ditata sebelum aliran data"

msgid "Failed to get fragment URL."
msgstr "Gagal mendapat URL fragmen."

msgid "Internal data stream error."
msgstr "Galat arus data internal."

msgid "Couldn't download fragments"
msgstr "Tak bisa mengunduh fragmen."

msgid "No file name specified for writing."
msgstr "Tak ada nama berkas yang ditentukan untuk ditulis."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""
"Nama berkas \"%s\" yang diberikan tak bisa dikonversi ke enkoding nama "
"berkas lokal."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Tak dapat membuka berkas \"%s\" untuk ditulis."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Divais \"%s\" tak ada."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Tak dapat membuka divais ujung-depan \"%s\"."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Tak dapat mendapatkan pengaturan dari divais ujung-depan \"%s\"."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr ""
"Tak dapat menghitung sistem pengantaran dari divais ujung-depan \"%s\"."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Tak dapat membuka berkas \"%s\" untuk dibaca."

msgid "Couldn't find DVB channel configuration file"
msgstr "Tak bisa temukan berkas konfigurasi kanal DVB"

#, c-format
msgid "Couldn't load DVB channel configuration file: %s"
msgstr "Tak bisa memuat berka konfigurasi kanal DVB: %s"

msgid "DVB channel configuration file doesn't contain any channels"
msgstr "Berkas konfigurasi kanal DVB tak memuat kanal apapun"

#, c-format
msgid "Couldn't find details for DVB channel %s"
msgstr "Tak bisa temukan rincian untuk kanal DVB %s"

#~ msgid "Couldn't get the Manifest's URI"
#~ msgstr "Tak bisa memperoleh URI Manifes"

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Tak dapat menulis ke berkas \"%s\"."
