# Latvain translation of gst-plugins
# This file is put in the public domain.
# Arvis Lācis <arvis.lacis@inbox.lv>, 2009.
# Rihards Prieditis <rprieditis@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2013-12-26 17:53+0100\n"
"PO-Revision-Date: 2011-09-02 12:04-0000\n"
"Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"

msgid "Could not read from CD."
msgstr "Nevar nolasīt no CD."

msgid "Could not open CD device for reading."
msgstr "Nevarēja atvērt CD ierīci lasīšanai."

msgid "Disc is not an Audio CD."
msgstr "Disks nav Audio CD."

msgid "Could not open DVD"
msgstr "Nevar atvērt DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Nevar atvērt DVD virsrakstu %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Neizdevās pāriet uz %d nodaļu DVD virsrakstā %d"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Nevar atvērt DVD virsrakstu %d. Šis elements nenodrošina interaktīvos "
"virsrakstus."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Nevarēja nolasīt DVD. Iespējams, ka DVD ir šifrēts un DVD atšifrēšanas "
"bibliotēka nav instalēta."

msgid "Could not read DVD."
msgstr "Nevar nolasīt  DVD."

#, fuzzy
msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr "Neizdevās uzstādīt LAME kodētāju. Pārbaudiet jūsu kodējuma parametrus."

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr ""
"Pieprasītais straumēšanas ātrums %d kbiti/s nepieciešamajai īpašībai \"%s\" "
"nav atļauts. Straumēšanas ātrums tika mainīts uz %d kbitiem/s."

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr ""
"Nezidevās uzstādīt TwoLAME kodētāju. Pārbaudiet jūsu kodējuma parametrus."

msgid "This stream contains no data."
msgstr "Šī straume nesatur datus."

msgid "Internal data stream error."
msgstr "Iekšējās datu plūsmas kļūda."

#~ msgid "Invalid title information on DVD."
#~ msgstr "Nederīga DVD virsraksta informācija."

#~ msgid "Could not read title information for DVD."
#~ msgstr "Nevarēja nolasīt virsrakstu informāciju no DVD."

#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "Neizdevās atvērt DVD ierīci \"%s\"."

#~ msgid "Failed to set PGC based seeking."
#~ msgstr "Neizdevās uzstādīt PCG balstīto meklēšanu."
