# -*- mode:po; coding:utf-8;-*- Slovenian message catalogue for GNU sed.
# Copyright (C) 2000, 2001, 2002, 2003, 2005, 2007, 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the sed package.
# Primož Peterlin <primozz.peterlin@gmail.com>, 2000-2003, 2005, 2007, 2008.
# $Id: sed-4.2.0.sl.po,v 1.3 2008/04/25 12:08:48 peterlin Exp $
#
msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.0\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
"POT-Creation-Date: 2009-06-27 15:08+0200\n"
"PO-Revision-Date: 2008-04-25 14:08+0200\n"
"Last-Translator: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"

#: sed/compile.c:161
msgid "multiple `!'s"
msgstr "večterni klicaji »!«"

#: sed/compile.c:162
msgid "unexpected `,'"
msgstr "nepričakovana vejica »,«"

#: sed/compile.c:163
msgid "invalid usage of +N or ~N as first address"
msgstr "nepravilna raba izbir +N ali ~N kot začetnih naslovov"

#: sed/compile.c:164
msgid "unmatched `{'"
msgstr "oklepaj { brez zaklepaja"

#: sed/compile.c:165
msgid "unexpected `}'"
msgstr "nepričakovan zaklepaj }"

#: sed/compile.c:166
msgid "extra characters after command"
msgstr "dodatni znaki za ukazom"

#: sed/compile.c:167
msgid "expected \\ after `a', `c' or `i'"
msgstr "Za »a«, »c« ali »i« se pričakuje \\"

#: sed/compile.c:168
msgid "`}' doesn't want any addresses"
msgstr "Zaklepaj } ne zahteva naslova"

#: sed/compile.c:169
msgid ": doesn't want any addresses"
msgstr ": ne zahteva naslova"

#: sed/compile.c:170
msgid "comments don't accept any addresses"
msgstr "komentarji ne sprejemajo naslovov"

#: sed/compile.c:171
msgid "missing command"
msgstr "manjkajoč ukaz"

#: sed/compile.c:172
msgid "command only uses one address"
msgstr "ukaz uporablja le en naslov"

#: sed/compile.c:173
msgid "unterminated address regex"
msgstr "regularni izraz z nezaključenim naslovom"

#: sed/compile.c:174
msgid "unterminated `s' command"
msgstr "nezaključen ukaz »s«"

#: sed/compile.c:175
msgid "unterminated `y' command"
msgstr "nezaključen ukaz »y«"

#: sed/compile.c:176
msgid "unknown option to `s'"
msgstr "neznana izbira pri ukazu »s«"

#: sed/compile.c:177
msgid "multiple `p' options to `s' command"
msgstr "večterne izbire »p« pri ukazu »s«"

#: sed/compile.c:178
msgid "multiple `g' options to `s' command"
msgstr "večterne izbire »g« pri ukazu »s«"

#: sed/compile.c:179
msgid "multiple number options to `s' command"
msgstr "večterne številčne izbire pri ukazu »s«"

#: sed/compile.c:180
msgid "number option to `s' command may not be zero"
msgstr "številčna izbira pri ukazu »s« mora biti neničelna"

#: sed/compile.c:181
msgid "strings for `y' command are different lengths"
msgstr "niza pri ukazu »y« sta različno dolga"

#: sed/compile.c:182
msgid "delimiter character is not a single-byte character"
msgstr "razmejilni znak je dolg več kot en bajt"

#: sed/compile.c:183
msgid "expected newer version of sed"
msgstr "pričakovana novejša izdaja programa sed"

#: sed/compile.c:184
msgid "invalid usage of line address 0"
msgstr "neveljavna raba naslovne vrstice 0"

#: sed/compile.c:185
#, c-format
msgid "unknown command: `%c'"
msgstr "neznan ukaz: »%c«"

#: sed/compile.c:208
#, c-format
msgid "%s: file %s line %lu: %s\n"
msgstr "%s: datoteka %s vrstica %lu: %s\n"

#: sed/compile.c:211
#, c-format
msgid "%s: -e expression #%lu, char %lu: %s\n"
msgstr "%s: -e izraz #%lu, znak %lu: %s\n"

#: sed/compile.c:1665
#, c-format
msgid "can't find label for jump to `%s'"
msgstr "ni moč najti oznake za skok na »%s«"

#: sed/execute.c:709
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: %s ni mogoče prebrati: %s\n"

#: sed/execute.c:740
#, c-format
msgid "couldn't edit %s: is a terminal"
msgstr "ni mogoče urejati %s: je terminal"

#: sed/execute.c:745
#, c-format
msgid "couldn't edit %s: not a regular file"
msgstr "ni mogoče urejati %s: ni navadna datoteka"

