# translation of libiconv to Croatian.
# Copyright (C) 2002 Free Software Foundation, Inc.
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
# This file is distributed under the same license as the libiconv package.
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
#
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.8\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2007-10-24 02:02+0200\n"
"PO-Revision-Date: 2002-06-14 14:48-01\n"
"Last-Translator: Denis Lackovic <delacko@fly.srk.fer.hr>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\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?0:1);\n"
"X-Generator: TransDict server\n"

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

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

#: src/iconv.c:111
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""

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

#. 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:123
#, fuzzy, c-format, no-wrap
msgid "or:    %s -l\n"
msgstr "ili:    iconv -l"

#. TRANSLATORS: Description of the iconv program.
#: src/iconv.c:129
#, c-format, no-wrap
msgid "Converts text from one encoding to another encoding.\n"
msgstr ""

#: src/iconv.c:133
#, c-format, no-wrap
msgid "Options controlling the input and output format:\n"
msgstr ""

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

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

#: src/iconv.c:145
#, c-format, no-wrap
msgid "Options controlling conversion problems:\n"
msgstr ""

#: src/iconv.c:148
#, c-format, no-wrap
msgid "  -c                          discard unconvertible characters\n"
msgstr ""

#: src/iconv.c:151
#, c-format, no-wrap
msgid ""
"  --unicode-subst=FORMATSTRING\n"
"                              substitution for unconvertible Unicode characters\n"
msgstr ""

#: src/iconv.c:155
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr ""

#: src/iconv.c:158
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr ""

#: src/iconv.c:163
#, c-format, no-wrap
msgid "Options controlling error output:\n"
msgstr ""

#: src/iconv.c:166
#, c-format, no-wrap
msgid "  -s, --silent                suppress error messages about conversion problems\n"
msgstr ""

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

#: src/iconv.c:173
#, c-format, no-wrap
msgid "  -l, --list                  list the supported encodings\n"
msgstr ""

#: src/iconv.c:176
#, c-format, no-wrap
msgid "  --help                      display this help and exit\n"
msgstr ""

#: src/iconv.c:179
#, c-format, no-wrap
msgid "  --version                   output version information and exit\n"
msgstr ""

#. 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:186
msgid "Report bugs to <bug-gnu-libiconv@gnu.org>.\n"
msgstr ""

#: src/iconv.c:197
#, 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"
msgstr ""

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

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:297
#, c-format
msgid ""
"%s argument: A format directive with a variable width is not allowed here."
msgstr ""

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:312
#, c-format
msgid ""
"%s argument: A format directive with a variable precision is not allowed "
"here."
msgstr ""

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

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

#. 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:377
#, c-format
msgid "%s argument: The character '%c' is not a valid conversion specifier."
msgstr ""

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:383
#, c-format
msgid ""
"%s argument: The character that terminates the format directive is not a "
"valid conversion specifier."
msgstr ""

#. 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:399
#, 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] ""
msgstr[1] ""

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:457
#, c-format
msgid "cannot convert byte substitution to Unicode: %s"
msgstr ""

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --unicode-subst.
#: src/iconv.c:497
#, c-format
msgid "cannot convert unicode substitution to target encoding: %s"
msgstr ""

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:538
#, c-format
msgid "cannot convert byte substitution to wide string: %s"
msgstr ""

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --widechar-subst.
#: src/iconv.c:579
#, c-format
msgid "cannot convert widechar substitution to target encoding: %s"
msgstr ""

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:620
#, c-format
msgid "cannot convert byte substitution to target encoding: %s"
msgstr ""

#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:639
#, fuzzy, c-format
msgid "%s:%u:%u: cannot convert"
msgstr "iconv: %s: ne mogu konvertirati\n"

#. 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:653
#, fuzzy, c-format
msgid "%s:%u:%u: incomplete character or shift sequence"
msgstr "iconv: %s: nezavršena znakovna ili shift sekvenca\n"

#. 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:666
#, fuzzy, c-format
msgid "%s:%u:%u"
msgstr "iconv: %s: "

#. TRANSLATORS: An error message.
#. The placeholder expands to the input file name.
#: src/iconv.c:821
#, fuzzy, c-format
msgid "%s: I/O error"
msgstr "iconv: %s: U/I greška\n"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --from-code.
#: src/iconv.c:1009
#, fuzzy, c-format
msgid "conversion from %s unsupported"
msgstr "iconv: konverzija iz %s nije podržana\n"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --to-code.
#: src/iconv.c:1015
#, fuzzy, c-format
msgid "conversion to %s unsupported"
msgstr "iconv: konverzija u %s nije podržana\n"

#. TRANSLATORS: An error message.
#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively.
#: src/iconv.c:1021
#, fuzzy, c-format
msgid "conversion from %s to %s unsupported"
msgstr "iconv: konverzija iz %s u %s nije podržana\n"

#. TRANSLATORS: Additional advice after an error message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:1026
#, c-format
msgid "try '%s -l' to get the list of supported encodings"
msgstr ""

#. TRANSLATORS: A filename substitute denoting standard input.
#: src/iconv.c:1083
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:1095
#, c-format
msgid "%s"
msgstr ""

#. TRANSLATORS: An error message.
#: src/iconv.c:1109
#, fuzzy, c-format
msgid "I/O error"
msgstr "iconv: U/I greška\n"

#~ 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 ""
#~ "Ovo je slobodni softver; pogledajte kod kako biste doznali uvjete "
#~ "kopiranja.  NEMA\n"
#~ "garancije; čak ni tvrdnje o ISPLATIVOSTI ili POGODNOSTI ZA NEKU SVRHU.\n"

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

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