# Polish translations for GNU sed package.
# Copyright (C) 2003, 2004, 2005, 2006, 2008, 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the sed package.
#
# Wojciech Polak <polak@gnu.org>, 2003, 2004, 2005, 2006, 2008, 2010.
# corrections: Jakub Bogusz <qboosh@pld-linux.org>, 2003.
#
msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
"POT-Creation-Date: 2012-12-22 14:36+0100\n"
"PO-Revision-Date: 2010-06-12 20:01+0200\n"
"Last-Translator: Wojciech Polak <polak@gnu.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"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"

#: sed/compile.c:144
msgid "multiple `!'s"
msgstr "wielokrotny znak `!'"

#: sed/compile.c:145
msgid "unexpected `,'"
msgstr "nieoczekiwany znak `,'"

#: sed/compile.c:146
msgid "invalid usage of +N or ~N as first address"
msgstr "nieprawidłowe użycie +N lub ~N jako pierwszego adresu"

#: sed/compile.c:147
msgid "unmatched `{'"
msgstr "niedopasowany znak `{'"

#: sed/compile.c:148
msgid "unexpected `}'"
msgstr "nieoczekiwany znak `}'"

#: sed/compile.c:149
msgid "extra characters after command"
msgstr "dodatkowe znaki po poleceniu"

#: sed/compile.c:150
msgid "expected \\ after `a', `c' or `i'"
msgstr "oczekiwano znaku \\ po `a', `c' lub `i'"

#: sed/compile.c:151
msgid "`}' doesn't want any addresses"
msgstr "`}' nie chce żadnych adresów"

#: sed/compile.c:152
msgid ": doesn't want any addresses"
msgstr ": nie chce żadnych adresów"

#: sed/compile.c:153
msgid "comments don't accept any addresses"
msgstr "komentarze nie akceptują żadnych adresów"

#: sed/compile.c:154
msgid "missing command"
msgstr "brakuje polecenia"

#: sed/compile.c:155
msgid "command only uses one address"
msgstr "polecenie używa tylko jednego adresu"

#: sed/compile.c:156
msgid "unterminated address regex"
msgstr "niezakończony adres wyrażenia regularnego"

#: sed/compile.c:157
msgid "unterminated `s' command"
msgstr "niezakończone polecenie `s'"

#: sed/compile.c:158
msgid "unterminated `y' command"
msgstr "niezakończone polecenie `y'"

#: sed/compile.c:159
msgid "unknown option to `s'"
msgstr "nieznana opcja dla polecenia `s'"

#: sed/compile.c:160
msgid "multiple `p' options to `s' command"
msgstr "wielokrotne opcje `p' dla polecenia `s'"

#: sed/compile.c:161
msgid "multiple `g' options to `s' command"
msgstr "wielokrotne opcje `g' dla polecenia `s'"

#: sed/compile.c:162
msgid "multiple number options to `s' command"
msgstr "wielokrotne opcje liczbowe dla polecenia `s'"

#: sed/compile.c:163
msgid "number option to `s' command may not be zero"
msgstr "opcja liczbowa dla polecenia `s' nie może być zerem"

#: sed/compile.c:164
msgid "strings for `y' command are different lengths"
msgstr "łańcuchy dla polecenia `y' są różnych długości"

#: sed/compile.c:165
msgid "delimiter character is not a single-byte character"
msgstr "znak ogranicznika nie jest pojedynczym znakiem-bajtem"

#: sed/compile.c:166
msgid "expected newer version of sed"
msgstr "oczekiwano nowszej wersji programu sed"

#: sed/compile.c:167
msgid "invalid usage of line address 0"
msgstr "nieprawidłowe użycie adresu linii 0"

#: sed/compile.c:168
#, c-format
msgid "unknown command: `%c'"
msgstr "nieznane polecenie: `%c'"

#: sed/compile.c:169
#, fuzzy
msgid "incomplete command"
msgstr "brakuje polecenia"

#: sed/compile.c:192
#, c-format
msgid "%s: file %s line %lu: %s\n"
msgstr "%s: plik %s linia %lu: %s\n"

#: sed/compile.c:195
#, c-format
msgid "%s: -e expression #%lu, char %lu: %s\n"
msgstr "%s: -e wyrażenie #%lu, znak %lu: %s\n"

#: sed/compile.c:1657
#, c-format
msgid "can't find label for jump to `%s'"
msgstr "nie można znaleźć etykiety dla skoku do `%s'"

