# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNUlib.
# Copyright (C) 2005, 2007, 2009, 2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
# Primož Peterlin <primozz.peterlin@gmail.com>, 2005, 2007, 2009, 2012.
# $Id: gnulib-3.0.0.6062.a6b16.sl.po,v 1.5 2012/05/20 11:08:36 peterlin Exp $
#
msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
"POT-Creation-Date: 2019-12-11 07:43+0100\n"
"PO-Revision-Date: 2012-05-20 13:08+0200\n"
"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"

#: lib/argmatch.c:132
#, c-format
msgid "invalid argument %s for %s"
msgstr "neveljavni argument %s za %s"

#: lib/argmatch.c:133
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "dvoumni argument %s za %s"

#: lib/argmatch.c:152 lib/argmatch.h:223
msgid "Valid arguments are:"
msgstr "Veljavni argumenti so:"

#: lib/bitset/stats.c:177
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr ""

#: lib/bitset/stats.c:180
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr ""

#: lib/bitset/stats.c:183
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr ""

#: lib/bitset/stats.c:186
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr ""

#: lib/bitset/stats.c:190
#, c-format
msgid "%u bitset_lists\n"
msgstr ""

#: lib/bitset/stats.c:192
msgid "count log histogram\n"
msgstr ""

#: lib/bitset/stats.c:195
msgid "size log histogram\n"
msgstr ""

#: lib/bitset/stats.c:198
msgid "density histogram\n"
msgstr ""

#: lib/bitset/stats.c:210
#, c-format
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""

#: lib/bitset/stats.c:213
#, c-format
msgid "Accumulated runs = %u\n"
msgstr ""

#: lib/bitset/stats.c:255 lib/bitset/stats.c:260
#, fuzzy
msgid "cannot read stats file"
msgstr "ni mogoče ustvariti cevovoda"

#: lib/bitset/stats.c:257
#, c-format
msgid "bad stats file size\n"
msgstr ""

#: lib/bitset/stats.c:281 lib/bitset/stats.c:283
#, fuzzy
msgid "cannot write stats file"
msgstr "ni mogoče ustvariti cevovoda"

#: lib/bitset/stats.c:286
#, fuzzy
msgid "cannot open stats file for writing"
msgstr "varnostne kopije \"%s\" ni mogoče odpreti za pisanje"

#: lib/closeout.c:122
msgid "write error"
msgstr "napaka pri pisanju"

#: lib/error.c:195
msgid "Unknown system error"
msgstr "Neznana sistemska napaka"

#: lib/getopt.c:278
#, fuzzy, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: izbira »-W %s« je dvoumna\n"

#: lib/getopt.c:284
#, fuzzy, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: izbira »%s« je dvoumna; možnosti:"

#: lib/getopt.c:319
#, fuzzy, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: neprepoznana izbira »%c%s«\n"

#: lib/getopt.c:345
#, fuzzy, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n"

#: lib/getopt.c:360
#, fuzzy, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: izbira »--%s« zahteva argument\n"

#: lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: neveljavna izbira -- '%c'\n"

#: lib/getopt.c:636 lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: izbira zahteva argument -- '%c'\n"

# ! INEXACT
#: lib/obstack.c:338 lib/obstack.c:340 lib/xalloc-die.c:34
msgid "memory exhausted"
msgstr "zmanjkalo pomnilnika"

#. TRANSLATORS:
#. Get translations for open and closing quotation marks.
#. The message catalog should translate "`" to a left
#. quotation mark suitable for the locale, and similarly for
#. "'".  For example, a French Unicode local should translate
#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
#. QUOTATION MARK), respectively.
#.
#. If the catalog has no translation, we will try to
#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK).  If the
#. current locale is not Unicode, locale_quoting_style
#. will quote 'like this', and clocale_quoting_style will
#. quote "like this".  You should always include translations
#. for "`" and "'" even if U+2018 and U+2019 are appropriate
#. for your locale.
#.
#. If you don't know what to put here, please see
#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgstr "»"

