# Hungarian translation for gprof.
# Copyright (C) 2014, 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
#
# Balázs Úr <urbalazs@gmail.com>, 2014, 2017.
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.28.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2017-07-03 16:56+0200\n"
"PO-Revision-Date: 2017-09-10 20:39+0200\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.2\n"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<közvetett gyermek>"

#: alpha.c:107 mips.c:59
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s: 0x%lx - 0x%lx\n"

#: alpha.c:129
#, c-format
msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
msgstr "[find_call] 0x%lx: jsr%s <közvetett_gyermek>\n"

#: alpha.c:139
#, c-format
msgid "[find_call] 0x%lx: bsr"
msgstr "[find_call] 0x%lx: bsr"

#: basic_blocks.c:128 call_graph.c:89 hist.c:106
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: nem várt fájlvége\n"

#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: figyelem: alapblokk végrehajtás számítás kihagyása (használja a -l vagy --line kapcsolót)\n"

#. FIXME: This only works if bfd_vma is unsigned long.
#: basic_blocks.c:289 basic_blocks.c:299
#, c-format
msgid "%s:%d: (%s:0x%lx) %lu executions\n"
msgstr "%s:%d: (%s:0x%lx) %lu végrehajtás\n"

#: basic_blocks.c:290 basic_blocks.c:300
msgid "<unknown>"
msgstr "<ismeretlen>"

#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"Legfelső %d sor:\n"
"\n"
"     Sor        Szám\n"
"\n"

#: basic_blocks.c:567
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Végrehajtás összegzés:\n"
"\n"

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Végrehajtható sorok ebben a fájlban\n"

#: basic_blocks.c:570
#, c-format
msgid "%9ld   Lines executed\n"
msgstr "%9ld   Végrehajtott sorok\n"

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   A végrehajtott fájl százaléka\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   A sorvégrehajtások teljes száma\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Átlagos végrehajtás soronként\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] az ív %s - %s között %lu alkalommal haladt át\n"

#: cg_print.c:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Hívási grafikon (magyarázat következik)\n"
"\n"

#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tHívási grafikon\n"
"\n"

#: cg_print.c:79 hist.c:470
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"granularitás: minden egyes példa találat lefed %ld byte-ot"

#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" %.2f%% / %.2f másodperchez\n"
"\n"

#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" nincs szaporított idő\n"
"\n"

#: cg_print.c:96 cg_print.c:101 cg_print.c:104
msgid "called"
msgstr "meghívott"

#: cg_print.c:96 cg_print.c:104
msgid "total"
msgstr "összesen"

#: cg_print.c:96
msgid "parents"
msgstr "szülők"

#: cg_print.c:98 cg_print.c:102
msgid "index"
msgstr "index"

#: cg_print.c:100
#, no-c-format
msgid "%time"
msgstr "%time"

#: cg_print.c:101
msgid "self"
msgstr "saját"

#: cg_print.c:101
msgid "descendants"
msgstr "leszármazottak"

#: cg_print.c:102 hist.c:496
msgid "name"
msgstr "név"

#: cg_print.c:104
msgid "children"
msgstr "gyermekek"

#: cg_print.c:109
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "index %%  time   self  gyermekek  meghívott    név\n"

#: cg_print.c:132
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <%d. ciklus teljes egészében> [%d]\n"

#: cg_print.c:358
#, c-format
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontán>\n"

#: cg_print.c:359
#, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontán>\n"

#: cg_print.c:593
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Indexelés függvénynév szerint\n"
"\n"

#: cg_print.c:650 cg_print.c:659
#, c-format
msgid "<cycle %d>"
msgstr "<%d. ciklus>"

#: corefile.c:62
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: nem sikerült feldolgozni a(z) %s leképezőfájlt.\n"

#: corefile.c:90 corefile.c:527
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: %s nem nyitható meg.\n"

#: corefile.c:192
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: nincs végrehajtható formátumban\n"

#: corefile.c:203
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: nem található .text szakasz ebben: %s\n"

#: corefile.c:278
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: elfogyott a hely a szövegtér %lu byte-jaihoz\n"

#: corefile.c:292
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: nem sikerült elvégezni a -c kapcsolót\n"

#: corefile.c:335
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: a -c nem támogatott a(z) %s architektúrán\n"

#: corefile.c:536 corefile.c:642
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: a(z) „%s” fájlnak nincsenek szimbólumai\n"

#: corefile.c:541
#, c-format
msgid "%s: file `%s' has too many symbols\n"
msgstr "%s: a(z) „%s” fájlnak túl sok szimbóluma van\n"

#: corefile.c:909
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: valaki rosszul értelmezte: ltab.len=%d a(z) %ld helyett\n"

#: gmon_io.c:83
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: a cím méretének nem várt %u értéke van\n"

#: gmon_io.c:318 gmon_io.c:414
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: a fájl túl rövid, hogy gmon fájl legyen\n"

#: gmon_io.c:328 gmon_io.c:457
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: a(z) „%s” fájlnak rossz varázssütije van\n"

#: gmon_io.c:339
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: a(z) „%s” fájlnak nem támogatott %d verziója van\n"

#: gmon_io.c:369
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: rossz %d címke található (a fájl sérült?)\n"

#: gmon_io.c:436
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: a profilozási arány nem kompatibilis az első gmon fájllal\n"

#: gmon_io.c:487
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: nem kompatibilis az első gmon fájllal\n"

