# -*- mode:po; coding:utf-8; -*- Slovenian messages for libiconv.
# Copyright (C) 2002, 2006, 2007, 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the libiconv package.
# Primož Peterlin <primozz.peterlin@gmail.com>, 2002, 2006, 2007, 2008.
# $Id: libiconv-1.12.sl.po 1.3 2008/04/27 19:23:24 Primoz Exp $
#
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.12\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2019-04-26 21:02+0200\n"
"PO-Revision-Date: 2008-04-26 09:48+0200\n"
"Last-Translator: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
"Language: sl\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=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"

#. TRANSLATORS: The first line of the short usage message.
#: src/iconv.c:104
msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr "Uporaba: iconv [-c] [-s] [-f vh_nabor] [-t izh_nabor] [datoteka ...]<"

#. TRANSLATORS: The second line of the short usage message.
#. Align it correctly against the first line.
#: src/iconv.c:108
msgid "or:    iconv -l"
msgstr "ali:     iconv -l"

#: src/iconv.c:110
#, fuzzy, c-format
#| msgid "Try `%s --help' for more information.\n"
msgid "Try '%s --help' for more information.\n"
msgstr "Poskusite »%s --help« za več informacij.\n"

#. TRANSLATORS: The first line of the long usage message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:115
#, c-format, no-wrap
msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n"
msgstr "Uporaba: %s [IZBIRA...] [-f KODIRANJE] [-t KODIRANJE] [DATOTEKA...]\n"

#. TRANSLATORS: The second line of the long usage message.
#. Align it correctly against the first line.
#. The %s placeholder expands to the program name.
#: src/iconv.c:122
#, c-format, no-wrap
msgid "or:    %s -l\n"
msgstr "ali:     %s -l\n"

#. TRANSLATORS: Description of the iconv program.
#: src/iconv.c:128
#, c-format, no-wrap
msgid "Converts text from one encoding to another encoding.\n"
msgstr "Pretvori besedilo iz enega kodnega nabora v drugega.\n"

#: src/iconv.c:132
#, c-format, no-wrap
msgid "Options controlling the input and output format:\n"
msgstr "Izbire, ki določajo vhodni in izhodni zapis:\n"

#: src/iconv.c:135
#, c-format, no-wrap
msgid ""
"  -f ENCODING, --from-code=ENCODING\n"
"                              the encoding of the input\n"
msgstr ""
"  -f KODIRANJE, --from-code=KODIRANJE\n"
"                              kodni nabor vhoda\n"

#: src/iconv.c:139
#, c-format, no-wrap
msgid ""
"  -t ENCODING, --to-code=ENCODING\n"
"                              the encoding of the output\n"
msgstr ""
"  -t KODIRANJE, --to-code=KODIRANJE\n"
"                              kodni nabor izhoda\n"

#: src/iconv.c:144
#, c-format, no-wrap
msgid "Options controlling conversion problems:\n"
msgstr "Izbire, ki določajo odziv na težave pri pretvorbi:\n"

#: src/iconv.c:147
#, c-format, no-wrap
msgid "  -c                          discard unconvertible characters\n"
msgstr "  -c                          zavrzi znake, ki jih ni mogoče pretvoriti\n"

#: src/iconv.c:150
#, c-format, no-wrap
msgid ""
"  --unicode-subst=FORMATSTRING\n"
"                              substitution for unconvertible Unicode characters\n"
msgstr ""
"  --unicode-subst=OBLIKOVNI_NIZ\n"
"                              zamenjava za nepretvorljive unikodne znake\n"

#: src/iconv.c:154
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr "  --byte-subst=OBLIKOVNI_NIZ  zamenjava za nepretvorljive bajte\n"

#: src/iconv.c:157
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr ""
"  --widechar-subst=OBLIKOVNI_NIZ\n"
"                              zamenjava za nepretvorljive široke znake\n"

