# Finnish messages for gnulib.
# Copyright © 2002, 2003, 2004, 2009, 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
# Lauri Nurmi <lanurmi@iki.fi>, 2003, 2004.
# Matti Koskimies <matti@apulanta.fi>, 2002.
# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009-2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
"POT-Creation-Date: 2019-12-11 07:43+0100\n"
"PO-Revision-Date: 2011-12-10 19:05+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"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural= ( n!=1) ;\n"

#: lib/argmatch.c:132
#, c-format
msgid "invalid argument %s for %s"
msgstr "virheellinen argumentti %s kohteelle %s"

#: lib/argmatch.c:133
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "moniselitteinen argumentti %s kohteelle %s"

#: lib/argmatch.c:152 lib/argmatch.h:223
msgid "Valid arguments are:"
msgstr "Kelvolliset argumentit:"

#: lib/bitset/stats.c:177
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr ""

#: lib/bitset/stats.c:180
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr ""

#: lib/bitset/stats.c:183
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr ""

#: lib/bitset/stats.c:186
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr ""

#: lib/bitset/stats.c:190
#, c-format
msgid "%u bitset_lists\n"
msgstr ""

#: lib/bitset/stats.c:192
msgid "count log histogram\n"
msgstr ""

#: lib/bitset/stats.c:195
msgid "size log histogram\n"
msgstr ""

#: lib/bitset/stats.c:198
msgid "density histogram\n"
msgstr ""

#: lib/bitset/stats.c:210
#, c-format
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""

#: lib/bitset/stats.c:213
#, c-format
msgid "Accumulated runs = %u\n"
msgstr ""

#: lib/bitset/stats.c:255 lib/bitset/stats.c:260
#, fuzzy
msgid "cannot read stats file"
msgstr "ei voida luoda putkea"

#: lib/bitset/stats.c:257
#, c-format
msgid "bad stats file size\n"
msgstr ""

#: lib/bitset/stats.c:281 lib/bitset/stats.c:283
#, fuzzy
msgid "cannot write stats file"
msgstr "ei voida luoda putkea"

#: lib/bitset/stats.c:286
#, fuzzy
msgid "cannot open stats file for writing"
msgstr "ei voida avata varmuuskopiotiedostoa ”%s” kirjoittamista varten"

#: lib/closeout.c:122
msgid "write error"
msgstr "kirjoitusvirhe"

#: lib/error.c:195
msgid "Unknown system error"
msgstr "Tuntematon järjestelmävirhe"

#: lib/getopt.c:278
#, fuzzy, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: valitsin ’-W %s’ ei ole yksiselitteinen\n"

#: lib/getopt.c:284
#, fuzzy, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:"

#: lib/getopt.c:319
#, fuzzy, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: tunnistamaton valitsin ’%c%s’\n"

#: lib/getopt.c:345
#, fuzzy, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: valitsin ’%c%s’ ei salli argumenttia\n"

#: lib/getopt.c:360
#, fuzzy, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: valitsin ’--%s’ vaatii argumentin\n"

#: lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: epäkelpo valitsin -- ’%c’\n"

#: lib/getopt.c:636 lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: valitsin vaatii argumentin -- ’%c’\n"

#: lib/obstack.c:338 lib/obstack.c:340 lib/xalloc-die.c:34
msgid "memory exhausted"
msgstr "muisti loppui"

#. TRANSLATORS:
#. Get translations for open and closing quotation marks.
#. The message catalog should translate "`" to a left
#. quotation mark suitable for the locale, and similarly for
#. "'".  For example, a French Unicode local should translate
#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
#. QUOTATION MARK), respectively.
#.
#. If the catalog has no translation, we will try to
#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK).  If the
#. current locale is not Unicode, locale_quoting_style
#. will quote 'like this', and clocale_quoting_style will
#. quote "like this".  You should always include translations
#. for "`" and "'" even if U+2018 and U+2019 are appropriate
#. for your locale.
#.
#. If you don't know what to put here, please see
#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgstr "”"