#: lib/quotearg.c:363
msgid "'"
msgstr "«"

#: lib/spawn-pipe.c:141 lib/spawn-pipe.c:144 lib/spawn-pipe.c:265
#: lib/spawn-pipe.c:268
#, c-format
msgid "cannot create pipe"
msgstr "ni mogoče ustvariti cevovoda"

#: lib/spawn-pipe.c:235 lib/spawn-pipe.c:349 lib/wait-process.c:290
#: lib/wait-process.c:364
#, c-format
msgid "%s subprocess failed"
msgstr "podproces %s ni uspel"

#: lib/timevar.c:316
msgid "Execution times (seconds)"
msgstr ""

#: lib/timevar.c:318
msgid "CPU user"
msgstr ""

#: lib/timevar.c:318
msgid "CPU system"
msgstr ""

#: lib/timevar.c:318
#, fuzzy
msgid "wall clock"
msgstr "Budilka"

#: lib/w32spawn.h:49
#, c-format
msgid "_open_osfhandle failed"
msgstr "klic _open_osfhandle ni uspel"

#: lib/w32spawn.h:90
#, c-format
msgid "cannot restore fd %d: dup2 failed"
msgstr "ni mogoče obnoviti fd %d: klic dup2 ni uspel"

#: lib/wait-process.c:231 lib/wait-process.c:263 lib/wait-process.c:325
#, c-format
msgid "%s subprocess"
msgstr "podproces %s"

#: lib/wait-process.c:282 lib/wait-process.c:354
#, c-format
msgid "%s subprocess got fatal signal %d"
msgstr "podproces %s je prejel terminalni signal %d"

#~ msgid "Packaged by %s (%s)\n"
#~ msgstr "Priprava paketa: %s (%s)\n"

#~ msgid "Packaged by %s\n"
#~ msgstr "Priprava paketa: %s\n"

#~ msgid "(C)"
#~ msgstr "©"

#, fuzzy
#~| msgid ""
#~| "\n"
#~| "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"
#~| "\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 ""
#~ "\n"
#~ "GPLv3+: GNU GPL, 3. izdaja ali poznejša <http://www.gnu.org/licenses/gpl."
#~ "html>\n"
#~ "To je prosto programje; lahko ga redistribuirate in/ali spreminjate.\n"
#~ "Za izdelek ni NOBENEGA JAMSTVA, do z zakonom dovoljene meje.\n"
#~ "\n"

#~ msgid "Written by %s.\n"
#~ msgstr "Avtor(ica): %s.\n"

#~ msgid "Written by %s and %s.\n"
#~ msgstr "Avtorja: %s in %s.\n"

#~ msgid "Written by %s, %s, and %s.\n"
#~ msgstr "Avtorji: %s, %s in %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
#~ "Avtorji: %s, %s, %s\n"
#~ "in %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
#~ "Avtorji: %s, %s, %s,\n"
#~ "%s in %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, and %s.\n"
#~ msgstr ""
#~ "Avtorji: %s, %s, %s,\n"
#~ "%s, %s in %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, and %s.\n"
#~ msgstr ""
#~ "Avtorji: %s, %s, %s,\n"
#~ "%s, %s, %s in %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
#~ "Avtorji: %s, %s, %s,\n"
#~ "%s, %s, %s, %s\n"
#~ "in %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
#~ "Avtorji: %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s in %s.\n"

#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s, and others.\n"
#~ msgstr ""
#~ "Avtorji: %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s in drugi.\n"

#, fuzzy
#~| msgid ""
#~| "\n"
#~| "Report bugs to: %s\n"
#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
#~ "\n"
#~ "Poročila o napakah: %s\n"
#~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge."
#~ "net>.\n"

#~ msgid "Report %s bugs to: %s\n"
#~ msgstr ""
#~ "Napake v programu %s sporočite na: %s\n"
#~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge."
#~ "net>.\n"

