# 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: 2018-05-17 13:26+0100\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 "This stream contains no data."
msgstr "Este fluxo não contém dados."

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

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