# translation of PowerTOP to Hungarian
# PowerTOP magyar fordítás
# This file is distributed under the same license as the PowerTOP package.
# Kakas László <laszlo.kakas@gmail.com>, 2007.
# Lantos Ádám <hege@playma.org>, 2007, 2008.
msgid ""
msgstr ""
"Project-Id-Version: hu\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-12-11 22:36+0100\n"
"PO-Revision-Date: 2008-12-01 23:46+0100\n"
"Last-Translator: Adam Lantos <hege@playma.org>\n"
"Language-Team: \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"

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

#: powertop.c:1010
msgid "    <interrupt> : extra timer interrupt"
msgstr "    <interrupt> : óramegszakítás"

#: 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            a felébredések egyszeri vizsgálata és a legaktívabb "
"alkalmazások kiírása\n"

#: powertop.c:767
#, c-format
msgid "  -h, --help            Show this help message\n"
msgstr "  -h, --help            Ezen súgó megjelenítése\n"

#: powertop.c:766
#, c-format
msgid "  -t, --time=DOUBLE     default time to gather data in seconds\n"
msgstr "  -t, --time=DOUBLE     alapértelmezett időszelet (másodpercben)\n"

#: powertop.c:768
#, c-format
msgid "  -v, --version         Show version information and exit\n"
msgstr "  -v, --version         Verzió megjelenítése\n"

#: misctips.c:174
msgid " A - Turn AC97 powersave on "
msgstr " A - AC97 energiatakarékos üzemmód "

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

#: misctips.c:266
msgid " C - Power aware CPU scheduler "
msgstr " C - Energiatakarékos CPU ütemező "

#: wireless.c:322
msgid " I - disable WIFI Radio "
msgstr " I - WIFI adóvevő kikapcsolása  "

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

#: misctips.c:80
msgid " L - enable Laptop mode "
msgstr " L - Laptop üzemmód engedélyezése "

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

#: cpufreq.c:118
msgid " O - enable Ondemand governor "
msgstr " O - Ondemand szabályozó engedélyezése "

#: display.c:108
msgid " Q - Quit "
msgstr " Q - Kilépés "

#: display.c:109
msgid " R - Refresh "
msgstr " R - Frissítés "

#: sata.c:104
msgid " S - SATA Link Power Management "
msgstr " S - SATA energiatakarékosság "

#: misctips.c:203
msgid " T - enable noatime "
msgstr " T - noatime engedélyezése"

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

#: xrandr.c:78
msgid " V - Disable TV out "
msgstr " V - TV kimenet kikapcsolása "

#: wireless.c:311 wireless.c:317
msgid " W - Enable wireless power saving "
msgstr " W - WLAN energiatakarékos mód "

#: misctips.c:301
msgid " W - Increase Writeback time "
msgstr " W - A Writeback idő növelése "

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

#: 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 "(hosszútávon: %3.1fW,/%3.1fh)"

#: display.c:301
msgid "(which is CONFIG_DEBUG_KERNEL=y in the config file)\n"
msgstr "(amely CONFIG_DEBUG_KERNEL=y a konfigurációs fájlban)\n"

#: powertop.c:898
#, c-format
msgid "< Detailed C-state information is not available.>\n"
msgstr ""
"< Részletes C-állapot információ csak mobil processzorok esetén elérhető "
"(laptopok) >\n"

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

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

#: urbnum.c:207
#, c-format
msgid ""
"A USB device is active %4.1f%% of the time:\n"
"%s"
msgstr ""
"Az USB eszköz az idő %4.1f%%-ában aktív:\n"
"%s"

#: urbnum.c:176
msgid "Active  Device name"
msgstr "Aktív eszköz neve"

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

#: powertop.c:904
#, c-format
msgid "Cn\t          Avg residency\n"
msgstr "Cn\t          Átlagos tartózkodás\n"