#: src/iconv.c:162
#, c-format, no-wrap
msgid "Options controlling error output:\n"
msgstr "Izbire, ki določajo izpis napak:\n"

#: src/iconv.c:165
#, c-format, no-wrap
msgid "  -s, --silent                suppress error messages about conversion problems\n"
msgstr "  -s, --silent                brez poročil o napakah pri pretvorbi\n"

#: src/iconv.c:169
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Informativni izpis:\n"

#: src/iconv.c:172
#, c-format, no-wrap
msgid "  -l, --list                  list the supported encodings\n"
msgstr "  -l, --list                  izpiši podprte nabore znakov\n"

#: src/iconv.c:175
#, c-format, no-wrap
msgid "  --help                      display this help and exit\n"
msgstr "  --help                      izpiši ta navodila in končaj\n"

#: src/iconv.c:178
#, c-format, no-wrap
msgid "  --version                   output version information and exit\n"
msgstr "  --version                   izpiši informacijo o različici in končaj\n"

#. TRANSLATORS: The placeholder indicates the bug-reporting address
#. for this package.  Please add _another line_ saying
#. "Report translation bugs to <...>\n" with the address for translation
#. bugs (typically your translation team's web or email address).
#: src/iconv.c:185
msgid "Report bugs to <bug-gnu-libiconv@gnu.org>.\n"
msgstr "Napake javite na <bug-gnu-libiconv@gnu.org>.\n"

#: src/iconv.c:196
#, fuzzy, no-wrap
#| msgid ""
#| "License GPLv2+: GNU GPL version 2 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"
msgid ""
"License GPLv3+: GNU GPL version 3 or later <https://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"
msgstr ""
"GPLv2+: GNU GPL, 2. izdaja ali poznejša <http://www.gnu.org/licenses/gpl.html>\n"
"To je prosto programje; lahko ga redistribuirate in/ali spreminjate.\n"
"Za izdelek ni NOBENEGA JAMSTVA, do z zakonom dovoljene meje.\n"

#. TRANSLATORS: The %s placeholder expands to an author's name.
#: src/iconv.c:202
#, c-format
msgid "Written by %s.\n"
msgstr "Avtor %s.\n"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:296
#, c-format
msgid ""
"%s argument: A format directive with a variable width is not allowed here."
msgstr "argument %s: oblikovna direktiva z nestalno širino tu ni dovoljena."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:311
#, c-format
msgid ""
"%s argument: A format directive with a variable precision is not allowed "
"here."
msgstr ""
"argument %s: oblikovna direktiva z nestalno natančnostjo tu ni dovoljena."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:327
#, c-format
msgid "%s argument: A format directive with a size is not allowed here."
msgstr "argument %s: oblikovna direktiva z velikostjo tu ni dovoljena."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:369
#, c-format
msgid "%s argument: The string ends in the middle of a directive."
msgstr "argument %s: niz se konča sredi direktive."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#. The %c placeholder expands to an unknown format directive.
#: src/iconv.c:376
#, c-format
msgid "%s argument: The character '%c' is not a valid conversion specifier."
msgstr "argument %s: znak %c ni veljavno določilo pretvorbe."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:382
#, c-format
msgid ""
"%s argument: The character that terminates the format directive is not a "
"valid conversion specifier."
msgstr ""
"argument %s: znak, ki zaključuje oblikovno direktivo, ni veljavno določilo "
"pretvorbe."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#. The %u placeholder expands to the number of arguments consumed by the format string.
#: src/iconv.c:398
#, c-format
msgid ""
"%s argument: The format string consumes more than one argument: %u argument."
msgid_plural ""
"%s argument: The format string consumes more than one argument: %u arguments."
msgstr[0] ""
"argument %s: oblikovni niz porabi več kot en argument: %u argumentov."
msgstr[1] "argument %s: oblikovni niz porabi več kot en argument: %u argument."
msgstr[2] ""
"argument %s: oblikovni niz porabi več kot en argument: %u argumenta."
msgstr[3] ""
"argument %s: oblikovni niz porabi več kot en argument: %u argumente."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:456
#, c-format
msgid "cannot convert byte substitution to Unicode: %s"
msgstr "nadomestnega bajta ni mogoče pretvoriti v unikod: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --unicode-subst.
#: src/iconv.c:496
#, c-format
msgid "cannot convert unicode substitution to target encoding: %s"
msgstr "nadomestnega unikoda ni mogoče pretvoriti v ciljni nabor: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:537
#, c-format
msgid "cannot convert byte substitution to wide string: %s"
msgstr "nadomestnega bajta ni mogoče pretvoriti v široki niz: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --widechar-subst.
#: src/iconv.c:578
#, c-format
msgid "cannot convert widechar substitution to target encoding: %s"
msgstr "pretvorba nadomestnega širokega znaka v ciljni nabor ni mogoča: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:619
#, c-format
msgid "cannot convert byte substitution to target encoding: %s"
msgstr "pretvorba nadomestnega bajta v ciljni nabor ni mogoča: %s"

