# translation of gprof-2.17.90.po to Finnish
# Copyright (C) 2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
#
# Jorma Karvonen <karvjorm@users.sf.net>, 2007.
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.17.90\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-05-15 16:49+0930\n"
"PO-Revision-Date: 2007-08-29 20:12+0300\n"
"Last-Translator: Jorma Karvonen <karvjorm@users.sf.net>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\n"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<epäsuora lapsi>"

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

#: alpha.c:129
#, c-format
msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
msgstr "[etsi_kutsu] 0x%lx: jsr%s-käsky <epäsuora_lapsi>\n"

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

#  ensimmäinen %s whoami, toinen %s filename
#: basic_blocks.c:128 call_graph.c:89 hist.c:105
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: tiedoston odottamaton loppu\n"

#  basic-block record
#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: varoitus: ei oteta huomioon peruslohkotietueen suorituslukumäärää (käytä -l tai --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 suoritusta\n"

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

#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"Ensimmäiset %d riviä:\n"
"\n"
"     Rivi      Lukumäärä\n"
"\n"

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

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Tämän tiedoston suoritettavat rivit\n"

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

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   Suoritetun tiedoston prosentti\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   Yhteensä suoritusrivejä\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Keskimäärin suorituksia riviä kohden\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] kaarisektori vanhempinimestä %s lapsinimeen %s käyty lävitse %lu kertaa\n"

#: cg_print.c:73
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Kutsugraafi (selitys seuraa)\n"
"\n"

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

#: cg_print.c:78 hist.c:466
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"hienosyisyys: jokainen näyteosuma kattaa %ld tavua"

#: cg_print.c:82
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" aika: %.2f%% of %.2f sekuntia\n"
"\n"

#: cg_print.c:86
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" ei aikaa kulunut\n"
"\n"

#: cg_print.c:95 cg_print.c:98 cg_print.c:100
msgid "called"
msgstr "kutsuttu"

#: cg_print.c:95 cg_print.c:100
msgid "total"
msgstr "yhteensä"

#: cg_print.c:95
msgid "parents"
msgstr "vanhemmat"

#: cg_print.c:97 cg_print.c:98
msgid "index"
msgstr "indeksi"

#  Tässä on ilmeisesti virhe ja prosenttimerkin pitäisi jäädä pois. Kyseinen kohta on seuraava:
#  _("index"), _("%time"), _("self"), _("descendants"),
#  _("called"), _("self"), _("name"), _("index"));
#: cg_print.c:97
#, c-format
msgid "%time"
msgstr "%time"

#: cg_print.c:97 cg_print.c:98
msgid "self"
msgstr "itse"

#: cg_print.c:97
msgid "descendants"
msgstr "jälkeläiset"

#: cg_print.c:98 hist.c:492
msgid "name"
msgstr "nimi"

#: cg_print.c:100
msgid "children"
msgstr "lapset"

#: cg_print.c:105
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "indeksi %% aika    itse  lapset    kutsuttu     nimi\n"

#: cg_print.c:128
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <jakso %d kokonaisena> [%d]\n"

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

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

#: cg_print.c:589
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Indeksi funktionimittäin\n"
"\n"

#: cg_print.c:646 cg_print.c:655
#, c-format
msgid "<cycle %d>"
msgstr "<jakso %d>"

#: corefile.c:59
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: mappaustiedostoa %s ei voi jäsentää.\n"

#: corefile.c:72
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: ei voitu avata tiedostoa %s.\n"

#: corefile.c:166
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: ei ole suoritustiedostomuotoinen\n"

#: corefile.c:177
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: ei löydy ”.text”-lohkoa kohteesta %s\n"

#: corefile.c:252
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: ei ollut tilaa %lu tavun tekstitilalle\n"

#: corefile.c:266
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: ei voi tehdä -c\n"

#: corefile.c:305
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c ei ole tuettu arkkitehtuurissa %s\n"

#: corefile.c:470
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: tiedostossa ”%s” ei ole symboleja\n"

#: corefile.c:772
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: joku laski väärin: ltab.len=%d eikä %ld\n"

#: gmon_io.c:83
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: osoitekoossa on odottamaton arvo %u\n"

#: gmon_io.c:320 gmon_io.c:416
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: tiedosto on liian lyhyt, jotta se olisi gmon-tiedosto\n"

#: gmon_io.c:330 gmon_io.c:459
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: tiedostossa ”%s” on virheellinen maaginen pipari\n"

#: gmon_io.c:341
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: tiedostossa ”%s” on tukematon versio %d\n"

#: gmon_io.c:371
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: virheellinen tunniste %d löytyi (tiedosto rikkinäinen?)\n"

