# Локализация libiconv.
# Copyright (C) 2002 Free Software Foundation, Inc.
# This file is distributed under the same license as the libiconv package.
#
# Dmitry S. Sivachenko <mitya@cavia.pp.ru>, 2002,2003.
# Yuri Kozlov <yuray@komyakino.ru>, 2019, 2022.
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.17-pre1\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2022-02-12 13:29+0100\n"
"PO-Revision-Date: 2022-02-19 10:43+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
"Language: ru\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=3; plural=(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 20.12.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 ""
"Использование: 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"
"                              замена для непреобразующихся символов Юникода\n"

#: src/iconv.c:154
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr ""
"  --byte-subst=СТРОКА_ФОРМАТА\n"
"                              замена для непреобразующихся байт\n"

#: src/iconv.c:157
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr ""
"  --widechar-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 first placeholder is the web address of the Savannah
#. project of this package.  The second placeholder is the bug-reporting
#. email 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
#, c-format
msgid ""
"Report bugs in the bug tracker at <%s>\n"
"or by email to <%s>.\n"
msgstr ""
"Сообщайте об ошибках в систему отслеживания <%s>\n"
"или на почту <%s>.\n"

#. TRANSLATORS: The %s placeholder is the web address of the GPL license.
#: src/iconv.c:202
#, c-format, no-wrap
msgid ""
"License GPLv3+: GNU GPL version 3 or later <%s>\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 ""
"Лицензия GPLv3+: GNU GPL версии 3 или новее <%s>\n"
"Это свободное ПО: вы можете изменять и распространять его.\n"
"Нет НИКАКИХ ГАРАНТИЙ в пределах действующего законодательства.\n"

#. TRANSLATORS: The %s placeholder expands to an author's name.
#: src/iconv.c:208
#, 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:302
#, 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:317
#, 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:333
#, 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:375
#, 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:382
#, 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:388
#, 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:404
#, 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 "
"аргументов."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:462
#, c-format
msgid "cannot convert byte substitution to Unicode: %s"
msgstr "невозможно преобразовать байтовую подстановку в Юникод: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --unicode-subst.
#: src/iconv.c:502
#, c-format
msgid "cannot convert unicode 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:543
#, 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:584
#, 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:625
#, 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:644
#, 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:658
#, 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:671
#, 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:832
#, 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:1030
#, 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:1036
#, 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:1042
#, 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:1047
#, 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:1104
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:1116
#, c-format
msgid "%s"
msgstr "%s"

#. TRANSLATORS: An error message.
#: src/iconv.c:1130
#, c-format
msgid "I/O error"
msgstr "ошибка ввода-вывода"

#~ msgid "Report bugs to <bug-gnu-libiconv@gnu.org>.\n"
#~ msgstr "Об ошибках сообщайте по адресу <bug-gnu-libiconv@gnu.org>.\n"

#~ msgid ""
#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
#~ msgstr ""
#~ "Использование: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] "
#~ "[файл ...]"

#~ 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: "
