# translation of fi.po to Finnish
# Niklas Laxström <niklas.laxstrom+powertop@gmail.com>, 2007-2008.
# Translation of PowerTOP to Finnish
# This file is distributed under the same license as the PowerTOP package.
msgid ""
msgstr ""
"Project-Id-Version: fi\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-12-11 22:36+0100\n"
"PO-Revision-Date: 2008-12-11 11:26+0200\n"
"Last-Translator: Niklas Laxström <niklas.laxstrom+powertop@gmail.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms:  nplurals=2; plural=(n != 1);\n"

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

#: powertop.c:1010
msgid "    <interrupt> : extra timer interrupt"
msgstr "    <keskeytys> : ylimääräinen ajastinkeskeytys"

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

#: powertop.c:765
#, c-format
msgid ""
"  -d, --dump            read wakeups once and print list of top offenders\n"
msgstr "  -d, --dump            tulostaa listan pahimmista herättäjistä\n"

#: powertop.c:767
#, c-format
msgid "  -h, --help            Show this help message\n"
msgstr "  -h, --help            näyttää tämän ohjeviestin\n"

#: powertop.c:766
#, c-format
msgid "  -t, --time=DOUBLE     default time to gather data in seconds\n"
msgstr "  -t, --time=KESTO      tilastojen keräämiseen käytetty oletusaika\n"

#: powertop.c:768
#, c-format
msgid "  -v, --version         Show version information and exit\n"
msgstr "  -v, --version         Näytä versiotiedot ja poistu\n"

#: misctips.c:174
msgid " A - Turn AC97 powersave on "
msgstr " A - Aseta AC97-virransäästö päälle "

#: bluetooth.c:146
msgid " B - Turn Bluetooth off "
msgstr " B - Aseta Bluetooth pois päältä "

#: misctips.c:266
msgid " C - Power aware CPU scheduler "
msgstr " C - Aseta virrankäyttötietoinen suoritinvuorotin "

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

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

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

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

#: cpufreq.c:118
msgid " O - enable Ondemand governor "
msgstr " O - Käytä ondemand-suorituskykyprofiilia "

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

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

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

#: misctips.c:203
msgid " T - enable noatime "
msgstr " L - Aseta levyn noatime-asetus "

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

#: xrandr.c:78
msgid " V - Disable TV out "
msgstr " V - Poista TV-ulostulo käytöstä "

#: wireless.c:311 wireless.c:317
msgid " W - Enable wireless power saving "
msgstr " W - Aseta langaton verkko virransäästötilaan "

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

#: ethernet.c:131
msgid " W - disable Wake-On-Lan "
msgstr " W - Poista verkkokortin verkkoherätteisyys "

#: 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 "(keskikulutusarvio: %3.1f W,/%3.1f h)"

#: display.c:301
msgid "(which is CONFIG_DEBUG_KERNEL=y in the config file)\n"
msgstr "(joka on CONFIG_DEBUG_KERNEL=y Linux-ytimen asetustiedostossa)\n"

#: powertop.c:898
#, c-format
msgid "< Detailed C-state information is not available.>\n"
msgstr "< Yksityiskohtaisia C-tilatietoja ei ole saatavilla. >\n"

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

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

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

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

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

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

#: powertop.c:842
#, c-format
msgid "Collecting data for %i seconds \n"
msgstr "Kerätään dataa %i sekunnin ajan\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 ""
"Poista Ethernet-verkkokortin verkkoherätteisyys (wake-on-lan) seuraavalla "
"komennolla:\n"
"\tethtool -s eth0 wol d \n"
"Verkkoherätteisyys pitää verkkokortin päällä kuluttamassa virtaa."

#: 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 ""
"Poista SE-Alert käytöstä poistamalla setroubleshoot-server -rpm.\n"
"SE-Alert ilmoittaa SELinux-käytäntöjen rikkomuksista, mutta sisältää myös "
"ohjelmointivirheen, jonka takia se herää 10 kertaa sekunnissa."

#: display.c:304
msgid ""
"No detailed statistics available; PowerTOP needs root privileges for that\n"
msgstr ""
"PowerTOP ei voi kerätä kaikkia tarpeellisia tietoja ilman pääkäyttäjän "
"oikeuksia\n"
"\n"

#: display.c:299
msgid ""
"No detailed statistics available; please enable the CONFIG_TIMER_STATS "
"kernel option\n"
msgstr ""
"Yksityiskohtaisia tietoja ei ole, koska ytimestä puuttuu CONFIG_TIMER_STATS-"
"asetus.\n"

#: display.c:302
msgid "Note: this is only available in 2.6.21 and later kernels\n"
msgstr ""
"Tämä ominaisuus on saatavilla vain ytimen versiosta 2.6.21 eteenpäin.\n"

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

#: powertop.c:170 powertop.c:254
msgid "PS/2 keyboard/mouse/touchpad"
msgstr "PS/2-hiiri, -näppäimistö tai -kosketusalusta"

