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