# Brazilian Portuguese translation of PowerTOP strings.
# Copyright (C) 2007-2008
# This file is distributed under the same license as the PowerTOP package.
# Nelson A. de Oliveira <naoliv@debian.org>, 2007-2008.
# Carlos R. Mafra <crmafra@gmail.com>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP 1.11\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-10-28 21:46-0200\n"
"PO-Revision-Date: 2008-12-12 00:36-0200\n"
"Last-Translator: Nelson A. de Oliveira <naoliv@debian.org>\n"
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: BRAZIL\n"

#: powertop.c:251
#: powertop.c:254
#, c-format
msgid "    <interrupt> : %s"
msgstr "  <interrupção> : %s"

#: powertop.c:1010
msgid "    <interrupt> : extra timer interrupt"
msgstr "    <interrupção> : interrupção extra do temporizador"

#: powertop.c:249
#, c-format
msgid "   <kernel IPI> : %s"
msgstr "   <kernel IPI> : %s"

#: powertop.c:765
#, c-format
msgid "  -d, --dump            read wakeups once and print list of top offenders\n"
msgstr "  -d, --dump            lê as ativações uma vez e exibe a lista das maiores causas\n"

#: powertop.c:767
#, c-format
msgid "  -h, --help            Show this help message\n"
msgstr "  -h, --help            Exibe esta mensagem de ajuda\n"

#: powertop.c:766
#, c-format
msgid "  -t, --time=DOUBLE     default time to gather data in seconds\n"
msgstr "  -t, --time=DOUBLE     tempo padrão para obter os dados, em segundos\n"

#: powertop.c:768
#, c-format
msgid "  -v, --version         Show version information and exit\n"
msgstr "  -v, --version         Exibe informação da versão e sai\n"

#: misctips.c:174
msgid " A - Turn AC97 powersave on "
msgstr " A - Ativar modo de economia de energia do AC97 "

#: bluetooth.c:146
msgid " B - Turn Bluetooth off "
msgstr " B - Desligar Bluetooth "

#: misctips.c:266
msgid " C - Power aware CPU scheduler "
msgstr " C - Escalonador de CPU voltado à economia de energia "

#: wireless.c:322
msgid " I - disable WIFI Radio "
msgstr " I - desabilitar rádio WIFI "

#: process.c:84
#, c-format
msgid " K - kill %s "
msgstr " K - terminar %s "

#: misctips.c:80
msgid " L - enable Laptop mode "
msgstr " L - habilitar modo Laptop "

#: misctips.c:111
msgid " N - Turn NMI watchdog off "
msgstr " N - Desligar NMI watchdog "

#: cpufreq.c:118
msgid " O - enable Ondemand governor "
msgstr " O - habilitar regulador Ondemand "

#: display.c:108
msgid " Q - Quit "
msgstr " Q - Sair "

#: display.c:109
msgid " R - Refresh "
msgstr " R - Atualizar "

#: sata.c:104
msgid " S - SATA Link Power Management "
msgstr " S - Gerenciamento de energia SATA "

#: misctips.c:203
msgid " T - enable noatime "
msgstr " T - habilitar noatime "

#: urbnum.c:212
#: usb.c:121
msgid " U - Enable USB suspend "
msgstr " U - Habilitar suspensão USB "

#: xrandr.c:78
msgid " V - Disable TV out "
msgstr " V - Desabilitar saída de TV "

#: wireless.c:311
#: wireless.c:317
msgid " W - Enable wireless power saving "
msgstr " W - Habilitar modo de economia de energia da rede wireless "

#: misctips.c:301
msgid " W - Increase Writeback time "
msgstr " W - Aumentar tempo de escrita "

#: ethernet.c:131
msgid " W - disable Wake-On-Lan "
msgstr " W - desabilitar Wake-On-Lan "

#: cpufreqstats.c:80
#, c-format
msgid "%6.2f Ghz"
msgstr "%6.2f Ghz"