#: sed/execute.c:757
#, c-format
msgid "%s: warning: failed to set default file creation context to %s: %s"
msgstr ""

#: sed/execute.c:764
#, c-format
msgid "%s: warning: failed to get security context of %s: %s"
msgstr ""

#: sed/execute.c:783 sed/utils.c:227
#, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "ni mogoče odpreti začasne datoteke %s: %s"

#: sed/execute.c:1317 sed/execute.c:1497
msgid "error in subprocess"
msgstr "napaka v podprocesu"

#: sed/execute.c:1319
msgid "option `e' not supported"
msgstr "izbira »e« ni podprta"

#: sed/execute.c:1499
msgid "`e' command not supported"
msgstr "ukaz »e« ni podprt"

#: sed/execute.c:1843
msgid "no input files"
msgstr "ni vhodnih datotek"

#: sed/regexp.c:41
msgid "no previous regular expression"
msgstr "ni prejšnjega regularnega izraza"

#: sed/regexp.c:42
msgid "cannot specify modifiers on empty regexp"
msgstr "navajanje modifikatorjev pri praznem regularnem izrazu ni mogoče"

#: sed/regexp.c:131
#, c-format
msgid "invalid reference \\%d on `s' command's RHS"
msgstr "neveljavni sklic \\%d na desni strani ukaza »s«"

#: sed/sed.c:97
#, 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 ""

#: sed/sed.c:104
#, fuzzy, c-format
msgid ""
"E-mail bug reports to: <%s>.\n"
"Be sure to include the word ``%s'' somewhere in the ``Subject:'' field.\n"
msgstr ""
"Sporočila o napakah pošljite na %s .\n"
"Poskrbite, da bo nekje v polju ,,Subject`` nastopal izraz ,,%s``.\n"

#: sed/sed.c:117
msgid ""
"  -R, --regexp-perl\n"
"                 use Perl 5's regular expressions syntax in the script.\n"
msgstr ""
"  -R, --regexp-perl\n"
"                 dovoli uporabo regularnih izrazov, ki jih podpira Perl 5\n"

#: sed/sed.c:122
#, c-format
msgid ""
"Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
"\n"
msgstr ""
"Uporaba: %s [IZBIRA]... {skript--če-je-en-sam} [vhodna-datoteka]...\n"
"\n"

#: sed/sed.c:126
#, c-format
msgid ""
"  -n, --quiet, --silent\n"
"                 suppress automatic printing of pattern space\n"
msgstr ""
"  -n, --quiet, --silent\n"
"                 brez samodejnega izpisa prostora vzorcev\n"

#: sed/sed.c:128
#, c-format
msgid ""
"  -e script, --expression=script\n"
"                 add the script to the commands to be executed\n"
msgstr ""
"  -e SKRIPT, --expression=SKRIPT\n"
"                 dodaj SKRIPT med ukaze, ki se izvedejo\n"

#: sed/sed.c:130
#, 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 SKRIPTNA_DATOTEKA, --file=SKRIPTNA_DATOTEKA\n"
"                 dodaj vsebino SKRIPTNE DATOTEKE med ukaze, ki se izvedejo\n"

#: sed/sed.c:133
#, c-format
msgid ""
"  --follow-symlinks\n"
"                 follow symlinks when processing in place\n"
msgstr ""
"  --follow-symlinks\n"
"                 pri obdelavi na mestu sledi simbolnim povezavam\n"

#: sed/sed.c:136
#, c-format
msgid ""
"  -i[SUFFIX], --in-place[=SUFFIX]\n"
"                 edit files in place (makes backup if extension supplied)\n"
msgstr ""
"  -i[PRIPONA], --in-place[=PRIPONA]\n"
"                 spremembe opravi v sami datoteki (ustvari varnostno kopijo "
"z\n"
"                 dano pripono, če je ta podana)\n"

#: sed/sed.c:139
#, c-format
msgid ""
"  -b, --binary\n"
"                 open files in binary mode (CR+LFs are not processed "
"specially)\n"
msgstr ""
"  -b, --binary\n"
"                 odpri kot binarno datoteko (brez posebne obravnave CR+LF)\n"

#: sed/sed.c:142
#, 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"
"                 določi širino vrstice za ukaz ,l` na N znakov\n"

#: sed/sed.c:144
#, c-format
msgid ""
"  --posix\n"
"                 disable all GNU extensions.\n"
msgstr ""
"  --posix\n"
"                 onemogoči vse razširitve GNU\n"

#: sed/sed.c:146
#, c-format
msgid ""
"  -r, --regexp-extended\n"
"                 use extended regular expressions in the script.\n"
msgstr ""
"  -r, --regexp-extended\n"
"                 dovoli uporabo razširjenih regularnih izrazov.\n"

