# Czech translations for GNU sed package.
# Copyright (C) 1998 Free Software Foundation, Inc.
# This file is distributed under the same license as the sed package.
# Jaroslav Fojtik <fojtik@cmp.felk.cvut.cz>, 1998.
# Petr Pisar <petr.pisar@atlas.cz>, 2008, 2010.
#
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-11 15:18+0200\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\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>=2 && n<=4) ? 1 : 2;\n"

#: sed/compile.c:144
msgid "multiple `!'s"
msgstr "vícenásobný „!“"

#: sed/compile.c:145
msgid "unexpected `,'"
msgstr "neočekávaná „,“"

#: sed/compile.c:146
msgid "invalid usage of +N or ~N as first address"
msgstr "+N nebo ~N nelze použít jako první adresu"

#: sed/compile.c:147
msgid "unmatched `{'"
msgstr "neodpovídající „{“"

#: sed/compile.c:148
msgid "unexpected `}'"
msgstr "neočekávaná „}“"

#: sed/compile.c:149
msgid "extra characters after command"
msgstr "nadbytečné znaky po příkazu"

#: sed/compile.c:150
msgid "expected \\ after `a', `c' or `i'"
msgstr "po „a“, „c“ nebo „i“ je očekávané „\\“"

#: sed/compile.c:151
msgid "`}' doesn't want any addresses"
msgstr "„}“ nevyžaduje jakoukoliv adresu"

#: sed/compile.c:152
msgid ": doesn't want any addresses"
msgstr ": nechce jakoukoliv adresu"

#: sed/compile.c:153
msgid "comments don't accept any addresses"
msgstr "komentáře nepřipouštějí žádnou adresu"

#: sed/compile.c:154
msgid "missing command"
msgstr "chybějící příkaz"

#: sed/compile.c:155
msgid "command only uses one address"
msgstr "příkaz používá pouze jedinou adresu"

#: sed/compile.c:156
msgid "unterminated address regex"
msgstr "neukončená adresa regulárního výrazu"

#: sed/compile.c:157
msgid "unterminated `s' command"
msgstr "neukončený příkaz „s“"

#: sed/compile.c:158
msgid "unterminated `y' command"
msgstr "neukončený příkaz „y“"

#: sed/compile.c:159
msgid "unknown option to `s'"
msgstr "neznámý přepínač pro „s“"

#: sed/compile.c:160
msgid "multiple `p' options to `s' command"
msgstr "vícenásobné použití přepínače „p“ s příkazem „s“"

#: sed/compile.c:161
msgid "multiple `g' options to `s' command"
msgstr "vícenásobné použití přepínače „g“ s příkazem „s“"

#: sed/compile.c:162
msgid "multiple number options to `s' command"
msgstr "příkaz „s“ může mít maximálně jednu číselný přepínač"

#: sed/compile.c:163
msgid "number option to `s' command may not be zero"
msgstr "číselný přepínač příkazu „s“ nemůže být nula"

#: sed/compile.c:164
msgid "strings for `y' command are different lengths"
msgstr "řetězce pro příkaz „y“ mají rozdílnou délku"

#: sed/compile.c:165
msgid "delimiter character is not a single-byte character"
msgstr "oddělovací znak není jednobajtovým znakem"

#: sed/compile.c:166
msgid "expected newer version of sed"
msgstr "očekávána nová verze sedu"

#: sed/compile.c:167
msgid "invalid usage of line address 0"
msgstr "chybné použití adresy řádku 0"

#: sed/compile.c:168
#, c-format
msgid "unknown command: `%c'"
msgstr "neznámý příkaz: „%c“"

#: sed/compile.c:169
#, fuzzy
msgid "incomplete command"
msgstr "chybějící příkaz"

#: sed/compile.c:192
#, c-format
msgid "%s: file %s line %lu: %s\n"
msgstr "%s: soubor %s, řádek %'lu: %s\n"

#: sed/compile.c:195
#, c-format
msgid "%s: -e expression #%lu, char %lu: %s\n"
msgstr "%s: -e výraz č. %'lu, znak %'lu: %s\n"