#: lib/quotearg.c:363
msgid "'"
msgstr "”"

#: lib/spawn-pipe.c:141 lib/spawn-pipe.c:144 lib/spawn-pipe.c:265
#: lib/spawn-pipe.c:268
#, c-format
msgid "cannot create pipe"
msgstr "ei voida luoda putkea"

#: lib/spawn-pipe.c:235 lib/spawn-pipe.c:349 lib/wait-process.c:290
#: lib/wait-process.c:364
#, c-format
msgid "%s subprocess failed"
msgstr "%s-aliprosessi epäonnistui"

#: lib/timevar.c:316
msgid "Execution times (seconds)"
msgstr ""

#: lib/timevar.c:318
msgid "CPU user"
msgstr ""

#: lib/timevar.c:318
msgid "CPU system"
msgstr ""

#: lib/timevar.c:318
#, fuzzy
msgid "wall clock"
msgstr "Hälytyskello"

#: lib/w32spawn.h:49
#, c-format
msgid "_open_osfhandle failed"
msgstr "_open_osfhandle epäonnistui"

#: lib/w32spawn.h:90
#, c-format
msgid "cannot restore fd %d: dup2 failed"
msgstr "ei voi palauttaa fd %d: dup2 epäonnistui"

#: lib/wait-process.c:231 lib/wait-process.c:263 lib/wait-process.c:325
#, c-format
msgid "%s subprocess"
msgstr "%s-aliprosessi"

#: lib/wait-process.c:282 lib/wait-process.c:354
#, c-format
msgid "%s subprocess got fatal signal %d"
msgstr "%s-aliprosessi sai sammuttavan signaalin %d"

#~ msgid "Packaged by %s (%s)\n"
#~ msgstr "Pakkaaja: %s (%s)\n"

#~ msgid "Packaged by %s\n"
#~ msgstr "Pakkaaja: %s\n"

#~ msgid "(C)"
#~ msgstr "©"

#, fuzzy
#~| msgid ""
#~| "\n"
#~| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
#~| "html>.\n"
#~| "This is free software: you are free to change and redistribute it.\n"
#~| "There is NO WARRANTY, to the extent permitted by law.\n"
#~| "\n"
#~ msgid ""
#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
#~ msgstr ""
#~ "\n"
#~ "Lisenssi GPLv3+: GNU GPL versio 3 tai myöhäisempi <http://gnu.org/"
#~ "licenses/gpl.html>.\n"
#~ "Tämä on vapaa ohjelmisto: voit vapaasti muuttaa sitä tai jakaa sitä "
#~ "edelleen.\n"
#~ "Ohjelmalle EI OLE TAKUUTA siinä laajuudessa mitä laki sen sallii.\n"
#~ "\n"

#~ msgid "Written by %s.\n"
#~ msgstr "Kirjoittanut %s.\n"

#~ msgid "Written by %s and %s.\n"
#~ msgstr "Kirjoittaneet %s ja %s.\n"

#~ msgid "Written by %s, %s, and %s.\n"
#~ msgstr "Kirjoittaneet %s, %s ja %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
#~ "Kirjoittaneet %s, %s,\n"
#~ "%s ja %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
#~ "Kirjoittaneet %s, %s,\n"
#~ "%s, %s ja %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, and %s.\n"
#~ msgstr ""
#~ "Kirjoittaneet %s, %s,\n"
#~ "%s, %s, %s ja %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, and %s.\n"
#~ msgstr ""
#~ "Kirjoittaneet %s, %s,\n"
#~ "%s, %s, %s,\n"
#~ "%s ja %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
#~ "Kirjoittaneet %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s ja %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
#~ "Kirjoittaneet %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s ja %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s, and others.\n"
#~ msgstr ""
#~ "Kirjoittaneet %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s, %s ja muut.\n"