#: sed/sed.c:151
#, c-format
msgid ""
"  -s, --separate\n"
"                 consider files as separate rather than as a single "
"continuous\n"
"                 long stream.\n"
msgstr ""
"  -s, --separate\n"
"                 datoteke obravnavaj kot ločene, ne pa kot neprekinjen tok\n"
"                 podatkov\n"

#: sed/sed.c:154
#, 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"
"                 naloži kar se da malo podatkov iz vhode datoteke in "
"pogosteje\n"
"                 izprazni izhodni medpomnilnik\n"

#: sed/sed.c:157
#, c-format
msgid "      --help     display this help and exit\n"
msgstr "      --help     prikaži ta navodila in končaj\n"

#: sed/sed.c:158
#, c-format
msgid "      --version  output version information and exit\n"
msgstr "      --version  različica programa\n"

#: sed/sed.c:159
#, 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"
"Če izbire -e, --expression, -f ali --file niso podane, se prvi neizbirni\n"
"argument tolmači kot skript. Vsi preostali argumenti so imena vhodnih "
"datotek.\n"
"Če ni podano nobeno ime datoteke, se bere standardni vhod.\n"
"\n"

#: sed/sed.c:315
#, c-format
msgid "super-sed version %s\n"
msgstr "super-sed, različica %s\n"

#: sed/sed.c:316
#, c-format
msgid ""
"based on GNU sed version %s\n"
"\n"
msgstr ""
"na osnovi GNU sed, različica %s\n"
"\n"

#: sed/sed.c:318
#, c-format
msgid "GNU sed version %s\n"
msgstr "GNU sed, različica %s\n"

#: sed/sed.c:320
#, fuzzy, c-format
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 ""
"%s\n"
"To je prost program; pogoji, pod katerimi ga lahko uporabljate, "
"razmnožujete\n"
"in razširjate so navedeni v izvorni kodi. Za program ni NOBENEGA JAMSTVA,\n"
"niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n"

#: sed/utils.c:93 sed/utils.c:438
#, c-format
msgid "cannot remove %s: %s"
msgstr "ni mogoče odstraniti %s: %s"

#: sed/utils.c:163
#, c-format
msgid "couldn't open file %s: %s"
msgstr "ni mogoče odpreti datoteke %s: %s"

#: sed/utils.c:186
#, c-format
msgid "couldn't attach to %s: %s"
msgstr "ni mogoče pripeti k %s: %s"

#: sed/utils.c:245
#, c-format
msgid "couldn't write %d item to %s: %s"
msgid_plural "couldn't write %d items to %s: %s"
msgstr[0] "ni mogoče zapisati %d elementov na %s: %s"
msgstr[1] "ni mogoče zapisati %d elementa na %s: %s"
msgstr[2] "ni mogoče zapisati %d elementov na %s: %s"
msgstr[3] "ni mogoče zapisati %d elementov na %s: %s"

#: sed/utils.c:260 sed/utils.c:276
#, c-format
msgid "read error on %s: %s"
msgstr "napaka pri branju z %s: %s"

#: sed/utils.c:378
#, c-format
msgid "couldn't follow symlink %s: %s"
msgstr "ni mogoče slediti simbolni povezavi %s: %s"

#: sed/utils.c:412
#, c-format
msgid "cannot stat %s: %s"
msgstr "ni mogoče ugotoviti statistike %s: %s"

#: sed/utils.c:443
#, c-format
msgid "cannot rename %s: %s"
msgstr "ni mogoče preimenovati %s: %s"

#: lib/regcomp.c:134
msgid "Success"
msgstr "Uspešno"

#: lib/regcomp.c:137
msgid "No match"
msgstr "Ni ujemanja"

#: lib/regcomp.c:140
msgid "Invalid regular expression"
msgstr "Neveljavni regularni izraz"

#: lib/regcomp.c:143
msgid "Invalid collation character"
msgstr "Znaka izven abecede"

#: lib/regcomp.c:146
msgid "Invalid character class name"
msgstr "Neveljavno ime razreda znakov"

#: lib/regcomp.c:149
msgid "Trailing backslash"
msgstr "Zaključna obrnjena poševnica"

#: lib/regcomp.c:152
msgid "Invalid back reference"
msgstr "Neveljavni povratni sklic"

#: lib/regcomp.c:155
msgid "Unmatched [ or [^"
msgstr "Oklepaj [ ali [^ brez zaklepaja"

#: lib/regcomp.c:158
msgid "Unmatched ( or \\("
msgstr "Oklepaj ( ali \\( brez zaklepaja"