#: cpufreqstats.c:77
#, c-format
msgid "%6lli Mhz"
msgstr "%6lli Mhz"

#: cpufreqstats.c:74
#, c-format
msgid "%9lli"
msgstr "%9lli"

#: powertop.c:921
#, c-format
msgid "%s\t%5.1fms (%4.1f%%)\n"
msgstr "%s\t%5.1fms (%4.1f%%)\n"

#: display.c:205
#, c-format
msgid "(long term: %3.1fW,/%3.1fh)"
msgstr "(a longo prazo: %5.1f W, %3.1fh)"

#: display.c:301
msgid "(which is CONFIG_DEBUG_KERNEL=y in the config file)\n"
msgstr "(que é CONFIG_DEBUG_KERNEL=y no arquivo config)\n"

#: powertop.c:898
#, c-format
msgid "< Detailed C-state information is not available.>\n"
msgstr "< Informação detalhada do estado-C não está disponível >\n"

#: powertop.c:978
msgid "<kernel core>"
msgstr "<núcleo do kernel>"

#: powertop.c:974
#: powertop.c:976
msgid "<kernel module>"
msgstr "<módulo do kernel>"

#: urbnum.c:207
#, c-format
msgid ""
"A USB device is active %4.1f%% of the time:\n"
"%s"
msgstr ""
"Um dispositivo USB está ativo %4.1f%% do tempo:\n"
"%s"

#: urbnum.c:176
msgid "Active  Device name"
msgstr "Nome do dispositivo ativo"

#: powertop.c:907
#, c-format
msgid "C0 (cpu running)        (%4.1f%%)\n"
msgstr "C0 (cpu ocupada)        (%4.1f%%)\n"

#: powertop.c:904
#, c-format
msgid "Cn\t          Avg residency\n"
msgstr "Cn\t    Residência média\n"

#: powertop.c:842
#, c-format
msgid "Collecting data for %i seconds \n"
msgstr "Coletando dados por %i segundos \n"

#: ethernet.c:128
msgid ""
"Disable Ethernet Wake-On-Lan with the following command:\n"
"  ethtool -s eth0 wol d \n"
"Wake-on-Lan keeps the phy active, this costs power."
msgstr ""
"Desabilite Ethernet Wake-On-Lan com o seguinte comando:\n"
"  ethtool -s eth0 wol d \n"
"Wake-on-Lan mantém o dispositivo ativo, que utiliza energia."

#: powertop.c:1125
msgid ""
"Disable the SE-Alert software by removing the 'setroubleshoot-server' rpm\n"
"SE-Alert alerts you about SELinux policy violations, but also\n"
"has a bug that wakes it up 10 times per second."
msgstr ""
"Desabilite o programa SE-Alert removendo o rpm 'setroubleshoot-server'\n"
"SE-Alert alerta você sobre violações da política SELinux, mas também\n"
"possui um bug que o ativa 10 vezes por segundo."

#: display.c:304
msgid "No detailed statistics available; PowerTOP needs root privileges for that\n"
msgstr "Estatísticas detalhadas indisponíveis; PowerTOP necessita de privilégios de root para isso\n"

#: display.c:299
msgid "No detailed statistics available; please enable the CONFIG_TIMER_STATS kernel option\n"
msgstr "Estatísticas detalhadas indisponíveis; por favor, habilite a opção CONFIG_TIMER_STATS do kernel\n"

#: display.c:302
msgid "Note: this is only available in 2.6.21 and later kernels\n"
msgstr "Nota: isto está disponível apenas em kernels 2.6.21 ou superiores\n"

#: cpufreqstats.c:101
#, c-format
msgid "P-states (frequencies)\n"
msgstr "Estados-P (frequências)\n"

#: powertop.c:170
#: powertop.c:254
msgid "PS/2 keyboard/mouse/touchpad"
msgstr "teclado/mouse/touchpad PS/2"