#, fuzzy
#~| msgid ""
#~| "\n"
#~| "Report bugs to: %s\n"
#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
#~ "\n"
#~ "Lähetä ilmoitukset ohjelmistovioista (englanniksi) osoitteeseen %s\n"
#~ "Lähetä ilmoitukset käännösvirheistä osoitteeseen <translation-team-"
#~ "fi@lists.sourceforge.net>\n"

#~ msgid "Report %s bugs to: %s\n"
#~ msgstr ""
#~ "Lähetä %s ilmoitukset ohjelmistovioista (englanniksi) osoitteeseen %s\n"

#~ msgid "%s home page: <%s>\n"
#~ msgstr "%s kotisivu: <%s>\n"

#, fuzzy
#~| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
#~ msgid "General help using GNU software: <%s>\n"
#~ msgstr ""
#~ "Yleinen opaste GNU-ohjelmiston käyttämiseen: <http://www.gnu.org/gethelp/"
#~ ">\n"

#~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
#~ msgstr "ARGP_HELP_FMT: %s arvo on pienempi tai yhtäsuuri kuin %s"

#~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
#~ msgstr "%.*s: ARGP_HELP_FMT parametri vaatii arvon"

#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
#~ msgstr "%.*s: ARGP_HELP_FMT parametrin on oltava positiivinen"

#~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
#~ msgstr "%.*s: Tuntematon ARGP_HELP_FMT-parametri"

#~ msgid "Garbage in ARGP_HELP_FMT: %s"
#~ msgstr "Roskaa kohteessa ARGP_HELP_FMT: %s"

#~ msgid ""
#~ "Mandatory or optional arguments to long options are also mandatory or "
#~ "optional for any corresponding short options."
#~ msgstr ""
#~ "Pitkien valitsimien pakolliset tai valinnaiset argumentit ovat pakollisia "
#~ "tai valinnaisia myös lyhyille valitsimille."

#~ msgid "Usage:"
#~ msgstr "Käyttö:"

#~ msgid "  or: "
#~ msgstr "  tai: "

#~ msgid " [OPTION...]"
#~ msgstr " [VALITSIN...]"

#~ msgid "Try `%s --help' or `%s --usage' for more information.\n"
#~ msgstr "Lisätietoja saa komennolla ”%s --help” tai ”%s --usage”.\n"

#~ msgid "Report bugs to %s.\n"
#~ msgstr "Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s.\n"

#~ msgid "give this help list"
#~ msgstr "anna tämä opasteluettelo"

#~ msgid "give a short usage message"
#~ msgstr "anna tämä lyhyt käyttösanoma"

#~ msgid "NAME"
#~ msgstr "NIMI"

#~ msgid "set the program name"
#~ msgstr "aseta ohjelman nimi"

#~ msgid "SECS"
#~ msgstr "SEKUNTIA"

#~ msgid "hang for SECS seconds (default 3600)"
#~ msgstr "odota SEKUNTIA sekuntia (oletus 3600)"

#~ msgid "print program version"
#~ msgstr "tulosta ohjelman versio"

#~ msgid "(PROGRAM ERROR) No version known!?"
#~ msgstr "(OHJELMAVIRHE) Versiota ei tiedetä!?"

#~ msgid "%s: Too many arguments\n"
#~ msgstr "%s: Liian monta argumenttia\n"

#~ msgid "(PROGRAM ERROR) Option should have been recognized!?"
#~ msgstr "(OHJELMAVIRHE) Valitsimen pitäisi olla tunnistettava!?"

#~ msgid "program error"
#~ msgstr "ohjelmavirhe"

#~ msgid "stack overflow"
#~ msgstr "pinon ylivuoto"

#~ msgid "cannot find a temporary directory, try setting $TMPDIR"
#~ msgstr ""
#~ "ei voi löytää tilapäistä hakemistoa, yritä asettaa $TMPDIR-"
#~ "ympäristömuuttuja"

#~ msgid "cannot create a temporary directory using template \"%s\""
#~ msgstr "ei voida luoda tilapäistä hakemistoa käyttäen mallinnetta ”%s”"

