# Ukrainian translation of libiconv.
# Copyright (C) 2003 Free Software Foundation, Inc.
# This file is distributed under the same license as the libiconv package.
#
# Volodymyr M. Lisivka <lvm@mystery.lviv.net>, 2003.
# Yuri Chornoivan <yurchor@ukr.net>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.12\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2011-08-07 15:24+0200\n"
"PO-Revision-Date: 2011-02-05 20:28+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 1.2\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 ""
"Використання: iconv [-c] [-s] [-f з_кодування] [-t у_кодування] [файл ...]"

#. 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 "або:   iconv -l"

#: src/iconv.c:110
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Щоб дізнатися більше, віддайте команду «%s --help».\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 "Використання: %s [ПАРАМЕТР...] [-f КОДУВАННЯ] [-t КОДУВАННЯ] [ФАЙЛ ВХІДНИХ ДАНИХ...]\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 "або:    %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 "Перетворює текст у одному кодуванні на текст у іншому кодуванні.\n"

#: src/iconv.c:132
#, c-format, no-wrap
msgid "Options controlling the input and output format:\n"
msgstr "Параметри керування форматом вхідних та вихідних даних:\n"

#: src/iconv.c:135
#, c-format, no-wrap
msgid ""
"  -f ENCODING, --from-code=ENCODING\n"
"                              the encoding of the input\n"
msgstr ""
"  -f КОДУВАННЯ, --from-code=КОДУВАННЯ\n"
"                              кодування вхідних даних\n"

#: src/iconv.c:139
#, c-format, no-wrap
msgid ""
"  -t ENCODING, --to-code=ENCODING\n"
"                              the encoding of the output\n"
msgstr ""
"  -t КОДУВАННЯ, --to-code=КОДУВАННЯ\n"
"                              кодування вихідних даних\n"

#: src/iconv.c:144
#, c-format, no-wrap
msgid "Options controlling conversion problems:\n"
msgstr "Параметри керування обробкою помилок під час перетворення:\n"

#: src/iconv.c:147
#, c-format, no-wrap
msgid "  -c                          discard unconvertible characters\n"
msgstr "  -c                          викидати символи, непридатні до перетворення\n"

#: src/iconv.c:150
#, c-format, no-wrap
msgid ""
"  --unicode-subst=FORMATSTRING\n"
"                              substitution for unconvertible Unicode characters\n"
msgstr ""
"  --unicode-subst=РЯДОК_ФОРМАТУВАННЯ\n"
"                              заміна непридатних до перетворення символів Unicode\n"

#: src/iconv.c:154
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr "  --byte-subst=РЯДОК_ФОРМАТУВАННЯ заміна непридатних до перетворення байтів\n"

#: src/iconv.c:157
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr ""
"  --wide-subst=РЯДОК_ФОРМАТУВАННЯ\n"
"                              заміна непридатних до перетворення «широких» символів\n"

#: src/iconv.c:162
#, c-format, no-wrap
msgid "Options controlling error output:\n"
msgstr "Параметри керування показом повідомлень про помилки:\n"

#: src/iconv.c:165
#, c-format, no-wrap
msgid "  -s, --silent                suppress error messages about conversion problems\n"
msgstr "  -s, --silent                придушити повідомлення щодо проблем під час перетворення\n"

#: src/iconv.c:169
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Показ інформації:\n"

#: src/iconv.c:172
#, c-format, no-wrap
msgid "  -l, --list                  list the supported encodings\n"
msgstr "  -l, --list                  показати список підтримуваних кодувань\n"

#: src/iconv.c:175
#, c-format, no-wrap
msgid "  --help                      display this help and exit\n"
msgstr "  --help                      показати ці довідкові дані і завершити роботу\n"

#: src/iconv.c:178
#, c-format, no-wrap
msgid "  --version                   output version information and exit\n"
msgstr "  --version                   показати дані щодо версії і завершити роботу\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 "Про вади слід повідомляти на адресу <bug-gnu-libiconv@gnu.org>.\n"

#: src/iconv.c:196
#, fuzzy, no-wrap
msgid ""
"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"
msgstr ""
"Умови ліцензування викладено у GPLv2+: GNU GPL версії 2 або новішій, <http://gnu.org/licenses/gpl.html>\n"
"Це вільне програмне забезпечення: ви можете вільно змінювати і поширювати його.\n"
"Вам не надається ЖОДНИХ ГАРАНТІЙ, окрім гарантій передбачених законодавством.\n"

#. TRANSLATORS: The %s placeholder expands to an author's name.
#: src/iconv.c:202
#, c-format
msgid "Written by %s.\n"
msgstr "Автор — %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 ""
"Аргумент %s: тут не можна використовувати команду форматування з визначенням "
"ширини змінної."

#. 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 ""
"Аргумент %s: тут не можна використовувати команду форматування з визначенням "
"точності змінної."

#. 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 ""
"Аргумент %s: тут не можна використовувати команду форматування з визначенням "
"розміру."

#. 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 "Аргумент %s: завершення рядка посередині команди."

#. 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 ""
"Аргумент %s: символ «%c» не є коректним символом визначення перетворення."

#. 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 ""
"Аргумент %s: символ, що перериває команду форматування не є коректним "
"символом визначення перетворення."

#. 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] ""
"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів."
msgstr[1] ""
"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів."
msgstr[2] ""
"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів."
msgstr[3] ""
"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів."

#. 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 "не вдалося перетворити замінник байтів у символ Unicode: %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 "не вдалося перетворити замінник unicode у кодування призначення: %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 "не вдалося перетворити замінник байтів у «широкий» рядок: %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 ""
"не вдалося перетворити замінник «широкого» символу у кодування призначення: "
"%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 "не вдалося перетворити замінник байтів у кодування призначення: %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: не вдалося перетворити"

#. 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: незавершений символ чи послідовність зміни регістру"

#. 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: помилка вводу-виводу"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --from-code.
#: src/iconv.c:1014
#, c-format
msgid "conversion from %s unsupported"
msgstr "підтримки перетворення з %s не передбачено"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --to-code.
#: src/iconv.c:1020
#, c-format
msgid "conversion to %s unsupported"
msgstr "підтримки перетворення у %s не передбачено"

#. TRANSLATORS: An error message.
#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively.
#: src/iconv.c:1026
#, c-format
msgid "conversion from %s to %s unsupported"
msgstr "підтримки перетворення з %s у %s не передбачено"

#. TRANSLATORS: Additional advice after an error message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:1031
#, c-format
msgid "try '%s -l' to get the list of supported encodings"
msgstr ""
"список кодувань, які підтримуються програмою, можна отримати командою «%s -l»"

#. TRANSLATORS: A filename substitute denoting standard input.
#: src/iconv.c:1088
msgid "(stdin)"
msgstr "(стд. ввід)"

#. 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:1100
#, c-format
msgid "%s"
msgstr "%s"

#. TRANSLATORS: An error message.
#: src/iconv.c:1114
#, c-format
msgid "I/O error"
msgstr "помилка вводу-виводу"

#~ msgid ""
#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
#~ msgstr ""
#~ "Використання:\n"
#~ "  iconv [--binary] [-c] [-s] [-f з_кодування] [-t у_кодування] [файл ...]"

#~ 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 ""
#~ "Це вільне програмне забезпечення; умови копіювання приведені у\n"
#~ "джерельних текстах програми.  Нема НІЯКИХ гарантій; навіть гарантії "
#~ "КОМЕРЦІЙНОЇ\n"
#~ "ЦІННОСТІ або ПРИДАТНОСТІ ДЛЯ КОНКРЕТНОЇ ЦІЛІ.\n"

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