#: display.c:208
#, c-format
msgid "Power usage (5 minute ACPI estimate) : %5.1f W (%3.1f hours left)"
msgstr "Uso de energia (estimativa de 5 minutos por ACPI): %5.1f W (%3.1f hrs restantes)"

#: display.c:201
#, c-format
msgid "Power usage (ACPI estimate): %3.1fW (%3.1f hours)"
msgstr "Uso de energia (estimado por ACPI): %5.1f W (%3.1f horas)"

#: display.c:238
#, c-format
msgid "Power usage: %3.1fW (%3.1f hours)"
msgstr "Uso de energia: %3.1fW (%3.1f horas)"

#: powertop.c:841
#, c-format
msgid "PowerTOP needs to be run as root to collect enough information\n"
msgstr "PowerTOP necessita ser executado como root para coletar informações suficientes\n"

#: urbnum.c:175
msgid "Recent USB suspend statistics"
msgstr "Estatísticas recentes da suspensão USB"

#: powertop.c:1119
msgid ""
"Suggestion: Disable 'hal' from polling your cdrom with:  \n"
"hal-disable-polling --device /dev/cdrom 'hal' is the component that auto-opens a\n"
"window if you plug in a CD but disables SATA power saving from kicking in."
msgstr ""
"Sugestão: Desabilite 'hal' de acessar o seu cdrom com: \n"
"hal-stop-polling --device /dev/cdrom 'hal' é o componente que abre uma janela\n"
"quando você insere um CD, mas desabilita o modo de economia de energia do SATA."

#: powertop.c:1093
#: powertop.c:1097
msgid ""
"Suggestion: Disable or remove 'beagle' from your system. \n"
"Beagle is the program that indexes for easy desktop search, however it's \n"
"not very efficient and costs a significant amount of battery life."
msgstr ""
"Sugestão: Desabilite ou remova 'beagle' do seu sistema. \n"
"Beagle é um programa que cria índices para buscas mais fáceis, no entanto, \n"
"não é muito eficiente e custa uma quantidade significativa da vida da bateria."

#: powertop.c:1106
msgid ""
"Suggestion: Disable or remove 'gnome-power-manager' from your system. \n"
"Older versions of gnome-power-manager wake up far more often than \n"
"needed costing you some power."
msgstr ""
"Sugestão: Desabilite ou remova 'gnome-power-manager' do seu sistema. \n"
"Versões antigas do gnome-power-manager acabam consumindo \n"
"mais energia do que ele iria economizar."

#: powertop.c:1112
msgid ""
"Suggestion: Disable or remove 'pcscd' from your system. \n"
"pcscd tends to keep the USB subsystem out of power save mode\n"
"and your processor out of deeper powersave states."
msgstr ""
"Sugestão: Desabilite ou remova 'pcscd' do seu sistema. \n"
"pcscd tende a manter o subsistema USB fora do modo de economia de energia\n"
"e o seu processador fora de estados mais profundos de economia de energia."

#: powertop.c:1081
msgid ""
"Suggestion: Disable the CONFIG_IRQBALANCE kernel configuration option.\n"
"The in-kernel irq balancer is obsolete and wakes the CPU up far more than needed."
msgstr ""
"Sugestão: Desabilite a opção de configuração do kernel CONFIG_IRQBALANCE.\n"
"O balanceador de irq do kernel é obsoleto e acorda a CPU além do necessário."

#: wireless.c:320
#, c-format
msgid ""
"Suggestion: Disable the unused WIFI radio by executing the following command:\n"
"  echo 1 > %s \n"
msgstr ""
"Sugestão: Desabilite o rádio WIFI não-utilizado executando o seguindo comando:\n"
"  echo 1 > %s \n"

