# 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, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.15-pre1\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2016-12-04 17:16+0100\n"
"PO-Revision-Date: 2016-12-12 23:42+0200\n"
"Last-Translator: Roumen Petrov <transl@roumenpetrov.info>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"
"Language: bg\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=2; plural=(n != 1);\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"
"                              преобразуване\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"
"                              програмата\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"
"Подавайте доклади за грешки в превода на <dict@ludost.net>.\n"

#: src/iconv.c:196
#, 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 ""
"Разрешително GPLv3+: Версия 3 на GNU GPL или следваща <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 "
"аргумента."

#. 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 "заместителят за байт към Уникод не може да се преобразува: %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 ""
"заместителят за Уникод не може да се преобразува към резултатното кодиране: "
"%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:1015
#, 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:1021
#, 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:1027
#, 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:1032
#, 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:1089
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:1101
#, c-format
msgid "%s"
msgstr "%s"

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