/*
 * Copyright 2002, 2003, 2008 Rok Mandeljc
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "windef.h"
#include "mmddk.h"

LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT

#pragma code_page(65001)

STRINGTABLE
BEGIN

/* MMSYS errors */
MMSYSERR_NOERROR, 		"Navedeni ukaz je bil uspešno izveden."
MMSYSERR_ERROR, 		"Neznana zunanja napaka."
MMSYSERR_BADDEVICEID, 		"Uporabljena oznaka naprave je zunaj dopustnega obsega za vaš sistem."
MMSYSERR_NOTENABLED, 		"Gonilnik ni bil omogočen."
MMSYSERR_ALLOCATED, 		"Navedena naprava je že v uporabi. Počakajte, da bo sproščena, in poskusite znova."
MMSYSERR_INVALHANDLE, 		"Navedena koda za dostop do naprave je neveljavna."
MMSYSERR_NODRIVER, 		"Nameščen ni noben gonilnik!"
MMSYSERR_NOMEM, 		"Za opravilo ni na voljo dovolj pomnilnika. Zaprite enega ali več programov in poskusite znova."
MMSYSERR_NOTSUPPORTED, 		"Ta funkcija ni podprta. Če želite ugotoviti, katere funkcije gonilnik podpira, uporabite možnost 'Zmožnosti'."
MMSYSERR_BADERRNUM, 		"Navedena je bila številka napake, ki v sistemu ni definirana."
MMSYSERR_INVALFLAG, 		"Sistemski funkciji je bila posredovana neveljavna zastavica."
MMSYSERR_INVALPARAM, 		"Sistemski funkciji je bil posredovan neveljaven parameter."

/* WAVE errors */
WAVERR_BADFORMAT, 		"Navedena oblika zapisa ni podprta ali pa je ni mogoće prevesti. Če želite ugotoviti, katere oblike so podprte, uporabite možnost 'Zmožnosti'."
WAVERR_STILLPLAYING, 		"Predvajanje je še v teku. Ponastavite napravo ali pa počakajte do konca predvajanja."
WAVERR_UNPREPARED, 		"Glava podatkov vrste wave ni bila pripravljena. Pripravite glavo tako, da uporabite funkcijo 'Pripravi' (Prepare), in poskusite znova."
WAVERR_SYNC, 			"Naprave ni mogoče odpreti brez zastavice WAVE_ALLOWSYNC. Uporabite zastavico in poskusite znova."

/* MIDI errors */
MIDIERR_UNPREPARED, 		"MIDI glava ni bila pripravljena. Pripravite glavo tako, da uporabite funkcijo 'Pripravi' (Prepare), in poskusite znova."
MIDIERR_STILLPLAYING, 		"Predvajanje je še v teku. Ponastavite napravo ali pa počakajte do konca predvajanja."
MIDIERR_NOMAP, 			"Razporeditve MIDI ni mogoče najti. To je lahko posledica težav z gonilnikom, ali pa manjkajoče oziroma poškodovane datoteke MIDIMAP.CFG."
MIDIERR_NOTREADY, 		"Prek vrat trenutno poteka prenos podatkov. Počakajte na konec prenosa in poskusite znova."
MIDIERR_NODEVICE, 		"Trenutna nastavitev MIDI se sklicuje na MIDI napravo, ki ni prisotna. Uporabite MIDI Mapper in spremenite nastavitve."
MIDIERR_INVALIDSETUP, 		"Trenutna nastavitev MIDI je pošodovana. Namestite originalno datoteko MIDIMAP.CFG v sistemsko mapo Oken in poskusite znova."

