# Portuguese translations for R package.
# Copyright (C) 2005 The R Foundation
# This file is distributed under the same license as the R package.
# Fernando Henrique Ferraz P. da Rosa <feferraz@ime.usp.br>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: R 2.3.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2014-08-03 12:17\n"
"PO-Revision-Date: 2011-03-26 08:57-0300\n"
"Last-Translator: Fernando Henrique <pessoal@fernandohrosa.com.br>\n"
"Language-Team: http://www.feferraz.net/br/P/Projeto_Traducao_R_Portugues\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"
"X-Generator: Pootle 2.0.5\n"

msgid "cannot handle object of mode '%s'"
msgstr "não é possível lidar com objeto de modo '%s'"

msgid "cannot change names on Tcl array"
msgstr "não é possível mudar nomes em um array Tcl"

msgid "cannot set length of Tcl array"
msgstr "não é possível especificar o comprimento de array Tcl"

msgid "Tcl package '%s' not found"
msgstr "pacote Tcl '%s' não encontrado"

msgid "The tkGUI is not available under Windows"
msgstr "A interface tkGUI não está disponível no Windows"

msgid "File"
msgstr "Arquivo"

msgid "Demos"
msgstr "Demonstrações"

msgid "Packages"
msgstr "Pacotes"

msgid "Help"
msgstr "Ajuda"

msgid "Source R code"
msgstr "Carregar código R"

msgid "Quit"
msgstr "Sair"

msgid "Save workspace"
msgstr "Salvar área de trabalho"

msgid "Don't save workspace"
msgstr "Não salvar área de trabalho"

msgid "t test"
msgstr "teste t"

msgid "Density"
msgstr "Densidade"

msgid "Interactive linear fitting"
msgstr "Ajuste interativo linear"

msgid "R FAQ"
msgstr "R FAQ"

msgid "Load"
msgstr "Carregar"

msgid "Go get them!"
msgstr "Vá pegá-los"

msgid "Load packages"
msgstr "Carregar pacotes"

msgid "Install packages from CRAN"
msgstr "Instalar pacotes via CRAN"

msgid "Help topic:"
msgstr "Tópico da ajuda:"

msgid "Manuals in PDF format"
msgstr "Manuais em formato PDF"

msgid "OK"
msgstr "OK"

msgid "Cancel"
msgstr "Cancelar"

#, fuzzy
msgid "'pb' is not from class %s"
msgstr "'pb' não é da classe \"tkProgressBar\""

msgid "'filters' must be a 2-column character matrix"
msgstr "'filters' deve ser uma matriz caractere com 2 colunas"

msgid "Tcl/Tk support is not available on this system"
msgstr "Suporte a Tcl/Tk não está disponível neste sistema"

msgid "Tcl/Tk support files were not installed"
msgstr "Arquivos de suporte a Tcl/Tk não foram instalados"

#~ msgid "Loading Tcl/Tk interface ..."
#~ msgstr "Carregando a interface Tcl/Tk ..."

#~ msgid "done"
#~ msgstr "pronto"