#~ msgid "cannot remove temporary file %s"
#~ msgstr "ei voida poistaa tilapäistä tiedostoa %s"

#~ msgid "cannot remove temporary directory %s"
#~ msgstr "ei voida poistaa tilapäistä hakemistoa %s"

#~ msgid "error closing file"
#~ msgstr "virhe suljettaessa tiedostoa"

#~ msgid "preserving permissions for %s"
#~ msgstr "säilytetään oikeudet kohteelle %s"

#~ msgid "error while opening \"%s\" for reading"
#~ msgstr "virhe avattaessa tiedostoa ”%s” lukemista varten"

#~ msgid "error reading \"%s\""
#~ msgstr "virhe luettaessa tiedostoa ”%s”"

#~ msgid "error writing \"%s\""
#~ msgstr "virhe kirjoitettaessa tiedostoa ”%s”"

#~ msgid "error after reading \"%s\""
#~ msgstr "virhe luettaessa tiedostoa ”%s”"

#~ msgid "fdopen() failed"
#~ msgstr "fdopen()-kutsu epäonnistui"

#~ msgid "C# compiler not found, try installing pnet"
#~ msgstr "C#-kääntäjää ei löytynyt, yritä asentaa pnet"

#~ msgid "C# virtual machine not found, try installing pnet"
#~ msgstr "C#-virtuaalikonetta ei löytynyt, yritä asentaa pnet"

#~ msgid "regular empty file"
#~ msgstr "tavallinen tyhjä tiedosto"

#~ msgid "regular file"
#~ msgstr "tavallinen tiedosto"

#~ msgid "directory"
#~ msgstr "hakemisto"

#~ msgid "block special file"
#~ msgstr "lohkoerikoistiedosto"

#~ msgid "character special file"
#~ msgstr "merkkierikoistiedosto"

#~ msgid "fifo"
#~ msgstr "putkitiedosto"

#~ msgid "symbolic link"
#~ msgstr "symbolinen linkki"

#~ msgid "socket"
#~ msgstr "pistoke"

#~ msgid "message queue"
#~ msgstr "viestijono"

#~ msgid "semaphore"
#~ msgstr "semafori"

#~ msgid "shared memory object"
#~ msgstr "jaettu muistiobjekti"

#~ msgid "typed memory object"
#~ msgstr "tyypitetty muistiobjekti"

#~ msgid "weird file"
#~ msgstr "outo tiedosto"

#~ msgid "Address family for hostname not supported"
#~ msgstr "Osoiteperhe tietokonenimelle ei ole tuettu"

#~ msgid "Temporary failure in name resolution"
#~ msgstr "Tilapäinen virhe nimiratkaisussa"

#~ msgid "Bad value for ai_flags"
#~ msgstr "Väärä arvo kohteelle ai_flags"

#~ msgid "Non-recoverable failure in name resolution"
#~ msgstr "Korjaamaton virhe nimiratkaisussa"

#~ msgid "ai_family not supported"
#~ msgstr "ai_family ei ole tuettu"

#~ msgid "Memory allocation failure"
#~ msgstr "Muistinvarausvirhe"

#~ msgid "No address associated with hostname"
#~ msgstr "Tietokonenimeen ei ole liitetty osoitetta"

#~ msgid "Name or service not known"
#~ msgstr "Nimeä tai palvelua ei tunneta"

#~ msgid "Servname not supported for ai_socktype"
#~ msgstr "Servname ei ole tuettu kohteelle ai_socktype"

#~ msgid "ai_socktype not supported"
#~ msgstr "ai_socktype ei ole tuettu"

#~ msgid "System error"
#~ msgstr "Järjestelmävirhe"

#~ msgid "Argument buffer too small"
#~ msgstr "Argumenttipuskuri on liian suuri"

#~ msgid "Processing request in progress"
#~ msgstr "Prosessointipyyntö käsittelyssä"

