# 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-2016.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.10.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-05-04 15:09+0300\n"
"PO-Revision-Date: 2016-11-14 20:38+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-Bugs: Report translation errors to the Language-Team address.\n"

msgid "failed to draw pattern"
msgstr "gagal menggambar pola"

msgid "A GL error occured"
msgstr "Sebuah galat GL terjadi"

msgid "format wasn't negotiated before get function"
msgstr "format tidak dinegosiasikan sebelum mendapat fungsi"

msgid "OpenCV failed to load template image"
msgstr "OpenCV gagal memuat templat gambar"

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 "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 "Elemen Digitalzoom tidak dapat dibuat"

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 "Couldn't download fragments"
msgstr "Tak bisa mengunduh fragmen."

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

#, 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 channel configuration file"
msgstr "Tak bisa temukan berkas konfigurasi kanal"

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

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

#, c-format
msgid "No properties for channel '%s'"
msgstr "Tak ada properti untuk kanal ‘%s’"

#, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Gagal mengatur properti untuk kanal '%s'"

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Tak bisa temukan berkas konfigurasi kanal: ‘%s’"

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

#~ 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 "No file name specified for writing."
#~ msgstr "Tak ada nama berkas yang ditentukan untuk ditulis."

#~ 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."

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

#~ 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\"."

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