/*
 * cryptui dll Italian resources
 *
 * Copyright 2010 Luca Bennati
 *
 * 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_ITALIAN, SUBLANG_NEUTRAL

STRINGTABLE
{
    IDS_CERTIFICATE "Certificato"
    IDS_CERTIFICATEINFORMATION "Informazioni sul certificato"
    IDS_CERT_INFO_BAD_SIG "Questo certificato ha una firma non valida. Il certificato può essere stato alterato o corrotto."
    IDS_CERT_INFO_UNTRUSTED_CA "Questo certificato root non è fidato. Per fidarsene, aggiungilo al deposito certificati root fidati del tuo sistema."
    IDS_CERT_INFO_UNTRUSTED_ROOT "Impossibile convalidare questo certificato in un certificato root fidato."
    IDS_CERT_INFO_PARTIAL_CHAIN "Impossibile trovare l'emittente di questo certificato."
    IDS_CERT_INFO_BAD_PURPOSES "Impossibile verificare tutti i soggetti intesi di questo certificato."
    IDS_CERT_INFO_PURPOSES "Questo certificato è inteso per i seguenti soggetti:"
    IDS_SUBJECT_HEADING "Emesso per: "
    IDS_ISSUER_HEADING "Emesso da: "
    IDS_VALID_FROM "Valido da "
    IDS_VALID_TO " a "
    IDS_CERTIFICATE_BAD_SIGNATURE "Questo certificato ha una firma non valida."
    IDS_CERTIFICATE_BAD_TIME "Questo certificato è scaduto o non è ancora valido."
    IDS_CERTIFICATE_BAD_TIMENEST "Il periodo di validità di questo certificato supera quello del suo emittente."
    IDS_CERTIFICATE_REVOKED "Questo certificato è stato revocato dal suo emittente."
    IDS_CERTIFICATE_VALID "Questo certificato è OK."
    IDS_FIELD "Campo"
    IDS_VALUE "Valore"
    IDS_FIELDS_ALL "<Tutti>"
    IDS_FIELDS_V1 "Solo i campi della Versione 1"
    IDS_FIELDS_EXTENSIONS "Solo estensioni"
    IDS_FIELDS_CRITICAL_EXTENSIONS "Solo estensioni critiche"
    IDS_FIELDS_PROPERTIES "Solo proprietà"
    IDS_FIELD_VERSION "Versione"
    IDS_FIELD_SERIAL_NUMBER "Numero seriale"
    IDS_FIELD_ISSUER "Emittente"
    IDS_FIELD_VALID_FROM "Valido da"
    IDS_FIELD_VALID_TO "Valido fino a"
    IDS_FIELD_SUBJECT "Soggetto"
    IDS_FIELD_PUBLIC_KEY "Chiave pubblica"
    IDS_FIELD_PUBLIC_KEY_FORMAT "%s (%d bit)"
    IDS_PROP_HASH "Hash SHA1"
    IDS_PROP_ENHKEY_USAGE "Uso delle chiavi avanzate (proprietà)"
    IDS_PROP_FRIENDLY_NAME "Nome amichevole"
    IDS_PROP_DESCRIPTION "Descrizione"
    IDS_CERTIFICATE_PROPERTIES "Proprietà del certificato"
    IDS_CERTIFICATE_PURPOSE_ERROR "Inserisci un OID nella forma 1.2.3.4"
    IDS_CERTIFICATE_PURPOSE_EXISTS "L'OID inserito esiste già."
    IDS_SELECT_STORE_TITLE "Seleziona il deposito certificati"
    IDS_SELECT_STORE "Prego selezionare il deposito certificati."
    IDS_IMPORT_WIZARD "Guida all'Importazione di Certificati"
    IDS_IMPORT_TYPE_MISMATCH "Il file contiene oggetti che non corrisponde con i criteri dati. Selezionare un altro file."
    IDS_IMPORT_FILE_TITLE "File da importare"
    IDS_IMPORT_FILE_SUBTITLE "Specificare il file che vuoi importare."
    IDS_IMPORT_STORE_TITLE "Deposito certificati"
    IDS_IMPORT_STORE_SUBTITLE "I depositi certificati sono collezioni di certificati, liste di revoca di certificati, e liste di fiducia di certificati."
    IDS_IMPORT_FILTER_CERT "Certificato X.509 (*.cer; *.crt)"
    IDS_IMPORT_FILTER_PFX "Scambio Informazioni Personali (*.pfx; *.p12)"
    IDS_IMPORT_FILTER_CRL "Lista Revoca Certificati (*.crl)"
    IDS_IMPORT_FILTER_CTL "Lista Fiducia Certificati (*.stl)"
    IDS_IMPORT_FILTER_SERIALIZED_STORE "Deposito Certificati Serializzato Microsoft (*.sst)"
    IDS_IMPORT_FILTER_CMS "Messaggi CMS/PKCS #7 (*.spc; *.p7b)"
    IDS_IMPORT_FILTER_ALL "Tutti i file (*.*)"
    IDS_IMPORT_EMPTY_FILE "Seleziona un file."
    IDS_IMPORT_BAD_FORMAT "Formato del file non riconosciuto. Selezionare un'altro file."
    IDS_IMPORT_OPEN_FAILED "Impossibile aprire "
    IDS_IMPORT_DEST_DETERMINED "Determinato dal programma"
    IDS_IMPORT_SELECT_STORE "Seleziona un deposito certificati"
    IDS_IMPORT_STORE_SELECTION "Deposito certificati selezionato"
    IDS_IMPORT_DEST_AUTOMATIC "Determinato automaticamente dal programma"
    IDS_IMPORT_FILE "File"
    IDS_IMPORT_CONTENT "Contenuto"
    IDS_IMPORT_CONTENT_CERT "Certificato"
    IDS_IMPORT_CONTENT_CRL "Lista Revoca Certificati"
    IDS_IMPORT_CONTENT_CTL "Lista Fiducia Certificati"
    IDS_IMPORT_CONTENT_CMS "Messaggio CMS/PKCS #7"
    IDS_IMPORT_CONTENT_PFX "Scambio Informazioni Personali"
    IDS_IMPORT_CONTENT_STORE "Deposito Certificati"
    IDS_IMPORT_SUCCEEDED "Importazione riuscita."
    IDS_IMPORT_FAILED "Importazione fallita."
    IDS_WIZARD_TITLE_FONT "Arial"
    IDS_PURPOSE_ALL "<Tutti>"
    IDS_PURPOSE_ADVANCED "<Ragioni speciali>"
    IDS_SUBJECT_COLUMN "Emesso per"
    IDS_ISSUER_COLUMN "Emesso da"
    IDS_EXPIRATION_COLUMN "Data di scadenza"
    IDS_FRIENDLY_NAME_COLUMN "Nome amichevole"
    IDS_ALLOWED_PURPOSE_ALL "<Tutti>"
    IDS_ALLOWED_PURPOSE_NONE "<Nessuno>"
    IDS_WARN_REMOVE_MY "Non sarai più in grado di decriptare messaggi con questo certificato, o di firmare messaggi con questo.\nSei sicuro di voler rimuovere questo certificato?"
    IDS_WARN_REMOVE_PLURAL_MY "Non sarai più in grado di decriptare messaggi con questi certificati, o di firmare messaggi con questi.\nSei sicuro di voler rimuovere questi certificati?"
    IDS_WARN_REMOVE_ADDRESSBOOK "Non sarai più in grado di criptare messaggi con questo certificato, o di verificare messaggi con questo.\nSei sicuro di voler rimuovere questo certificato?"
    IDS_WARN_REMOVE_PLURAL_ADDRESSBOOK "Non sarai più in grado di criptare messaggi con questi certificati, o di verificare messaggi con questi.\nSei sicuro di voler rimuovere questi certificati?"
    IDS_WARN_REMOVE_CA "I certificati emessi da questa autorità di certificazione non saranno più fidati.\nSei sicuro di voler rimuovere questi certificati?"
    IDS_WARN_REMOVE_PLURAL_CA "I certificati emessi da queste autorità di certificazione non saranno più fidati.\nSei sicuro di voler rimuovere questi certificati?"
    IDS_WARN_REMOVE_ROOT "I certificati emessi da questa autorità di certificazione root, o qualsiasi altre autorità di certificati emesse da essa, non saranno più fidate.\nSei sicuro di voler rimuovere questo certificato root fidato?"
    IDS_WARN_REMOVE_PLURAL_ROOT "I certificati emessi da questa autorità di certificazione root, o qualsiasi altre autorità di certificati emesse da essa, non saranno più fidate.\nSei sicuro di voler rimuovere questi certificati root fidati?"
    IDS_WARN_REMOVE_TRUSTEDPUBLISHER "Software firmato da questo editore non sarà più fidato.\nSei sicuro di voler rimuovere questo certificato?"
    IDS_WARN_REMOVE_PLURAL_TRUSTEDPUBLISHER "Software firmato da questi editori non sarà più fidato.\nSei sicuro di voler rimuovere questi certificati?"
    IDS_WARN_REMOVE_DEFAULT "Sei sicuro di voler rimuovere questo certificato?"
    IDS_WARN_REMOVE_PLURAL_DEFAULT "Sei sicuro di voler rimuovere questi certificati?"
    IDS_CERT_MGR "Certificati"
    IDS_FRIENDLY_NAME_NONE "<Nessuno>"
    IDS_PURPOSE_SERVER_AUTH "Assicura l'identità di un computer remoto"
    IDS_PURPOSE_CLIENT_AUTH "Prova la tua identità ad un computer remoto"
    IDS_PURPOSE_CODE_SIGNING "Assicura che il software venga dall'editore del software\nProtegge i software da alterazioni dopo la pubblicazione"
    IDS_PURPOSE_EMAIL_PROTECTION "Protegge messaggi e-mail"
    IDS_PURPOSE_IPSEC "Permette la comunicazione sicura tramite Internet"
    IDS_PURPOSE_TIMESTAMP_SIGNING "Permette di firmare i dati con l'ora corrente"
    IDS_PURPOSE_CTL_USAGE_SIGNING "Ti permette di firmare digitalmente una lista di fiducia di certificati"
    IDS_PURPOSE_EFS "Permette di criptare i dati sul disco"
    IDS_PURPOSE_EFS_RECOVERY "Recupero del file"
    IDS_PURPOSE_WHQL "Verifica di Driver Hardware per Windows"
    IDS_PURPOSE_NT5 "Verifica del Componente di Sistema Windows"
    IDS_PURPOSE_OEM_WHQL "Verifica del Componente di Sistema Windows OEM"
    IDS_PURPOSE_EMBEDDED_NT "Verifica del Componente di Sistema Windows Embedded"
    IDS_PURPOSE_ROOT_LIST_SIGNER "Firmatario Lista Root"
    IDS_PURPOSE_QUALIFIED_SUBORDINATION "Subordinazione qualificata"
    IDS_PURPOSE_KEY_RECOVERY "Recupero della chiave"
    IDS_PURPOSE_DOCUMENT_SIGNING "Firma Documento"
    IDS_PURPOSE_LIFETIME_SIGNING "Firma Lifetime"
    IDS_PURPOSE_DRM "Diritti Digitali"
    IDS_PURPOSE_LICENSES "Licenze del pacchetto di chiavi"
    IDS_PURPOSE_LICENSE_SERVER "Verifica del server delle licenze"
    IDS_PURPOSE_ENROLLMENT_AGENT "Agente di richiesta dei certificati"
    IDS_PURPOSE_SMARTCARD_LOGON "Logon con Smart Card"
    IDS_PURPOSE_CA_EXCHANGE "Archivio chiavi private"
    IDS_PURPOSE_KEY_RECOVERY_AGENT "Agente di recupero delle chiavi"
    IDS_PURPOSE_DS_EMAIL_REPLICATION "Servizio di Directory di replica e-mail"
    IDS_EXPORT_WIZARD "Guida all'Esportazione del Certificato"
    IDS_EXPORT_FORMAT_TITLE "Formato di Esportazione"
    IDS_EXPORT_FORMAT_SUBTITLE "Scegli il formato nel quale il contenuto sarà salvato."
    IDS_EXPORT_FILE_TITLE "Nome del file di esportazione"
    IDS_EXPORT_FILE_SUBTITLE "Specifica il nome del file nel quale il contenuto sarà salvato."
    IDS_EXPORT_FILE_EXISTS "File specificato esistene. Vuoi sostituirlo?"
    IDS_EXPORT_FILTER_CERT "Binario DER-Encoded X.509 (*.cer)"
    IDS_EXPORT_FILTER_BASE64_CERT "X.509 Base64-Encoded (*.cer)"
    IDS_EXPORT_FILTER_CRL "Lista di Revoca di Certificati (*.crl)"
    IDS_EXPORT_FILTER_CTL "Lista di Fiducia di Certificati (*.stl)"
    IDS_EXPORT_FILTER_CMS "Messaggi CMS/PKCS #7 (*.p7b)"
    IDS_EXPORT_FILTER_PFX "Scambio Informazioni Personali (*.pfx)"
    IDS_EXPORT_FILTER_SERIALIZED_CERT_STORE "Deposito certificati serializzato (*.sst)"
    IDS_EXPORT_FORMAT "Formato del file"
    IDS_EXPORT_INCLUDE_CHAIN "Includi tutti i certificati nel percorso del certificato"
    IDS_EXPORT_KEYS "Esporta chiavi"
    IDS_YES "Sì"
    IDS_NO "No"
    IDS_EXPORT_SUCCEEDED "Esportazione riuscita."
    IDS_EXPORT_FAILED "Esportazione fallita."
    IDS_EXPORT_PRIVATE_KEY_TITLE "Esporta Chiave Privata"
    IDS_EXPORT_PRIVATE_KEY_SUBTITLE "Questo certificato contiente una chiave privata che potrebbe essere esportata insieme al certificato."
    IDS_EXPORT_PASSWORD_TITLE "Inserisci Password"
    IDS_EXPORT_PASSWORD_SUBTITLE "Puoi proteggere la chiave privata con una password."
    IDS_EXPORT_PASSWORD_MISMATCH "Le password non corrispondono."
    IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Nota: impossibile aprire la chiave privata per questo certificato."
    IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Nota: la chiave privata per questo certificato non è esportabile."
}

IDD_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Generale"
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 "&Installa Certificato...", IDC_ADDTOSTORE,103,216,70,14
  PUSHBUTTON "&Annuncio dell'emittente", IDC_ISSUERSTATEMENT,177,216,70,14
END

IDD_DETAIL DIALOG 0, 0, 255, 236
CAPTION "Dettagli"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Mostra:", -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 "Modifica &Proprietà...", IDC_EDITPROPERTIES,103,216,70,14
  PUSHBUTTON "&Copia su File...", IDC_EXPORT,177,216,70,14
END

IDD_HIERARCHY DIALOG 0, 0, 255, 236
CAPTION "Percorso di certificazione"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "&Percorso di certificazione", -1,6,10,245,165, BS_GROUPBOX
  CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER,
    13,22,231,130
  PUSHBUTTON "&Vedi Certificato", IDC_VIEWCERTIFICATE,175,156,70,14
  LTEXT "&Stato del Certificato:", 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 "Disclaimer"
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 "&Chiudi", IDOK,103,216,70,14
  PUSHBUTTON "Più %Informazioni", IDC_CPS,177,216,70,14
END

IDD_CERT_PROPERTIES_GENERAL DIALOG 0, 0, 255, 236
CAPTION "Generale"
STYLE WS_VISIBLE
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Nome amichevole:", -1, 6,14,60,14
  EDITTEXT IDC_FRIENDLY_NAME, 60,12,191,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Descrizione:", -1, 6,32,60,14
  EDITTEXT IDC_DESCRIPTION, 60,30,191,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
  GROUPBOX "Soggetti del certificato", -1,6,48,245,165, BS_GROUPBOX
  AUTORADIOBUTTON "&Abilita tutti i soggetti per questo certificato",
    IDC_ENABLE_ALL_PURPOSES, 12,58,180,14, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "D&isabilita tutti i soggetti per questo certificato",
    IDC_DISABLE_ALL_PURPOSES, 12,70,180,14, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Abilita &solo i seguenti soggetti per questo certificato:",
    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 "A&ggiungi Soggetto...", IDC_ADD_PURPOSE,184,194,60,14
END

IDD_ADD_CERT_PURPOSE DIALOG 0,0,200,68
CAPTION "Aggiungi Soggetto"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Aggiungi l'identificatore oggetto (OID) per questo soggetto di certificato che desideri aggiungere:",
    -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 "Annulla", IDCANCEL, 100,48,60,14
END

IDD_SELECT_STORE DIALOG 0,0,200,136
CAPTION "Seleziona il Deposito Certificati"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Seleziona il deposito certificati che vuoi usare:", IDC_STORE_TEXT, 6,6,190,28
  CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP,
    6,28,188,70
  CHECKBOX "&Mostra i depositi fisici", IDC_SHOW_PHYSICAL_STORES, 6,102,90,14,
    BS_AUTOCHECKBOX|WS_TABSTOP
  PUSHBUTTON "OK", IDOK, 90,118,50,14, BS_DEFPUSHBUTTON
  PUSHBUTTON "Annulla", IDCANCEL, 144,118,50,14
END

IDD_IMPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Guida all'Importazione di Certificati"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Benvenuto alla Guida all'Importazione di Certificati", IDC_IMPORT_TITLE,
    115,7,195,12
  LTEXT "Questa guida ti aiuta a importare certificati, liste di revoca di certificati, e liste di fiducia di certificati da un file ad un deposito certificati.",
    -1, 115,26,195,25
  LTEXT "Un certificato può essere usato per identificare te o il computer da cui stai comunicando. Può essere anche usato per l'autenticazione, e per firmare messaggi. I depositi certificati sono collezioni di certificati, liste di revoca di certificati, e liste di fiducia di certificati.",
    -1, 115,56,195,40
  LTEXT "Per continuare, clicca Avanti.",
    -1, 115,103,195,8
END

IDD_IMPORT_FILE DIALOG 0,0,317,178
CAPTION "Guida all'Importazione di Certificati"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Nome del &file:", -1, 21,1,195,10
  EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "&Sfoglia...", IDC_IMPORT_BROWSE_FILE, 236,11,60,14
  LTEXT "Nota:  i seguenti formati di file potrebbero contenere più di un certificato, lista di revoca di certificati, o lista di fiducia di certificati:",
    -1, 21,26,265,16
  LTEXT "Messaggio Crittografico con Sintassi Standard/Messaggi PKCS #7 (.p7b)",
    -1, 31,49,265,10
  LTEXT "Scambio di Informazioni Personali/PKCS #12 (.pfx, .p12)",
    -1, 31,64,265,10
  LTEXT "Deposito Certificati Serializzato Microsoft (.sst)",
    -1, 31,79,265,10
END

IDD_IMPORT_STORE DIALOG 0,0,317,143
CAPTION "Guida all'Importazione di Certificati"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Wine può selezionare automaticamente il deposito certificati, oppure puoi specificare una locazione per i certificati.",
    -1, 21,1,195,20
  AUTORADIOBUTTON "Seleziona &automaticamente il deposito certificati",
    IDC_IMPORT_AUTO_STORE, 31,18,180,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&Piazza tutti i certificati nel deposito seguente:",
    IDC_IMPORT_SPECIFY_STORE, 31,30,180,12, BS_AUTORADIOBUTTON
  EDITTEXT IDC_IMPORT_STORE, 44,49,185,14, ES_READONLY
  PUSHBUTTON "&Sfoglia...", IDC_IMPORT_BROWSE_STORE, 236,49,60,14
END

IDD_IMPORT_FINISH DIALOG 0,0,317,178
CAPTION "Guida all'Importazione di Certificati"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Completando la Guida all'Importazione di Certificati", IDC_IMPORT_TITLE,
    115,1,195,40
  LTEXT "Hai completato con successo la Guida all'Importazione di Certificati.",
    -1, 115,33,195,24
  LTEXT "Hai specificato le impostazioni seguenti:",
    -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 "Certificati"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Soggetto inteso:", -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 "&Importa...", IDC_MGR_IMPORT, 7,172,51,14
  PUSHBUTTON "&Esporta...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
  PUSHBUTTON "&Rimuovi", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
  PUSHBUTTON "&Avanzato...", IDC_MGR_ADVANCED, 277,172,51,14
  GROUPBOX "Soggetti intesi del certificato", -1,7,194,321,47, BS_GROUPBOX
  LTEXT "", IDC_MGR_PURPOSES, 13,208,252,30
  PUSHBUTTON "&Vedi...", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
  PUSHBUTTON "&Chiudi", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON
END

IDD_CERT_MGR_ADVANCED DIALOG 0,0,248,176
CAPTION "Opzioni Avanzate"
FONT 8, "MS Shell Dlg"
BEGIN
  GROUPBOX "Soggetto del certificato", -1, 7,7,234,141, BS_GROUPBOX
  LTEXT "Seleziona uno o più soggetti da elencare quando Soggetti Avanzati è selezionato.",
    -1, 14,18,220,16
  LTEXT "&Soggetti del certificato:", -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 "Annulla", IDCANCEL, 190,155,51,14
END

IDD_EXPORT_WELCOME DIALOG 0,0,317,143
CAPTION "Guida all'Esportazione del Certificato"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Benvenuto alla Guida all'Esportazione del Certificato", IDC_EXPORT_TITLE,
    115,7,195,12
  LTEXT "Questa guida ti aiuta ad esportare certificati, liste di revoca di certificati, e liste di fiducia di certificati da un deposito di certificati ad un file.",
    -1, 115,26,195,25
  LTEXT "Un certificato può essere usato per identificare te o il computer dal quale stai comunicando. Può essere anche usato per l'autenticazione, e per firmare messaggi. I depositi di certificati sono collezioni di certificati, di liste di revoca di certificati, e di liste di fiducia di certificati.",
    -1, 115,56,195,40
  LTEXT "Per continuare, clicca Avanti.",
    -1, 115,103,195,8
END

IDD_EXPORT_PRIVATE_KEY DIALOG 0,0,317,143
CAPTION "Guida all'Esportazione del Certificato"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Se scegli di esportare la chiave privata, ti sarà richiesta in un passaggio successivo una password per proteggere la chiave privata.", -1, 21,1,195,25
  LTEXT "Vuoi esportare la chiave privata?", -1, 21,27,195,10
  AUTORADIOBUTTON "&Sì, esporta la chiave privata",
    IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "&No, non esportare la chiave privata",
    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 "Guida all'Esportazione del Certificato"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Password:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  LTEXT "&Conferma la password:", -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 "Guida all'Esportazione del Certificato"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Seleziona il formato che vuoi usare:", -1, 21,1,195,10
  AUTORADIOBUTTON "X.509 &DER-encoded (.cer)",
    IDC_EXPORT_FORMAT_DER, 31,18,240,12, BS_AUTORADIOBUTTON|WS_TABSTOP
  AUTORADIOBUTTON "X.509 Ba&se64-encoded (.cer):",
    IDC_EXPORT_FORMAT_BASE64, 31,30,240,12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "Messaggio &Crittografico con Sintassi Standard/Messaggio PKCS #7 (.p7b)",
    IDC_EXPORT_FORMAT_CMS, 31,42,240,12, BS_AUTORADIOBUTTON
  CHECKBOX "&Includi tutti i certificati nel percorso di certificazione se possibile",
    IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  AUTORADIOBUTTON "Scambia di Informazioni &Personali/PKCS #12 (.pfx)",
    IDC_EXPORT_FORMAT_PFX, 31,72,240,12, BS_AUTORADIOBUTTON|WS_DISABLED
  CHECKBOX "Incl&udi tutti i certificati nel percorso di certificazione se possibile",
    IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,240,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "&Abilita Crittazione forte",
    IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,240,8,
    BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED
  CHECKBOX "&Elimina la chiave privata se l'esportazione riesce",
    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 "Guida all'Esportazione del Certificato"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "&Nome del file:", -1, 21,1,195,10
  EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP
  PUSHBUTTON "%Sfoglia...", IDC_EXPORT_BROWSE_FILE, 236,11,60,14
END

IDD_EXPORT_FINISH DIALOG 0,0,317,178
CAPTION "Guida all'Esportazione del Certificato"
FONT 8, "MS Shell Dlg"
BEGIN
  LTEXT "Completando la Guida all'Esportazione del Certificato", IDC_EXPORT_TITLE,
    115,1,195,40
  LTEXT "Hai completato con successo la Guida all'Esportazione del Certificato.",
    -1, 115,33,195,24
  LTEXT "Hai specificato le seguenti impostazioni:",
    -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