#: powertop.c:842
#, c-format
msgid "Collecting data for %i seconds \n"
msgstr "Adatok gyűjtése %i másodpercen keresztül \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 ""
"Tiltsd le az Ethernet Wake-On-Lan funkciót a következő paranccsal:\n"
"  ethtool -s eth0 wol d \n"
"A Wake-on-Lan használata esetén a hálózati eszköz folyamatosa aktív, ez "
"energiát fogyaszt."

#: 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 ""
"Kapcsold ki a SE-Alert szoftvert a 'setroubleshoot-server' csomag "
"eltávolításával.\n"
"Az SE-Alert figyelmeztet az SELinux szabálysértéseknél, de ugyanakkor \n"
"van egy hibája, amitől 10 felébredést okoz másodpercenként."

#: display.c:304
msgid ""
"No detailed statistics available; PowerTOP needs root privileges for that\n"
msgstr ""
"Részletes statisztika nem elérhető; a PowertTOP-nak root jogra van szüksége "
"ehhez\n"

#: display.c:299
msgid ""
"No detailed statistics available; please enable the CONFIG_TIMER_STATS "
"kernel option\n"
msgstr ""
"Nem áll rendelkezésre részletes statisztika, engedélyezd a "
"CONFIG_TIMER_STATS kernel opciót\n"

#: display.c:302
msgid "Note: this is only available in 2.6.21 and later kernels\n"
msgstr "Megjegyzés: ez csak a 2.6.21 és újabb kernelekben elérhető.\n"

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

#: powertop.c:170 powertop.c:254
msgid "PS/2 keyboard/mouse/touchpad"
msgstr "PS/2 billentyűzet/egér/touchpad"

#: display.c:208
#, c-format
msgid "Power usage (5 minute ACPI estimate) : %5.1f W (%3.1f hours left)"
msgstr ""
"Energiafogyasztás (5 perces ACPI becsült érték): %5.1f W (%3.1f óra van "
"hátra)"

#: display.c:201
#, c-format
msgid "Power usage (ACPI estimate): %3.1fW (%3.1f hours)"
msgstr "Energiafogyasztás (ACPI becsült érték): %3.1f W (%3.1f óra van hátra)"

#: display.c:238
#, c-format
msgid "Power usage: %3.1fW (%3.1f hours)"
msgstr "Energiafogyasztás: %3.1fW (%3.1f óra van hátra)"

#: powertop.c:841
#, c-format
msgid "PowerTOP needs to be run as root to collect enough information\n"
msgstr "A PowerTOP-ot rootként futtasd, hogy elég információt gyűjthessen\n"

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

#: 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 ""
"Tanács: Ne engedd a 'hal' alkalmazásnak a CD-meghajtó állandó figyelését:  \n"
"hal-disable-polling /dev/cdrom    a 'hal' egy alkalmazás, ami "
"automatikusan \n"
"megnyit egy grafikus ablakot, ha egy CD-lemezt helyezel a meghajtóba, \n"
"viszont ez megakadályozza a SATA energiatakarékos üzemmód bekapcsolását."

#: 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 ""
"Tanács: Kapcsold ki vagy távolítsd el a 'beagle'-t a rendszerből.\n"
"A beagle az a program amely indexel az egyszerű desktop kereséshez, \n"
"mindemellett nem teljesen hatékony és ez jelentős akkumulátor élettartamba "
"kerül."

#: 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 ""
"Tanács: Kapcsold ki vagy távolítsd el a 'gnome-power-manager' alkalmazást. \n"
"A neve ellenére néhány verziója nem elég hatékony, így több energiát pazarol "
"el mint amennyit spórol."

#: 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 ""
"Tanács: Kapcsold ki vagy távolítsd el a 'pcscd' alkalmazást. \n"
"A pcscd nem engedi az USB alrendszert energiatakarékos üzemmódba "
"kapcsolni, \n"
"és így a processzor sem éri el az alacsony fogyasztású alvási állapotokat."

#: 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 ""
"Tanács: Kapcsold ki a CONFIG_IRQBALANCE kernel konfigurációs opciót.\n"
"A kernel irq balancer elavult és többször használja a processzort, mint "
"ahányszor szükséges."