#~ msgid "%s home page: <%s>\n"
#~ msgstr "Domača stran %s: <%s>\n"

#, fuzzy
#~| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
#~ msgid "General help using GNU software: <%s>\n"
#~ msgstr ""
#~ "Splošna pomoč za rabo programja GNU: <http://www.gnu.org/gethelp/>.\n"

#~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
#~ msgstr "ARGP_HELP_FMT: vrednost %s je manjša ali enaka %s"

#~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
#~ msgstr "%.*s: ARGP_HELP_FMT parameter zahteva vrednost"

#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
#~ msgstr "%.*s: ARGP_HELP_FMT parameter mora biti pozitiven"

#~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
#~ msgstr "%.*s: Neznan parameter ARGP_HELP_FMT"

#~ msgid "Garbage in ARGP_HELP_FMT: %s"
#~ msgstr "Smetje v ARGP_HELP_FMT: %s"

#~ msgid ""
#~ "Mandatory or optional arguments to long options are also mandatory or "
#~ "optional for any corresponding short options."
#~ msgstr ""
#~ "Argumenti, navedeni kot obvezni ali neobvezni pri dolgi obliki izbire, so "
#~ "obvezni ali neobvezni tudi pri vseh odgovarjajočih kratkih oblikah."

#~ msgid "Usage:"
#~ msgstr "Uporaba:"

#~ msgid "  or: "
#~ msgstr " ali: "

#~ msgid " [OPTION...]"
#~ msgstr " [IZBIRA...]"

#~ msgid "Try `%s --help' or `%s --usage' for more information.\n"
#~ msgstr "Poskusite »%s --help« ali »%s --usage« za izčrpnejša navodila.\n"

#~ msgid "Report bugs to %s.\n"
#~ msgstr "Poročila o napakah: %s\n"

#~ msgid "give this help list"
#~ msgstr "poda ta seznam pomoči"

#~ msgid "give a short usage message"
#~ msgstr "poda kratka navodila"

#~ msgid "NAME"
#~ msgstr "IME"

#~ msgid "set the program name"
#~ msgstr "nastavi ime programa"

#~ msgid "SECS"
#~ msgstr "SEK"

#~ msgid "hang for SECS seconds (default 3600)"
#~ msgstr "zastane za SEK sekund (privzeto 3600)"

#~ msgid "print program version"
#~ msgstr "izpiše različico programa"

#~ msgid "(PROGRAM ERROR) No version known!?"
#~ msgstr "(PROGRAMSKA NAPAKA) Različice ni moč ugotoviti?!"

#~ msgid "%s: Too many arguments\n"
#~ msgstr "%s: Preveč argumentov\n"

#~ msgid "(PROGRAM ERROR) Option should have been recognized!?"
#~ msgstr "(PROGRAMSKA NAPAKA) Izbire bi morali prepoznati?!"

#~ msgid "program error"
#~ msgstr "napaka v programu"

#~ msgid "stack overflow"
#~ msgstr "prekoračitev sklada"

#~ msgid "cannot find a temporary directory, try setting $TMPDIR"
#~ msgstr "začasnega imenika ni moč najti, poskusite nastaviti $TMPDIR"

#~ msgid "cannot create a temporary directory using template \"%s\""
#~ msgstr "začasnega imenika z uporabo šablone \"%s\" ni mogoče ustvariti"

#~ msgid "cannot remove temporary file %s"
#~ msgstr "začasne datoteke v %s ni mogoče odstraniti"

#~ msgid "cannot remove temporary directory %s"
#~ msgstr "začasnega imenika %s ni mogoče odstraniti"

#~ msgid "error closing file"
#~ msgstr "napaka pri zapiranju datoteke"

#~ msgid "preserving permissions for %s"
#~ msgstr "ohranjena dovoljenja za %s"

#~ msgid "error while opening \"%s\" for reading"
#~ msgstr "napaka pri odpiranju datoteke \"%s\" za branje"