#: sed/compile.c:1657
#, c-format
msgid "can't find label for jump to `%s'"
msgstr "návěští pro skok na „%s“ nelze najít"

#: sed/execute.c:595
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: %s nelze číst: %s\n"

#: sed/execute.c:624
#, c-format
msgid "couldn't edit %s: is a terminal"
msgstr "%s nelze upravovat: je to terminál"

#: sed/execute.c:629
#, c-format
msgid "couldn't edit %s: not a regular file"
msgstr "%s nelze upravovat: není obyčejným souborem"

#: sed/execute.c:640
#, c-format
msgid "%s: warning: failed to set default file creation context to %s: %s"
msgstr ""
"%s: pozor: nastavení výchozího kontextu pro tvorbu souboru na %s selhalo: %s"

#: sed/execute.c:647
#, c-format
msgid "%s: warning: failed to get security context of %s: %s"
msgstr "%s: pozor: nepodařilo se získat bezpečnostní kontext %s: %s"

#: sed/execute.c:664 sed/utils.c:211
#, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "dočasný soubor %s nelze otevřít: %s"

#: sed/execute.c:1193 sed/execute.c:1373
msgid "error in subprocess"
msgstr "chyba v podprocesu"

#: sed/execute.c:1195
msgid "option `e' not supported"
msgstr "přepínač „e“ není podporován"

#: sed/execute.c:1375
msgid "`e' command not supported"
msgstr "příkaz „e“ není podporován"

#: sed/execute.c:1725
msgid "no input files"
msgstr "žádné vstupní soubory"

#: sed/regexp.c:39
msgid "no previous regular expression"
msgstr "žádný předcházející regulární výraz"

#: sed/regexp.c:40
msgid "cannot specify modifiers on empty regexp"
msgstr "prázdný regulární výraz nemůže mít modifikátory"

#: sed/regexp.c:129
#, c-format
msgid "invalid reference \\%d on `s' command's RHS"
msgstr "chybný odkaz \\%d na pravé straně příkazu „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 ""
"Domovská stránka GNU sed: <http://www.gnu.org/software/sed/>.\n"
"Obecný návod jak používat software 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 ""
"Chyby v programu oznamujte na: <%s> (anglicky)\n"
"Kamkoliv do položky „Předmět:“ vložte „%s“. Připomínky k překladu\n"
"zasílejte na adresu <translation-team-cs@lists.sourceforge.net> (česky).\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"
"                 použije syntaxi regulárních výrazů podle Perlu verze 5\n"

#: sed/sed.c:104
#, c-format
msgid ""
"Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
"\n"
msgstr ""
"Použití: %s [PŘEPÍNAČ]… {SKRIPT_JEN_KDYŽ_JE_JEDINÝ} [VSTUPNÍ_SOUBOR]…\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"
"                 potlačí automatické vypisování prostoru vzorů\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 script, --expression=SKRIPT\n"
"                 přidá skript mezi příkazy k provedení\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 script-file, --file=SKRIPTOVÝ_SOUBOR\n"
"                 přidá obsah SKRIPTOVÉHO_SOUBORU mezi příkazy k provedení\n"

#: sed/sed.c:115
#, c-format
msgid ""
"  --follow-symlinks\n"
"                 follow symlinks when processing in place\n"
msgstr ""
"  --follow-symlinks\n"
"                 následuje symbolické odkazy, když zapisuje do vstupního\n"
"                 souboru\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[PŘÍPONA], --in-place[=PŘÍPONA]\n"
"                 upravuje přímo vstupní soubory (vytváří zálohy, pokud je\n"
"                 poskytnuta PŘÍPONA)\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"
"                 otevře soubory v binárním režimu (znaky CR+LF nejsou\n"
"                 zpracovávány zvláštně)\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"
"                 určuje délku zarovnání řádku u příkazu „l“\n"