#: wireless.c:320
#, c-format
msgid ""
"Suggestion: Disable the unused WIFI radio by executing the following "
"command:\n"
"  echo 1 > %s \n"
msgstr ""
"Tanács: Inaktiváld a használaton kívüli WIFI eszközt az alábbi parancs "
"lefuttatásával:\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 ""
"Tanács: Kapcsold ki a nem használt bluetooth interfészt az alábbi parancs "
"lefuttatásával:\n"
"    hciconfig hci0 down; rmmod hci_usb \n"
"A bluetooth egy rádióadó, mely némi energiát fogyaszt, valamint az USB buszt "
"is lefoglalja.\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 ""
"Tanács: Engedélyezd a SATA energiatakarékos módot az alábbi parancs "
"lefuttatásával: \n"
"  echo min_power > /sys/class/scsi_host/host0/link_power_management_policy\n"
"Vagy az S billentyűvel."

#: 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 ""
"Tanács: Engedélyezd az USB autosuspend-et az U billentyűvel vagy add a\n"
"usbcore.autosuspend=1 paramétert a grub parancssorhoz"

#: misctips.c:79
msgid ""
"Suggestion: Enable laptop-mode by executing the following command:\n"
"   echo 5 > /proc/sys/vm/laptop_mode \n"
msgstr ""
"Tanács: Kapcsold be a laptop módot az alábbi parancs lefuttatásával:\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 ""
"Tanács: Engedélyezd a CONFIG_ACPI_BATTERY kernel konfigurációs opciót.\n"
"Ez az opció szükséges az akkumlátoros energiafelhasználás megállapításához."

#: 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 ""
"Tanács: Engedélyezd a CONFIG_CPU_FREQ_GOV_ONDEMAND kernel konfigurációs "
"opciót.\n"
"Az ”ondemand” processzor sebességszabályozás minimalizálja az energia "
"használatot, mindemellett \n"
"teljesítményt és nagyobb sebességet biztosít amennyiben szükséges."

#: 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 ""
"Tanács: Engedélyezd a CONFIG_CPU_FREQ_STAT kernel konfigurációs opciót.\n"
"Ez lehetővé teszi a PowerTOP számára hogy megmutassa a processzor \n"
"különböző P-állapotban (különböző frekvenciákon) töltött idejét."

#: 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 ""
"Tanács: Engedélyezd a CONFIG_HPET_TIMER kernel konfigurációs opciót.\n"
"HPET támogatás nélkül a kernelnek 20 milliszekundumonként fel kell ébrednie "
"néhány feladat miatt."

#: 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 ""
"Tanács: Engedélyezd a CONFIG_INOTIFY kernel konfigurációs opciót.\n"
"A kernel ezen beállítása lehetővé teszi az alkalmazások számára hogy "
"értesüljenek \n"
"fájlok ill. könyvtárak változásáról, és így nem kell folyamatosan figyelniük "
"erre."

#: 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 ""
"Tanács: Engedélyezd a CONFIG_NO_HZ kernel konfigurációs opciót.\n"
"Ez az opció szükséges a processzor bármilyen hosszabb idejű alvásához."

#: 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 ""
"Tanács: Engedélyezd a CONFIG_SND_AC97_POWER_SAVE kernel konfigurációs "
"opciót.\n"
"Ez az opció automatikusan kikapcsolja a hang kodeket ha nincs használatban,\n"
"ezzel körülbelül fél Watt energiát takarít meg."

#: 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 ""
"Tanács: Engedélyezd a CONFIG_USB_SUSPEND kernel konfigurációs opciót.\n"
"Ez az opció automatikusan kikapcsolja az USB-t ha nincs használatban, \n"
"ezzel körülbelül 1 Watt energiát takarít meg."

#: 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 ""
"Tanács: Engedélyezd az 'ondemand' cpu sebesség szabályozót: \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 ""
"Tanács: Engedélyezd a wlan energiatakarékos módot az alábbi parancs "
"lefuttatásával:\n"
"  echo 5 > %s \n"
"A wlan hálózati sebessége kis mértékben csökkenni fog ettől, viszont "
"energiát spórol."

