# Finnish messages for gprof.
# Copyright © 2007, 2009, 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Jorma Karvonen <karvjorm@users.sf.net>, 2007.
# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.21.53\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2010-11-05 10:29+0100\n"
"PO-Revision-Date: 2011-09-23 11:27+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\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"
"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:107
#, 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:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Kutsugraafi (selitys seuraa)\n"
"\n"

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

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

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

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

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

#: cg_print.c:96 cg_print.c:101
msgid "total"
msgstr "yhteensä"

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

#: cg_print.c:98 cg_print.c:99
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:98
#, c-format
msgid "%time"
msgstr "%time"

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

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

#: cg_print.c:99 hist.c:494
msgid "name"
msgstr "nimi"

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

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

#: cg_print.c:129
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <jakso %d kokonaisena> [%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     <spontaani>\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     <spontaani>\n"

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

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

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

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

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

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

#: corefile.c:269
#, 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:283
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: ei voi tehdä -c\n"

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

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

#: corefile.c:859
#, 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:84
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: osoitekoossa on odottamaton arvo %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: tiedosto on liian lyhyt, jotta se olisi gmon-tiedosto\n"

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

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

#: gmon_io.c:370
#, 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:437
#, 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:488
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: ei ole yhteensopiva ensimmäisen gmon-tiedoston kanssa\n"

#: gmon_io.c:518
#, 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:531
#, 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:749
#, 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:579
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Tiedosto ”%s” (versio %d) sisältää:\n"

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

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

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

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

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

#: gmon_io.c:589
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d peruslohkolukumäärätietueet\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 ""
"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=pituus] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=TYYLI]] [--no-demangle] [--external-symbol-table=nimi] [@TIEDOSTO]\n"
"\t[vedostiedosto] [profiilitiedosto...]\n"

#: gprof.c:175
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
"Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s\n"
"Ilmoita käännösvirheistä osoitteeseen <translation-team-fi@lists.sourceforge.net>.\n"

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

#: gprof.c:331
#, 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:419
#, c-format
msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n"

#: gprof.c:420
#, 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:421
#, 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:462
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: tuntematon eheytystyyli ”%s”\n"

#: gprof.c:482
#, 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:534
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: valitettavasti tiedostomuotoa ”prof” ei vielä tueta\n"

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

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

#: hist.c:135
#, 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:145
#, 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:159
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s: histogrammitietueissa on erilaiset skaalat"

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

#: hist.c:230
#, 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:464
#, c-format
msgid "%c%c/call"
msgstr "%c%c/kutsu"

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

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

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

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

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

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

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

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

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

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

#: hist.c:709
#, 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:99
#, 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>"
