/*
 * Wine command prompt
 * Lithuanian Language Support
 *
 * Copyright 2009-2010 Aurimas Fišeras <aurimas@gmail.com>
 *
 * 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 "wcmd.h"

/* UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL

STRINGTABLE
{
  WCMD_ATTRIB, "ATTRIB parodo arba pakeičia DOS atributus.\n"
  WCMD_CALL,
"CALL <komandųfailovardas> yra naudojama komandų failo viduje komandoms iš\n\
kito komandų failo vykdyti. Kai komandų failas egzistuoja, valdymas\n\
grąžinamas kvietusiam failui. CALL komanda gali pateikti parametrus\n\
kviečiamai procedūrai.\n\
\n\
Numatytojo katalogo, aplinkos kintamųjų ir pan. pakeitimai atlikti\n\
iškviestoje procedūroje yra paveldimi kviečiančiosios procedūros.\n"

  WCMD_CD,     "CD <direktorija> yra trumpa CHDIR versija. Pakeičia dabartinį\n\
numatytą katalogą.\n"
  WCMD_CHDIR,  "CHDIR <direktorija> pakeičia dabartinį numatytą katalogą.\n"

  WCMD_CLS,    "CLS išvalo pulto ekraną.\n"

  WCMD_COPY,   "COPY <failas> kopijuoja failą.\n"
  WCMD_CTTY,   "CTTY pakeičia įvedimo/išvedimo įrenginį.\n"
  WCMD_DATE,   "DATE parodo arba pakeičia sistemos datą.\n"
  WCMD_DEL,    "DEL <failas> pašalina failą ar failų rinkinį.\n"
  WCMD_DIR,    "DIR parodo katalogo turinį.\n"

  WCMD_ECHO,
"ECHO <eilutė> parodo <eilutę> dabartiniame terminale.\n\
\n\
ECHO ON priverčia visas vėlesnes komandų failo komandas būti parodytas\n\
terminale prieš įvykdymą.\n\
\n\
ECHO OFF panaikina ankstesnės ECHO ON komandos veikimą (ECHO OFF yra\n\
numatyta). ECHO OFF komandos rodymo galima išvengti prieš ją pridedant\n\
simbolį @.\n"

  WCMD_ERASE,  "ERASE <failas> pašalina failą ar failų rinkinį.\n"

  WCMD_FOR,
"FOR komanda yra naudojama įvykdyti komandą kiekvienam failų aibės elementui.\n\
\n\
Sintaksė: FOR %kintamasis IN (aibė) DO komanda\n\
\n\
Reikalavimas dubliuoti % simbolį naudojant FOR komandų faile neegzistuoja\n\
wine komandų interpretatoriuje.\n"

  WCMD_GOTO,
"GOTO komanda perduoda vykdymą kitam teiginiui komandų faile.\n\
\n\
Žymė, kuri yra GOTO komandos tikslas gali būti 255 simbolių ilgio,\n\
bet be tarpų (tai skiriasi nuo kitų operacinių sistemų). Jei komandų\n\
faile egzistuoja dvi ar daugiau identiškos žymės, visuomet bus vykdoma\n\
pirmoji. Mėginimas perduoti vykdymą į neegzistuojančią žymę nutraukia\n\
komandų failo vykdymą.\n\
\n\
GOTO neturi poveikio naudojant interaktyviai.\n"

  WCMD_HELP,   "HELP <komanda> parodo trumpą informaciją apie komandą.\n\
HELP be argumentų parodo visas įtaisytas CMD komandas.\n"

  WCMD_IF,
"IF yra naudojama vykdyti komandą su sąlyga.\n\
\n\
Sintaksė:	IF [NOT] EXIST failas komanda\n\
	IF [NOT] eilutė1==eilutė2 komanda\n\
	IF [NOT] ERRORLEVEL skaičius komanda\n\
\n\
Antroje komandos formoje, eilutė1 ir eilutė2 privalo būti tarp dvigubų\n\
kabučių. Palyginimas neskiria didžiųjų ir mažųjų raidžių.\n"

  WCMD_LABEL,  "LABEL yra naudojamas disko tomo vardui nustatyti.\n\
\n\
Sintaksė: LABEL [diskas:]\n\
Komanda paklaus naujo tomo vardo duotam diskui.\n\
Parodyti disko tomo vardą galima su komanda VOL.\n"

  WCMD_MD,     "MD <vardas> yra trumpa MKDIR versija. Sukuria katalogą.\n"
  WCMD_MKDIR,  "MKDIR <vardas> sukuria katalogą.\n"
  WCMD_MOVE,
"MOVE perkelia failą ar katalogą į naują failų sistemos vietą.\n\
\n\
Jei perkeliamas objektas yra katalogas, tai taip pat perkeliami visi\n\
katalogo failai ir pakatalogiai.\n\
\n\
MOVE nepavyksta jei sena ir nauja vietos yra su skirtingomis DOS raidėmis.\n"

  WCMD_PATH,
"PATH parodo ar pakeičia paieškos kelią.\n\
\n\
Įvedus PATH bus parodyta dabartinė PATH reikšmė (iš pradžių reikšmė\n\
paimama iš registro). Norėdami pakeisti nuostatą nurodykite PATH\n\
komandai naują reikšmę kaip parametrą.\n\
\n\
PATH modifikuoti taip pat galima naudojant PATH aplinkos kintamąjį,\n\
pavyzdžiui:\n\
		PATH %PATH%;c:\\laikinas\n"

  WCMD_PAUSE,
"PAUSE ekrane parodo pranešimą „Norėdami tęsti spauskite įvedimo klavišą“\n\
ir laukia kol naudotojas paspaus įvedimo klavišą. Ši komanda naudingiausia\n\
komandų failuose, kad leistų naudotojui perskaityti ankstesnės komandos\n\
rezultatą kol jis nepasislinko už ekrano ribų.\n"

  WCMD_PROMPT,
"PROMPT nustato komandinės eilutės raginimą.\n\
\n\
Simbolių eilutė, einanti po PROMPT komandos (ir tarpas iškart po to),\n\
atsiranda eilutės pradžioje, kai CMD laukia įvedimo.\n\
\n\
Šie simboliai turi nurodytą specialią reikšmę:\n\
\n\
$$    Dolerio ženklas     $_    Eilutės patraukimas $b    Status brūkšnys (|)\n\
$d    Dabartinė data      $e    Grįžimo klavišas    $g    > ženklas\n\
$l    < ženklas           $n    Dabartinis diskas   $p    Dabartinis kelias\n\
$q    Lygybės ženklas     $t    Dabartinis laikas   $v    CMD versija\n\
\n\
Pastebėkite, kad PROMPT komandos be raginimo eilutės įvedimas atkuria\n\
numatytą raginimo reikšmę, kuri yra dabartinis kelias (įskaitant\n\
dabartinio disko raidę) ir daugiau-už (>) simbolis.\n\
(Taip pat, kaip komanda PROMPT $p$g).\n\
\n\
Raginimas taip pat gali būti pakeistas keičiant PROMPT aplinkos kintamąjį,\n\
taigi, komanda „SET PROMPT=tekstas“ turi tą patį efektą kaip „PROMPT tekstas“.\n"

  WCMD_REM,
"Komandos eilutė prasidedanti REM (ir tarpu) neatlieka jokio veiksmo\n\
ir todėl gali būti naudojama kaip komentaras komandų faile.\n"

  WCMD_REN,    "REN <failas> yra trumpa RENAME versija. Pervadina failą.\n"
  WCMD_RENAME, "RENAME <failas> pervadina failą.\n"
  WCMD_RD,     "RD <katalogas> yra trumpa RMDIR versija. Pašalina katalogą.\n"
  WCMD_RMDIR,  "RMDIR <katalogas> pašalina katalogą.\n"

  WCMD_SET,
"SET parodo ar pakeičia CMD aplinkos kintamuosius.\n\
\n\
SET be parametrų parodo visus dabartinius aplinkos kintamuosius.\n\
\n\
Aplinkos kintamojo sukūrimo ar modifikavimo sintaksė yra:\n\
\n\
      SET <kintamasis>=<reikšmė>\n\
\n\
kur <kintamasis> ir <reikšmė> yra simbolių eilutės. Prieš lygybės ženklą\n\
neturi būti tarpų, taip pat kintamojo vardas negali turėti įterptų tarpų.\n\
\n\
Naudojant Wine, pagrindinės operacinės sistemos aplinka yra įtraukiama į\n\
Win32 aplinką, todėl paprastai bus žymiai daugiau reikšmių negu savoje\n\
Win32 realizacijoje. Pastebėkite, kad neįmanoma įtakoti operacinės sistemos\n\
aplinkos iš komandų interpretatoriaus.\n"

  WCMD_SHIFT,
"SHIFT yra naudojamas komandų faile pašalinti vienam parametrui iš sąrašo\n\
priekio, taip parametras 2 tampa parametru 1 ir t. t. Ši komanda neturi\n\
jokio poveikio, kai kviečiama iš komandos eilutės.\n"

  WCMD_TIME,   "TIME parodo arba nustato sistemos laiką.\n"

  WCMD_TITLE,  "Nustato CMD lango antraštę, sintaksė TITLE [tekstas].\n"

  WCMD_TYPE,
"TYPE <failas> nukopijuoja <failą> į pulto įrenginį (arba kitur, jei\n\
nukreipta). Nėra tikrinama ar faile yra skaitomas tekstas.\n"

  WCMD_VERIFY,
"VERIFY yra naudojama nustatyti, išvalyti ar testuoti tikrinimo žymos bitą.\n\
Galimos formos yra:\n\
\n\
VERIFY ON\tNustatyti žymos bitą\n\
VERIFY OFF\tIšvalyti žymos bitą\n\
VERIFY\t\tParodo ON arba OFF, kuris tinkamas.\n\
\n\
Tikrinimo žymos bitas neturi jokios funkcijos Wine.\n"

  WCMD_VER,    "VER parodo dabar vykdomo CMD versiją.\n"

  WCMD_VOL,    "VOL parodo disko įrenginio tomo vardą.\n"

  WCMD_PUSHD,  "PUSHD <katalogas> išsaugo dabartinį katalogą į dėklą,\n\
o po to pakeičia dabartinį katalogą į nurodytą.\n"

  WCMD_POPD,   "POPD pakeičia dabartinį katalogą į paskutinį išsaugotą su PUSHD.\n"

  WCMD_MORE,   "MORE parodo failo išvedimą ar kanalo įvedimą puslapiais.\n"

  WCMD_EXIT,
"EXIT baigia dabartinį komandų seansą ir grįžta į operacinę sistemą\n\
ar apvalkalą iš kur CMD buvo iškviestas.\n"

  WCMD_ALLHELP, "CMD įtaisytos komandos yra:\n\
ATTRIB\t\tRodyti ar keisti DOS failo požymius\n\
CALL\t\tKviesti komandų failą iš kito komandų failo\n\
CD (CHDIR)\tPakeisti dabartinį numatytą katalogą\n\
CLS\t\tIšvalyti pulto ekraną\n\
COPY\t\tKopijuoti failą\n\
CTTY\t\tPakeisti įvedimo/išvedimo įrenginį\n\
DATE\t\tRodyti ar keisti sistemos datą\n\
DEL (ERASE)\tŠalinti failą ar failų aibę\n\
DIR\t\tPateikti katalogo turinį\n\
ECHO\t\tKopijuoti tekstą tiesiai į pulto išvedimą\n\
HELP\t\tParodyti trumpą pagalbą apie temą\n\
MD (MKDIR)\tSukurti pakatalogį\n\
MORE\t\tRodyti išvedimą puslapiais\n\
MOVE\t\tPerkelti failą, failų aibę ar katalogų medį\n\
PATH\t\tNustatyti ar parodyti paieškos kelią\n\
POPD\t\tAtstato katalogą į paskutinį išsaugotą su PUSHD\n\
PROMPT\t\tKeičia komandos raginimą\n\
PUSHD\t\tPakeičia į naują katalogą, išsaugo dabartinį\n\
REN (RENAME)\tPervadinti failą\n\
RD (RMDIR)\tŠalinti pakatalogį\n\
SET\t\tNustatyti ar parodyti aplinkos kintamuosius\n\
TIME\t\tNustatyti ar parodyti dabartinį sistemos laiką\n\
TITLE\t\tNustatyti CMD seanso lango antraštę\n\
TYPE\t\tIšvesti tekstinio failo turinį\n\
VER\t\tParodyti dabartinę CMD versiją\n\
VOL\t\tParodyti tomo vardą\n\
EXIT\t\tUžveria CMD\n\n\
Įveskite HELP <komanda> platesnei informacijai apie išvardintas komandas gauti.\n"

  WCMD_CONFIRM,       "Ar tikrai"
  WCMD_YES,           "T"
  WCMD_NO,            "N"
  WCMD_NOASSOC,       "Trūksta failo susiejimo prievardžiui %s\n"
  WCMD_NOFTYPE,       "Jokia atvėrimo komanda nesusieta su failo tipu „%s“\n"
  WCMD_OVERWRITE,     "Perrašyti %s"
  WCMD_MORESTR,       "Daugiau..."
  WCMD_TRUNCATEDLINE, "Paketinio apdorojimo eilutė galimai nukirsta. Naudojama:\n"
  WCMD_NYI,           "Dar nerealizuota\n\n"
  WCMD_NOARG,         "Trūksta argumento\n"
  WCMD_SYNTAXERR,     "Sintaksės klaida\n"
  WCMD_FILENOTFOUND,  "%s: failas nerastas\n"
  WCMD_NOCMDHELP,     "Nėra informacijos apie %s\n"
  WCMD_NOTARGET,      "GOTO tikslas nerastas\n"
  WCMD_CURRENTDATE,   "Dabartinė data yra %s\n"
  WCMD_CURRENTTIME,   "Dabartinis laikas yra %s\n"
  WCMD_NEWDATE,       "Įveskite naują datą: "
  WCMD_NEWTIME,       "Įveskite naują laiką: "
  WCMD_MISSINGENV,    "Aplinkos kintamasis %s neapibrėžtas\n"
  WCMD_READFAIL,      "Nepavyko atverti „%s“\n"
  WCMD_CALLINSCRIPT,  "Negalima iškviesti žymės esančios už komandos failo ribų\n"
  WCMD_ALL,           "V"
  WCMD_DELPROMPT,     "%s, šalinti"
  WCMD_ECHOPROMPT,    "ECHO yra %s\n"
  WCMD_VERIFYPROMPT,  "VERIFY yra %s\n"
  WCMD_VERIFYERR,     "VERIFY turi būti ON arba OFF\n"
  WCMD_ARGERR,        "Parametro klaida\n"
  WCMD_VOLUMEDETAIL,  "Tomas diske %c yra %s\nTomo serijos numeris yra %04x-%04x\n\n"
  WCMD_VOLUMEPROMPT,  "Tomo vardas (11 simbolių, ENTER - bevardis)?"
  WCMD_NOPATH,        "KELIAS nerastas\n"
  WCMD_ANYKEY,        "Norėdami tęsti spauskite įvedimo klavišą: "
  WCMD_CONSTITLE,     "Wine komandų interpretatorius"
  WCMD_VERSION,       "CMD versija %s\n\n"
  WCMD_MOREPROMPT,    "Daugiau? "
  WCMD_LINETOOLONG,   "Įvedimo eilutė per ilga.\n"
}
