# Romanian translation for gst-plugins-ugly
# This file is distributed under the same license as the gst-plugins-ugly package.
# Lucian Adrian Grijincu <lucian.grijincu@gmail.com>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 0.10.14.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-01-12 14:45+0200\n"
"PO-Revision-Date: 2010-08-16 03:32+0300\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
"Language: ro\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==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);;\n"
"X-Generator: Virtaal 0.6.1\n"

msgid "Could not read from CD."
msgstr "Nu s-a putut citi de pe CD."

msgid "Could not open CD device for reading."
msgstr "Nu s-a putut deschide dispozitivul CD pentru citire."

msgid "Disc is not an Audio CD."
msgstr "Discul nu este un CD audio."

msgid "Could not open DVD"
msgstr "Nu s-a putut deschide DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Nu s-a putut deschide titlul DVD %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Nu s-a putut sări la capitolul %d al titlului DVD %d"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Nu s-a putut deschide titlul DVD %d. Titlurile interactive nu sunt suportate "
"de acest element"

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 "Nu s-a putut deschide DVD"

#, fuzzy
msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""
"Nu s-a putut configura codorul TwoLAME. Verificați parametrii de codare."

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr ""
"Rata de biți solicitată de %d kbiți/s pentru proprietatea „%s” nu este "
"permisă. Rata de biți a fost modificată la %d kbiți/s."

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr ""
"Nu s-a putut configura codorul TwoLAME. Verificați parametrii de codare."

msgid "This stream contains no data."
msgstr "Fluxul acesta nu conține date."

#~ msgid "Internal data stream error."
#~ msgstr "Eroare internă a fluxului de date."

#, fuzzy
#~ msgid ""
#~ "Failed to configure LAMEMP3ENC encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Nu s-a putut configura codorul LAME. Verificați parametrii de codare."
