# Polish translation for libiconv.
# Copyright (C) 2003, 2006, 2016 Free Software Foundation, Inc.
# This file is distributed under the same license as the libiconv package.
# Arkadiusz Lipiec <alipiec@elka.pw.edu.pl>, 2003.
# Jakub Bogusz <qboosh@pld-linux.org>, 2006-2016.
#
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.15-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: 2016-12-12 16:30+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 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 "Składnia: iconv [-c] [-s] [f z_kodu] [-t do_kodu] [plik ...]"

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

#: src/iconv.c:110
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "Polecenie '%s --help' pozwoli uzyskać więcej informacji.\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 "Składnia: %s [OPCJA...] [-f KODOWANIE] [-t KODOWANIE] [PLIK_WEJ...]\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 "lub:    %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 "Konwersja tekstu z jednego kodowania do innego.\n"

#: src/iconv.c:132
#, c-format, no-wrap
msgid "Options controlling the input and output format:\n"
msgstr "Opcje sterujące formatem wejścia i wyjścia:\n"

#: src/iconv.c:135
#, c-format, no-wrap
msgid ""
"  -f ENCODING, --from-code=ENCODING\n"
"                              the encoding of the input\n"
msgstr ""
"  -f KODOWANIE, --from-code=KODOWANIE\n"
"                              kodowanie wejścia\n"

#: src/iconv.c:139
#, c-format, no-wrap
msgid ""
"  -t ENCODING, --to-code=ENCODING\n"
"                              the encoding of the output\n"
msgstr ""
"  -t KODOWANIE, --to-code=KODOWANIE\n"
"                              kodowanie wyjścia\n"

#: src/iconv.c:144
#, c-format, no-wrap
msgid "Options controlling conversion problems:\n"
msgstr "Opcje sterujące zagadnieniami konwersji:\n"

#: src/iconv.c:147
#, c-format, no-wrap
msgid "  -c                          discard unconvertible characters\n"
msgstr "  -c                          pominięcie niekonwertowalnych znaków\n"

#: src/iconv.c:150
#, c-format, no-wrap
msgid ""
"  --unicode-subst=FORMATSTRING\n"
"                              substitution for unconvertible Unicode characters\n"
msgstr ""
"  --unicode-subst=ŁAŃCUCH_FORMATUJĄCY\n"
"                              zamiennik dla niekonwertowalnych znaków Unicode\n"

#: src/iconv.c:154
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr "  --byte-subst=ŁAŃCUCH_FORMATUJĄCY   zamiennik dla niekonwertowalnych bajtów\n"

#: src/iconv.c:157
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr ""
"  --widechar-subst=ŁAŃCUCH_FORMATUJĄCY\n"
"                              zamiennik dla niekonwertowalnych znaków szerokich\n"

#: src/iconv.c:162
#, c-format, no-wrap
msgid "Options controlling error output:\n"
msgstr "Opcje sterujące wyjściem błędów:\n"

#: src/iconv.c:165
#, c-format, no-wrap
msgid "  -s, --silent                suppress error messages about conversion problems\n"
msgstr "  -s, --silent                pominięcie komunikatów błędów dotyczących konwersji\n"

#: src/iconv.c:169
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Wyjście informacyjne:\n"

#: src/iconv.c:172
#, c-format, no-wrap
msgid "  -l, --list                  list the supported encodings\n"
msgstr "  -l, --list                  wypisanie obsługiwanych kodowań\n"

#: src/iconv.c:175
#, c-format, no-wrap
msgid "  --help                      display this help and exit\n"
msgstr "  --help                      wyświetlenie tego opisu i zakończenie\n"

#: src/iconv.c:178
#, c-format, no-wrap
msgid "  --version                   output version information and exit\n"
msgstr "  --version                   wyświetlenie informacji o wersji i zakończenie\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 ""

#. TRANSLATORS: The %s placeholder is the web address of the GPL license.
#: src/iconv.c:202
#, fuzzy, c-format, 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"
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 ""
"Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza <http://gnu.org/licenses/gpl.html>\n"
"To jest oprogramowanie wolnodostępne: można je modyfikować i rozpowszechniać.\n"
"Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"

#. TRANSLATORS: The %s placeholder expands to an author's name.
#: src/iconv.c:208
#, c-format
msgid "Written by %s.\n"
msgstr "Napisane przez %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 ""
"Argument %s: dyrektywa formatująca o zmiennej szerokości nie jest tutaj "
"dozwolona."

#. 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 ""
"Argument %s: dyrektywa formatująca o zmiennej precyzji nie jest tutaj "
"dozwolona."

#. 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 ""
"Argument %s: dyrektywa formatująca z rozmiarem nie jest tutaj dozwolona."

#. 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 "Argument %s: łańcuch kończy się w środku dyrektywy."

#. 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 "Argument %s: znak '%c' nie jest poprawnym określeniem konwersji."

#. 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 ""
"Argument %s: znak kończący dyrektywę formatującą nie jest poprawnym "
"określeniem konwersji."

#. 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] ""
"Argument %s: łańcuch formatujący pobiera więcej niż jeden argument: %u "
"argument."
msgstr[1] ""
"Argument %s: łańcuch formatujący pobiera więcej niż jeden argument: %u "
"argumenty."
msgstr[2] ""
"Argument %s: łańcuch formatujący pobiera więcej niż jeden argument: %u "
"argumentów."

#. 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 "nie można przekonwertować zamiennika bajtu na Unicode: %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 "nie można przekonwertować zamiennika unicode na kodowanie docelowe: %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 "nie można przekonwertować zamiennika bajtu na łańcuch szeroki: %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 ""
"nie można przekonwertować zamiennika znaku szerokiego na kodowanie docelowe: "
"%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 "nie można przekonwertować zamiennika bajtu na kodowanie docelowe: %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: nie można skonwertować"

#. 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 niedokończony znak lub sekwencja shift"

#. 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: błąd wej./wyj."

#. 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 "konwersja z kodu %s jest nieobsługiwana"

#. 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 "konwersja do kodu %s jest nieobsługiwana"

#. 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 "konwersja z kodu %s do kodu %s jest nieobsługiwana"

#. 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' poda listę obsługiwanych kodowań"

#. 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 "błąd wej./wyj."

#~ msgid "Report bugs to <bug-gnu-libiconv@gnu.org>.\n"
#~ msgstr "Błędy proszę zgłaszać na adres <bug-gnu-libiconv@gnu.org>.\n"