#~ msgid "error reading \"%s\""
#~ msgstr "napaka pri branju \"%s\""

#~ msgid "error writing \"%s\""
#~ msgstr "napaka pri pisanju na \"%s\""

#~ msgid "error after reading \"%s\""
#~ msgstr "napaka po branju \"%s\""

#~ msgid "fdopen() failed"
#~ msgstr "klic fdopen() ni uspel"

#~ msgid "C# compiler not found, try installing pnet"
#~ msgstr "prevajalnika za C# ni najti, namestite pnet"

#~ msgid "C# virtual machine not found, try installing pnet"
#~ msgstr "virtualnega stroja C# ni najti, namestite pnet"

#~ msgid "regular empty file"
#~ msgstr "navadna prazna datoteka"

#~ msgid "regular file"
#~ msgstr "navadna datoteka"

#~ msgid "directory"
#~ msgstr "imenik"

#~ msgid "block special file"
#~ msgstr "bločna enota"

#~ msgid "character special file"
#~ msgstr "znakovna enota"

#~ msgid "fifo"
#~ msgstr "FIFO"

# ! INEXACT
#~ msgid "symbolic link"
#~ msgstr "simbolna povezava"

#~ msgid "socket"
#~ msgstr "vtičnica"

#~ msgid "message queue"
#~ msgstr "vrsta sporočil"

#~ msgid "semaphore"
#~ msgstr "semafor"

#~ msgid "shared memory object"
#~ msgstr "deljen pomnilniški predmet"

#~ msgid "typed memory object"
#~ msgstr "tipiziran pomnilniški predmet"

#~ msgid "weird file"
#~ msgstr "čudna datoteka"

#~ msgid "Address family for hostname not supported"
#~ msgstr "Družina naslovov za ime gostitelja ni podprta"

#~ msgid "Temporary failure in name resolution"
#~ msgstr "Razreševanje imena začasno ni uspelo"

#~ msgid "Bad value for ai_flags"
#~ msgstr "Slaba vrednost ai_flags"

#~ msgid "Non-recoverable failure in name resolution"
#~ msgstr "Nepopravljiv neuspeh pri razreševanju imena"

#~ msgid "ai_family not supported"
#~ msgstr "ai_family ni podprt"

#~ msgid "Memory allocation failure"
#~ msgstr "Dodelitev pomnilnika ni uspela"

#~ msgid "No address associated with hostname"
#~ msgstr "Z imenom gostitelja ni povezan noben naslov"

#~ msgid "Name or service not known"
#~ msgstr "Ime ali storitev ni poznana"

#~ msgid "Servname not supported for ai_socktype"
#~ msgstr "Servname ni podprt za ai_socktype"

#~ msgid "ai_socktype not supported"
#~ msgstr "ai_socktype ni podprt"

#~ msgid "System error"
#~ msgstr "Sistemska napaka"

#~ msgid "Argument buffer too small"
#~ msgstr "Medpomnilnik za argumente premajhen"

#~ msgid "Processing request in progress"
#~ msgstr "Obdelava zahtevka v teku"

#~ msgid "Request canceled"
#~ msgstr "Zahtevek preklican"

#~ msgid "Request not canceled"
#~ msgstr "Zahtevek ni preklican"

#~ msgid "All requests done"
#~ msgstr "Vsi zahtevki obdelani"

#~ msgid "Interrupted by a signal"
#~ msgstr "Prekinjeno s signalom"

#~ msgid "Parameter string not correctly encoded"
#~ msgstr "Parametrični niz nepravilno kodiran"

#~ msgid "Unknown error"
#~ msgstr "Neznana napaka"

#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n"

#~ msgid "%s: unrecognized option '--%s'\n"
#~ msgstr "%s: neprepoznana izbira »--%s«\n"

#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
#~ msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n"

#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: izbira »-W %s« zahteva argument\n"

