/*
 * WineCfg resources
 * Lithuanian Language Support
 *
 * Copyright 2009 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 "config.h"   /* Needed for the PACKAGE_STRING definition */
#include "resource.h"

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

LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL

IDD_ABOUTCFG DIALOGEX 0, 0, 260, 220
STYLE WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "", IDC_ABT_PANEL, "STATIC", SS_OWNERDRAW, 0, 0, 260, 140
    LTEXT           PACKAGE_NAME,IDC_ABT_TITLE_TEXT,105,30,55,30
    LTEXT           PACKAGE_VERSION,IDC_ABT_PANEL_TEXT,160,43,140,8
    CONTROL         "",IDC_ABT_WEB_LINK,"SysLink", LWS_TRANSPARENT, 105,53,106,8
    LTEXT           "Ši programa yra laisva programinė įranga; galite ją platinti ir/ar modifikuoti GNU laisvosios bendrosios viešosios licencijos (LGPL) sąlygomis, kurios paskelbtos Laisvosios programinės įrangos fondo (FSF); 2.1-osios arba (Jūsų pasirinkimu) bet kurios vėlesnės licencijos versijos sąlygomis.",
                    IDC_ABT_LICENSE_TEXT,105,64,145,60
    GROUPBOX        " Windows registracijos informacija ", IDC_STATIC, 15, 155, 230, 55
    LTEXT           "Savininkas:", IDC_STATIC, 22, 171, 40, 20
    EDITTEXT        IDC_ABT_OWNER, 75, 171, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Organizacija:", IDC_STATIC, 22, 185, 50, 20
    EDITTEXT        IDC_ABT_ORG, 75, 185, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
END

IDD_APPCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Programos nuostatos ",IDC_STATIC, 8,4,244,210
    LTEXT           "Wine gali pamėgdžioti skirtingas Windows versijas skirtingoms programoms. Ši kortelė yra susijusi su bibliotekų ir grafikos kortelėmis, kuriose taip pat galima keisti sistemines nuostatas ar kiekvienos programos nuostatas atskirai.",
                    IDC_STATIC,15,15,227,35
    CONTROL         "Programos",IDC_APP_LISTVIEW,"SysListView32",WS_BORDER | WS_TABSTOP | LVS_LIST | LVS_SINGLESEL | LVS_SHOWSELALWAYS,
                    15,50,230,120
    PUSHBUTTON	    "&Pridėti programą...",IDC_APP_ADDAPP, 90,174,75,14
    PUSHBUTTON	    "Pa&šalinti programą",IDC_APP_REMOVEAPP, 170,174,75,14
    LTEXT           "&Windows versija:",IDC_STATIC,17,196,58,8
    COMBOBOX        IDC_WINVER,83,194,163,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_GRAPHCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX    " Langų nuostatos ",IDC_STATIC,8,4,244,84
    CONTROL     "Leisti DirectX programoms sulaikyti &žymeklį savo lange",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
    CONTROL     "Leisti langų tvarkytuvei &dekoruoti langus",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8
    CONTROL     "Leisti langų tvarkytuvei kontroliuoti &langus",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8
    CONTROL     "&Emuliuoti virtualų darbalaukį",IDC_ENABLE_DESKTOP,"Button",
                BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8
    LTEXT       "Darbalaukio d&ydis:",IDC_DESKTOP_SIZE,15,70,60,8,WS_DISABLED
    LTEXT       "X",IDC_DESKTOP_BY,125,70,8,8,WS_DISABLED
    EDITTEXT    IDC_DESKTOP_WIDTH,80,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT    IDC_DESKTOP_HEIGHT,133,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED

    GROUPBOX    " Direct3D ",IDC_STATIC,8,95,244,49
    LTEXT       "&Vertex Shader palaikymas: ",IDC_STATIC,15,110,90,32
    COMBOBOX    IDC_D3D_VSHADER_MODE,110,108,135,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL     "Leisti &Pixel Shader (jei palaiko aparatinė įranga)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,10

    GROUPBOX    " Ekrano &skiriamoji geba ",IDC_STATIC,8,151,244,63
    CONTROL     "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,161,167,15
    EDITTEXT    IDC_RES_DPIEDIT,184,161,23,13,ES_NUMBER|WS_TABSTOP
    LTEXT       "tašk./col.",IDC_STATIC,215,163,30,8
    LTEXT       "Tai yra pavyzdinis tekstas naudojantis 10 taškų Tahoma",IDC_RES_FONT_PREVIEW,15,181,230,28