#: sed/execute.c:595
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: nie można odczytać %s: %s\n"

#: sed/execute.c:624
#, c-format
msgid "couldn't edit %s: is a terminal"
msgstr "nie można edytować %s: plik jest terminalem"

#: sed/execute.c:629
#, c-format
msgid "couldn't edit %s: not a regular file"
msgstr "nie można edytować %s: to nie jest regularny plik"

#: sed/execute.c:640
#, c-format
msgid "%s: warning: failed to set default file creation context to %s: %s"
msgstr ""
"%s: ostrzeżenie: nie powiodło się ustawienie domyślnego kontekstu utworzenia "
"pliku dla %s: %s"

#: sed/execute.c:647
#, c-format
msgid "%s: warning: failed to get security context of %s: %s"
msgstr ""
"%s: ostrzeżenie: nie powiodło się pobranie kontekstu bezpieczeństwa %s: %s"

#: sed/execute.c:664 sed/utils.c:211
#, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "nie można otworzyć tymczasowego pliku %s: %s"

#: sed/execute.c:1193 sed/execute.c:1373
msgid "error in subprocess"
msgstr "błąd w podprocesie"

#: sed/execute.c:1195
msgid "option `e' not supported"
msgstr "opcja `e' nie jest wspierana"

#: sed/execute.c:1375
msgid "`e' command not supported"
msgstr "polecenie `e' nie jest wspierane"

#: sed/execute.c:1725
msgid "no input files"
msgstr "brak plików wejściowych"

#: sed/regexp.c:39
msgid "no previous regular expression"
msgstr "brak poprzedniego wyrażenia regularnego"

#: sed/regexp.c:40
msgid "cannot specify modifiers on empty regexp"
msgstr "nie można wyszczególnić modyfikatorów w pustym wyrażeniu regularnym"

#: sed/regexp.c:129
#, c-format
msgid "invalid reference \\%d on `s' command's RHS"
msgstr "nieprawidłowe odwołanie \\%d po prawej stronie polecenia `s'"

#: sed/sed.c:32
msgid "Jay Fenlason"
msgstr ""

#: sed/sed.c:33
msgid "Tom Lord"
msgstr ""

#: sed/sed.c:34
msgid "Ken Pizzini"
msgstr ""

#: sed/sed.c:35
msgid "Paolo Bonzini"
msgstr ""

#: sed/sed.c:79
#, c-format
msgid ""
"GNU sed home page: <http://www.gnu.org/software/sed/>.\n"
"General help using GNU software: <http://www.gnu.org/gethelp/>.\n"
msgstr ""
"Strona projektu GNU sed: <http://www.gnu.org/software/sed/>.\n"
"Pomoc dotycząca oprogramowania GNU: <http://www.gnu.org/gethelp/>.\n"

#: sed/sed.c:86
#, c-format
msgid ""
"E-mail bug reports to: <%s>.\n"
"Be sure to include the word ``%s'' somewhere in the ``Subject:'' field.\n"
msgstr ""
"Ewentualne błędy prosimy zgłaszać na adres: <%s>.\n"
"W tym celu proszę dodać słowo ``%s'' do tematu listu.\n"

#: sed/sed.c:99
msgid ""
"  -R, --regexp-perl\n"
"                 use Perl 5's regular expressions syntax in the script.\n"
msgstr ""
"  -R, --regexp-perl\n"
"                 używa w skrypcie wyrażenia regularne zgodne ze składnią "
"Perl 5.\n"

#: sed/sed.c:104
#, c-format
msgid ""
"Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
"\n"
msgstr ""
"Użycie: %s [OPCJE] {skrypt-tylko-wtedy-gdy-żaden-inny-skrypt} [plik-"
"wejściowy]...\n"
"\n"

#: sed/sed.c:108
#, c-format
msgid ""
"  -n, --quiet, --silent\n"
"                 suppress automatic printing of pattern space\n"
msgstr ""
"  -n, --quiet, --silent\n"
"                 powstrzymuje automatyczne drukowanie przetwarzanych linii.\n"

#: sed/sed.c:110
#, c-format
msgid ""
"  -e script, --expression=script\n"
"                 add the script to the commands to be executed\n"
msgstr ""
"  -e skrypt, --expression=skrypt\n"
"                 dodaje skrypt do poleceń, które mają być wykonane.\n"