#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "neveljaven argument source_version za compile_java_class"

#~ msgid "invalid target_version argument to compile_java_class"
#~ msgstr "neveljaven argument target_version za compile_java_class"

#~ msgid "failed to create \"%s\""
#~ msgstr "ni mogoče ustvariti \"%s\""

#~ msgid "error while writing \"%s\" file"
#~ msgstr "napaka pri pisanju na datoteko \"%s\""

#~ msgid "Java compiler not found, try installing gcj or set $JAVAC"
#~ msgstr "prevajalnika za Javo ni najti, nastavite $JAVAC ali namestite gcj"

#~ msgid "Java virtual machine not found, try installing gij or set $JAVA"
#~ msgstr ""
#~ "virtualnega stroja za Javo ni najti, nastavite $JAVA ali namestite gij"

#~ msgid "%s subprocess I/O error"
#~ msgstr "V/I napaka podprocesa %s"

#~ msgid "cannot change permissions of %s"
#~ msgstr "dovoljenj %s ni mogoče spremeniti"

#~ msgid "cannot create directory %s"
#~ msgstr "imenika %s ni mogoče ustvariti"

#~ msgid "unable to record current working directory"
#~ msgstr "ni mogoče zabeležiti trenutnega delovnega imenika"

#~ msgid "failed to return to initial working directory"
#~ msgstr "vrnitev v začetni delovni imenik ni uspela"

#~ msgid "Failed to open /dev/zero for read"
#~ msgstr "Datoteke /dev/null ni uspelo odpreti za branje"

#~ msgid "creation of reading thread failed"
#~ msgstr "niti za pisanje ni bilo mogoče ustvariti"

#~ msgid "cannot set up nonblocking I/O to %s subprocess"
#~ msgstr "neblokiranega V/I za podproces %s ni mogoče nastaviti"

#~ msgid "communication with %s subprocess failed"
#~ msgstr "komunikacija s podprocesom %s ni uspela"

#~ msgid "write to %s subprocess failed"
#~ msgstr "pisanje na podproces %s ni uspelo"

#~ msgid "read from %s subprocess failed"
#~ msgstr "branje s podprocesa %s ni uspelo"

#~ msgid "subprocess %s terminated with exit code %d"
#~ msgstr "podproces %s se je zaključil z izhodno kodo %d"

#~ msgid "creation of threads failed"
#~ msgstr "ustvarjanje niti ni uspelo"

#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "%s podproces se je zaključil z izhodno kodo %d"

#~ msgid "Franc,ois Pinard"
#~ msgstr "François Pinard"

#~ msgid "Success"
#~ msgstr "Uspešno"

#~ msgid "No match"
#~ msgstr "Brez zadetkov"

#~ msgid "Invalid regular expression"
#~ msgstr "Neveljaven regularni izraz"

#~ msgid "Invalid collation character"
#~ msgstr "Neveljaven razvrščevalni znak"

#~ msgid "Invalid character class name"
#~ msgstr "Neveljavno ime razreda znakov"

#~ msgid "Trailing backslash"
#~ msgstr "Zaključna obratna poševnica"

#~ msgid "Invalid back reference"
#~ msgstr "Neveljaven povratni sklic"

#~ msgid "Unmatched [ or [^"
#~ msgstr "Uklepaj [ ali [^ brez para"

#~ msgid "Unmatched ( or \\("
#~ msgstr "Uklepaj ( ali \\( brez para"

#~ msgid "Unmatched \\{"
#~ msgstr "Uklepaj \\{ brez para"

#~ msgid "Invalid content of \\{\\}"
#~ msgstr "Neveljavna vsebina \\{\\}"

#~ msgid "Invalid range end"
#~ msgstr "Neveljaven konec razpona"

# ! INEXACT
#~ msgid "Memory exhausted"
#~ msgstr "Pomnilnik izčrpan"

#~ msgid "Invalid preceding regular expression"
#~ msgstr "Neveljaven predhodni regularni izraz"

