# translation of popt-1.14.pot to Finnish
# Copyright © 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the popt package.
# This file is put in the public domain.
# Jorma Karvonen <karvjorm@users.sf.net>, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: popt 1.14\n"
"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n"
"POT-Creation-Date: 2010-02-17 13:35-0500\n"
"PO-Revision-Date: 2008-02-21 18:19+0200\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"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.4\n"

#  errno - number of last error (defined by the ISO C standard)
#: popt.c:47
msgid "unknown errno"
msgstr "tuntematon errno-virhenumeroarvo"

#: popt.c:1290
#, c-format
msgid "option type (%u) not implemented in popt\n"
msgstr "valitsintyyppiä (%u) ei ole toteutettu popt-ohjelmassa\n"

#: popt.c:1711
msgid "missing argument"
msgstr "puuttuva argumentti"

#: popt.c:1713
msgid "unknown option"
msgstr "tuntematon valitsin"

#: popt.c:1715
msgid "mutually exclusive logical operations requested"
msgstr "pyydettyjä loogisia toimintoja ei voi käyttää yhdessä"

#: popt.c:1717
msgid "opt->arg should not be NULL"
msgstr "”opt->arg”-valitsinargumentti ei saa olla NULL"

#: popt.c:1719
msgid "aliases nested too deeply"
msgstr "liian monta aliasta sisäkkäin"

#: popt.c:1721
msgid "error in parameter quoting"
msgstr "virhe parametrien lainauksessa"

#: popt.c:1723
msgid "invalid numeric value"
msgstr "virheellinen numeroarvo"

#: popt.c:1725
msgid "number too large or too small"
msgstr "numero on liian iso tai liian pieni"

#: popt.c:1727
msgid "memory allocation failed"
msgstr "muistin varaus ei onnistunut"

#: popt.c:1729
msgid "config file failed sanity test"
msgstr ""

#: popt.c:1733
msgid "unknown error"
msgstr "tuntematon virhe"

#: popthelp.c:75 popthelp.c:86
msgid "Show this help message"
msgstr "Näytä tämä ohje"

#: popthelp.c:76 popthelp.c:87
msgid "Display brief usage message"
msgstr "Näytä lyhyt käyttöohje"

#: popthelp.c:90
msgid "Display option defaults in message"
msgstr "Näytä valitsinoletukset ohjeessa"

#: popthelp.c:92
msgid "Terminate options"
msgstr "Lopettamisvalitsimet"

#: popthelp.c:191
msgid "Help options:"
msgstr "Ohjevalitsimet:"

#: popthelp.c:192
msgid "Options implemented via popt alias/exec:"
msgstr ""
"Valitsimet toteutettu ”popt alias”-määrittelyillä tai ”popt exec”-"
"määrittelyillä:"

#: popthelp.c:200
msgid "NONE"
msgstr "EI MITÄÄN"

#: popthelp.c:202
msgid "VAL"
msgstr "ARVO"

#: popthelp.c:206
msgid "INT"
msgstr "INT-KOKONAISLUKU"

#: popthelp.c:207
msgid "SHORT"
msgstr ""

#: popthelp.c:208
msgid "LONG"
msgstr "LONG-KOKONAISLUKU"

#: popthelp.c:209
msgid "LONGLONG"
msgstr "LONGLONG-KOKONAISLUKU"

#: popthelp.c:210
msgid "STRING"
msgstr "MERKKIJONO"

#: popthelp.c:211
msgid "FLOAT"
msgstr "FLOAT-LIUKULUKU"

#: popthelp.c:212
msgid "DOUBLE"
msgstr "DOUBLE-LIUKULUKU"

#: popthelp.c:215
msgid "ARG"
msgstr "ARGUMENTTI"

#: popthelp.c:649
msgid "Usage:"
msgstr "Käyttö:"

#: popthelp.c:672
msgid "[OPTION...]"
msgstr "[VALITSIN...]"