END

IDD_DLLCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " DLL nustelbimai ",IDC_STATIC,8,4,244,210
    LTEXT           "Kiekviena dinaminė biblioteka gali būti įtaisyta (pateikta su Wine) ar sava (paimta iš Windows ar pateikta programos)."
                    ,IDC_STATIC,16,16,220,32
    LTEXT           "&Naujas nustelbimas bibliotekai:",IDC_STATIC,16,58,100,8
    COMBOBOX        IDC_DLLCOMBO,16,68,140,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON      "&Pridėti",IDC_DLLS_ADDDLL, 164,68,82,13
    LTEXT           "Egzistuojantys n&ustelbimai:",IDC_STATIC,16,86,100,8
    LISTBOX         IDC_DLLS_LIST,16,96,140,112,WS_BORDER | WS_TABSTOP | WS_VSCROLL
    PUSHBUTTON      "&Redaguoti...",IDC_DLLS_EDITDLL,164,96,82,14
    PUSHBUTTON      "Pa&šalinti",IDC_DLLS_REMOVEDLL,164,114,82,14
END

IDD_LOADORDER DIALOG 80, 90, 110, 92
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Redaguoti nustelbimą"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Įkėlimo tvarka ",IDC_STATIC,8,4,94,66
    CONTROL         "&Įtaisyta (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,16,14,75,10
    CONTROL         "&Sava (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,16,24,75,10
    CONTROL         "Į&taisyta po to sava",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,16,34,75,10
    CONTROL         "S&ava po to įtaisyta",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,16,44,75,10
    CONTROL         "&Išjungti",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,16,54,75,10
    DEFPUSHBUTTON   "Gerai",IDOK,8,74,45,14,WS_GROUP
    PUSHBUTTON      "Atsisakyti",IDCANCEL,57,74,45,14,WS_GROUP
END

IDD_DRIVECHOOSE DIALOG  60, 70, 170, 60
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Parinkite disko raidę"
FONT 8, "MS Shell Dlg"
BEGIN
    COMBOBOX IDC_DRIVESA2Z,15,10,75,230,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    DEFPUSHBUTTON   "Gerai",IDOK,105,10,45,14,WS_GROUP
    PUSHBUTTON      "Atsisakyti",IDCANCEL,105,30,45,14,WS_GROUP
END

IDD_DRIVECFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Diskų &atvaizdavimas ",IDC_STATIC,8,4,244,195
    LTEXT           "Nepavyko prisijungti prie diskų tvarkytuvės, diskų konfigūracija negali būti redaguojama.", IDC_STATIC_MOUNTMGR_ERROR, 15,30,190,76
    CONTROL         "Listview",IDC_LIST_DRIVES,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                    LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,18,232,76
    PUSHBUTTON      "&Pridėti...",IDC_BUTTON_ADD,15,98,37,14
    PUSHBUTTON      "Pa&šalinti",IDC_BUTTON_REMOVE,56,98,37,14
    PUSHBUTTON      "Automatiškai &aptikti...",IDC_BUTTON_AUTODETECT,172,98,74,14

    /* editing drive details */
    LTEXT           "&Kelias:",IDC_STATIC_PATH,15,123,20,9
    EDITTEXT        IDC_EDIT_PATH,45,120,156,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "Pari&nkti...",IDC_BUTTON_BROWSE_PATH,206,120,40,13

    LTEXT           "&Tipas:",IDC_STATIC_TYPE,15,138,21,10
    COMBOBOX        IDC_COMBO_TYPE,45,135,97,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    PUSHBUTTON      "Rodyti papil&domas",IDC_BUTTON_SHOW_HIDE_ADVANCED,180,135,66,13
    LTEXT           "De&vice:",IDC_STATIC_DEVICE,15,153,26,9
    EDITTEXT        IDC_EDIT_DEVICE,45,150,156,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "Parinkti...",IDC_BUTTON_BROWSE_DEVICE,206,150,40,13

    LTEXT           "&Vardas:",IDC_STATIC_LABEL,15,168,29,12
    EDITTEXT        IDC_EDIT_LABEL,45,165,78,13,ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "N&umeris:",IDC_STATIC_SERIAL,15,183,29,12
    EDITTEXT        IDC_EDIT_SERIAL,45,180,78,13,ES_AUTOHSCROLL | WS_TABSTOP

    CONTROL         "Rodyti failus su taš&ku",IDC_SHOW_DOT_FILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,205,230,8
