/*
 * cryptui dll resources
 *
 * 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 "cryptuires.h"

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

LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL

IDD_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Bendras"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  CONTROL "", -1, "Static", WS_BORDER|SS_WHITERECT, 6,10,241,200
  CONTROL "", IDC_CERTIFICATE_ICON,"RichEdit20W",
    ES_READONLY|WS_DISABLED,8,11,26,26
  CONTROL "", IDC_CERTIFICATE_INFO,"RichEdit20W",
    ES_READONLY|WS_DISABLED,34,11,212,26
  CONTROL "", -1, "Static", SS_BLACKFRAME, 16,37,222,1
  CONTROL "", IDC_CERTIFICATE_STATUS,"RichEdit20W",
    ES_READONLY|ES_MULTILINE,8,38,238,78
  CONTROL "", -1, "Static", SS_BLACKFRAME, 16,116,222,1
  CONTROL "", IDC_CERTIFICATE_NAMES,"RichEdit20W",
    ES_READONLY|ES_MULTILINE|WS_DISABLED,8,118,238,90
  PUSHBUTTON "&Įdiegti liudijimą...", IDC_ADDTOSTORE,103,216,70,14
  PUSHBUTTON "Išdavėjo &teiginys", IDC_ISSUERSTATEMENT,177,216,70,14
END

IDD_DETAIL DIALOG 0, 0, 255, 236
CAPTION "Išsamiau"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Rodyti:", -1, 6,12,40,14
  COMBOBOX IDC_DETAIL_SELECT, 33,10,100,14,
    CBS_DROPDOWNLIST|WS_BORDER|WS_VSCROLL|WS_TABSTOP
  CONTROL "", IDC_DETAIL_LIST, "SysListView32",
    LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    6,28,241,100
  CONTROL "", IDC_DETAIL_VALUE, "RichEdit20W",
    ES_READONLY|ES_MULTILINE|WS_TABSTOP, 6,136,241,70
  PUSHBUTTON "Redaguoti &savybes...", IDC_EDITPROPERTIES,83,216,80,14
  PUSHBUTTON "&Kopijuoti į failą...", IDC_EXPORT,167,216,80,14
END

IDD_HIERARCHY DIALOG 0, 0, 255, 236
CAPTION "Liudijimo kelias"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Liudijimo &kelias", -1,6,10,245,165, BS_GROUPBOX
  CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER,
    13,22,231,130
  PUSHBUTTON "&Peržiūrėti liudijimą", IDC_VIEWCERTIFICATE,175,156,70,14
  LTEXT "Liudijimo &būsena:", IDC_CERTIFICATESTATUS,6,183,70,14
  CONTROL "", IDC_CERTIFICATESTATUSTEXT,"RichEdit20W",
    WS_BORDER|ES_READONLY|ES_MULTILINE|WS_DISABLED,6,195,245,36
END

IDD_USERNOTICE DIALOG 0, 0, 255, 256
CAPTION "Garantijų nedavimas"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  CONTROL "", IDC_USERNOTICE,"RichEdit20W",
    WS_BORDER|ES_READONLY|ES_MULTILINE|WS_DISABLED,6,10,241,200
  PUSHBUTTON "Užverti", IDOK,93,216,75,14
  PUSHBUTTON "Daugiau &informacijos", IDC_CPS,172,216,75,14
END

IDD_CERT_PROPERTIES_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Bendras"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Draugiškas vardas:", -1, 6,14,70,14
  EDITTEXT IDC_FRIENDLY_NAME, 70,12,181,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Aprašas:", -1, 6,32,70,14
  EDITTEXT IDC_DESCRIPTION, 70,30,181,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  GROUPBOX "Liudijimo paskirtys", -1,6,48,245,165, BS_GROUPBOX
  AUTORADIOBUTTON "&Įjungti visas šio liudijimo paskirtis",
    IDC_ENABLE_ALL_PURPOSES, 12,58,180,14, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "Išj&ungti visas šio liudijimo paskirtis",
    IDC_DISABLE_ALL_PURPOSES, 12,70,180,14, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Įjungti &tik šias šio liudijimo paskirtis:",
    IDC_ENABLE_SELECTED_PURPOSES, 12,82,180,14, BS_AUTORADIOBUTTON
  CONTROL "", IDC_CERTIFICATE_USAGES,"SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    24,100,220,90
  PUSHBUTTON "Pridėti &paskirtį...", IDC_ADD_PURPOSE,184,194,60,14
END

IDD_ADD_CERT_PURPOSE DIALOG 0,0,200,68
CAPTION "Pridėti paskirtį"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Pridėkite objekto identifikatorių (OID) liudijimo paskirčiai, kurią norite pridėti:",
    -1, 6,6,190,28
  EDITTEXT IDC_NEW_PURPOSE, 6,28,190,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  PUSHBUTTON "Gerai", IDOK, 33,48,60,14
  PUSHBUTTON "Atsisakyti", IDCANCEL, 100,48,60,14
END

IDD_SELECT_STORE DIALOG 0,0,200,136
CAPTION "Išrinkite liudijimų saugyklą"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Išrinkite liudijimų saugyklą, kurią norite naudoti:", IDC_STORE_TEXT, 6,6,190,28
  CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP,
    6,28,188,70
  CHECKBOX "&Rodyti fizines saugyklas", IDC_SHOW_PHYSICAL_STORES, 6,102,90,14,
    BS_AUTOCHECKBOX|WS_TABSTOP
  PUSHBUTTON "Gerai", IDOK, 90,118,50,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Atsisakyti", IDCANCEL, 144,118,50,14
END

IDD_IMPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Liudijimo importo vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Sveiki atvėrę liudijimo importo vediklį", IDC_IMPORT_TITLE,
    115,1,195,32
  LTEXT "Šis vediklis padės jums importuoti liudijimus, atšauktų liudijimų sąrašus ir patikintų liudijimų sąrašus iš failo į liudijimų saugyklą.",
    -1, 115,25,195,24
  LTEXT "Liudijimas gali būti naudojamas nustatyti jūsų ar kompiuterio su kuriuo esate užmezgę ryšį tapatumą. Jis taip pat gali būti naudojamas pranešimų pasirašymui. Liudijimų saugyklos yra liudijimų rinkiniai, atšauktų liudijimų sąrašai ir patikintų liudijimų sąrašai.",
    -1, 115,56,195,40
  LTEXT "Norėdami tęsti, spauskite „Toliau“.",
    -1, 115,103,195,8
END

IDD_IMPORT_FILE DIALOG 0,0,317,143
CAPTION "Liudijimo importo vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Failas:", -1, 21,1,195,10
  EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Parinkti...", IDC_IMPORT_BROWSE_FILE, 236,11,60,14
  LTEXT "Pastaba: Šie failų formatai gali turėti daugiau negu vieną liudijimą, atšauktų liudijimų sąrašą ar patikintų liudijimų sąrašą:",
    -1, 21,26,265,16
  LTEXT "Kriptografinio pranešimo sintaksės standarto/PKCS #7 pranešimai (.p7b)",
    -1, 31,49,265,10
  LTEXT "Asmeninės informacijos mainai/PKCS #12 (.pfx, .p12)",
    -1, 31,64,265,10
  LTEXT "Microsoft išdėstyta serijomis liudijimų saugykla (.sst)",
    -1, 31,79,265,10
END

IDD_IMPORT_STORE DIALOG 0,0,317,143
CAPTION "Liudijimo importo vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wine gali automatiškai parinkti liudijimų saugyklą arba jūs galite nurodyti vietą liudijimams.",
    -1, 21,1,195,20
  AUTORADIOBUTTON "Automatiškai pa&rinkti liudijimų saugyklą",
    IDC_IMPORT_AUTO_STORE, 31,18,180,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "Patalpinti &visus liudijimus į šią saugyklą:",
    IDC_IMPORT_SPECIFY_STORE, 31,30,180,12, BS_AUTORADIOBUTTON
  EDITTEXT IDC_IMPORT_STORE, 44,49,185,14, ES_READONLY
  PUSHBUTTON "&Parinkti...", IDC_IMPORT_BROWSE_STORE, 236,49,60,14
END

IDD_IMPORT_FINISH DIALOG 0,0,317,143
CAPTION "Liudijimo importo vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Liudijimo importo vediklio pabaiga", IDC_IMPORT_TITLE,
    115,1,195,40
  LTEXT "Jūs sėkmingai baigėte liudijimo importo vediklį.",
    -1, 115,33,195,24
  LTEXT "Jūs nurodėte šias nuostatas:",
    -1, 115,57,195,12
  CONTROL "", IDC_IMPORT_SETTINGS, "SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    115,67,174,100
END

IDD_CERT_MGR DIALOG 0,0,335,270
CAPTION "Liudijimai"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Numatytos paskirtys:", -1, 7,9,100,12
  COMBOBOX IDC_MGR_PURPOSE_SELECTION, 83,7,245,14,
    CBS_DROPDOWNLIST|WS_BORDER|WS_VSCROLL|WS_TABSTOP
  CONTROL "", IDC_MGR_STORES, "SysTabControl32",
    WS_CLIPSIBLINGS|WS_TABSTOP, 7,25,321,140
  CONTROL "", IDC_MGR_CERTS, "SysListView32",
    LVS_REPORT|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 15,46,305,111
  PUSHBUTTON "&Importuoti...", IDC_MGR_IMPORT, 7,172,51,14
  PUSHBUTTON "&Eksportuoti...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
  PUSHBUTTON "&Šalinti", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
  PUSHBUTTON "Išs&amiau...", IDC_MGR_ADVANCED, 277,172,51,14
  GROUPBOX "Liudijimo numatytos paskirtys", -1,7,194,321,47, BS_GROUPBOX
  LTEXT "", IDC_MGR_PURPOSES, 13,204,252,32
  PUSHBUTTON "&Peržiūrėti", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
  PUSHBUTTON "&Užverti", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON
END

IDD_CERT_MGR_ADVANCED DIALOG 0,0,248,176
CAPTION "Išsamios parinktys"
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Liudijimo paskirtis", -1, 7,7,234,141, BS_GROUPBOX
  LTEXT "Išrinkite vieną ar daugiau paskirčių rodymui, kai yra pasirinkta „papildomos paskirtys“.",
    -1, 14,18,220,16
  LTEXT "&Liudijimo paskirtys:", -1, 14,41,90,12, WS_TABSTOP
  CONTROL "", IDC_CERTIFICATE_USAGES,"SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    14,51,220,90
  PUSHBUTTON "Gerai", IDOK, 132,155,51,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Atsisakyti", IDCANCEL, 190,155,51,14
END

IDD_EXPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Liudijimo eksporto vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Sveiki atvėrę liudijimo eksporto vediklį", IDC_EXPORT_TITLE,
    115,1,195,32
  LTEXT "Šis valdiklis padės jums eksportuoti liudijimus, atšauktų liudijimų sąrašus ir patikintų liudijimų sąrašus iš liudijimų saugyklos į failą.",
    -1, 115,25,195,24
  LTEXT "Liudijimas gali būti naudojamas nustatyti jūsų ar kompiuterio su kuriuo esate užmezgę ryšį tapatumą. Jis taip pat gali būti naudojamas pranešimų pasirašymui. Liudijimų saugyklos yra liudijimų rinkiniai, atšauktų liudijimų sąrašai ir patikintų liudijimų sąrašai.",
    -1, 115,56,195,40
  LTEXT "Norėdami tęsti, spauskite „Toliau“.",
    -1, 115,103,195,8
END

IDD_EXPORT_PRIVATE_KEY DIALOG 0,0,317,143
CAPTION "Liudijimo eksporto vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Jei pasirinksite eksportuoti privatųjį raktą, kitame lape būsite paklausti įvesti slaptažodį raktui apsaugoti.", -1, 21,1,195,23
  LTEXT "Ar norite eksportuoti privatųjį raktą?", -1, 21,24,195,15
  AUTORADIOBUTTON "&Taip, eksportuoti privatųjį raktą",
    IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Ne, neeksportuoti privačiojo rakto",
    IDC_EXPORT_PRIVATE_KEY_NO, 31,48,200,12, BS_AUTORADIOBUTTON
  LTEXT "", IDC_EXPORT_PRIVATE_KEY_UNAVAILABLE, 21,60,200,24
END

IDD_EXPORT_PASSWORD DIALOG 0,0,317,143
CAPTION "Liudijimo eksporto vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Slaptažodis:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Patvirtinti slaptažodį:", -1, 21,35,195,10
  EDITTEXT IDC_EXPORT_PASSWORD_CONFIRM, 21,45,208,14, ES_AUTOHSCROLL|WS_TABSTOP
END

IDD_EXPORT_FORMAT DIALOG 0,0,317,143
CAPTION "Liudijimo eksporto vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Išrinkite formatą, kurį norite naudoti:", -1, 21,1,195,10
  AUTORADIOBUTTON "&DER-užkoduotas X.509 (.cer)",
    IDC_EXPORT_FORMAT_DER, 31,18,260,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "Ba&se64-užkoduotas X.509 (.cer)",
    IDC_EXPORT_FORMAT_BASE64, 31,30,260,12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "&Kriptografinio pranešimo sintaksės standarto/PKCS #7 pranešimas (.p7b):",
    IDC_EXPORT_FORMAT_CMS, 31,42,260,12, BS_AUTORADIOBUTTON
  CHECKBOX "&Jei įmanoma, apimti visus liudijimus liudijimų kelyje",
    IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,200,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  AUTORADIOBUTTON "&Asmeninės informacijos mainai/PKCS #12 (.pfx)",
    IDC_EXPORT_FORMAT_PFX, 31,72,260,12, BS_AUTORADIOBUTTON|WS_DISABLED
  CHECKBOX "A&pimti visus liudijimus liudijimų kelyje",
    IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,200,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Įjungti stiprų &šifravimą",
    IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,200,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Iš&trinti privatųjį raktą, kai eksportas sėkmingas",
    IDC_EXPORT_PFX_DELETE_PRIVATE_KEY, 44,117,200,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
END

IDD_EXPORT_FILE DIALOG 0,0,317,143
CAPTION "Liudijimo eksporto vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Failas:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Parinkti...", IDC_EXPORT_BROWSE_FILE, 236,11,60,14
END

IDD_EXPORT_FINISH DIALOG 0,0,317,143
CAPTION "Liudijimo eksporto vediklis"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Liudijimo eksporto vediklio pabaiga", IDC_EXPORT_TITLE,
    115,1,195,40
  LTEXT "Jūs sėkmingai baigėte liudijimo eksporto vediklį.",
    -1, 115,33,195,24
  LTEXT "Jūs nurodėte šias nuostatas:",
    -1, 115,57,195,12
  CONTROL "", IDC_EXPORT_SETTINGS, "SysListView32",
    LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
    115,67,174,100
END
