# Bulgarian translation of libiconv po-file.
# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the libiconv package.
# Roumen Petrov <transl@roumenpetrov.info>, 2008, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.12\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2008-09-26 14:10+0200\n"
"PO-Revision-Date: 2008-01-03 14:20+0200\n"
"Last-Translator: Roumen Petrov <transl@roumenpetrov.info>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\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);\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 "Употреба: iconv [-c] [-s] [-f fromcode] [-t tocode] [файл ...]"

#. 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 "или:      iconv -l"

#: src/iconv.c:111
#, 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:116
#, 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:123
#, c-format, no-wrap
msgid "or:    %s -l\n"
msgstr "или:      %s -l\n"

#. 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 "Преобразува текст от едно кодиране към друго.\n"

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

#: src/iconv.c:136
#, 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:140
#, 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:145
#, c-format, no-wrap
msgid "Options controlling conversion problems:\n"
msgstr "Аргументи контролиращи проблеми при преобразуване:\n"

#: src/iconv.c:148
#, c-format, no-wrap
msgid "  -c                          discard unconvertible characters\n"
msgstr "  -c                          игнориране на непреобразуваеми знаци\n"

#: src/iconv.c:151
#, c-format, no-wrap
msgid ""
"  --unicode-subst=FORMATSTRING\n"
"                              substitution for unconvertible Unicode characters\n"
msgstr ""
"  --unicode-subst=ФОРМАТИРАЩ_НИЗ\n"
"                              заместител на непреобразуваеми знаци от Уникод\n"

#: src/iconv.c:155
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr ""
"  --byte-subst=ФОРМАТИРАЩ_НИЗ\n"
"                              заместител на непреобразуваеми байтове\n"

#: src/iconv.c:158
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr ""
"  --widechar-subst=ФОРМАТИРАЩ_НИЗ\n"
"                              заместител на непреобразуваеми широки знаци\n"

#: src/iconv.c:163
#, c-format, no-wrap
msgid "Options controlling error output:\n"
msgstr "Аргументи задаващи извеждането на грешки:\n"

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

#: src/iconv.c:170
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Извеждане на информация:\n"

#: src/iconv.c:173
#, c-format, no-wrap
msgid "  -l, --list                  list the supported encodings\n"
msgstr "  -l, --list                  изброяване на поддържаните кодирания\n"

#: src/iconv.c:176
#, c-format, no-wrap
msgid "  --help                      display this help and exit\n"
msgstr "  --help                      показване на тази помощ и изход от програмата\n"

#: src/iconv.c:179
#, c-format, no-wrap
msgid "  --version                   output version information and exit\n"
msgstr ""
"  --version                   извеждане на информация за версията и изход от\n"
"                              програмата\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:186
msgid "Report bugs to <bug-gnu-libiconv@gnu.org>.\n"
msgstr ""
"Подавайте доклади за грешки в програмата на <bug-gnu-libiconv@gnu.org>.\n"
"Подавайте доклади за грешки в превода на <dict@fsa-bg.org>.\n"

#: 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 ""
"Лиценз GPLv2+: Версия 2 на GNU GPL или следваща http://gnu.org/licenses/gpl.html\n"
"Това е свободен програмен продукт: свободни сте да го променяте и разпространя-\n"
"вате.  Не се дават НИКАКВИ ГАРАНЦИИ до степента позволена от закона.\n"

#. TRANSLATORS: The %s placeholder expands to an author's name.
#: src/iconv.c:203
#, 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:297
#, 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:312
#, 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:328
#, 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:370
#, 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:377
#, 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:383
#, 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: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] ""
"%s аргумент: форматиращият низ използва повече от един аргумент: %u аргумент."
msgstr[1] ""
"%s аргумент: форматиращият низ използва повече от един аргумент: %u "
"аргумента."

#. 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 "заместителят за байт към Уникод не може да се преобразува: %s"

#. 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 ""
"заместителят за Уникод не може да се преобразува към резултатното кодиране: "
"%s"

#. 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 ""
"заместителят за байт в Уникод не може да се преобразува в широк знак: %s"

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

#. 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 ""
"заместителят за байт не може да се преобразува в резултатното кодиране: %s"

#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:639
#, 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:653
#, 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:666
#, 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:821
#, 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:1009
#, 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:1015
#, 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:1021
#, 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:1026
#, 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:1083
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:1095
#, c-format
msgid "%s"
msgstr "%s"

#. TRANSLATORS: An error message.
#: src/iconv.c:1109
#, c-format
msgid "I/O error"
msgstr "входно/изходна грешка"