END

IDD_AUDIOCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Tvarkyklių parinkimas ",IDC_STATIC,8,4,244,144
    LTEXT           "Pasirinkite garso tvarkyklę pažymėdami norimos tvarkyklės langelį. Garsą išjungti galima nepažymint nė vienos tvarkyklės. Kelių tvarkyklių pasirinkimas yra nerekomenduojamas. Tvarkyklę konfigūruoti galima spustelėjus dešiniuoju pelės klavišu.",IDC_STATIC,15,15,227,35
    CONTROL         "Įrenginiai",IDC_AUDIO_TREE,"SysTreeView32",WS_BORDER | WS_TABSTOP,15,50,140,89
    PUSHBUTTON      "&Testuoti garsą",IDC_AUDIO_TEST,170,50,63,14
    PUSHBUTTON      "&Valdymo skydelis",IDC_AUDIO_CONTROL_PANEL,170,70,63,14
    GROUPBOX        " DirectSound ",IDC_STATIC,8,154,244,60
    LTEXT           "&Aparatinis spartinimas: ",IDC_STATIC,15,165,90,10
    COMBOBOX        IDC_DSOUND_HW_ACCEL,100,163,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Numatytasis garso elemento &dažnis:",IDC_STATIC,15,180,140,8
    COMBOBOX        IDC_DSOUND_RATES,160,178,42,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Numatytasis garso elemento &bitų skaičius:",IDC_STATIC,15,195,140,8
    COMBOBOX        IDC_DSOUND_BITS,160,193,30,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_DESKTOP_INTEGRATION DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Išvaizda ",IDC_STATIC,8,4,244,106
    LTEXT           "&Apipavidalinimas:",IDC_STATIC,15,16,130,8
    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,130,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Įdiegti apipavidalinimą...",IDC_THEME_INSTALL,152,23,93,14
    LTEXT           "&Spalva:",IDC_THEME_COLORTEXT,15,40,112,8
    COMBOBOX        IDC_THEME_COLORCOMBO,15,48,112,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Dydis:",IDC_THEME_SIZETEXT,135,40,110,8
    COMBOBOX        IDC_THEME_SIZECOMBO,135,48,110,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Elementas:",IDC_STATIC,15,64,112,8
    COMBOBOX        IDC_SYSPARAM_COMBO,15,74,112,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | CBS_SORT
    LTEXT           "S&palva:",IDC_SYSPARAM_COLOR_TEXT,135,64,25,8,WS_DISABLED
    PUSHBUTTON      "",IDC_SYSPARAM_COLOR,135,74,25,13,WS_DISABLED | BS_OWNERDRAW
    LTEXT           "D&ydis:",IDC_SYSPARAM_SIZE_TEXT,166,64,30,8,WS_DISABLED
    EDITTEXT        IDC_SYSPARAM_SIZE,166,74,23,13,ES_AUTOHSCROLL | WS_TABSTOP | WS_DISABLED
    CONTROL         "",IDC_SYSPARAM_SIZE_UD,UPDOWN_CLASS,UDS_SETBUDDYINT | WS_DISABLED,187,74,15,13
    PUSHBUTTON      "&Šriftas...",IDC_SYSPARAM_FONT,208,74,37,13,WS_DISABLED
    GROUPBOX        " Ap&lankai ",IDC_STATIC,8,114,244,100
    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
    CONTROL         "S&usieti su:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
    EDITTEXT         IDC_EDIT_SFPATH,65,195,125,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
    PUSHBUTTON      "Pari&nkti...",IDC_BROWSE_SFPATH,195,195,50,13,WS_DISABLED
END