#: lib/regcomp.c:161
msgid "Unmatched \\{"
msgstr "Oklepaj \\{ brez zaklepaja"

#: lib/regcomp.c:164
msgid "Invalid content of \\{\\}"
msgstr "Neveljavna vsebina \\{\\}"

#: lib/regcomp.c:167
msgid "Invalid range end"
msgstr "Neveljavna zgornja meja intervala"

#: lib/regcomp.c:170
msgid "Memory exhausted"
msgstr "Zmanjkalo pomnilnika"

#: lib/regcomp.c:173
msgid "Invalid preceding regular expression"
msgstr "Neveljaven prejšnji regularni izraz"

#: lib/regcomp.c:176
msgid "Premature end of regular expression"
msgstr "Predčasni zaključek regularnega izraza"

#: lib/regcomp.c:179
msgid "Regular expression too big"
msgstr "Regularni izraz prevelik"

#: lib/regcomp.c:182
msgid "Unmatched ) or \\)"
msgstr "Oklepaj ) ali \\) brez zaklepaja"

#: lib/regcomp.c:703
msgid "No previous regular expression"
msgstr "Prejšnji regularni izraz manjka"

#~ msgid "Called savchar() with unexpected pushback (%x)"
#~ msgstr "Klic savchar() z nepričakovanim pushback (%x)"

#~ msgid "INTERNAL ERROR: bad address type"
#~ msgstr "INTERNA NAPAKA: pokvarjen tip naslova"

#~ msgid "INTERNAL ERROR: Bad cmd %c"
#~ msgstr "INTERNA NAPAKA: Pokvarjen ukaz %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"
#~ "  -i[suffix], --in-place[=suffix]\n"
#~ "                 edit files in place (makes backup if extension "
#~ "supplied)\n"
#~ "  -l N, --line-length=N\n"
#~ "                 specify the desired line-wrap length for the `l' "
#~ "command\n"
#~ "  -r, --regexp-extended\n"
#~ "                 use extended regular expressions in the script.\n"
#~ "%s  -s, --separate\n"
#~ "                 consider files as separate rather than as a single "
#~ "continuous\n"
#~ "                 long stream.\n"
#~ "  -u, --unbuffered\n"
#~ "                 load minimal amounts of data from the input files and "
#~ "flush\n"
#~ "                 the output buffers more often\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 ""
#~ "Uporaba: %s [IZBIRA]... [SKRIPT] [DATOTEKA]...\n"
#~ "\n"
#~ "  -n, --quiet, --silent\n"
#~ "                 brez avtomatičnega izpisa prostora vzorcev\n"
#~ "  -e SKRIPT, --expression=SKRIPT\n"
#~ "                 dodaj SKRIPT med ukaze, ki se izvedejo\n"
#~ "  -f SKRIPTNA_DATOTEKA, --file=SKRIPTNA_DATOTEKA\n"
#~ "                 dodaj vsebino SKRIPTNE DATOTEKE med ukaze, ki se "
#~ "izvedejo\n"
#~ "  -i[PRIPONA], --in-place[=PRIPONA]\n"
#~ "                 spremembe opravi v sami datoteki (ustvari varnostno "
#~ "kopijo z\n"
#~ "                 dano pripono, če je ta podana)\n"
#~ "  -l N, --line-length=N\n"
#~ "                 določi širino vrstice za ukaz ,l` na N znakov\n"
#~ "  -r, --regexp-extended\n"
#~ "                 dovoli uporabo razširjenih regularnih izrazov\n"
#~ "%s  -s, --separate\n"
#~ "                 datoteke obravnavaj kot ločene, ne pa kot neprekinjen "
#~ "tok\n"
#~ "                 podatkov\n"
#~ "  -u, --unbuffered\n"
#~ "\n"
#~ "      --help     ta navodila\n"
#~ "  -V, --version  različica programa\n"
#~ "\n"
#~ "Če izbire -e, --expression, -f ali --file niso podane, se prvi neizbirni\n"
#~ "argument tolmači kot skript. Vsi preostali argumenti so imena vhodnih "
#~ "datotek.\n"
#~ "Če ni podano nobeno ime datoteke, se bere standardni vhod.\n"
#~ "\n"

#~ msgid "Unexpected End-of-file"
#~ msgstr "Nepričakovan konec datoteke"

#~ msgid "bad regexp: %s\n"
#~ msgstr "pokvarjen regularni izraz: %s\n"

#~ msgid "input read error: %s"
#~ msgstr "napaka pri branju: %s"

#~ msgid "couldn't write an item to %s: %s"
#~ msgstr "ni bilo mogoče zapisati elementa na %s: %s"