#: gmon_io.c:438
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: profilointinopeus ei ole yhteensopiva ensimmäisen gmon-tiedoston kanssa\n"

#: gmon_io.c:489
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: ei ole yhteensopiva ensimmäisen gmon-tiedoston kanssa\n"

#: gmon_io.c:516
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: tiedosto ”%s” ei vaikuta olevan ”gmon.out”-muotoinen\n"

#: gmon_io.c:529
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: odottamaton tiedoston loppumerkki ”%d/%d bins”-lukemisen jälkeen\n"

#: gmon_io.c:563
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "aika on ticks-yksikköinä, ei sekunteina\n"

#: gmon_io.c:569 gmon_io.c:746
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: ei tiedetä, kuinka tiedostomuotoa %d pitää käsitellä\n"

#: gmon_io.c:576
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Tiedosto ”%s” (versio %d) sisältää:\n"

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

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

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

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

#: gmon_io.c:585
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d peruslohkolukumäärätietue\n"

#: gmon_io.c:586
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d peruslohkolukumäärätietueet\n"

#: gprof.c:158
#, c-format
msgid ""
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][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] [@FILE]\n"
"\t[image-file] [profile-file...]\n"
msgstr ""
"Käyttö: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][nimi]] [-I hakemistot]\n"
"\t[-d[num]] [-k kohteesta/kohteeseen] [-m minimilukumäärä] [-t taulupituus]\n"
"\t[--[no-]annotated-source[=nimi]] [--[no-]exec-counts[=nimi]]\n"
"\t[--[no-]flat-profile[=nimi]] [--[no-]graph[=nimi]]\n"
"\t[--[no-]time=nimi] [--all-lines] [--brief] [--debug[=taso]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=hakemistot] [--display-unused-functions]\n"
"\t[--file-format=nimi] [--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[=TYYLI]] [--no-demangle] [@TIEDOSTO]\n"
"\t[vedostiedosto] [profiilitiedosto...]\n"

#: gprof.c:174
#, c-format
msgid "Report bugs to %s\n"
msgstr "Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s\n"

#: gprof.c:250
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: debuggausta ei tueta; -d:tä ei oteta huomioon\n"

#: gprof.c:330
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: tuntematon tiedostomuoto %s\n"

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

#: gprof.c:415
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Perustuu BSD:n gprofiin, copyright 1983 Regents of the University of California.\n"

#: gprof.c:416
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Tämä ohjelma on vapaa ohjelmisto. Tällä ohjelmalla ei ehdottomasti ole mitään takuuta.\n"

#: gprof.c:457
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: tuntematon eheytystyyli ”%s”\n"

#: gprof.c:477
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Vain joko ”--function-ordering” tai ”--file-ordering” saadaan määritellä.\n"

#: gprof.c:527
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: valitettavasti tiedostomuotoa ”prof” ei vielä tueta\n"

#: gprof.c:581
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: ”gmon.out”-tiedosto puuttuu histogrammista\n"

#: gprof.c:588
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: ”gmon.out”-tiedosto puuttuu kutsugraafidatasta\n"

#: hist.c:133
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: mittasuhdeyksikkö muuttui histogrammitietueiden välillä\n"
"%s: arvosta ”%s”\n"
"%s: arvoon ”%s”\n"

#: hist.c:143
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: mittasuhdelyhenne muuttui histogrammitietueiden välillä\n"
"%s: arvosta ”%c”\n"
"%s: arvoon ”%c”\n"

#: hist.c:157
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s: histogrammitietueissa on erilaiset skaalat"

#: hist.c:194
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: histogrammitietueet menevät päällekkäin\n"

#: hist.c:228
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: odottamaton tiedoston loppumerkki, kun oli luettu %u kaikkiaan %u näytteestä\n"

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

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

#: hist.c:476
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Jokainen näyte lasketaan arvona %g %s.\n"

#: hist.c:481
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" ei kerääntynyttä aikaa\n"
"\n"

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

#: hist.c:488
msgid "self  "
msgstr "itse  "

#: hist.c:488
msgid "total "
msgstr "yhteensä "

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

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

#: hist.c:580
#, c-format
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
"\n"
"\n"
"\n"
"litteä profiili:\n"

#: hist.c:586
#, c-format
msgid "Flat profile:\n"
msgstr "Litteä profiili:\n"

#: hist.c:705
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: löydetty symboli, joka kattaa useita histogrammitietueita"

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

#: mips.c:96
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr "[etsi_kutsu] 0x%lx: jalr-käsky (epäsuora kutsu)\n"

#: source.c:162
#, c-format
msgid "%s: could not locate `%s'\n"
msgstr "%s: ei voitu paikantaa ”%s”\n"

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

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