#: display.c:208
#, c-format
msgid "Power usage (5 minute ACPI estimate) : %5.1f W (%3.1f hours left)"
msgstr "Virrankäyttö (5-minuutin ACPI-arvio): %3.1f W (%3.1f tuntia jäljellä)"

#: display.c:201
#, c-format
msgid "Power usage (ACPI estimate): %3.1fW (%3.1f hours)"
msgstr "Virrankäyttö (ACPI-arvio): %3.1f W (%3.1f tuntia jäljellä)"

#: display.c:238
#, c-format
msgid "Power usage: %3.1fW (%3.1f hours)"
msgstr "Virrankäyttö: %3.1f W (%3.1f tuntia)"

#: powertop.c:841
#, c-format
msgid "PowerTOP needs to be run as root to collect enough information\n"
msgstr ""
"PowerTOP ei voi kerätä kaikkia tarpeellisia tietoja ilman pääkäyttäjän "
"oikeuksia\n"

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

#: 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 ""
"Ehdotus: Estä Hal-palvelua tarkkailemasta CD-asemaa seuraavalla komennolla:\n"
"\thal-disable-polling --device /dev/cdrom\n"
"Hal on palvelu, joka liittää CD:n tiedostojärjestelmään automaattisesti, "
"mutta samalla estää SATA-virransäästöä aktivoitumasta."

#: 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 ""
"Ehdotus: Poista Beagle käytöstä tai kokonaan. Beagle on ohjelma, joka "
"indeksoi tiedostoja työpöytähakua varten. Se ei kuitenkaan ole kovin tehokas "
"ja aiheuttaa merkittävää virrankulutusta."

#: 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 ""
"Ehdotus: Poista gnome-power-manager käytöstä tai kokonaan. Nimestään "
"huolimatta jotkin vanhat versiot kuluttavat virtaa enemmän kuin säästävät."

#: 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 ""
"Ehdotus: Poista pcscd käytöstä tai kokonaan. Pcscd saattaa estää USB-"
"alijärjestelmää menemästä virransäästötilaan sekä suoritinta menemästä "
"syvempiin virransäästötiloihin."

#: 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 ""
"Ehdotus: Poista ytimestä CONFIG_IRQBALANCE-asetus. Ytimen oma IRQ-"
"tasapainotin on vanhentunut ja aiheuttaa keskeytyksiä useammin kuin olisi "
"tarpeen."

#: wireless.c:320
#, c-format
msgid ""
"Suggestion: Disable the unused WIFI radio by executing the following "
"command:\n"
"  echo 1 > %s \n"
msgstr ""
"Ehdotus: Poista käyttämätön langaton verkko käytöstä seuraavalla komennolla:"
"\techo 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 ""
"Ehdotus: Käyttämättömän Bluetooth-liitännän voi poistaa käytöstä seuraavalla "
"komennolla:\n"
"\thciconfig hci0 down; rmmod hci_usb\n"
"Bluetooth on radiolähetin, joka kuluttaa virtaa ja pitää USB:n päällä.\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 ""
"Ehdotus: Ota SATA-linkin virranhallinta käyttöön seuraavalla komennolla:\n"
"\techo min_power > /sys/class/scsi_host/host0/link_power_management_policy\n"
"tai painamalla S-näppäintä."

#: 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 ""
"Ehdotus: Ota USB:n automaattinen keskeytystila käyttöön painamalla U-"
"näppäintä\n"
"tai lisäämällä teksti ”usbcore.autosuspend=1” ytimen käynnistysvalitsimiin."

#: misctips.c:79
msgid ""
"Suggestion: Enable laptop-mode by executing the following command:\n"
"   echo 5 > /proc/sys/vm/laptop_mode \n"
msgstr ""
"Ehdotus: Ytimen saa laptop-modeen seuraavalla komennolla:\n"
"\techo 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 ""
"Ehdotus: Käytä ytimen CONFIG_ACPI_BATTERY-asetusta, niin PowerTOP voi "
"näyttää tietoja akun kestosta."

#: 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 ""
"Ehdotus: Käytä ytimen CONFIG_CPU_FREQ_GOV_ONDEMAND-asetusta. ”ondemand”-\n"
"suorituskykyprofiili minimoi suorittimen energiankäytön (ainakin Intelin\n"
"suorittimilla) samalla antaen kaiken tehon, kun sitä tarvitaan."

#: 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 ""
"Ehdotus: Käytä ytimen CONFIG_CPU_FREQ_STAT-asetusta, niin PowerTOP voi "
"näyttää\n"
"tilastoja suorittimen P-tiloista. P-tilat vastaavat suorittimen eri "
"taajuuksia."

#: 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 ""
"Ehdotus: Käytä ytimen CONFIG_HPET_TIMER-asetusta. Ilman tätä asetusta "
"ytimen\n"
"täytyy herätä 20 millisekunnin välein tekemään ylläpitotöitä."

#: 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 ""
"Ehdotus: Käytä ytimen CONFIG_INOTIFY-asetusta. Inotify-tuen avulla ohjelmat\n"
"saavat ilmoituksen tiedostojärjestelmän muutoksista, jolloin niiden ei "
"tarvitse\n"
"itse tarkistaa tiedostojärjestelmää säännöllisin väliajoin."

