/*
 * WineFile
 * 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 "resource.h"

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

LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL

/* Menu */

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "&Failas"  {
        MENUITEM "&Atverti\tEnter",               ID_ACTIVATE
        MENUITEM "Pe&rkelti...\tF7",              ID_FILE_MOVE
        MENUITEM "&Kopijuoti...\tF8",             ID_FILE_COPY
        MENUITEM "Iškarpin&ėje...\tF9",           118
        MENUITEM "&Šalinti\tDel",                 ID_FILE_DELETE
        MENUITEM "Per&vadinti...",                109
        MENUITEM "Savy&bės...\tAlt+Enter",        ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "&Glaudinti...",                 119
        MENUITEM "Išsk&leisti...",                120
        MENUITEM SEPARATOR
        MENUITEM "&Vykdyti...",                   ID_EXECUTE
        MENUITEM "&Spausdinti...",                102
        MENUITEM "Susieti...",                    103
        MENUITEM SEPARATOR
        MENUITEM "Suk&urti katalogą...",          111
        MENUITEM "&Ieškoti...",                   104
        MENUITEM "&Pažymėti failus...",           116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "Iš&eiti\tAlt+X",                ID_FILE_EXIT
#else
        MENUITEM "Iš&eiti",                       ID_FILE_EXIT
#endif
    }

    POPUP "&Diskas"  {
        MENUITEM "&Kopijuoti diską...",           201
        MENUITEM "&Pavadinti diską...",           202
        MENUITEM SEPARATOR
        MENUITEM "&Ženklinti diską...",           ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "&Sukurti sisteminį diską...",   -1 /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Pri&jungti tinklo diską",       ID_CONNECT_NETWORK_DRIVE
        MENUITEM "&Atjungti tinklo diską",        ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "&Bendrinti kaip...",            254
        MENUITEM "&Panaikinti bendrumą...",       255
        MENUITEM SEPARATOR
        MENUITEM "&Išrinkti diską...",            251
    }

    POPUP "&Katalogai"  {
        MENUITEM "&Kitas lygis\t+",               301
        MENUITEM "Išskleisti &medį\t*",           302
        MENUITEM "Išskleisti &viską\tStrg+*",     303
        MENUITEM "Suskleisti m&edį\t-",           304
        MENUITEM SEPARATOR
        MENUITEM "&Pažymėti vaikus",              505
    }

    POPUP "&Rodymas"  {
        MENUITEM "&Medis ir katalogai",           413
        MENUITEM "&Tik medis",                    411
        MENUITEM "Tik &katalogai",                412
        MENUITEM SEPARATOR
        MENUITEM "&Skaidyti",                     ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Vardas",                       ID_VIEW_NAME
        MENUITEM "Visa failo &informacija",       ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "&Dalinė informacija...",        ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "&Rikiuoti pagal vardą",         ID_VIEW_SORT_NAME
        MENUITEM "Rikiuoti &pagal tipą",          ID_VIEW_SORT_TYPE
        MENUITEM "Rikiuoti pagal d&ydį",          ID_VIEW_SORT_SIZE
        MENUITEM "Rikiuoti pagal d&atą",          ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "&Filtruoti pagal...",           ID_VIEW_FILTER
    }

    POPUP "&Parinktys"  {
        MENUITEM "&Patvirtinimas...",             501
        MENUITEM "&Šriftas...",                   ID_SELECT_FONT
        MENUITEM "Adaptuoti įrankių &juostą...",  512
        MENUITEM SEPARATOR
        MENUITEM "&Įrankių juosta",               ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "&Diskų juosta",                 ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "&Būsenos juosta",               ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "&Visas ekranas\tCtrl+Shift+S",  ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Suskleisti vykdant",           504
        MENUITEM "&Išeinant išsaugoti nuostatas", ID_VIEW_SAVESETTINGS
    }


    POPUP "&Saugumas"  {
        MENUITEM "&Prieiga...",                   605
        MENUITEM "&Registravimas...",             606
        MENUITEM "&Savininkas...",                607
    }

    POPUP "&Langas"  {
        MENUITEM "Naujas &langas",                ID_WINDOW_NEW
        MENUITEM "Išdėstyti pa&kopomis\tCtrl+F5",  ID_WINDOW_CASCADE
        MENUITEM "Iškloti &gulsčiai",             ID_WINDOW_TILE_HORZ
        MENUITEM "Iškloti &stačiai\tCtrl+F4",     ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Išdėstyti &automatiškai",       ID_WINDOW_AUTOSORT
#endif
        MENUITEM "Išdėstyti si&mbolius",          ID_WINDOW_ARRANGE
        MENUITEM "At&naujinti\tF5",               ID_REFRESH
    }

    POPUP "&Žinynas"  {
        MENUITEM "Žinyno &temos\tF1",             ID_HELP
        MENUITEM "&Paieška žinyne...\tF1",        ID_HELP
        MENUITEM "Žinyno &naudojimas\tF1",        ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "&Apie Winefile...",             ID_ABOUT
    }
}


