# Maltese translation for gst-plugins-bad.
# This file is distributed under the same license as the gst-plugins-bad package.
# NAME OF AUTHOR <michelbugeja@rabatmalta.com>, 2008.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad-0.10.8.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-11-01 17:49+0200\n"
"PO-Revision-Date: 2008-10-26 20:27+0100\n"
"Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n"
"Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
"Language: mt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Maltese\n"
"X-Poedit-Country: MALTA\n"
"X-Poedit-SourceCharset: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

msgid "failed to draw pattern"
msgstr ""

msgid "A GL error occured"
msgstr ""

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 "Ma stajtx naqra informazzjoni fuq it-titlu tad-DVD."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Problema biex niftaħ apparat tad-DVD '%s'."

msgid "Failed to set PGC based seeking."
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 "Ma stajtx naqra informazzjoni fuq it-titlu tad-DVD."

msgid "This file contains no playable streams."
msgstr ""

#, fuzzy
msgid "Could not open sndfile stream for reading."
msgstr "Ma nistax naqra mill-fajl \"%s\"."

msgid "Could not establish connection to sndio"
msgstr ""

msgid "Failed to query sndio capabilities"
msgstr ""

#, fuzzy
msgid "Could not configure sndio"
msgstr "Ma nistax naqra mill-fajl \"%s\"."

#, fuzzy
msgid "Could not start sndio"
msgstr "Ma stajtx naqra informazzjoni fuq it-titlu tad-DVD."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""

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

msgid "Subpicture format was not configured before data flow"
msgstr ""

msgid "Failed to get fragment URL."
msgstr ""

msgid "Couldn't download fragments"
msgstr ""

msgid "Internal data stream error."
msgstr "Internal data stream error."

msgid "No file name specified for writing."
msgstr "L-ebda isem speċifikat biex nikteb."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Ma nistax niftaħ fajl \"%s\" biex nikteb."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Apparat \"%s\" ma jeżistiex."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Ma nistax niftaħ apparat frontend \"%s\"."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Ma nistax inġib is-settings mill-apparat frontend \"%s\"."

#, fuzzy, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Ma nistax inġib is-settings mill-apparat frontend \"%s\"."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Ma nistax naqra mill-fajl \"%s\"."

#, fuzzy
msgid "Couldn't find channel configuration file"
msgstr "Virtual mixer channel configuration"

#, fuzzy, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Virtual mixer channel configuration"

#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr ""

#, c-format
msgid "No properties for channel '%s'"
msgstr ""

#, fuzzy, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Problema biex niftaħ apparat tad-DVD '%s'."

#, fuzzy, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Virtual mixer channel configuration"

msgid "Channel configuration file doesn't contain any channels"
msgstr ""

#~ msgid "Internal data flow error."
#~ msgstr "Internal data flow error."

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Ma nistax nikteb fil-fajl \"%s\". "

#~ msgid "Internal clock error."
#~ msgstr "Internal clock error."

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Ma nistax naghmel il-konfigurazzjoni ta' TwoLAME encoder.  Iċċekkja "
#~ "parametri tal-encoding."

#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "Il-bitrate rikjesta ta' %d kbit/s għal-property '%s' mhux permessa. Il-"
#~ "bitrate ġiet mibdula għal %d kbit/s. "

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

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

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

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

#~ msgid "Green connector function"
#~ msgstr "Connector function aħdar"

#~ msgid "Green front panel connector function"
#~ msgstr "Front panel connector function aħdar"

#~ msgid "Pink connector function"
#~ msgstr "Connector function roża"

#~ msgid "Pink front panel connector function"
#~ msgstr "Front panel connector function roża"

#~ msgid "Blue connector function"
#~ msgstr "Connector function blu"

#~ msgid "Blue front panel connector function"
#~ msgstr "Front panel connector function blu"

#~ msgid "Orange connector function"
#~ msgstr "Connector function oranġjo"

#~ msgid "Orange front panel connector function"
#~ msgstr "Front panel connector function oranġjo"

#~ msgid "Black connector function"
#~ msgstr "Connector function iswed"

#~ msgid "Black front panel connector function"
#~ msgstr "Front panel connector function iswed"

#~ msgid "Gray connector function"
#~ msgstr "Connector function griż"

#~ msgid "Gray front panel connector function"
#~ msgstr "Front panel connector function griż"

#~ msgid "White connector function"
#~ msgstr "Connector function abjad"

#~ msgid "White front panel connector function"
#~ msgstr "Front panel connector function abjad"

#~ msgid "Red connector function"
#~ msgstr "Connector function aħmar"

#~ msgid "Red front panel connector function"
#~ msgstr "Front panel connector function aħmar"

#~ msgid "Yellow connector function"
#~ msgstr "Connector function isfar"

#~ msgid "Yellow front panel connector function"
#~ msgstr "Front panel connector function isfar"