#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:638
#, c-format
msgid "%s:%u:%u: cannot convert"
msgstr "%s:%u:%u pretvorba ni mogoča"

#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#. A "shift sequence" is a sequence of bytes that changes the state of the converter;
#. this concept exists only for "stateful" encodings like ISO-2022-JP.
#: src/iconv.c:652
#, c-format
msgid "%s:%u:%u: incomplete character or shift sequence"
msgstr "%s:%u:%u nepopolni znak ali pomično zaporedje"

#. TRANSLATORS: The first part of an error message.
#. It is followed by a colon and a detail message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:665
#, c-format
msgid "%s:%u:%u"
msgstr "%s:%u:%u"

#. TRANSLATORS: An error message.
#. The placeholder expands to the input file name.
#: src/iconv.c:826
#, c-format
msgid "%s: I/O error"
msgstr "%s: V/I napaka"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --from-code.
#: src/iconv.c:1024
#, c-format
msgid "conversion from %s unsupported"
msgstr "pretvorba iz nabora %s ni podprta"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --to-code.
#: src/iconv.c:1030
#, c-format
msgid "conversion to %s unsupported"
msgstr "pretvorba v nabor %s ni podprta"

#. TRANSLATORS: An error message.
#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively.
#: src/iconv.c:1036
#, c-format
msgid "conversion from %s to %s unsupported"
msgstr "pretvorba iz nabora %s v nabor %s ni podprta"

#. TRANSLATORS: Additional advice after an error message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:1041
#, c-format
msgid "try '%s -l' to get the list of supported encodings"
msgstr "poskusite »%s -l« za seznam podprtih naborov znakov"

#. TRANSLATORS: A filename substitute denoting standard input.
#: src/iconv.c:1098
msgid "(stdin)"
msgstr "(stdin)"

#. TRANSLATORS: The first part of an error message.
#. It is followed by a colon and a detail message.
#. The %s placeholder expands to the input file name.
#: src/iconv.c:1110
#, c-format
msgid "%s"
msgstr "%s"

#. TRANSLATORS: An error message.
#: src/iconv.c:1124
#, c-format
msgid "I/O error"
msgstr "V/I napaka"

#~ msgid ""
#~ "This is free software; see the source for copying conditions.  There is "
#~ "NO\n"
#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR "
#~ "PURPOSE.\n"
#~ msgstr ""
#~ "To je prost program; pogoji, pod katerimi ga lahko razmnožujete in\n"
#~ "razširjate, so navedeni v izvorni kodi. Za program ni NOBENEGA jamstva,\n"
#~ "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n"

#~ msgid ""
#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
#~ msgstr ""
#~ "Uporaba: iconv [--binary] [-c] [-s] [-f vh_nabor] [-t izh_nabor] "
#~ "[datoteka ...]"

#~ msgid "iconv: %s: "
#~ msgstr "iconv: %s: "