#~ msgid "Premature end of regular expression"
#~ msgstr "Predčasen zaključek regularnega izraza"

#~ msgid "Regular expression too big"
#~ msgstr "Regularni izraz je preobsežen"

#~ msgid "Unmatched ) or \\)"
#~ msgstr "Zaklepaj ) ali \\) brez para"

#~ msgid "No previous regular expression"
#~ msgstr "Prejšnjega regularnega izraza ni"

#~ msgid "^[yY]"
#~ msgstr "^[jJdD]"

#~ msgid "^[nN]"
#~ msgstr "^[nN]"

#~ msgid "setting permissions for %s"
#~ msgstr "nastavljena dovoljenja za %s"

#~ msgid "Hangup"
#~ msgstr "Odklop"

#~ msgid "Interrupt"
#~ msgstr "Prekinitev"

#~ msgid "Quit"
#~ msgstr "Končanje"

#~ msgid "Illegal instruction"
#~ msgstr "Nedovoljen ukaz"

#~ msgid "Trace/breakpoint trap"
#~ msgstr "Past"

#~ msgid "Aborted"
#~ msgstr "Prekinjen"

#~ msgid "Floating point exception"
#~ msgstr "Prekoračitev plavajoče vejice"

#~ msgid "Killed"
#~ msgstr "Pobit"

#~ msgid "Bus error"
#~ msgstr "Napaka vodila"

#~ msgid "Segmentation fault"
#~ msgstr "Napaka segmentacije"

#~ msgid "Broken pipe"
#~ msgstr "Prekinjen cevovod"

#~ msgid "Terminated"
#~ msgstr "Zaključen"

#~ msgid "Urgent I/O condition"
#~ msgstr "Nujno V/I stanje"

#~ msgid "Stopped (signal)"
#~ msgstr "Ustavljen (signal)"

#~ msgid "Stopped"
#~ msgstr "Ustavljen"

#~ msgid "Continued"
#~ msgstr "Nadaljevan"

#~ msgid "Child exited"
#~ msgstr "Izhod nasledniškega procesa"

#~ msgid "Stopped (tty input)"
#~ msgstr "Ustavljen (vhod TTY)"

#~ msgid "Stopped (tty output)"
#~ msgstr "Ustavljen (izhod TTY)"

#~ msgid "I/O possible"
#~ msgstr "Mogoč V/I"

#~ msgid "CPU time limit exceeded"
#~ msgstr "Presežena omejitev procesorskega časa"

#~ msgid "File size limit exceeded"
#~ msgstr "Presežena omejitev dolžine datoteke"

#~ msgid "Virtual timer expired"
#~ msgstr "Iztek virtualne štoparice"

#~ msgid "Profiling timer expired"
#~ msgstr "Iztek profilirne štoparice"

#~ msgid "Window changed"
#~ msgstr "Zamenjano okno"

#~ msgid "User defined signal 1"
#~ msgstr "Uporabniški signal 1"

#~ msgid "User defined signal 2"
#~ msgstr "Uporabniški signal 2"

#~ msgid "EMT trap"
#~ msgstr "Past EMT"

#~ msgid "Bad system call"
#~ msgstr "Slab sistemski klic"

#~ msgid "Stack fault"
#~ msgstr "Napaka sklada"

#~ msgid "Information request"
#~ msgstr "Informacijski zahtevek"

#~ msgid "Power failure"
#~ msgstr "Izpad toka"

#~ msgid "Resource lost"
#~ msgstr "Vir izgubljen"

#~ msgid "error writing to a closed pipe or socket"
#~ msgstr "napaka pri pisanju na zaprt cevovod ali vtič"

#~ msgid "Real-time signal %d"
#~ msgstr "Realnočasovni signal %d"

#~ msgid "Unknown signal %d"
#~ msgstr "Neznani signal %d"

#~ msgid "iconv function not usable"
#~ msgstr "funkcija iconv ne deluje"

