# Brazilian Portuguese translation of gst-plugins-ugly.
# This file is distributed under the same license as the gst-plugins-ugly package.
# Copyright (C) 2007-2013 Free Software Foundation, Inc.
# Raphael Higino <In memoriam>, 2007.
# Fabrício Godoy <skarllot@gmail.com>, 2008-2015.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly-1.7.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-01-12 14:45+0200\n"
"PO-Revision-Date: 2015-12-28 19:54-0200\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
"net>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

msgid "Could not read from CD."
msgstr "Não foi possível ler as informações do CD."

msgid "Could not open CD device for reading."
msgstr "Não foi possível abrir o dispositivo de CD para leitura."

msgid "Disc is not an Audio CD."
msgstr "O disco não é um CD de áudio."

msgid "Could not open DVD"
msgstr "Não foi possível abrir o DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Não foi possível abrir o título %d do DVD"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Falha ao avançar para o capítulo %d do título %d do DVD"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Não foi possível abrir o título %d do DVD. Não há suporte a títulos "
"interativos por este elemento"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Não foi possível ler o DVD. O motivo pode ser que o DVD está criptografado e "
"uma biblioteca de descriptografia de DVD não está instalada."

msgid "Could not read DVD."
msgstr "Não foi possível ler o DVD."

msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""
"Falha ao configurar o codificador de áudio MP3 LAME. Verifique seus "
"parâmetros de codificação."

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr ""
"A taxa de bits, %d kbits/s, requisitada pela propriedade \"%s\" não é "
"permitida. A taxa de bits foi alterada para %d kbits/s."

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr ""
"Falha ao configurar o codificador TwoLAME. Verifique seus parâmetros de "
"codificação."

msgid "This stream contains no data."
msgstr "Este fluxo não contém dados."

#~ msgid "Internal data stream error."
#~ msgstr "Erro interno no fluxo de dados."

#~ msgid "Invalid title information on DVD."
#~ msgstr "As informações de título no DVD são inválidas."

#~ msgid "Could not read title information for DVD."
#~ msgstr "Não foi possível ler as informações de título do DVD."

#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "Falha ao abrir o dispositivo de DVD \"%s\"."

#~ msgid "Failed to set PGC based seeking."
#~ msgstr "Falha ao definir busca baseada em PGC."

#~ msgid "This file is encrypted and cannot be played."
#~ msgstr "Este arquivo está criptografado e não pôde ser reproduzido."