#: 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 ""
"Tanács: Engedélyezd a wlan energiatakarékos módot az alábbi parancs "
"lefuttatásával:\n"
"  iwpriv %s set_power 5 \n"
"A wlan hálózati sebessége kis mértékben csökkenni fog ettől, viszont "
"energiát spórol."

#: xrandr.c:75
msgid ""
"Suggestion: disable TV out via: \n"
"  xrandr --output TV --off \n"
"or press the V key."
msgstr ""
"Tanács: tiltsd le a TV kimenetet a következő paranccsal : \n"
"  xrandr --output TV --off \n"
"vagy a V billentyű megnyomásával."

#: 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 ""
"Tanács: Inaktiváld az NMI watchdog-ot az alábbi parancs lefuttatásával:\n"
"    echo 5 > /proc/sys/kernel/nmi_watchdog\n"
"Az NMI watchdog egy kernel debug eszköz a deadlock-ok detektálására."

#: 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 ""
"Tanács: Kapcsold be az AC97 energiatakarékos módot az alábbi parancs "
"lefuttatásával:\n"
"    echo 1 > /sys/module/snd_ac97_codec/parameters/power_save\n"
"vagy a power_save=1 modul paramétert használd a modul betöltésekor."

#: 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 ""
"Tanács: engedélyezd a HPET-et (Multimédia időzítő) a BIOS-ban vagy \n"
"használd a 'force-enable HPET' kernel patch-et.\n"
"A HPET használatával alkalmas rendszeren hosszabb alvási ciklusok érhetőek "
"el."

#: 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 ""
"Tanács: engedélyezd a noatime fájlrendszer-opciót az alábbi parancs "
"lefuttatásával:\n"
"   mount -o remount,noatime /          vagy a T billentyűvel. \n"
"A noatime használatával nem íródnak ki a fájlok hozzáférési dátumai a "
"lemezre, \n"
"így rengeteg lemezműveletet megspórol."

#: 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 ""
"Tanács: engedélyezd az energiatakarékos CPU ütemezőt az alábbi parancs "
"lefuttatásával:\n"
"  echo 1 > /sys/devices/system/cpu/sched_mc_power_savings\n"
"vagy nyomd meg a C billentyűt."

#: 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 ""
"Tanács: növeld meg a VM dirty writeback időt %1.2f -ről 15 mp-re a következő "
"parancssal :\n"
"  echo 1500 > /proc/sys/vm/dirty_writeback_centisecs \n"
"Így a merevlemez ritkábban pörög fel háttérben zajló memóriaaktivitás miatt"

#: display.c:300
msgid "This option is located in the Kernel Debugging section of menuconfig\n"
msgstr ""
"Ez az opció a kernel konfiguráció Kernel Debugging szekciójában található "
"meg\n"

#: display.c:281
msgid "Top causes for wakeups:\n"
msgstr "A legtöbb felébredést okozó processzek:\n"

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

#: powertop.c:764
#, c-format
msgid "Usage: powertop [OPTION...]\n"
msgstr "Használat: powertop [OPCIÓ...]\n"

#: display.c:270
#, c-format
msgid "Wakeups-from-idle per second : %4.1f\tinterval: %0.1fs\n"
msgstr "Felébredés / másodperc: %4.1f\tidőkeret: %0.1fs\n"

#: intelcstates.c:152
#, c-format
msgid "Your BIOS reports the following C-states : "
msgstr "A BIOS a következő C-állapotokat ismeri : "

#: intelcstates.c:143
#, c-format
msgid "Your CPU supports the following C-states : "
msgstr "A processzor a következő C-állapotokat támogatja : "

#: display.c:196
#, c-format
msgid "no ACPI power usage estimate available"
msgstr "Az ACPI energiahasználat-becslés nem lekérdezhető"

#: display.c:244
#, c-format
msgid "no power usage estimate available"
msgstr "az energiahasználat nem becsülhető"

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

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