IDD_EXECUTE DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Vykdyti"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Komanda:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    CONTROL         "Kaip &simbolį", 214, "Button", BS_AUTOCHECKBOX|WS_TABSTOP,3, 45, 71, 12
    DEFPUSHBUTTON   "Gerai", 1, 158, 6, 47, 14
    PUSHBUTTON      "Atsisakyti", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Žinynas", 254, 158, 43, 47, 14
}

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Išrinkite paskirtį"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Kelias:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "Gerai", 1, 158, 6, 47, 14
    PUSHBUTTON      "Atsisakyti", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Parinkti", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Pagal failo tipą"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Vardas:",-1,7,8,26,10
    EDITTEXT        IDC_VIEW_PATTERN,35,7,59,12,ES_AUTOHSCROLL
    GROUPBOX        "Failų tipai",-1,7,23,87,56
    CONTROL         "&Katalogai",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programos",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "&Dokumentai",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "Kiti &failai",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "Rodyti paslėptus/&sisteminius failus",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,122,9
    DEFPUSHBUTTON   "Gerai",IDOK,104,7,50,14
    PUSHBUTTON      "Atsisakyti",IDCANCEL,104,24,50,14
END

IDD_DIALOG_PROPERTIES DIALOG DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "%s savybės"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "Gerai",IDOK,191,7,50,14
    PUSHBUTTON      "Atsisakyti",IDCANCEL,191,29,50,14
    LTEXT           "&Failo vardas:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Visas &kelias:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Pask. keitimas:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Versija:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Autoriaus teisės:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Dydis:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Požymiai",-1,7,79,158,46
    CONTROL         "&Tik skaitymui",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "&Paslėptas",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Archyvuotinas",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Sisteminis",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "Su&glaudintas",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Versijos informacija",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END


STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "Pritaikomos šrifto nuostatos"
    IDS_FONT_SEL_ERROR      "Klaida parenkant naują šriftą."
}

STRINGTABLE
{
    IDS_WINEFILE            "Wine failų tvarkytuvė"
    IDS_ERROR               "Klaida"
    IDS_ROOT_FS             "šakninė fs"
    IDS_UNIXFS              "unix fs"
    IDS_DESKTOP             "Darbalaukis"
    IDS_SHELL               "Apvalkalas"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "Dar nerealizuota"
    IDS_WINE_FILE           "Wine failas"
}

STRINGTABLE
{
    IDS_COL_NAME            "Vardas"
    IDS_COL_SIZE            "Dydis"
    IDS_COL_CDATE           "KData"
    IDS_COL_ADATE           "PData"
    IDS_COL_MDATE           "MData"
    IDS_COL_IDX             "Indeksas/Inode"
    IDS_COL_LINKS           "Saitai"
    IDS_COL_ATTR            "Požymiai"
    IDS_COL_SEC             "Saugumas"

    IDS_FREE_SPACE_FMT      "%s iš %s laisva"
}
