/*
 * cryptui dll resources
 *
 * Copyright 2008 Juan Lang
 * Copyright 2010 Akihiro Sagawa
 *
 * 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_JAPANESE, 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 "証明書のインストール(&I)...", IDC_ADDTOSTORE,103,216,70,14
  PUSHBUTTON "発行者のステートメント(&S)", IDC_ISSUERSTATEMENT,177,216,70,14
END

IDD_DETAIL DIALOG 0, 0, 255, 236
CAPTION "詳細"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "表示(&S):", -1, 6,12,40,14
  COMBOBOX IDC_DETAIL_SELECT, 28,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 "プロパティの編集(&E)...", IDC_EDITPROPERTIES,103,216,70,14
  PUSHBUTTON "ファイルにコピー(&C)...", 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 "証明のパス(&P)", -1,6,10,245,165, BS_GROUPBOX
  CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER,
    13,22,231,130
  PUSHBUTTON "証明書の表示(&V)", IDC_VIEWCERTIFICATE,175,156,70,14
  LTEXT "証明書の状態(&S):", 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 "免責条項"
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 "詳細情報(&I)", 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 "フレンドリ名(&F):", -1, 6,14,60,14
  EDITTEXT IDC_FRIENDLY_NAME, 60,12,191,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "説明(&D):", -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 "すべての目的でこの証明書を利用可能にする(&E)",
    IDC_ENABLE_ALL_PURPOSES, 12,58,180,14, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "すべての目的でこの証明書を利用不可にする(&I)",
    IDC_DISABLE_ALL_PURPOSES, 12,70,180,14, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "以下の目的でのみこの証明書を有効にする(&O):",
    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 "利用目的の追加(&P)...", 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 "物理ストアを表示する(&S)", IDC_SHOW_PHYSICAL_STORES, 6,102,90,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,12
  LTEXT "このウィザードは証明書、証明書失効リスト、証明書信頼リストをファイルから証明書ストアにインポートします。",
    -1, 115,26,195,25
  LTEXT "証明書は個人識別や、利用しているコンピュータの識別に利用されます。また、認証やメッセージの署名にも使われます。 証明書ストアは証明書、証明書失効リスト、証明書信頼リストの集合です。",
    -1, 115,56,195,40
  LTEXT "続けるには[次へ]をクリックしてください。",
    -1, 115,103,195,8
END

IDD_IMPORT_FILE DIALOG 0,0,317,178
CAPTION "証明書インポート ウィザード"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "ファイル名(&F):", -1, 21,1,195,10
  EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "参照(&R)...", IDC_IMPORT_BROWSE_FILE, 236,11,60,14
  LTEXT "注意:  以下のファイル形式は、2つ以上の証明書、証明書失効リスト、証明書信頼リストを含むことがあります:",
    -1, 21,26,265,16
  LTEXT "Cryptographic Message Syntax Standard/PKCS #7 Messages (.p7b)",
    -1, 31,49,265,10
  LTEXT "Personal Information Exchange/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 "証明書ストアを自動的に選択する(&A)",
    IDC_IMPORT_AUTO_STORE, 31,18,180,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "すべての証明書を以下のストアに配置する(&P):",
    IDC_IMPORT_SPECIFY_STORE, 31,30,180,12, BS_AUTORADIOBUTTON
  EDITTEXT IDC_IMPORT_STORE, 44,49,185,14, ES_READONLY
  PUSHBUTTON "参照(&R)...", 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 "目的(&N):", -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 "インポート(&I)...", IDC_MGR_IMPORT, 7,172,51,14
  PUSHBUTTON "エクスポート(&E)...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
  PUSHBUTTON "削除(&R)", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
  PUSHBUTTON "詳細(&A)...", IDC_MGR_ADVANCED, 277,172,51,14
  GROUPBOX "証明書の目的", -1,7,194,321,47, BS_GROUPBOX
  LTEXT "", IDC_MGR_PURPOSES, 13,208,252,30
  PUSHBUTTON "表示(&V)", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
  PUSHBUTTON "閉じる(&C)", 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 つ以上選択してください。",
    -1, 14,18,220,16
  LTEXT "証明書の目的(&C):", -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,12
  LTEXT "このウィザードは証明書、証明書失効リスト、証明書信頼リストを証明書ストアからファイルにエクスポートします。",
    -1, 115,26,195,25
  LTEXT "証明書は個人識別や、利用しているコンピュータの識別に利用されます。また、認証やメッセージの署名にも使われます。 証明書ストアは証明書、証明書失効リスト、証明書信頼リストの集合です。",
    -1, 115,56,195,40
  LTEXT "続けるには[次へ]をクリックしてください。",
    -1, 115,103,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 "はい、秘密鍵をエクスポートします(&Y)",
    IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "いいえ、秘密鍵をエクスポートしません(&O)",
    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 "パスワード(&P):", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "パスワードの確認(&C):", -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 "&DER-encoded X.509 (.cer)",
    IDC_EXPORT_FORMAT_DER, 31,18,240,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "Ba&se64-encoded X.509 (.cer):",
    IDC_EXPORT_FORMAT_BASE64, 31,30,240,12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "&Cryptographic Message Syntax Standard/PKCS #7 Message (.p7b)",
    IDC_EXPORT_FORMAT_CMS, 31,42,240,12, BS_AUTORADIOBUTTON
  CHECKBOX "可能ならば証明パス中のすべての証明書を含める(&I)",
    IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  AUTORADIOBUTTON "&Personal Information Exchange/PKCS #12 (.pfx)",
    IDC_EXPORT_FORMAT_PFX, 31,72,240,12, BS_AUTORADIOBUTTON|WS_DISABLED
  CHECKBOX "可能ならば証明パス中のすべての証明書を含める(&U)",
    IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "強力な暗号化を有効にする(&E)",
    IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,240,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "エクスポートが成功したら秘密鍵を削除する(&K)",
    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 "ファイル名(&F):", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "参照(&R)...", 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