/* MCI errors */
MCIERR_INVALID_DEVICE_ID,      "Neveljaven ID MCI naprave. Uporabite ID, ki ga vrne odpiranje MCI naprave."
MCIERR_UNRECOGNIZED_KEYWORD, 	"Naveden parameter ukaza ni definiran v naboru MCI ukazov."
MCIERR_UNRECOGNIZED_COMMAND,	"Naveden ukaz je neveljaven MCI ukaz."
MCIERR_HARDWARE, 		"Z večpredstavnostno napravo so težave. Preverite, ali naprava deluje pravilno ali pa se posvetujte z izdelovalcem."
MCIERR_INVALID_DEVICE_NAME, 	"Navedena naprava ni registrirana MCI naprava."
MCIERR_OUT_OF_MEMORY, 		"Za to opravilo ni na voljo dovolj pomnilnika.\nZaprite enega ali več programov in poskusite znova."
MCIERR_DEVICE_OPEN, 		"Program že uporablja ta vzdevek. Namesto imena naprave uporabite še neuporabljen  vzdevek."
MCIERR_CANNOT_LOAD_DRIVER, 	"Naprave ni bilo mogoče naložiti. Preverite, ali je gonilnik pravilno nameščen."
MCIERR_MISSING_COMMAND_STRING, 	"Ukazni niz je prazen."
MCIERR_PARAM_OVERFLOW, 		"Izhodni niz je bil prevelik, da bi ga bilo mogoèe shraniti v povratni medpomnilnik. Povečajte medpomnilnik."
MCIERR_MISSING_STRING_ARGUMENT, "Navedeni ukaz zahteva parameter (niz znakov). Vnesite ga."
MCIERR_BAD_INTEGER, 		"Vneseno celo število za ta ukaz je neveljavno. Vnesite veljavno število."
MCIERR_PARSER_INTERNAL, 	"Gonilnik za napravo je vrnil neveljavno vrsto vrednosti. Od izdelovalca naprave poskusite dobiti nov gonilnik."
MCIERR_DRIVER_INTERNAL, 	"Z gonilnikom za napravo so težave. Od izdelovalca naprave poskusite dobiti nov gonilnik."
MCIERR_MISSING_PARAMETER, 	"V navedenem ukazu manjka parameter. Vnesite ga."
MCIERR_UNSUPPORTED_FUNCTION, 	"MCI naprava, ki jo uporabljate, ne podpira navedenega ukaza."
MCIERR_FILE_NOT_FOUND, 		"Navedene datoteke ni mogoče najti. Preverite, ali ste pravilno vnesli ime in pot do datoteke."
MCIERR_DEVICE_NOT_READY, 	"Gonilnik za napravo ni pripravljen. Malo počakajte in nato poskusite znova."
MCIERR_INTERNAL, 		"Pri inicializaciji MCI naprave je prišlo do težav. Znova zaženite Okna."
MCIERR_DRIVER, 			"Zaradi napake, značilne za gonilnik, je bil le-ta zaprt. Ponovite ukaz."
MCIERR_CANNOT_USE_ALL, 		"V tem ukazu uporabite ime točno določene naprave."
MCIERR_MULTIPLE, 		"V več napravah je prišlo do napak. Ločeno vnesite vsak ukaz in vsako napravo. Tako boste lahko ugotovili, katere naprave povzročajo napake."
MCIERR_EXTENSION_NOT_FOUND, 	"Iz pripone datoteke ni mogoče ugotoviti vrste zahtevane naprave."
MCIERR_OUTOFRANGE, 		"Parameter je zunaj dovoljenega obsega."
MCIERR_FLAGS_NOT_COMPATIBLE, 	"Navedenih parametrov ne smete uporabiti hkrati."
MCIERR_FILE_NOT_SAVED, 		"Navedene datoteke ni mogoče shraniti. Preverite, ali je na disku dovolj prostora oz. ali je vaš računalnik še povezan z omrežjem."
MCIERR_DEVICE_TYPE_REQUIRED, 	"Navedene naprave ni mogoče najti. Preverite, ali je naprava nameščena oz. ali je bilo njeno ime pravilno navedeno."
MCIERR_DEVICE_LOCKED, 		"Poteka zapiranje navedene naprave. Malo počakajte in poskusite znova."
MCIERR_DUPLICATE_ALIAS, 	"Program že uporablja navedeni vzdevek. Uporabite še neuporabljen vzdevek."
MCIERR_BAD_CONSTANT, 		"Uporabljena konstanta v tem ukazu je neveljavna."
MCIERR_MUST_USE_SHAREABLE, 	"Gonilnik naprave je že v uporabi. Če ga želite dati v skupno rabo, z vsakim ukazom 'open' uporabite parameter 'shareable'."
MCIERR_MISSING_DEVICE_NAME, 	"Navedeni ukaz zahteva vzdevek, datoteko, gonilnik ali ime naprave. Vnesite ustrezno ime."
MCIERR_BAD_TIME_FORMAT, 	"Navedena vrednost za obliko zapisa časa je neveljavna. Veljavne oblike poiščite v dokumentaciji MCI naprave."
MCIERR_NO_CLOSING_QUOTE, 	"V vrednosti za parameter manjka zaključni dvojni narekovaj. Vnesite ga."
MCIERR_DUPLICATE_FLAGS, 	"Parameter ali vrednost ste navedli dvakrat. Navedite ga samo enkrat."
MCIERR_INVALID_FILE, 		"Te datoteke ne morete predvajati z navedeno MCI napravo. Datoteka je morda poškodovana ali pa ima napaćno obliko zapisa."
MCIERR_NULL_PARAMETER_BLOCK, 	"MCI napravi je bil podan 'null parameter block'."
MCIERR_UNNAMED_RESOURCE, 	"Datoteke brez imena ni mogoče shraniti. Vnesite ime."
MCIERR_NEW_REQUIRES_ALIAS, 	"Ko uporabljate parameter 'new', morate navesti vzdevek."
MCIERR_NOTIFY_ON_AUTO_OPEN, 	"Zastavice 'notify' ni mogoče uporabiti s samodejno oprtimi napravami."
MCIERR_NO_ELEMENT_ALLOWED, 	"V povezavi z navedeno napravo ne morete uporabiti imena datoteke."
MCIERR_NONAPPLICABLE_FUNCTION, 	"Ukazov ni mogoče izvesti v navedenem zaporedju. Spremenite zaporedje in poskusite znova."
MCIERR_ILLEGAL_FOR_AUTO_OPEN, 	"Ukaza ni mogoče izvesti v povezavi s samodejno odprto napravo. Počakajte, da se naprava zapre, in poskusite znova."
MCIERR_FILENAME_REQUIRED, 	"Neveljavno ime datoteke. Preverite, da vsebuje največ 8 znakov, ki jim sledita pika in pripona."
MCIERR_EXTRA_CHARACTERS, 	"Za nizom znakov, ki je obdan z narekovaji, ni mogoče zapisati dodatnih znakov."
MCIERR_DEVICE_NOT_INSTALLED, 	"Naprava ni nameščena. Če želite namestiti nov gonilnik, na Nadzorni Plošči dvokliknite ikono 'Dodajanje strojne opreme'."
MCIERR_GET_CD, 			"Dostop do navedene datoteke ali MCI naprave ni mogoč. Zamenjajte imenik ali pa znova zaženite računalnik."
MCIERR_SET_CD, 			"Dostop do navedene datoteke ali MCI naprave ni mogoč, ker program ne more zamenjati imenika."
MCIERR_SET_DRIVE, 		"Dostop do navedene datoteke ali MCI naprave ni mogoč, ker program ne more zamenjati pogona."
MCIERR_DEVICE_LENGTH, 		"Navedite ime za napravo ali gonilnik, ki je krajše od 79 znakov."
MCIERR_DEVICE_ORD_LENGTH, 	"Navedite ime za napravo ali gonilnik, ki je krajše od 69 znakov."
MCIERR_NO_INTEGER, 		"Navedeni ukaz zahteva celoštevilčen parameter (npr. 'play to 10'). Vnesite ga."
MCIERR_WAVE_OUTPUTSINUSE, 	"Vse naprave, ki lahko predvajajo datoteke v obliki wave, so v uporabi. Poskusite znova, ko bo katera od njih na voljo."
MCIERR_WAVE_SETOUTPUTINUSE, 	"Trenutna wave naprava je v uporabi. Počakajte, da bo sproščena, in poskusite znova."
MCIERR_WAVE_INPUTSINUSE, 	"Vse naprave, ki lahko snemajo datoteke v obliki wave, so v uporabi. Poskusite znova, ko bo katera od njih na voljo."
MCIERR_WAVE_SETINPUTINUSE, 	"Trenutna wave naprava je v uporabi. Počakajte, da bo sproščena, in poskusite znova."
MCIERR_WAVE_OUTPUTUNSPECIFIED,	"Predvajalna naprava je v uporabi. Poskusite znova po koncu predvajanja."
MCIERR_WAVE_INPUTUNSPECIFIED, 	"Snemalna naprava je v uporabi. Poskusite znova po koncu snemanja."
MCIERR_WAVE_OUTPUTSUNSUITABLE, 	"Nameščena ni nobena naprava za wave, ki bi lahko predvajala datoteke v trenutni obliki."
MCIERR_WAVE_SETOUTPUTUNSUITABLE,"Naprava ne prepozna trenutne oblike zapisa datoteke. Izberite drugo napravo in poskusite znova."
MCIERR_WAVE_INPUTSUNSUITABLE, 	"Nameščena ni nobena naprava za wave, ki bi lahko snemala datoteke v trenutni obliki."
MCIERR_WAVE_SETINPUTUNSUITABLE, "Naprava ne prepozna trenutne oblike zapisa datoteke. Izberite drugo napravo in poskusite znova."
MCIERR_NO_WINDOW, 		"Ni okna za prikaz."
MCIERR_CREATEWINDOW, 		"Okna ni bilo mogoče ustvariti ali uporabiti."
MCIERR_FILE_READ, 		"Iz navedene datoteke ni mogoče brati. Preverite, ali datoteka še vedno obstaja oz. preverite svoj disk in omrežne povezave."
MCIERR_FILE_WRITE, 		"V navedeno datoteko ni mogoče pisati. Preverite, ali je na disku še dovolj prostora oz. ali je vaš računalnik še povezan z omrežjem."
MCIERR_SEQ_DIV_INCOMPATIBLE, 	"Sočasna uporaba oblik zapisa časa 'song-pointer' in SMPTE ni mogoča."
MCIERR_SEQ_NOMIDIPRESENT, 	"Nameščna ni nobena MIDI naprava. Za namestitev MIDI gonilnika uporabite možnost 'Drivers' na Nadzorni plošći."
MCIERR_SEQ_PORT_INUSE, 		"Navedena MIDI naprava je že v uporabi. Počakajte, da bo prosta, in poskusite znova."
MCIERR_SEQ_PORT_MAPNODEVICE, 	"Trenutna nastavitev MIDI se sklicuje na manjkajočo napravo. Uporabite možnost 'MIDI Mapper' na Nadzorni plošči in spremenite nastavitev."
MCIERR_SEQ_PORT_MISCERROR, 	"Na navedenih vratih je prišlo do napake."
MCIERR_SEQ_PORT_NONEXISTENT, 	"Ta naprava ni nameščena. Če želite namestiti nov gonilnik, na nadzorni plošči dvokliknite ikono 'Dodajanje strojne opreme'."
MCIERR_SEQ_PORTUNSPECIFIED, 	"Zahtevana MIDI vrata niso nameščena."
MCIERR_SEQ_TIMER, 		"Vsi većpredstavnostni števci so zasedeni. Zaprite enega od večpredstavnostih programov in poskusite znova."

END