#: sed/sed.c:112
#, c-format
msgid ""
"  -f script-file, --file=script-file\n"
"                 add the contents of script-file to the commands to be "
"executed\n"
msgstr ""
"  -f plik-skryptowy, --file=plik-skryptowy\n"
"                 dodaje zawartość pliku skryptowego do poleceń,\n"
"                 które mają być wykonane.\n"

#: sed/sed.c:115
#, c-format
msgid ""
"  --follow-symlinks\n"
"                 follow symlinks when processing in place\n"
msgstr ""
"  --follow-symlinks\n"
"                 podąża za dowiązaniami symbolicznymi,\n"
"                 gdy przetwarza \"w miejscu\".\n"

#: sed/sed.c:118
#, fuzzy, c-format
msgid ""
"  -i[SUFFIX], --in-place[=SUFFIX]\n"
"                 edit files in place (makes backup if SUFFIX supplied)\n"
msgstr ""
"  -i[rozszerzenie], --in-place[=rozszerzenie]\n"
"                 edytuje pliki \"w miejscu\" (tworzy kopie zapasowe\n"
"                 jeżeli zostało podane rozszerzenie).\n"

#: sed/sed.c:121
#, c-format
msgid ""
"  -b, --binary\n"
"                 open files in binary mode (CR+LFs are not processed "
"specially)\n"
msgstr ""
"  -b, --binary\n"
"                 otwiera pliki w trybie binarnym (CR+LF nie jest "
"przetwarzane).\n"

#: sed/sed.c:124
#, c-format
msgid ""
"  -l N, --line-length=N\n"
"                 specify the desired line-wrap length for the `l' command\n"
msgstr ""
"  -l N, --line-length=N\n"
"                 ustala pożądaną długość łamanych linii dla polecenia `l'.\n"

#: sed/sed.c:126
#, c-format
msgid ""
"  --posix\n"
"                 disable all GNU extensions.\n"
msgstr ""
"      --posix\n"
"                 wyłącza wszystkie rozszerzenia GNU.\n"

#: sed/sed.c:128
#, c-format
msgid ""
"  -r, --regexp-extended\n"
"                 use extended regular expressions in the script.\n"
msgstr ""
"  -r, --regexp-extended\n"
"                 używa w skrypcie rozszerzonych wyrażeń regularnych.\n"

#: sed/sed.c:133
#, c-format
msgid ""
"  -s, --separate\n"
"                 consider files as separate rather than as a single "
"continuous\n"
"                 long stream.\n"
msgstr ""
"  -s, --separate\n"
"                 traktuje pliki jako oddzielne, a nie jako pojedynczy,\n"
"                 długi i ciągły strumień.\n"

#: sed/sed.c:136
#, c-format
msgid ""
"  -u, --unbuffered\n"
"                 load minimal amounts of data from the input files and "
"flush\n"
"                 the output buffers more often\n"
msgstr ""
"  -u, --unbuffered\n"
"                 ładuje minimalną ilość danych z plików wejściowych\n"
"                 i częściej oczyszcza bufor wyjściowy.\n"

#: sed/sed.c:139
#, c-format
msgid ""
"  -z, --null-data\n"
"                 separate lines by NUL characters\n"
msgstr ""

#: sed/sed.c:141
#, c-format
msgid "      --help     display this help and exit\n"
msgstr "      --help     wyświetla tę oto pomoc i kończy pracę.\n"

#: sed/sed.c:142
#, c-format
msgid "      --version  output version information and exit\n"
msgstr "      --version  wyświetla numer wersji i kończy pracę.\n"

#: sed/sed.c:143
#, c-format
msgid ""
"\n"
"If no -e, --expression, -f, or --file option is given, then the first\n"
"non-option argument is taken as the sed script to interpret.  All\n"
"remaining arguments are names of input files; if no input files are\n"
"specified, then the standard input is read.\n"
"\n"
msgstr ""
"\n"
"Jeżeli nie zostaną podane opcje -e, --expression, -f, lub --file,\n"
"to wtedy pierwszy argument, który nie jest opcją linii poleceń sed,\n"
"zostanie wzięty jako skrypt sed do przetworzenia. Wszystkie pozostałe\n"
"argumenty są nazwami plików wejściowych; jeżeli nie zostaną podane\n"
"żadne pliki wejściowe, to wtedy odczytane zostanie standardowe wejście.\n"
"\n"

#: sed/utils.c:74 sed/utils.c:432
#, c-format
msgid "cannot remove %s: %s"
msgstr "nie można usunąć %s: %s"

#: sed/utils.c:144
#, c-format
msgid "couldn't open file %s: %s"
msgstr "nie można otworzyć pliku %s: %s"