#~ msgid "Request canceled"
#~ msgstr "Pyyntö peruttu"

#~ msgid "Request not canceled"
#~ msgstr "Pyyntöä ei ole peruttu"

#~ msgid "All requests done"
#~ msgstr "Kaikki pyynnöt suoritettu"

#~ msgid "Interrupted by a signal"
#~ msgstr "Signaalin keskeyttämä"

#~ msgid "Parameter string not correctly encoded"
#~ msgstr "Parametrimerkkijono ei ole oikein koodattu"

#~ msgid "Unknown error"
#~ msgstr "Tuntematon virhe"

#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: valitsin ’--%s’ ei salli argumenttia\n"

#~ msgid "%s: unrecognized option '--%s'\n"
#~ msgstr "%s: tunnistamaton valitsin ’--%s’\n"

#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
#~ msgstr "%s: valitsin ’-W %s’ ei salli argumenttia\n"

#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: valitsin ’-W %s’ vaatii argumentin\n"

#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "virheellinen source_version-argumentti kohteelle compile_java_class"

#~ msgid "invalid target_version argument to compile_java_class"
#~ msgstr "virheellinen target_version-argumentti kohteelle compile_java_class"

#~ msgid "failed to create \"%s\""
#~ msgstr "kohteen ”%s” luominen epäonnistui"

#~ msgid "error while writing \"%s\" file"
#~ msgstr "virhe kirjoitettaessa tiedostoa ”%s”"

#~ msgid "Java compiler not found, try installing gcj or set $JAVAC"
#~ msgstr ""
#~ "Java-kääntäjää ei löytynyt, yritä asentaa gcj tai aseta $JAVAC-"
#~ "ympäristömuuttuja"

#~ msgid "Java virtual machine not found, try installing gij or set $JAVA"
#~ msgstr ""
#~ "Java-virtuaalikonetta ei löytynyt, yritä asentaa gij tai aseta $JAVA-"
#~ "ympäristömuuttuja"

#~ msgid "%s subprocess I/O error"
#~ msgstr "%s-aliprosessisiirräntävirhe"

#~ msgid "cannot change permissions of %s"
#~ msgstr "kohteen %s oikeuksien muuttaminen ei onnistu"

#~ msgid "cannot create directory %s"
#~ msgstr "hakemiston %s luominen ei onnistu"

#~ msgid "unable to record current working directory"
#~ msgstr "ei kyetä tallentaman nykyistä työhakemistoa"

#~ msgid "failed to return to initial working directory"
#~ msgstr "alkuperäiseen työhakemistoon palaaminen epäonnistui"

#~ msgid "Failed to open /dev/zero for read"
#~ msgstr "Kohteen /dev/zero avaaminen lukemista varten epäonnistui"

#~ msgid "creation of reading thread failed"
#~ msgstr "lukemissäikeen luominen epäonnistui"

#  nonblocking I/O on synonyymi termille asynchronous I/O
#~ msgid "cannot set up nonblocking I/O to %s subprocess"
#~ msgstr "ei voi asettaa tahdistamatonta siirräntää aliprosessille %s"

#~ msgid "communication with %s subprocess failed"
#~ msgstr "viestintä aliprosessin %s kanssa epäonnistui"

#~ msgid "write to %s subprocess failed"
#~ msgstr "kirjoittaminen aliprosessiin %s epäonnistui"

#~ msgid "read from %s subprocess failed"
#~ msgstr "lukeminen aliprosessista %s epäonnistui"

#~ msgid "subprocess %s terminated with exit code %d"
#~ msgstr "aliprosessi %s päättyi poistumiskoodilla %d"

#~ msgid "creation of threads failed"
#~ msgstr "säikeiden luominen epäonnistui"

#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "%s-aliprosessi päättyi poistumiskoodilla %d"

#~ msgid "Franc,ois Pinard"
#~ msgstr "François Pinard"

#~ msgid "Success"
#~ msgstr "Onnistui"

#~ msgid "No match"
#~ msgstr "Ei osumaa"

