# 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: 2016-11-17 15:03+0200\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 "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 "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."

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