/*
 * cryptui dll resources
 *
 * Copyright 2011 Alexander Lakhin
 *
 * 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_RUSSIAN, SUBLANG_DEFAULT

IDD_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Общие"
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 "&Установить сертификат...", IDC_ADDTOSTORE,48,216,95,14
  PUSHBUTTON "&Уведомление поставщика", IDC_ISSUERSTATEMENT,147,216,100,14
END

IDD_DETAIL DIALOG 0, 0, 255, 236
CAPTION "Содержимое"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Показать:", -1, 6,12,40,14
  COMBOBOX IDC_DETAIL_SELECT, 48,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 "&Свойства...", IDC_EDITPROPERTIES,103,216,70,14
  PUSHBUTTON "&Экспортировать...", IDC_EXPORT,177,216,70,14
END

IDD_HIERARCHY DIALOG 0, 0, 255, 236
CAPTION "Путь сертификации"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "П&уть сертификации", -1,6,10,245,165, BS_GROUPBOX
  CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER,
    13,22,231,130
  PUSHBUTTON "&Просмотр сертификата", IDC_VIEWCERTIFICATE,155,156,90,14
  LTEXT "&Состояние сертификата:", IDC_CERTIFICATESTATUS,6,183,90,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 "Уведомление"
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 "Закрыть", IDOK,103,216,70,14
  PUSHBUTTON "&Дополнительно...", IDC_CPS,177,216,70,14
END

IDD_CERT_PROPERTIES_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Общие"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Понятное имя:", -1, 6,14,60,14
  EDITTEXT IDC_FRIENDLY_NAME, 60,12,191,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Описание:", -1, 6,32,60,14
  EDITTEXT IDC_DESCRIPTION, 60,30,191,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  GROUPBOX "Назначения", -1,6,48,245,165, BS_GROUPBOX
  AUTORADIOBUTTON "&Разрешить все назначения для этого сертификата",
    IDC_ENABLE_ALL_PURPOSES, 12,58,190,14, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Запретить все назначения для этого сертификата",
    IDC_DISABLE_ALL_PURPOSES, 12,70,190,14, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Р&азрешить только следующие назначения:",
    IDC_ENABLE_SELECTED_PURPOSES, 12,82,190,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 "&Добавить...", IDC_ADD_PURPOSE,184,194,60,14
END

IDD_ADD_CERT_PURPOSE DIALOG 0,0,200,68
CAPTION "Добавление назначения"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Введите OID назначения сертификата, которое вы хотите добавить:",
    -1, 6,6,190,28
  EDITTEXT IDC_NEW_PURPOSE, 6,28,190,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  PUSHBUTTON "OK", IDOK, 33,48,60,14
  PUSHBUTTON "Отмена", IDCANCEL, 100,48,60,14
END

IDD_SELECT_STORE DIALOG 0,0,200,136
CAPTION "Выбор хранилища сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Выберите хранилище для импорта сертификата:", IDC_STORE_TEXT, 6,6,190,28
  CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP,
    6,28,188,70
  CHECKBOX "&Показывать физические хранилища", IDC_SHOW_PHYSICAL_STORES, 6,102,150,14,
    BS_AUTOCHECKBOX|WS_TABSTOP
  PUSHBUTTON "OK", IDOK, 90,118,50,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Отмена", IDCANCEL, 144,118,50,14
END

IDD_IMPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Мастер импорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Вас приветствует мастер импорта сертификатов", IDC_IMPORT_TITLE,
    115,7,195,32
  LTEXT "Этот мастер поможет вам импортировать сертификаты, а также списки отзыва и доверия сертификатов из файла в хранилище сертификатов.",
    -1, 115,46,195,25
  LTEXT "Сертификаты позволяют идентифицировать вас или ваш компьютер. Также они используются для подтверждения подлинности и подписывания сообщений. Все устанавливаемые на компьютере сертификаты помещаются в хранилище сертификатов.",
    -1, 115,76,195,40
  LTEXT "Для продолжения нажмите \"Далее\".",
    -1, 115,123,195,8
END

IDD_IMPORT_FILE DIALOG 0,0,317,178
CAPTION "Мастер импорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Имя &файла:", -1, 21,1,195,10
  EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Обзор...", IDC_IMPORT_BROWSE_FILE, 236,11,60,14
  LTEXT "Примечание: Набор сертификатов, список отзыва и список доверия сертификатов могут содержаться в файлах следующих форматов:",
    -1, 21,26,265,16
  LTEXT "Сообщения CMS/PKCS #7 (.p7b)",
    -1, 31,49,265,10
  LTEXT "Формат обмена личной информацией/PKCS #12 (.pfx, .p12)",
    -1, 31,64,265,10
  LTEXT "Хранилище сериализованных сертификатов Microsoft (.sst)",
    -1, 31,79,265,10
END

IDD_IMPORT_STORE DIALOG 0,0,317,143
CAPTION "Мастер импорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wine может автоматически выбрать хранилище сертификатов, либо вы можете сами указать его.",
    -1, 21,1,195,20
  AUTORADIOBUTTON "&Выбрать хранилище сертификатов автоматически",
    IDC_IMPORT_AUTO_STORE, 31,18,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Поместить все сертификаты в следующее хранилище:",
    IDC_IMPORT_SPECIFY_STORE, 31,30,200,12, BS_AUTORADIOBUTTON
  EDITTEXT IDC_IMPORT_STORE, 44,49,185,14, ES_READONLY
  PUSHBUTTON "&Обзор...", IDC_IMPORT_BROWSE_STORE, 236,49,60,14
END

IDD_IMPORT_FINISH DIALOG 0,0,317,178
CAPTION "Мастер импорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Завершение работы мастера импорта сертификатов", IDC_IMPORT_TITLE,
    115,1,195,40
  LTEXT "Мастер импорта сертификатов успешно собрал все данные, необходимые для выполнения импорта.",
    -1, 115,33,195,24
  LTEXT "Вы определили следующие параметры импорта:",
    -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 "Сертификаты"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Назначения:", -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 "&Импорт...", IDC_MGR_IMPORT, 7,172,51,14
  PUSHBUTTON "&Экспорт...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
  PUSHBUTTON "&Удалить", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
  PUSHBUTTON "&Параметры...", IDC_MGR_ADVANCED, 277,172,51,14
  GROUPBOX "Назначения сертификата", -1,7,194,321,47, BS_GROUPBOX
  LTEXT "", IDC_MGR_PURPOSES, 13,208,252,30
  PUSHBUTTON "&Просмотр", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
  PUSHBUTTON "&Закрыть", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON
END

IDD_CERT_MGR_ADVANCED DIALOG 0,0,248,176
CAPTION "Дополнительные параметры"
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Назначения сертификатов", -1, 7,7,234,141, BS_GROUPBOX
  LTEXT "Выберите назначения, которые будут включены в Определяемый набор.",
    -1, 14,18,220,16
  LTEXT "&Назначения:", -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 "OK", IDOK, 132,155,51,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Отмена", IDCANCEL, 190,155,51,14
END

IDD_EXPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Мастер экспорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Вас приветствует мастер экспорта", IDC_EXPORT_TITLE,
    115,7,195,32
  LTEXT "Этот мастер поможет вам экспортировать сертификаты, а также списки отзыва и доверия сертификатов из хранилища сертификатов в файл.",
    -1, 115,46,195,25
  LTEXT "Сертификаты позволяют идентифицировать вас или ваш компьютер. Также они используются для подтверждения подлинности и подписывания сообщений. Все установленные на компьютере сертификаты находятся в хранилище сертификатов.",
    -1, 115,76,195,40
  LTEXT "Для продолжения нажмите \"Далее\".",
    -1, 115,123,195,8
END

IDD_EXPORT_PRIVATE_KEY DIALOG 0,0,317,143
CAPTION "Мастер экспорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Если вы решите экспортировать закрытый ключ, позже вам будет предложено задать пароль для защиты ключа.", -1, 21,1,195,25
  LTEXT "Вы хотите экспортировать закрытый ключ?", -1, 21,27,195,10
  AUTORADIOBUTTON "&Да, экспортировать",
    IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Нет, не экспортировать",
    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 "Мастер экспорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Пароль:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "П&одтверждение:", -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 "Мастер экспорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Выберите формат для экспорта:", -1, 21,1,195,10
  AUTORADIOBUTTON "X.509 в кодировке &DER (.cer)",
    IDC_EXPORT_FORMAT_DER, 31,18,240,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "X.509 в кодировке Ba&se64 (.cer)",
    IDC_EXPORT_FORMAT_BASE64, 31,30,240,12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Сообщение &CMS/PKCS #7 (.p7b)",
    IDC_EXPORT_FORMAT_CMS, 31,42,240,12, BS_AUTORADIOBUTTON
  CHECKBOX "&По возможности включить все сертификаты в путь сертификации",
    IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  AUTORADIOBUTTON "&Формат обмена личной информацией/PKCS #12 (.pfx)",
    IDC_EXPORT_FORMAT_PFX, 31,72,240,12, BS_AUTORADIOBUTTON|WS_DISABLED
  CHECKBOX "По &возможности включить все сертификаты в путь сертификации",
    IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Использовать &сильное шифрование",
    IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,240,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Удалить закрытый &ключ после успешного экспорта",
    IDC_EXPORT_PFX_DELETE_PRIVATE_KEY, 44,117,240,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
END

IDD_EXPORT_FILE DIALOG 0,0,317,143
CAPTION "Мастер экспорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Имя файла:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Обзор...", IDC_EXPORT_BROWSE_FILE, 236,11,60,14
END

IDD_EXPORT_FINISH DIALOG 0,0,317,178
CAPTION "Мастер экспорта сертификатов"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Завершение работы мастера экспорта сертификатов", IDC_EXPORT_TITLE,
    115,1,195,40
  LTEXT "Мастер импорта сертификатов успешно собрал все данные, необходимые для выполнения экспорта.",
    -1, 115,33,195,24
  LTEXT "Вы определили следующие параметры экспорта:",
    -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
