# Slovak translation of the libiconv.
# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
# Marcel Telka <marcel@telka.sk>, 2002, 2003.
#
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.9.1\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2003-05-06 13:32+0200\n"
"PO-Revision-Date: 2003-09-05 07:05+0200\n"
"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: src/iconv.c:59
msgid "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr ""
"Použitie: iconv [--binary] [-c] [-s] [-f z_kódu] [-t do_kódu] [súbor ...]"

#: src/iconv.c:61
msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr "Použitie: iconv [-c] [-s] [-f z_kódu] [-t do kódu] [súbor ...]"

#: src/iconv.c:64
msgid "or:    iconv -l"
msgstr "alebo:    iconv -l"

#: src/iconv.c:74
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 ""
"Toto je voľne šíriteľný softvér; pre podmienky kopírovania pozri zdrojový "
"kód.\n"
"Neposkytuje sa ŽIADNA záruka; ani čo sa týka OBCHODOVATEĽNOSTI alebo "
"VHODNOSTI\n"
"NA KONKRÉTNY ÚČEL.\n"

#: src/iconv.c:77
#, c-format
msgid "Written by %s.\n"
msgstr "Napísal %s.\n"

#: src/iconv.c:114 src/iconv.c:146 src/iconv.c:196
#, c-format
msgid "iconv: %s: incomplete character or shift sequence\n"
msgstr "iconv: %s: nekompletný znak alebo preraďovacia sekvencia\n"

#: src/iconv.c:140 src/iconv.c:191
#, c-format
msgid "iconv: %s: cannot convert\n"
msgstr "iconv: %s: nemôžem konvertovať\n"

#: src/iconv.c:162 src/iconv.c:201 src/iconv.c:320
#, c-format
msgid "iconv: %s: "
msgstr "iconv: %s: "

#: src/iconv.c:210
#, c-format
msgid "iconv: %s: I/O error\n"
msgstr "iconv: %s: V/V chyba\n"

#: src/iconv.c:304
#, c-format
msgid "iconv: conversion from %s unsupported\n"
msgstr "iconv: konverzia z %s nie je podporovaná\n"

#: src/iconv.c:306
#, c-format
msgid "iconv: conversion to %s unsupported\n"
msgstr "iconv: konverzia do %s nie je podporovaná\n"

#: src/iconv.c:308
#, c-format
msgid "iconv: conversion from %s to %s unsupported\n"
msgstr "iconv: konverzia z %s do %s nie je podporovaná\n"

#: src/iconv.c:312
msgid "(stdin)"
msgstr "(štandardný vstup)"

#: src/iconv.c:333
msgid "iconv: I/O error\n"
msgstr "iconv: V/V chyba\n"