#: sed/utils.c:167
#, c-format
msgid "couldn't attach to %s: %s"
msgstr "nie można dołączyć do %s: %s"

#: sed/utils.c:229
#, c-format
msgid "couldn't write %d item to %s: %s"
msgid_plural "couldn't write %d items to %s: %s"
msgstr[0] "nie można zapisać %d elementu do %s: %s"
msgstr[1] "nie można zapisać %d elementów do %s: %s"
msgstr[2] "nie można zapisać %d elementów do %s: %s"

#: sed/utils.c:244 sed/utils.c:267
#, c-format
msgid "read error on %s: %s"
msgstr "błąd odczytu w %s: %s"

#: sed/utils.c:372
#, c-format
msgid "couldn't follow symlink %s: %s"
msgstr "nie można podążyć za dowiązaniem %s: %s"

#: sed/utils.c:406
#, c-format
msgid "cannot stat %s: %s"
msgstr "nie można uzyskać informacji o %s: %s"

#: sed/utils.c:437
#, c-format
msgid "cannot rename %s: %s"
msgstr "nie można zmienić nazwy %s: %s"

#: lib/regcomp.c:132
msgid "Success"
msgstr "Sukces"

#: lib/regcomp.c:135
msgid "No match"
msgstr "Brak dopasowania"

#: lib/regcomp.c:138
msgid "Invalid regular expression"
msgstr "Nieprawidłowe wyrażenie regularne"

#: lib/regcomp.c:141
msgid "Invalid collation character"
msgstr "Nieprawidłowy znak porównania"

#: lib/regcomp.c:144
msgid "Invalid character class name"
msgstr "Nieprawidłowa nazwa klasy znaku"

#: lib/regcomp.c:147
msgid "Trailing backslash"
msgstr "Końcowy znak backslash"

#: lib/regcomp.c:150
msgid "Invalid back reference"
msgstr "Nieprawidłowe odwołanie wsteczne"

#: lib/regcomp.c:153
msgid "Unmatched [ or [^"
msgstr "Niedopasowany znak [ lub [^"

#: lib/regcomp.c:156
msgid "Unmatched ( or \\("
msgstr "Niedopasowany znak ( lub \\("

#: lib/regcomp.c:159
msgid "Unmatched \\{"
msgstr "Niedopasowany znak \\{"

#: lib/regcomp.c:162
msgid "Invalid content of \\{\\}"
msgstr "Nieprawidłowa zawartość \\{\\}"

#: lib/regcomp.c:165
msgid "Invalid range end"
msgstr "Nieprawidłowy koniec zakresu"

#: lib/regcomp.c:168
msgid "Memory exhausted"
msgstr "Pamięć wyczerpana"

#: lib/regcomp.c:171
msgid "Invalid preceding regular expression"
msgstr "Nieprawidłowe poprzedzające wyrażenie regularne"

#: lib/regcomp.c:174
msgid "Premature end of regular expression"
msgstr "Przedwczesny koniec wyrażenia regularnego"

#: lib/regcomp.c:177
msgid "Regular expression too big"
msgstr "Wyrażenie regularne jest zbyt duże"

#: lib/regcomp.c:180
msgid "Unmatched ) or \\)"
msgstr "Niedopasowany znak ) lub \\)"

#: lib/regcomp.c:705
msgid "No previous regular expression"
msgstr "Brak poprzedniego wyrażenia regularnego"

#~ msgid "super-sed version %s\n"
#~ msgstr "super-sed wersja %s\n"

#~ msgid ""
#~ "based on GNU sed version %s\n"
#~ "\n"
#~ msgstr ""
#~ "na podstawie wersji GNU sed %s\n"
#~ "\n"

#~ msgid "GNU sed version %s\n"
#~ msgstr "GNU sed wersja %s\n"

#~ msgid ""
#~ "Copyright (C) %d Free Software Foundation, Inc.\n"
#~ "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"
#~ "to the extent permitted by law.\n"
#~ msgstr ""
#~ "Copyright (C) %d Free Software Foundation, Inc.\n"
#~ "Niniejszy program jest wolnym oprogramowaniem; warunki kopiowania są "
#~ "opisane\n"
#~ "w źródłach. Autorzy nie dają ŻADNYCH gwarancji, w tym również gwarancji\n"
#~ "PRZYDATNOŚCI DO SPRZEDAŻY LUB DO KONKRETNYCH CELÓW.\n"