#: bluetooth.c:144
msgid ""
"Suggestion: Disable the unused bluetooth interface with the following command:\n"
"  hciconfig hci0 down ; rmmod hci_usb\n"
"Bluetooth is a radio and consumes quite some power, and keeps USB busy as well.\n"
msgstr ""
"Sugestão: Desabilite a interface bluetooth não utilizada com o seguinte comando:\n"
"  hciconfig hci0 down ; rmmod hci_usb\n"
"Bluetooth é um rádio, consome bastante energia e também mantém o USB ocupado.\n"

#: sata.c:101
msgid ""
"Suggestion: Enable SATA ALPM link power management via: \n"
"  echo min_power > /sys/class/scsi_host/host0/link_power_management_policy\n"
"or press the S key."
msgstr ""
"Sugestão: Habilite o gerenciamento de energia de link SATA ALPM via: \n"
"  echo min_power > /sys/class/scsi_host/host0/link_power_management_policy\n"
"ou pressione a tecla S."

#: usb.c:118
msgid ""
"Suggestion: Enable USB autosuspend by pressing the U key or adding \n"
"usbcore.autosuspend=1 to the kernel command line in the grub config"
msgstr ""
"Sugestão: Habilite a auto-suspensão USB pressionando a tecla U ou adicionando \n"
"usbcore.autosuspend=1 à linha de comando do kernel, na configuração do grub"

#: misctips.c:79
msgid ""
"Suggestion: Enable laptop-mode by executing the following command:\n"
"   echo 5 > /proc/sys/vm/laptop_mode \n"
msgstr ""
"Sugestão: Habilite o laptop-mode executando o seguindo comando:\n"
"   echo 5 > /proc/sys/vm/laptop_mode \n"

#: powertop.c:1069
msgid ""
"Suggestion: Enable the CONFIG_ACPI_BATTERY kernel configuration option.\n"
" This option is required to get power estimages from PowerTOP"
msgstr ""
"Sugestão: Habilite a opção de configuração do kernel CONFIG_ACPI_BATTERY.\n"
" Essa opção é requerida para obter estimativas de energia do PowerTOP"

#: powertop.c:1066
msgid ""
"Suggestion: Enable the CONFIG_CPU_FREQ_GOV_ONDEMAND kernel configuration option.\n"
"The 'ondemand' CPU speed governor will minimize the CPU power usage while\n"
"giving you performance when it is needed."
msgstr ""
"Sugestão: Habilite a opção de config. do kernel CONFIG_CPU_FREQ_GOV_ONDEMAND.\n"
"O regulador 'ondemand' minimizará o consumo de energia da CPU enquanto\n"
"fornece à você performance quando necessário."

#: powertop.c:1083
msgid ""
"Suggestion: Enable the CONFIG_CPU_FREQ_STAT kernel configuration option.\n"
"This option allows PowerTOP to show P-state percentages \n"
"P-states correspond to CPU frequencies."
msgstr ""
"Sugestão: Habilite a opção de configuração do kernel CONFIG_CPU_FREQ_STAT.\n"
"Essa opção permite ao PowerTOP exibir as porcentagens dos estados-P\n"
"Estados-P correspondem às frequências da CPU."

#: powertop.c:1072
msgid ""
"Suggestion: Enable the CONFIG_HPET_TIMER kernel configuration option.\n"
"Without HPET support the kernel needs to wake up every 20 milliseconds for \n"
"some housekeeping tasks."
msgstr ""
"Sugestão: Habilite a opção de configuração do kernel CONFIG_HPET_TIMER.\n"
"Sem suporte ao HPET o kernel necessita acordar a cada 20 milissegundos para \n"
"realizar algumas tarefas de manutenção."

#: powertop.c:1086
msgid ""
"Suggestion: Enable the CONFIG_INOTIFY kernel configuration option.\n"
"This option allows programs to wait for changes in files and directories\n"
"instead of having to poll for these changes"
msgstr ""
"Sugestão: Habilite a opção de configuração do kernel CONFIG_INOTIFY.\n"
"Essa opção permite que os programas esperem por mudanças em arquivos e\n"
"diretórios, ao invés de ficarem verificando por essas mudanças"