#~ msgid "Invalid regular expression"
#~ msgstr "Virheellinen säännöllinen lauseke"

#~ msgid "Invalid collation character"
#~ msgstr "virheellinen collation-merkkiluokka"

#~ msgid "Invalid character class name"
#~ msgstr "Virheellinen merkkiluokkanimi"

#~ msgid "Trailing backslash"
#~ msgstr "Jälkikenoviiva"

#~ msgid "Invalid back reference"
#~ msgstr "Virheellinen paluuviite"

#~ msgid "Unmatched [ or [^"
#~ msgstr "Pariton [ tai [^"

#~ msgid "Unmatched ( or \\("
#~ msgstr "pariton ( tai \\("

#~ msgid "Unmatched \\{"
#~ msgstr "Pariton \\{"

#~ msgid "Invalid content of \\{\\}"
#~ msgstr "Kohteen \\{\\} virheellinen sisältö"

#~ msgid "Invalid range end"
#~ msgstr "Virheellinen lukualueen loppu"

#~ msgid "Memory exhausted"
#~ msgstr "Muisti loppui"

#~ msgid "Invalid preceding regular expression"
#~ msgstr "Virheellinen edeltävä säännöllinen lauseke"

#~ msgid "Premature end of regular expression"
#~ msgstr "Ennenaikainen säännöllisen lausekkeen loppu"

#~ msgid "Regular expression too big"
#~ msgstr "Säännöllinen lauseke on liian iso"

#~ msgid "Unmatched ) or \\)"
#~ msgstr "Pariton ) tai \\)"

#~ msgid "No previous regular expression"
#~ msgstr "Ei edellistä säännöllistä lauseketta"

# Kaikkihan muistavat kääntää nämä ja vastaavat juuri näin. Ei pelkkä kK.
#~ msgid "^[yY]"
#~ msgstr "^[kKyY]"

#~ msgid "^[nN]"
#~ msgstr "^[eEnN]"

#~ msgid "setting permissions for %s"
#~ msgstr "asetetaan oikeudet kohteelle %s"

#~ msgid "Hangup"
#~ msgstr "Yhteyden katkaisu"

#~ msgid "Interrupt"
#~ msgstr "Keskeytys"

#~ msgid "Quit"
#~ msgstr "Poistu"

#~ msgid "Illegal instruction"
#~ msgstr "Virheellinen käsky"

#~ msgid "Trace/breakpoint trap"
#~ msgstr "Jäljitys/keskeytyspistekeskeytys"

#~ msgid "Aborted"
#~ msgstr "Keskeytetty"

#~ msgid "Floating point exception"
#~ msgstr "Liukulukupoikkeus"

#~ msgid "Killed"
#~ msgstr "Sammutettu"

#~ msgid "Bus error"
#~ msgstr "Väylävirhe"

#~ msgid "Segmentation fault"
#~ msgstr "Osiinjakamisvirhe"

#~ msgid "Broken pipe"
#~ msgstr "Rikkoutunut putki"

#~ msgid "Terminated"
#~ msgstr "Päättynyt"

#~ msgid "Urgent I/O condition"
#~ msgstr "Kiireellinen siirräntätila"

#~ msgid "Stopped (signal)"
#~ msgstr "Pysäytetty (signaali)"

#~ msgid "Stopped"
#~ msgstr "Pysäytetty"

#~ msgid "Continued"
#~ msgstr "Jatkettu"

#~ msgid "Child exited"
#~ msgstr "Lapsiprosessi poistunut"

#~ msgid "Stopped (tty input)"
#~ msgstr "Pysäytetty (tty-syöte)"

#~ msgid "Stopped (tty output)"
#~ msgstr "Pysäytetty (tty-tuloste)"

#~ msgid "I/O possible"
#~ msgstr "Siirräntä mahdollinen"

#~ msgid "CPU time limit exceeded"
#~ msgstr "Suoritinaikaraja ylitetty"

