# Finnish messages for gprof.
# Copyright © 2007, 2009, 2011, 2014 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, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.24.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2014-02-10 09:42+1030\n"
"PO-Revision-Date: 2014-11-03 09:48+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:129 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:197
#, 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:290 basic_blocks.c:300
#, c-format
msgid "%s:%d: (%s:0x%lx) %lu executions\n"
msgstr "%s:%d: (%s:0x%lx) %lu suoritusta\n"

#: basic_blocks.c:291 basic_blocks.c:301
msgid "<unknown>"
msgstr "<tuntematon>"

#: basic_blocks.c:544
#, 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:568
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Suoritusyhteenveto:\n"
"\n"

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

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

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

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

#: basic_blocks.c:578
#, 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:75
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Kutsugraafi (selitys seuraa)\n"
"\n"

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

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

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

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

#: cg_print.c:97 cg_print.c:102 cg_print.c:105
msgid "called"
msgstr "kutsuttu"

#: cg_print.c:97 cg_print.c:105
msgid "total"
msgstr "yhteensä"

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

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

#: cg_print.c:102
msgid "self"
msgstr "itse"

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

#: cg_print.c:103 hist.c:497
msgid "name"
msgstr "nimi"

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

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

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

#: cg_print.c:359
#, 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:360
#, 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:594
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Indeksi funktionimittäin\n"
"\n"

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

#: corefile.c:61
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: kuvaustiedoston %s jäsentäminen epäonnistui.\n"

#: corefile.c:85 corefile.c:526
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: tiedoston %s avaaminen epäonnistui.\n"

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

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

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

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

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

#: corefile.c:905
#, 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: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 ""
"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] [--inline-file-names]\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:178
#, 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:254
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: debuggausta ei tueta; -d:tä ei oteta huomioon\n"

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

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

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

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

#: gprof.c:601
#, 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:467
#, c-format
msgid "%c%c/call"
msgstr "%c%c/kutsu"

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

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

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

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

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

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

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

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

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

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

#: hist.c:712
#, 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: kohteen ”%s” paikantaminen epäonnistui\n"

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

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