#: powertop.c:1068
msgid ""
"Suggestion: Enable the CONFIG_NO_HZ kernel configuration option.\n"
"This option is required to get any kind of longer sleep times in the CPU."
msgstr ""
"Sugestão: Habilite a opção de configuração do kernel CONFIG_NO_HZ.\n"
"Essa opção é requerida para obter tempos maiores de suspensão na CPU."

#: powertop.c:1077
msgid ""
"Suggestion: Enable the CONFIG_SND_AC97_POWER_SAVE kernel configuration option.\n"
"This option will automatically power down your sound codec when not in use,\n"
"and can save approximately half a Watt of power."
msgstr ""
"Sugestão: Habilite a opção de config. do kernel CONFIG_SND_AC97_POWER_SAVE.\n"
"Essa opção irá desligar automaticamente o codec de som quando não em uso,\n"
"e pode salvar aproximadamente meio Watt de energia."

#: powertop.c:1064
msgid ""
"Suggestion: Enable the CONFIG_USB_SUSPEND kernel configuration option.\n"
"This option will automatically disable UHCI USB when not in use, and may\n"
"save approximately 1 Watt of power."
msgstr ""
"Sugestão: Habilite a opção de configuração do kernel CONFIG_USB_SUSPEND.\n"
"Essa opção irá automaticamente desabilitar o UHCI USB quando não estiver em\n"
"uso, e pode salvar aproximadamente 1 Watt de energia."

#: cpufreq.c:116
msgid ""
"Suggestion: Enable the ondemand cpu speed governor for all processors via: \n"
" echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor \n"
msgstr ""
"Sugestão: Habilite o regulador ondemand para todos os processadores via: \n"
" echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor \n"

#: wireless.c:314
#, c-format
msgid ""
"Suggestion: Enable wireless power saving mode by executing the following command:\n"
"  echo 5 > %s \n"
"This will sacrifice network performance slightly to save power."
msgstr ""
"Sugestão: Habilite o modo de economia de energia do wirelles executando:\n"
"  echo 5 > %s \n"
"Isso irá sacrificar um pouco da performance da rede para salvar energia."

#: wireless.c:308
#, c-format
msgid ""
"Suggestion: Enable wireless power saving mode by executing the following command:\n"
"  iwpriv %s set_power 5 \n"
"This will sacrifice network performance slightly to save power."
msgstr ""
"Sugestão: Habilite o modo de economia de energia do wirelles executando:\n"
"  iwpriv %s set_power 5 \n"
"Isso irá sacrificar um pouco da performance da rede para economizar energia."

#: xrandr.c:75
msgid ""
"Suggestion: disable TV out via: \n"
"  xrandr --output TV --off \n"
"or press the V key."
msgstr ""
"Sugestão: desabilite a saída de TV via: \n"
"  xrandr --output TV --off \n"
"ou pressione a tecla V."

#: misctips.c:109
msgid ""
"Suggestion: disable the NMI watchdog by executing the following command:\n"
"   echo 0 > /proc/sys/kernel/nmi_watchdog \n"
"The NMI watchdog is a kernel debug mechanism to detect deadlocks"
msgstr ""
"Sugestão: desabilite o NMI watchdog executando o seguinte comando:\n"
"   echo 0 > /proc/sys/kernel/nmi_watchdog \n"
"O NMI watchdog é um mecanismo de depuração do kernel para detectar deadlocks"

#: misctips.c:172
msgid ""
"Suggestion: enable AC97 powersave mode by executing the following command:\n"
"   echo 1 > /sys/module/snd_ac97_codec/parameters/power_save \n"
"or by passing power_save=1 as module parameter."
msgstr ""
"Sugestão: habilite o modo de economia de energia do AC97 executando:\n"
"   echo 1 > /sys/module/snd_ac97_codec/parameters/power_save \n"
"ou passando power_save=1 como o parâmetro do módulo."