#: gmon_io.c:517
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: a(z) „%s” fájl nem tűnik úgy, hogy gmon.out formátumban lenne\n"

#: gmon_io.c:530
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: nem várt fájl vége %d/%d bin olvasása után\n"

#: gmon_io.c:562
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "az idő osztásokban van, nem másodpercben\n"

#: gmon_io.c:568 gmon_io.c:748
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: nem tudni, hogyan kell kezelni a(z) %d fájlformátumot\n"

#: gmon_io.c:578
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "A(z) „%s” fájl (%d verzió) tartalma:\n"

#: gmon_io.c:581
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d hisztogram rekord\n"

#: gmon_io.c:582
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d hisztogram rekord\n"

#: gmon_io.c:584
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d hívási grafikon rekord\n"

#: gmon_io.c:585
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d hívási grafikon rekord\n"

#: gmon_io.c:587
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d alapblokk szám rekord\n"

#: gmon_io.c:588
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d alapblokk szám rekord\n"

#: gprof.c:162
#, c-format
msgid ""
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I dirs]\n"
"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
"\t[--[no-]time=name] [--all-lines] [--brief] [--debug[=level]]\n"
"\t[--function-ordering] [--file-ordering] [--inline-file-names]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=name] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
"\t[image-file] [profile-file...]\n"
msgstr ""
"Használat: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][név]] [-I dirs]\n"
"\t[-d[szám]] [-k tól/ig] [-m min-szám] [-t táblahossz]\n"
"\t[--[no-]annotated-source[=név]] [--[no-]exec-counts[=név]]\n"
"\t[--[no-]flat-profile[=név]] [--[no-]graph[=név]]\n"
"\t[--[no-]time=név] [--all-lines] [--brief] [--debug[=szint]]\n"
"\t[--function-ordering] [--file-ordering] [--inline-file-names]\n"
"\t[--directory-path=könyvtárak] [--display-unused-functions]\n"
"\t[--file-format=név] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=hossz] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STÍLUS]] [--no-demangle] [--external-symbol-table=név] [@FÁJL]\n"
"\t[image-file] [profile-file…]\n"

#: gprof.c:178
#, c-format
msgid "Report bugs to %s\n"
msgstr "A hibák itt jelenthetők: %s\n"

#: gprof.c:254
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: a hibakeresés nem támogatott; -d mellőzve\n"

#: gprof.c:336
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: ismeretlen %s fájlformátum\n"

#. This output is intended to follow the GNU standards document.
#: gprof.c:424
#, c-format
msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n"

#: gprof.c:425
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "A BSD gprof alapján, copyright 1983, a Kaliforniai Egyetem Kormányzója.\n"

#: gprof.c:426
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Ez a program szabad szoftver. Ennek a programnak nincs semmiféle garanciája.\n"

#: gprof.c:467
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: ismeretlen „%s” összerakó stílus\n"

#: gprof.c:490
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Csak a --function-ordering és a --file-ordering egyike adható meg.\n"

#: gprof.c:542
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: elnézést, a „prof” fájlformátum még nem támogatott\n"

#: gprof.c:596
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: a gmon.out fájlból hiányzik a hisztogram\n"

#: gprof.c:603
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: a gmon.out fájlból hiányzik a hívási grafikon adat\n"

#: hist.c:134
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: a dimenzió mértékegységek megváltoztak a hisztogram rekordok között\n"
"%s: erről: „%s”\n"
"%s: erre: „%s”\n"

#: hist.c:144
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: a dimenzió rövidítések megváltoztak a hisztogram rekordok között\n"
"%s: erről: „%c”\n"
"%s: erre: „%c”\n"

#: hist.c:158
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s: eltérő méretezések a hisztogram rekordokban"

#: hist.c:195
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: átfedő hisztogram rekordok\n"

#: hist.c:229
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: nem várt fájlvége %u / %u minta olvasása után\n"

#: hist.c:466
#, c-format
msgid "%c%c/call"
msgstr "%c%c/hívás"

#: hist.c:474
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
" ehhez: %.2f%% / %.2f %s\n"
"\n"

#: hist.c:480
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Minden minta így számít: %g %s.\n"

#: hist.c:485
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" nincs felhalmozott idő\n"
"\n"

#: hist.c:492
msgid "cumulative"
msgstr "felhalmozott"

#: hist.c:492
msgid "self  "
msgstr "saját  "

#: hist.c:492
msgid "total "
msgstr "összesen "

#: hist.c:495
msgid "time"
msgstr "idő"

#: hist.c:495
msgid "calls"
msgstr "hívások"

#: hist.c:584
#, c-format
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
"\n"
"\n"
"\n"
"egyszerű profil:\n"

#: hist.c:590
#, c-format
msgid "Flat profile:\n"
msgstr "Egyszerű profil:\n"

#: hist.c:711
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: egy olyan szimbólum található, amely számos hisztogram rekordot lefed"

#: mips.c:71
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr "[find_call] 0x%lx: jal"

#: mips.c:99
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr "[find_call] 0x%lx: jalr\n"

#: source.c:162
#, c-format
msgid "%s: could not locate `%s'\n"
msgstr "%s: nem található: „%s”\n"

#: source.c:237
#, c-format
msgid "*** File %s:\n"
msgstr "*** Fájl %s:\n"

#: utils.c:106
#, c-format
msgid " <cycle %d>"
msgstr " <%d. ciklus>"