#~ msgid "File size limit exceeded"
#~ msgstr "Tiedostonkokoraja ylitetty"

#~ msgid "Virtual timer expired"
#~ msgstr "Virtuaaliajastin päättynyt"

#~ msgid "Profiling timer expired"
#~ msgstr "Profilointiajastin päättynyt"

#~ msgid "Window changed"
#~ msgstr "Ikkuna vaihtunut"

#~ msgid "User defined signal 1"
#~ msgstr "Käyttäjän määrittelemä signaali 1"

#~ msgid "User defined signal 2"
#~ msgstr "Käyttäjän määrittelemä signaali 2"

#~ msgid "EMT trap"
#~ msgstr "EMT-keskeytys"

#~ msgid "Bad system call"
#~ msgstr "Väärä järjestelmäkutsu"

#~ msgid "Stack fault"
#~ msgstr "Pinovirhe"

#~ msgid "Information request"
#~ msgstr "Tietopyyntö"

#~ msgid "Power failure"
#~ msgstr "Teholähdevika"

#~ msgid "Resource lost"
#~ msgstr "Resurssi kadonnut"

#~ msgid "error writing to a closed pipe or socket"
#~ msgstr "virhe kirjoitettaessa suljettuun putkeen tai pistokkeeseen"

#~ msgid "Real-time signal %d"
#~ msgstr "Tosiaikasignaali %d"

#~ msgid "Unknown signal %d"
#~ msgstr "Tuntematon signaali %d"

#~ msgid "iconv function not usable"
#~ msgstr "iconv-funktio ei ole käyttökelpoinen"

#~ msgid "iconv function not available"
#~ msgstr "iconv-funktio ei ole saatavilla"

#~ msgid "character out of range"
#~ msgstr "merkki sallitun välin ulkopuolella"

#~ msgid "cannot convert U+%04X to local character set"
#~ msgstr "merkin U+%04X muunnos paikalliseen merkistöön ei onnistu"

#~ msgid "cannot convert U+%04X to local character set: %s"
#~ msgstr "merkin U+%04X muunnos paikalliseen merkistöön ei onnistu: %s"

#~ msgid "invalid user"
#~ msgstr "virheellinen käyttäjä"

#~ msgid "invalid group"
#~ msgstr "virheellinen ryhmä"

#~ msgid "invalid spec"
#~ msgstr "virheellinen määrittely"

#~ msgid "unable to display error message"
#~ msgstr "ei kyetä näyttämään virheilmoitusta"

#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
#~ msgstr "%s kotisivu:  <http://www.gnu.org/software/%s/>\n"

#~ msgid "stdin"
#~ msgstr "vakiosyöte"

#~ msgid "stdout"
#~ msgstr "vakiotuloste"

#~ msgid "stderr"
#~ msgstr "vakiovirhe"

#~ msgid "unknown stream"
#~ msgstr "tuntematon merkkivirta"

#~ msgid "failed to reopen %s with mode %s"
#~ msgstr "kohteen %s avaaminen uudelleen tilassa %s epäonnistui"

#~ msgid "string comparison failed"
#~ msgstr "merkkijonovertailu epäonnistui"

#~ msgid "Set LC_ALL='C' to work around the problem."
#~ msgstr "Aseta LC_ALL='C' ongelman kiertämiseksi."

#~ msgid "The strings compared were %s and %s."
#~ msgstr "Vertaillut merkkijonot olivat %s ja %s."

#~ msgid "cannot perform formatted output"
#~ msgstr "muotoiltua tulostetta ei voitu suorittaa"

#~ msgid "invalid %s%s argument `%s'"
#~ msgstr "virheellinen %s%s-argumentti ”%s”"

#~ msgid "invalid suffix in %s%s argument `%s'"
#~ msgstr "virheellinen jälkiliite kohteen %s%s argumentissa ”%s”"

#~ msgid "%s%s argument `%s' too large"
#~ msgstr "%s%s argumentti ”%s” on liian iso"