#: misctips.c:137
msgid ""
"Suggestion: enable the HPET (Multimedia Timer) in your BIOS or add \n"
"the kernel patch to force-enable HPET. HPET support allows Linux to \n"
"have much longer sleep intervals."
msgstr ""
"Sugestão: habilite o HPET (Multimedia Timer) em sua BIOS ou adicione o patch \n"
"do kernel para forçar a habilitação do HPET. Suporte ao HPET permite \n"
"que o Linux tenha intervalos bem maiores de suspensão."

#: misctips.c:201
msgid ""
"Suggestion: enable the noatime filesystem option by executing the following command:\n"
"   mount -o remount,noatime /          or by pressing the T key \n"
"noatime disables persistent access time of file accesses, which causes lots of disk IO."
msgstr ""
"Sugestão: habilite a opção do sistema de arquivos noatime executando:\n"
"   mount -o remount,noatime /          ou pressione a tecla T \n"
"noatime desabilita o tempo de acesso dos arquivos, que causa muita E/S no disco."

#: misctips.c:264
msgid ""
"Suggestion: enable the power aware CPU scheduler with the following command:\n"
"  echo 1 > /sys/devices/system/cpu/sched_mc_power_savings\n"
"or by pressing the C key."
msgstr ""
"Sugestão: hab. o escalonador de CPU voltado à economia de energia executando:\n"
"  echo 1 > /sys/devices/system/cpu/sched_mc_power_savings\n"
"ou pressionando a tecla C."

#: misctips.c:297
#, c-format
msgid ""
"Suggestion: increase the VM dirty writeback time from %1.2f to 15 seconds with:\n"
"  echo 1500 > /proc/sys/vm/dirty_writeback_centisecs \n"
"This wakes the disk up less frequently for background VM activity"
msgstr ""
"Sugestão: aumente o tempo de escrita da VM de %1.2f para 15 segundos com:\n"
"  echo 1500 > /proc/sys/vm/dirty_writeback_centisecs \n"
"Isso ativa o disco com menos frequência para atividades de fundo da VM"

#: display.c:300
msgid "This option is located in the Kernel Debugging section of menuconfig\n"
msgstr "Essa opção está localizada na seção Kernel Debugging do menuconfig.\n"

#: display.c:281
msgid "Top causes for wakeups:\n"
msgstr "Maiores causas de ativações:\n"

#: urbnum.c:123
#, c-format
msgid "USB device %4s : %s (%s)"
msgstr "Dispositivo USB %4s : %s (%s)"

#: powertop.c:764
#, c-format
msgid "Usage: powertop [OPTION...]\n"
msgstr "Uso: powertop [OPÇÃO...]\n"

#: display.c:270
#, c-format
msgid "Wakeups-from-idle per second : %4.1f\tinterval: %0.1fs\n"
msgstr "Ativações por segundo: %4.1f\tintervalo: %0.1fs\n"

#: intelcstates.c:152
#, c-format
msgid "Your BIOS reports the following C-states : "
msgstr "Sua BIOS reporta os seguintes estados-C:"

#: intelcstates.c:143
#, c-format
msgid "Your CPU supports the following C-states : "
msgstr "Sua CPU suporta os seguintes estados-C:"

#: display.c:196
#, c-format
msgid "no ACPI power usage estimate available"
msgstr "consumo estimado de energia por ACPI não disponível"

#: display.c:244
#, c-format
msgid "no power usage estimate available"
msgstr "consumo estimado de energia não disponível"

#: powertop.c:377
msgid "polling"
msgstr "polling"

#: powertop.c:774
#, c-format
msgid "powertop version %s\n"
msgstr "powertop versão %s\n"

#~ msgid "< CPU was 100%% busy; no C-states were entered >\n"
#~ msgstr "< A CPU estava 100%% ocupada; não se entrou em nenhum estado-C >\n"