#: sed/sed.c:126
#, c-format
msgid ""
"  --posix\n"
"                 disable all GNU extensions.\n"
msgstr ""
"  --posix\n"
"                 vypne všechna GNU rozšíření\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"
"                 použije rozšířené regulární výrazy\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"
"                 považuje soubory za samostatné a ne za jeden dlouhý\n"
"                 souvislý proud\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"
"                 čte co nejméně dat ze vstupních souborů a výstupní\n"
"                 buffery vyprazdňuje častěji\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     zobrazí tuto nápovědu a skončí\n"

#: sed/sed.c:142
#, c-format
msgid "      --version  output version information and exit\n"
msgstr "      --version  vypíše informace o verzi a skončí\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"
"Ne-li zadán žádný z přepínačů -e, --expression, -f nebo --file, pak první\n"
"argument, který není přepínačem, je považován za sedový skript a bude\n"
"vykonán. Všechny zbývající argumenty jsou jména vstupních souborů. Nejsou-"
"li\n"
"zadány žádné vstupní soubory, bude čten standardní vstup.\n"
"\n"

#: sed/utils.c:74 sed/utils.c:432
#, c-format
msgid "cannot remove %s: %s"
msgstr "%s nelze odstranit: %s"

#: sed/utils.c:144
#, c-format
msgid "couldn't open file %s: %s"
msgstr "soubor %s nelze otevřít: %s"

#: sed/utils.c:167
#, c-format
msgid "couldn't attach to %s: %s"
msgstr "do %s nelze připisovat: %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] "do %2$s nelze zapsat %1$d položku: %3$s"
msgstr[1] "do %2$s nelze zapsat %1$d položky: %3$s"
msgstr[2] "do %2$s nelze zapsat %1$d položek: %3$s"

#: sed/utils.c:244 sed/utils.c:267
#, c-format
msgid "read error on %s: %s"
msgstr "chyba při čtení z %s: %s"

#: sed/utils.c:372
#, c-format
msgid "couldn't follow symlink %s: %s"
msgstr "symbolický odkaz %s nelze následovat: %s"

#: sed/utils.c:406
#, c-format
msgid "cannot stat %s: %s"
msgstr "o %s nelze získat údaje: %s"

#: sed/utils.c:437
#, c-format
msgid "cannot rename %s: %s"
msgstr "%s nelze přejmenovat: %s"

#: lib/regcomp.c:132
msgid "Success"
msgstr "Úspěch"

#: lib/regcomp.c:135
msgid "No match"
msgstr "Žádná shoda"

#: lib/regcomp.c:138
msgid "Invalid regular expression"
msgstr "Chybný regulární výraz"

#: lib/regcomp.c:141
msgid "Invalid collation character"
msgstr "Chybný srovnávací znak"

#: lib/regcomp.c:144
msgid "Invalid character class name"
msgstr "Chybný název třídu znaků"

#: lib/regcomp.c:147
msgid "Trailing backslash"
msgstr "Zpětné lomítko na konci"

#: lib/regcomp.c:150
msgid "Invalid back reference"
msgstr "Chybný zpětný odkaz"

#: lib/regcomp.c:153
msgid "Unmatched [ or [^"
msgstr "Neodpovídající [ nebo [^"

#: lib/regcomp.c:156
msgid "Unmatched ( or \\("
msgstr "Neodpovídající ( nebo \\("

#: lib/regcomp.c:159
msgid "Unmatched \\{"
msgstr "Neodpovídající \\{"

#: lib/regcomp.c:162
msgid "Invalid content of \\{\\}"
msgstr "Chybný obsah \\{\\}"

#: lib/regcomp.c:165
msgid "Invalid range end"
msgstr "Chybný konec rozsahu"

#: lib/regcomp.c:168
msgid "Memory exhausted"
msgstr "Paměť vyčerpána"

#: lib/regcomp.c:171
msgid "Invalid preceding regular expression"
msgstr "Chybný předešlý regulární výraz"

#: lib/regcomp.c:174
msgid "Premature end of regular expression"
msgstr "Předčasný konec regulárního výrazu"

#: lib/regcomp.c:177
msgid "Regular expression too big"
msgstr "Regulární výraz je příliš velký"

