/*
 * cryptui dll resources
 *
 * Copyright 2009 André Hentschel
 *
 * 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"

#pragma code_page(65001)

LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL

IDD_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Allgemein"
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 "&Zertifikat installieren...", IDC_ADDTOSTORE,93,216,80,14
  PUSHBUTTON "Au&sstellererklärung", IDC_ISSUERSTATEMENT,177,216,70,14
END

IDD_DETAIL DIALOG 0, 0, 255, 236
CAPTION "Details"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Anzeigen:", -1, 6,12,40,14
  COMBOBOX IDC_DETAIL_SELECT, 43,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 "&Eigenschaften bearbeiten...", IDC_EDITPROPERTIES,75,216,98,14
  PUSHBUTTON "In &Datei kopieren...", IDC_EXPORT,177,216,70,14
END

IDD_HIERARCHY DIALOG 0, 0, 255, 236
CAPTION "Zertifizierungspfad"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "&Zertifizierungspfad", -1,6,10,245,165, BS_GROUPBOX
  CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER,
    13,22,231,130
  PUSHBUTTON "&Zertifikat anzeigen", IDC_VIEWCERTIFICATE,175,156,70,14
  LTEXT "Zertifizierungs&status:", 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 "Haftungsausschluss"
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 "Schließen", IDOK,95,216,70,14
  PUSHBUTTON "weitere &Informationen", IDC_CPS,171,216,76,14
END

IDD_CERT_PROPERTIES_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Allgemein"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Name:", -1, 6,14,60,14
  EDITTEXT IDC_FRIENDLY_NAME, 60,12,191,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Beschreibung:", -1, 6,32,60,14
  EDITTEXT IDC_DESCRIPTION, 60,30,191,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  GROUPBOX "Zertifikatszwecke", -1,6,48,245,165, BS_GROUPBOX
  AUTORADIOBUTTON "&Alle Zwecke für dieses Zertifikat aktivieren",
    IDC_ENABLE_ALL_PURPOSES, 12,58,180,14, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "A&lle Zwecke für dieses Zertifikat deaktivieren",
    IDC_DISABLE_ALL_PURPOSES, 12,70,180,14, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Nur &folgende Zwecke aktivieren:",
    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 "&Zweck hinzufügen...", IDC_ADD_PURPOSE,173,194,71,14
END

IDD_ADD_CERT_PURPOSE DIALOG 0,0,200,68
CAPTION "Zweck hinzufügen"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Geben Sie die Objekt-ID (OID) für den Zertifikatszweck an, den Sie hinzufügen möchten:",
    -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 "Abbrechen", IDCANCEL, 100,48,60,14
END

IDD_SELECT_STORE DIALOG 0,0,200,136
CAPTION "Zertifikatsspeicher wählen"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Zertifikatsspeicher wählen den Sie benutzen möchten:", IDC_STORE_TEXT, 6,6,190,28
  CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP,
    6,28,188,70
  CHECKBOX "&Physikalischen Speicher anzeigen", IDC_SHOW_PHYSICAL_STORES, 6,102,90,14,
    BS_AUTOCHECKBOX|WS_TABSTOP
  PUSHBUTTON "OK", IDOK, 90,118,50,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Abbrechen", IDCANCEL, 144,118,50,14
END

IDD_IMPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Importassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Willkommen", IDC_IMPORT_TITLE,
    115,1,195,40
  LTEXT "Dieser Assistent hilft ihnen Zertifikate, Zertifikatssperrlisten und Zertifikatsvertrauenslisten aus einer Datei zu importieren.",
    -1, 115,33,195,24
  LTEXT "Ein Zertifikat dient zur Identifikation von Ihnen oder ihrem Computer. Es kann auch für die Authentifizierung und zum Unterzeichnen genutzt werden. Zertifikatsspeicher sind Sammlungen von Zertifikaten, Zertifikatssperrlisten und Zertifikatsvertrauenslisten.",
    -1, 115,64,195,40
  LTEXT "Klicken Sie Weiter um fortzufahren.",
    -1, 115,111,195,8
END

IDD_IMPORT_FILE DIALOG 0,0,317,143
CAPTION "Importassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Dateiname:", -1, 21,1,195,10
  EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "D&urchsuchen...", IDC_IMPORT_BROWSE_FILE, 236,11,60,14
  LTEXT "Hinweis: Es können mehrere Zertifikate in einer Datei folgender Formate gespeichert werden:",
    -1, 21,26,265,16
  LTEXT "Syntaxstandard kryptografischer Meldungen /PKCS #7 Messages (.p7b)",
    -1, 31,49,265,10
  LTEXT "Privater Informationsaustausch/PKCS #12 (.pfx, .p12)",
    -1, 31,64,265,10
  LTEXT "Microsoft Speicher serieller Zertifikate (.sst)",
    -1, 31,79,265,10
END

IDD_IMPORT_STORE DIALOG 0,0,317,143
CAPTION "Importassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wine kann automatisch einen Zertifikatsspeicher wählen, oder Sie wählen einen aus.",
    -1, 21,1,195,20
  AUTORADIOBUTTON "A&utomatisch einen Zertifikatsspeicher wählen",
    IDC_IMPORT_AUTO_STORE, 31,18,180,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Alle Zertifikate im folgendem Zertifikatsspeicher speichern:",
    IDC_IMPORT_SPECIFY_STORE, 31,30,180,12, BS_AUTORADIOBUTTON
  EDITTEXT IDC_IMPORT_STORE, 44,49,185,14, ES_READONLY
  PUSHBUTTON "&Durchsuchen...", IDC_IMPORT_BROWSE_STORE, 236,49,60,14
END

IDD_IMPORT_FINISH DIALOG 0,0,317,143
CAPTION "Importassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Fertigstellen des Assistenten", IDC_IMPORT_TITLE,
    115,1,195,40
  LTEXT "Importvorgang ordnungsgemäß abgeschlossen.",
    -1, 115,33,195,24
  LTEXT "Sie haben folgende Einstellungen gewählt:",
    -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 "Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Geplanter Zweck:", -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 "&Importieren...", IDC_MGR_IMPORT, 7,172,51,14
  PUSHBUTTON "&Exportieren...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
  PUSHBUTTON "&Entfernen", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
  PUSHBUTTON "&Erweitert...", IDC_MGR_ADVANCED, 277,172,51,14
  GROUPBOX "Beabsichtigte Zwecke des Zertifikats", -1,7,194,321,47, BS_GROUPBOX
  LTEXT "", IDC_MGR_PURPOSES, 13,208,252,30
  PUSHBUTTON "&Anzeigen", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
  PUSHBUTTON "&Schließen", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON
END

IDD_CERT_MGR_ADVANCED DIALOG 0,0,248,176
CAPTION "Erweiterte Optionen"
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Zertifikatszweck", -1, 7,7,234,141, BS_GROUPBOX
  LTEXT "Wählen Sie mindestens einen Zweck, der als Erweitert aufgeführt werden soll.",
    -1, 14,18,220,16
  LTEXT "&Zertifikatszwecke:", -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 "Abbrechen", IDCANCEL, 190,155,51,14
END

IDD_EXPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Exportassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Willkommen", IDC_EXPORT_TITLE,
    115,1,195,40
  LTEXT "Dieser Assistent hilft ihnen Zertifikate, Zertifikatssperrlisten und Zertifikatsvertrauenslisten in eine Datei zu exportieren.",
    -1, 115,33,195,16
  LTEXT "Ein Zertifikat dient zur Identifikation von Ihnen oder ihrem Computer. Es kann auch für die Authentifizierung und zum Unterzeichnen genutzt werden. Zertifikatsspeicher sind Sammlungen von Zertifikaten, Zertifikatssperrlisten und Zertifikatsvertrauenslisten.",
    -1, 115,56,195,40
  LTEXT "Klicken Sie Weiter um fortzufahren.",
    -1, 115,103,195,8
END

IDD_EXPORT_PRIVATE_KEY DIALOG 0,0,317,143
CAPTION "Exportassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wenn Sie sich entscheiden den privaten Schlüssel zu exportieren, werden Sie später nach einem Passwort gefragt.", -1, 21,1,195,23
  LTEXT "Privaten Schlüssel exportieren?", -1, 21,24,195,15
  AUTORADIOBUTTON "&Ja, privaten Schlüssel exportieren",
    IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Nein, privaten Schlüssel nicht exportieren",
    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 "Exportassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Passwort:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "Passwort &bestätigen:", -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 "Exportassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wählen Sie das gewünschte Format:", -1, 21,1,195,10
  AUTORADIOBUTTON "&DER-codiertes X.509 (.cer)",
    IDC_EXPORT_FORMAT_DER, 31,18,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "B&ase64-codiertes X.509 (.cer):",
    IDC_EXPORT_FORMAT_BASE64, 31,30,200,12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "&Syntaxstandard kryptografischer Meldungen/PKCS #7 Zertifikate (.p7b)",
    IDC_EXPORT_FORMAT_CMS, 31,42,250,12, BS_AUTORADIOBUTTON
  CHECKBOX "&Wenn möglich alle Zertifikate im Zertifizierungspfad einbeziehen",
    IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,250,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  AUTORADIOBUTTON "&Privater Informationsaustausch/PKCS #12 (.pfx)",
    IDC_EXPORT_FORMAT_PFX, 31,72,250,12, BS_AUTORADIOBUTTON|WS_DISABLED
  CHECKBOX "W&enn möglich alle Zertifikate im Zertifizierungspfad einbeziehen",
    IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,250,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "&Verstärkte Sicherheit aktivieren",
    IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,200,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "Priva&ten Schlüssel löschen wenn der Export erfolgreich war",
    IDC_EXPORT_PFX_DELETE_PRIVATE_KEY, 44,117,250,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
END

IDD_EXPORT_FILE DIALOG 0,0,317,143
CAPTION "Exportassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Dateiname:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Durchsuchen...", IDC_EXPORT_BROWSE_FILE, 236,11,60,14
END

IDD_EXPORT_FINISH DIALOG 0,0,317,143
CAPTION "Exportassistent für die Zertifikatsverwaltung"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Fertigstellen des Assistenten", IDC_EXPORT_TITLE,
    115,1,195,40
  LTEXT "Exportvorgang ordnungsgemäß abgeschlossen.",
    -1, 115,33,195,24
  LTEXT "Sie haben folgende Einstellungen gewählt:",
    -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
