/*
 * 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

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