#: lib/regcomp.c:180
msgid "Unmatched ) or \\)"
msgstr "Neodpovídající ) nebo \\)"

#: lib/regcomp.c:705
msgid "No previous regular expression"
msgstr "Žádný předcházející regulární výraz"

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

#~ msgid ""
#~ "based on GNU sed version %s\n"
#~ "\n"
#~ msgstr ""
#~ "založeno na GNU sedu verze %s\n"
#~ "\n"

#~ msgid "GNU sed version %s\n"
#~ msgstr "GNU sed verze %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 © %d Free Software Foundation, Inc.\n"
#~ "Toto je volné programové vybavení; podmínky pro kopírování a rozšiřování\n"
#~ "naleznete ve zdrojových textech. Toto programové vybavení je zcela BEZ "
#~ "ZÁRUKY,\n"
#~ "a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NĚJAKÝ KONKRÉTNÍ ÚČEL,\n"
#~ "jak jen zákon dovoluje.\n"

#~ msgid "bad regexp: %s\n"
#~ msgstr "špatný regulární výraz: %s\n"

#~ msgid "Unexpected End-of-file"
#~ msgstr "Neočekávaný konec souboru (EOF)"

#~ msgid "Called savchar() with unexpected pushback (%x)"
#~ msgstr "Voláno savchar() s nečekaným pushback (%x)"

#~ msgid "input read error: %s"
#~ msgstr "chyba při čtení: %s"

#~ msgid "INTERNAL ERROR: bad address type"
#~ msgstr "INTERNÍ CHYBA: špatný typ adresy"

#~ msgid "INTERNAL ERROR: Bad cmd %c"
#~ msgstr "INTERNÍ CHYBA: špatný příkaz %c"

#~ msgid ""
#~ "Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
#~ "\n"
#~ "  -n, --quiet, --silent\n"
#~ "                 suppress automatic printing of pattern space\n"
#~ "  -e script, --expression=script\n"
#~ "                 add the script to the commands to be executed\n"
#~ "  -f script-file, --file=script-file\n"
#~ "                 add the contents of script-file to the commands to be "
#~ "executed\n"
#~ "  -l N, --line-length=N\n"
#~ "                 specify the desired line-wrap length for the `l' "
#~ "command\n"
#~ "  -u, --unbuffered\n"
#~ "\n"
#~ "      --help     display this help and exit\n"
#~ "  -V, --version  output version information and exit\n"
#~ "\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 ""
#~ "Použití: %s [PŘEPÍNAČ]... {skript-pouze-není-li-jiný-skript} [vst.-"
#~ "soubor]...\n"
#~ "\n"
#~ "  -n, --quiet, --silent\n"
#~ "                 potlačí automatické vypisování vzorového úložiště "
#~ "(pattern\n"
#~ "                 space)\n"
#~ "  -e script, --expression=SKRIPT\n"
#~ "                 přidá seznam příkazů z řetězce SKRIPT k seznamu "
#~ "příkazů,\n"
#~ "                 které mají být vykonány\n"
#~ "  -f script-file, --file=SKRIPT-SOUBOR\n"
#~ "                 přidá obsah SKRIPT-SOUBORu k seznamu příkazů, které "
#~ "mají\n"
#~ "                 být vykonány\n"
#~ "  -l N, --line-length=N\n"
#~ "                 zadání pozice, na které má být řádek zalamován, pro "
#~ "příkaz `l'\n"
#~ "  -u, --unbuffered\n"
#~ "                 nebufferovaný výstup\n"
#~ "      --help     vypíše tuto nápovědu a skončí\n"
#~ "  -V, --version  vypíše označení verze a skončí\n"
#~ "\n"
#~ "  Nebude-li žádný z přepínačů -e, --expression, -f, nebo --file zadán, "
#~ "pak\n"
#~ "první argument, který není přepínačem, bude považován za sed skript, "
#~ "který má\n"
#~ "být interpretován. Všechny zbylé argumenty představují jména vstupních "
#~ "souborů.\n"
#~ "Nebudou-li vstupní soubory zadány, bude čten standardní vstup.\n"
#~ "\n"