#~ msgid "iconv function not available"
#~ msgstr "funkcija iconv ni na voljo"

#~ msgid "character out of range"
#~ msgstr "koda znaka izven obsega"

#~ msgid "cannot convert U+%04X to local character set"
#~ msgstr "znaka s kodo U+%04X ni mogoče pretvoriti v lokalni nabor znakov"

#~ msgid "cannot convert U+%04X to local character set: %s"
#~ msgstr "znaka s kodo U+%04X ni moč pretvoriti v lokalni nabor znakov: %s"

#~ msgid "invalid user"
#~ msgstr "neveljavno uporabniško ime"

#~ msgid "invalid group"
#~ msgstr "neveljavno ime skupine"

#~ msgid "invalid spec"
#~ msgstr "neveljavna specifikacija"

#~ msgid "unable to display error message"
#~ msgstr "sporočila o napaki ni mogoče prikazati"

#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
#~ msgstr "Spletna stran %s: <http://www.gnu.org/software/%s/>.\n"

#~ msgid "stdin"
#~ msgstr "standardni vhod"

#~ msgid "stdout"
#~ msgstr "standardni izhod"

#~ msgid "stderr"
#~ msgstr "standardna izhod za napake"

#~ msgid "unknown stream"
#~ msgstr "neznani tok"

#~ msgid "failed to reopen %s with mode %s"
#~ msgstr "ponovno odpiranje %s v načinu %s ni uspelo"

#~ msgid "string comparison failed"
#~ msgstr "primerjanje nizov ni uspelo"

#~ msgid "Set LC_ALL='C' to work around the problem."
#~ msgstr "Nastavite LC_ALL='C', da bi odpravili težavo."

#~ msgid "The strings compared were %s and %s."
#~ msgstr "Primerjana niza sta bila %s in %s."

#~ msgid "cannot perform formatted output"
#~ msgstr "oblikovanega izpisa ni mogoče izvesti"

#~ msgid "invalid %s%s argument `%s'"
#~ msgstr "neveljavni %s%s argument  »%s«"

#~ msgid "invalid suffix in %s%s argument `%s'"
#~ msgstr "neveljavna pripona pri %s%s argumentu »%s«"

#~ msgid "%s%s argument `%s' too large"
#~ msgstr "%s%s: argument »%s« je prevelik"

#~ msgid "%s: illegal option -- %c\n"
#~ msgstr "%s: nedovoljena izbira -- %c\n"

#~ msgid ""
#~ "\n"
#~ "Report bugs to <%s>.\n"
#~ msgstr ""
#~ "\n"
#~ "Napake v programu sporočite na %s.\n"
#~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge."
#~ "net>.\n"

#~ msgid "block size"
#~ msgstr "velikost bloka"

#~ msgid "%s exists but is not a directory"
#~ msgstr "%s obstaja, vendar ni imenik"

# ! INEXACT
#~ msgid "cannot change owner and/or group of %s"
#~ msgstr "lastnika in/ali skupine %s ni mogoče spremeniti"

#~ msgid "cannot chdir to directory %s"
#~ msgstr "dostop do imenika %s ni mogoč"

#~ msgid "cannot get the login group of a numeric UID"
#~ msgstr "imena skupine, ki pripada številčnemu UID, ni mogoče ugotoviti"

#~ msgid ""
#~ "\n"
#~ "This is free software.  You may redistribute copies of it under the terms "
#~ "of\n"
#~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
#~ "\n"
#~ msgstr ""
#~ "\n"
#~ "Ta program je prosta programska oprema; lahko ga redistribuirate in/ali\n"
#~ "spreminjate po pogojih, določenih v »GNU General Public License«, \n"
#~ "<http://www.gnu.org/licenses/gpl.html>. Za izdelek ni NOBENEGA JAMSTVA, "
#~ "do\n"
#~ "z zakonom dovoljene meje.\n"