#: 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 ""
"Ehdotus: Käytä ytimen CONFIG_NO_HZ-asetusta. Tämä asetus on välttämätön,\n"
"jotta suoritin voisi viettää pitempiä aikoja virransäästötilassa."

#: 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 ""
"Ehdotus: Käytä ytimen CONFIG_SND_AC97_POWER_SAVE-asetusta. Tämä\n"
"asetus poistaa äänikoodekin käytöstä, kun sitä ei tarvita. Tämä asetus voi\n"
"säästään noin puoli wattia energiaa."

#: 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 ""
"Ehdotus: Käytä ytimen CONFIG_USB_SUSPEND-asetusta. Tämän asetuksen kanssa\n"
"ydin lopettaa USB:n käytön, kun sitä ei tarvita, ajurien salliessa. Tällä "
"asetus\n"
"voi vähentää tehontarvetta jopa yhden watin."

#: 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 ""
"Ehdotus: Aseta ondemand-suorituskykyprofiili kaikille suorittimille "
"komennolla:\n"
"\techo 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 ""
"Ehdotus: Aseta langaton verkko virransäästötilaan seuraavalla komennolla:\n"
"\techo 5 > %s\n"
"Tämä asetus säästää virtaa suorituskyvyn kustannuksella."

#: 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 ""
"Ehdotus: Aseta langaton verkko virransäästötilaan seuraavalla komennolla:\n"
"\tiwpriv %s set_power 5\n"
"Tämä asetus säästää virtaa suorituskyvyn kustannuksella."

#: xrandr.c:75
msgid ""
"Suggestion: disable TV out via: \n"
"  xrandr --output TV --off \n"
"or press the V key."
msgstr ""
"Ehdotus: Poista TV-ulostulo käytöstä seuraavalla komennolla:\n"
"\txrandr --output TV --off\n"
"tai painamalla V-näppäintä."

#: 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 ""
"Ehdotus: Poista NMI-valvoja seuraavalla komennolla:\n"
"\techo 0 > /proc/sys/kernel/nmi_watchdog \n"
"NMI-valvoja on ytimen vianjäljitysmekanismi lukkiutumisten havaitsemiseen."

#: 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 ""
"Ehdotus: Ota AC97:n virransäästöominaisuudet käyttöön seuraavalla "
"komennolla:\n"
"\techo 1 > /sys/module/snd_ac97_codec/parameters/power_save\n"
"tai antamalla moduulin parametriksi power_save=1."

#: 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 ""
"Ehdotus: Aseta HPET (Multimedia-ajastin) päälle Biosista tai käytä ytimen "
"paikkaustiedostoa, jolla sen saa pakotettua käyttöön. HPET sallii ytimen "
"viettää paljon pidempiä aikoja virransäästötilassa."

#: 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 ""
"Ehdotus: Ota tiedostojärjestelmän noatime-asetus käyttöön seuraavalla "
"komennolla:\n"
"\tmount -o remount,noatime /\ttai painamalla T-näppäintä\n"
"Noatime-asetus estää tiedostojen käyttöaikojen kirjaamisen vähentäen näin "
"kirjoitusta levylle."

#: 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 ""
"Ehdotus: Ota virrankäyttötietoinen suoritinvuorotin käyttöön seuraavalla "
"komennolla:\n"
"\techo 1 > /sys/devices/system/cpu/sched_mc_power_savings\n"
"tai painamalla C-näppäintä."

#: 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 ""
"Ehdotus: kasvata likaisten sivujen levyllekirjoitusaikaa 15 sekuntiin\n"
"nykyisestä %1.2f sekunnista, jotta levy alkaisi pyörimään harvemmin. "
"Komento:\n"
"\techo 1500 > /proc/sys/vm/dirty_writeback_centisecs"

#: display.c:300
msgid "This option is located in the Kernel Debugging section of menuconfig\n"
msgstr "Tämä asetus on menuconfig-ohjelman ”Kernel Debugging”-valikon alla\n"

#: display.c:281
msgid "Top causes for wakeups:\n"
msgstr "Yleisimmät keskeytysten aiheuttajat:\n"

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

#: powertop.c:764
#, c-format
msgid "Usage: powertop [OPTION...]\n"
msgstr "Käyttö: powertop [VALITSIMET...]\n"

#: display.c:270
#, c-format
msgid "Wakeups-from-idle per second : %4.1f\tinterval: %0.1fs\n"
msgstr ""
"Virransäästötilasta heräämisiä sekunnissa: %4.1f\ttarkasteluväli: %01.f s\n"

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

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

#: display.c:196
#, c-format
msgid "no ACPI power usage estimate available"
msgstr "ACPI-virrankäyttöarviota ei ole saatavilla."

#: display.c:244
#, c-format
msgid "no power usage estimate available"
msgstr "virrankäyttöarviota ei ole saatavilla."

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

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