# Dutch messages for gprof.
# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
#
# Tim Van Holder <tim.van.holder@telenet.be>, 2008, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.19.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: 2009-09-11 20:51+0200\n"
"Last-Translator: Tim Van Holder <tim.van.holder@telenet.be>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<onrechtstreeks kind>"

#: alpha.c:107 mips.c:59
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s: 0x%lx naar 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 <onrechtstreeks kind>\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:105
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: onverwacht einde van bestand\n"

# betere vertaling dan "uitvoeringstellingen" voor "exec counts"
#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: let op: uitvoeringstellingen van basisblokken worden genegeerd (gebruik -l of --line)\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 uitvoeringen\n"

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

# Of voor consistentie ook "telling" gebruiken?
#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"Top %d Lijnen:\n"
"\n"
"     Lijn      Aantal keer uitgevoerd\n"
"\n"

#: basic_blocks.c:567
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Uitvoeringsoverzicht:\n"
"\n"

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Uitvoerbare lijnen in dit bestand\n"

#: basic_blocks.c:570
#, c-format
msgid "%9ld   Lines executed\n"
msgstr "%9ld   Lijnen uitgevoerd\n"

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   Percent van het bestand uitgevoerd\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   Totaal aantal lijnuitvoeringen\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Gemiddeld aantal uitvoeringen per lijn\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] boog van %s naar %s werd %lu keer doorlopen\n"

#: cg_print.c:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Oproepgraaf (uitleg volgt)\n"
"\n"

#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tOproepgraaf\n"
"\n"

# Goede vertaling voor "sample hit" - proeftreffer?
#: cg_print.c:79 hist.c:466
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"granulariteit: elke \"sample hit\" bestrijkt %ld byte(s)"

#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" voor %.2f%% van %.2f seconden\n"
"\n"

# doorgegeven is ambigu - betere vertaling hier voor "propagated"?
#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" no time doorgegeven\n"
"\n"

#: cg_print.c:96 cg_print.c:99 cg_print.c:101
msgid "called"
msgstr "opgeroepen"

#: cg_print.c:96 cg_print.c:101
msgid "total"
msgstr "totaal"

#: cg_print.c:96
msgid "parents"
msgstr "ouders"

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

#: cg_print.c:98
#, c-format
msgid "%time"
msgstr "%tijd"

#: cg_print.c:98 cg_print.c:99
msgid "self"
msgstr "zichzelf"

#: cg_print.c:98
msgid "descendants"
msgstr "afstammelingen"

#: cg_print.c:99 hist.c:492
msgid "name"
msgstr "naam"

#: cg_print.c:101
msgid "children"
msgstr "kinderen"

#: cg_print.c:106
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "index %% tijd    zelf  kinderen    opgeroepen naam\n"

#: cg_print.c:129
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <cyclus %d als een geheel> [%d]\n"

#: cg_print.c:355
#, 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     <spontaan>\n"

#: cg_print.c:356
#, 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     <spontaan>\n"

#: cg_print.c:590
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Index volgens functienaam\n"
"\n"

#: cg_print.c:647 cg_print.c:656
#, c-format
msgid "<cycle %d>"
msgstr "<cyclus %d>"

# is iets zwakker dan het oorspronkelijke "parsen", maar "begrijpen" lijkt me dan weer te sterk
#: corefile.c:60
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: inlezen van mappingsbestand %s lukt niet.\n"

#: corefile.c:84 corefile.c:496
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: kan %s niet openen.\n"

#: corefile.c:183
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: niet in uitvoerbaar formaat\n"

#: corefile.c:194
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: kan geen .text sectie vinden in %s\n"

#: corefile.c:269
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: had geen plaats meer voor %lu bytes aan text-ruimte\n"

# Klinkt nogal zwak
#: corefile.c:283
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: -c lukt niet\n"

#: corefile.c:322
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c wordt niet ondersteund op de %s architectuur\n"

#: corefile.c:505 corefile.c:588
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: bestand `%s' heeft geen symbolen\n"

#: corefile.c:848
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: iemand heeft verkeerd geteld: ltab.len=%d in plaats van %ld\n"

#: gmon_io.c:84
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: adresgrootte heeft een overwachte waarde (%u)\n"

#: gmon_io.c:319 gmon_io.c:415
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: bestand is te kort om een gmon-bestand te kunnen zijn\n"

# betere vertaling voor "magic cookie"?
#: gmon_io.c:329 gmon_io.c:458
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: bestand `%s' heeft verkeerd herkenningsteken\n"

