# Dutch translations for PACKAGE package.
# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Arjan van de Ven <arjan@linux.intel.com>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-12-11 22:36+0100\n"
"PO-Revision-Date: 2007-05-22 10:20-0700\n"
"Last-Translator: Arjan van de Ven <arjan@linux.intel.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

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

#: powertop.c:1010
msgid "    <interrupt> : extra timer interrupt"
msgstr ""

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

#: powertop.c:765
#, c-format
msgid ""
"  -d, --dump            read wakeups once and print list of top offenders\n"
msgstr ""

#: powertop.c:767
#, c-format
msgid "  -h, --help            Show this help message\n"
msgstr ""

#: powertop.c:766
#, c-format
msgid "  -t, --time=DOUBLE     default time to gather data in seconds\n"
msgstr ""

#: powertop.c:768
#, c-format
msgid "  -v, --version         Show version information and exit\n"
msgstr ""

#: misctips.c:174
msgid " A - Turn AC97 powersave on "
msgstr ""

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

#: misctips.c:266
msgid " C - Power aware CPU scheduler "
msgstr ""

#: wireless.c:322
msgid " I - disable WIFI Radio "
msgstr ""

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

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

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

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

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

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

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

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

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

#: xrandr.c:78
msgid " V - Disable TV out "
msgstr ""

#: wireless.c:311 wireless.c:317
msgid " W - Enable wireless power saving "
msgstr ""

#: misctips.c:301
msgid " W - Increase Writeback time "
msgstr ""

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

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

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

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

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

#: display.c:205
#, c-format
msgid "(long term: %3.1fW,/%3.1fh)"
msgstr ""

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

#: powertop.c:898
#, fuzzy, c-format
msgid "< Detailed C-state information is not available.>\n"
msgstr ""
"< Gedetailleerde C-state informatie is alleen beschikbaar op Mobile "
"processoren (laptops) >\n"

#: powertop.c:978
msgid "<kernel core>"
msgstr ""

#: powertop.c:974 powertop.c:976
msgid "<kernel module>"
msgstr ""

#: urbnum.c:207
#, c-format
msgid ""
"A USB device is active %4.1f%% of the time:\n"
"%s"
msgstr ""

#: urbnum.c:176
msgid "Active  Device name"
msgstr ""

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

#: powertop.c:904
#, c-format
msgid "Cn\t          Avg residency\n"
msgstr ""

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

#: 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 ""

#: 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 ""

#: display.c:304
msgid ""
"No detailed statistics available; PowerTOP needs root privileges for that\n"
msgstr ""

#: display.c:299
msgid ""
"No detailed statistics available; please enable the CONFIG_TIMER_STATS "
"kernel option\n"
msgstr ""

#: display.c:302
msgid "Note: this is only available in 2.6.21 and later kernels\n"
msgstr ""

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

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

#: display.c:208
#, c-format
msgid "Power usage (5 minute ACPI estimate) : %5.1f W (%3.1f hours left)"
msgstr ""

#: display.c:201
#, c-format
msgid "Power usage (ACPI estimate): %3.1fW (%3.1f hours)"
msgstr ""

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

#: powertop.c:841
#, c-format
msgid "PowerTOP needs to be run as root to collect enough information\n"
msgstr ""
"PowerTOP heeft 'root' gebruikersrechten nodig om alle informatie te "
"verzamelen\n"

#: urbnum.c:175
msgid "Recent USB suspend statistics"
msgstr ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: wireless.c:320
#, c-format
msgid ""
"Suggestion: Disable the unused WIFI radio by executing the following "
"command:\n"
"  echo 1 > %s \n"
msgstr ""

#: 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 ""

#: 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 ""

#: 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 ""

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

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: xrandr.c:75
msgid ""
"Suggestion: disable TV out via: \n"
"  xrandr --output TV --off \n"
"or press the V key."
msgstr ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: 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 ""

#: display.c:300
msgid "This option is located in the Kernel Debugging section of menuconfig\n"
msgstr ""

#: display.c:281
msgid "Top causes for wakeups:\n"
msgstr ""

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

#: powertop.c:764
#, c-format
msgid "Usage: powertop [OPTION...]\n"
msgstr ""

#: display.c:270
#, c-format
msgid "Wakeups-from-idle per second : %4.1f\tinterval: %0.1fs\n"
msgstr ""

#: intelcstates.c:152
#, c-format
msgid "Your BIOS reports the following C-states : "
msgstr ""

#: intelcstates.c:143
#, c-format
msgid "Your CPU supports the following C-states : "
msgstr ""

#: display.c:196
#, c-format
msgid "no ACPI power usage estimate available"
msgstr ""

#: display.c:244
#, c-format
msgid "no power usage estimate available"
msgstr ""

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

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

#~ msgid "< CPU was 100%% busy; no C-states were entered >\n"
#~ msgstr "< De processor was 100%% benut; geen C-states werden gebruikt >\n"