#: gmon_io.c:340
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: bestand `%s' heeft een versie (%d) die niet ondersteund wordt\n"

#: gmon_io.c:370
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: slechte tag (%d) gevonden (is het bestand corrupt?)\n"

# is rate hier ratio of eerder snelheid?
#: gmon_io.c:437
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: profileringsratio is niet compatibel met het eerste gmon-bestand\n"

#: gmon_io.c:488
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: niet compatibel met het eerste gmon-bestand\n"

#: gmon_io.c:518
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: bestand '%s' is blijkbaar niet in \"gmon.out\" formaat\n"

# EOF onvertaald laten? betere vertaling voor "bins"?
#: gmon_io.c:531
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: onverwacht bestandseinde na het lezen van %d/%d binaire waarden\n"

#: gmon_io.c:565
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "tijd is uitgedrukt in ticks, niet in seconden\n"

# of beter "ik weet niet hoe ik met bestandsformaat %d moet omgaan"?
#: gmon_io.c:571 gmon_io.c:748
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: weet niet hoe bestandsformaat %d behandeld moet worden\n"

#: gmon_io.c:578
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Bestand `%s' (versie %d) bevat:\n"

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

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

#: gmon_io.c:584
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d oproepgraaf record\n"

#: gmon_io.c:585
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d oproepgraaf records\n"

#: gmon_io.c:587
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d basisbloktelling record\n"

#: gmon_io.c:588
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d basisbloktelling records\n"

#: gprof.c:159
#, 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]\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 ""
"Gebruik: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][naam]] [-I dirs]\n"
"\t[-d[aantal]] [-k van/tot] [-m min-aantal] [-t tabelgrootte]\n"
"\t[--[no-]annotated-source[=naam]] [--[no-]exec-counts[=naam]]\n"
"\t[--[no-]flat-profile[=naam]] [--[no-]graph[=naam]]\n"
"\t[--[no-]time=naam] [--all-lines] [--brief] [--debug[=graad]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=naam] [--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[=STIJL]] [--no-demangle] [--external-symbol-table=naam]\n"
"\t[@BESTAND] [image-bestand] [profielbestand...]\n"

#: gprof.c:175
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
"Meld bugs aan %s\n"
"Meld fouten in de vertaling aan vertaling@vrijschrift.org\n"

#: gprof.c:251
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: debuggen wordt niet ondersteund; -d genegeerd\n"

#: gprof.c:331
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: onbekend bestandsformaat %s\n"

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

# Ben niet zeker of die "Regents of" vertaald moet/mag worden...
#: gprof.c:420
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Gebaseerd op BSD gprof, copyright 1983 Regents of the University of California.\n"

#: gprof.c:421
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Dit programma is vrije software.  Er is helemaal geen garantie.\n"

# betere vertaling voor demangle?
#: gprof.c:462
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: onbekende ontwarringsstijl `%s'\n"

#: gprof.c:482
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: --function-ordering en --file-ordering mogen niet tegelijk opgegeven worden.\n"

#: gprof.c:534
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: sorry, bestandsformaat `prof' wordt nog niet ondersteund\n"

#: gprof.c:588
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: bestand gmon.out bevat geen histogram\n"

#: gprof.c:595
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: bestand gmon.out bevat geen gegevens voor de oproepgraaf\n"

# kan beter denk ik
#: hist.c:133
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: grootte-eenheid is veranderd tussen histogram records\n"
"%s: van '%s'\n"
"%s: naar '%s'\n"

# moet beter kunnen
#: hist.c:143
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: grootte-afkorting is veranderd tussen histogram records\n"
"%s: van '%c'\n"
"%s: naar '%c'\n"

#: hist.c:157
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s: verschillende schalen in histogram records"

#: hist.c:194
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: histogram records overlappen elkaar\n"

#: hist.c:228
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: onverwacht bestandseinde na het lezen van %u van de %u stalen\n"

#: hist.c:462
#, c-format
msgid "%c%c/call"
msgstr "%c%c/oproep"

#: hist.c:470
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
" voor %.2f%% van %.2f %s\n"
"\n"

# of "staat voor" ipv "telt als"?
#: hist.c:476
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Elk staal telt als %g %s.\n"

#: hist.c:481
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" geen tijd verzameld\n"
"\n"

#: hist.c:488
msgid "cumulative"
msgstr "cumulatief"

# weet niet of dit zo goed past
#: hist.c:488
msgid "self  "
msgstr "zichzelf  "

#: hist.c:488
msgid "total "
msgstr "totaal "

#: hist.c:491
msgid "time"
msgstr "tijd"

#: hist.c:491
msgid "calls"
msgstr "oproepen"

#: hist.c:580
#, c-format
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
"\n"
"\n"
"\n"
"vlak profiel:\n"

#: hist.c:586
#, c-format
msgid "Flat profile:\n"
msgstr "Vlak profiel:\n"

#: hist.c:705
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: symbool gevonden dat meerdere histogram records omvat"

#: 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: kon `%s' niet vinden\n"

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

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