/*
 * crypt32 dll Italian resources
 *
 * Copyright (C) 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 "cryptres.h"

/*UTF-8*/
#pragma code_page(65001)

LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL

STRINGTABLE DISCARDABLE
{
    IDS_AUTHORITY_KEY_ID "Identificatore chiave autorità"
    IDS_KEY_ATTRIBUTES "Attributi chiave"
    IDS_KEY_USAGE_RESTRICTION "Restrizione dell'uso della chiave"
    IDS_SUBJECT_ALT_NAME "Nome alternativo del soggetto"
    IDS_ISSUER_ALT_NAME "Nome alternativo dell'emittente"
    IDS_BASIC_CONSTRAINTS "Vincoli Base"
    IDS_KEY_USAGE "Uso della chiave"
    IDS_CERT_POLICIES "Policy del certificato"
    IDS_SUBJECT_KEY_IDENTIFIER "Identificatore chiave soggetto"
    IDS_CRL_REASON_CODE "Codice Motivo CRL"
    IDS_CRL_DIST_POINTS "Punti Distribuzione CRL"
    IDS_ENHANCED_KEY_USAGE "Uso chiave avanzata"
    IDS_AUTHORITY_INFO_ACCESS "Accesso Informazioni Autorità"
    IDS_CERT_EXTENSIONS "Estensioni Certificato"
    IDS_NEXT_UPDATE_LOCATION "Locazione del prossimo aggiornamento"
    IDS_YES_OR_NO_TRUST "Fiducia Sì o No"
    IDS_EMAIL_ADDRESS "Indirizzo Email"
    IDS_UNSTRUCTURED_NAME "Nome non strutturato"
    IDS_CONTENT_TYPE "Tipo contenuto"
    IDS_MESSAGE_DIGEST "Impronta Messaggio"
    IDS_SIGNING_TIME "Ora Firma"
    IDS_COUNTER_SIGN "Controfirma"
    IDS_CHALLENGE_PASSWORD "Domanda di sicurezza"
    IDS_UNSTRUCTURED_ADDRESS "Indirizzo non strutturato"
    IDS_SMIME_CAPABILITIES "Capacità SMIME"
    IDS_PREFER_SIGNED_DATA "Preferisci Dati Firmati"
    IDS_CPS "CPS"
    IDS_USER_NOTICE "Notifica Utente"
    IDS_OCSP "Protocollo Status Certificato on-line"
    IDS_CA_ISSUER "Emittente Autorità Certificazione"
    IDS_CERT_TEMPLATE_NAME "Nome Modello Certificazione"
    IDS_CERT_TYPE "Tipo Certificato"
    IDS_CERT_MANIFOLD "Collettore Certificato"
    IDS_NETSCAPE_CERT_TYPE "Tipo Certificato Netscape"
    IDS_NETSCAPE_BASE_URL "URL Base Netscape"
    IDS_NETSCAPE_REVOCATION_URL "URL Revoca Netscape"
    IDS_NETSCAPE_CA_REVOCATION_URL "URL Revoca CA Netscape"
    IDS_NETSCAPE_CERT_RENEWAL_URL "URL Rinnovo Certificato Netscape"
    IDS_NETSCAPE_CA_POLICY_URL "URL Policy CA Netscape"
    IDS_NETSCAPE_SSL_SERVER_NAME "NomeServer SSL Netscape"
    IDS_NETSCAPE_COMMENT "Commento Netscape"
    IDS_SPC_SP_AGENCY_INFO "Agenzia di informazione Spc Sp"
    IDS_SPC_FINANCIAL_CRITERIA "Criteri finanziari Spc"
    IDS_SPC_MINIMAL_CRITERIA "Criteri minimi Spc"
    IDS_COUNTRY "Paese/Regione"
    IDS_ORGANIZATION "Organizzazione"
    IDS_ORGANIZATIONAL_UNIT "Unità Organizzativa"
    IDS_COMMON_NAME "Nome Comune"
    IDS_LOCALITY "Località"
    IDS_STATE_OR_PROVINCE "Stato o Provincia"
    IDS_TITLE "Titolo"
    IDS_GIVEN_NAME "Nome Proprio"
    IDS_INITIALS "Initiali"
    IDS_SUR_NAME "Cognome"
    IDS_DOMAIN_COMPONENT "Componente Dominio"
    IDS_STREET_ADDRESS "Indirizzo (via)"
    IDS_SERIAL_NUMBER "Numero Seriale"
    IDS_CA_VERSION "Versione CA"
    IDS_CROSS_CA_VERSION "Versione Cross CA"
    IDS_SERIALIZED_SIG_SERIAL_NUMBER "Numero Seriale Firma Serializzato"
    IDS_PRINCIPAL_NAME "Nome Principale"
    IDS_WINDOWS_PRODUCT_UPDATE "Aggiornamento Prodotto Windows"
    IDS_ENROLLMENT_NAME_VALUE_PAIR "Iscrizione Coppia Nome Valore"
    IDS_OS_VERSION "Versione SO"
    IDS_ENROLLMENT_CSP "Iscrizione CSP"
    IDS_CRL_NUMBER "Numero CRL"
    IDS_DELTA_CRL_INDICATOR "Indicatore Delta CRL"
    IDS_ISSUING_DIST_POINT "Punto Distribuzione della Diramazione"
    IDS_FRESHEST_CRL "CRL Più nuova"
    IDS_NAME_CONSTRAINTS "Vincoli Nome"
    IDS_POLICY_MAPPINGS "Mappature Policy"
    IDS_POLICY_CONSTRAINTS "Vincoli Policy"
    IDS_CROSS_CERT_DIST_POINTS "Punti Distribuzione Certificati Incrociati"
    IDS_APPLICATION_POLICIES "Policy dell'Applicazione"
    IDS_APPLICATION_POLICY_MAPPINGS "Mappature Policy Applicazione"
    IDS_APPLICATION_POLICY_CONSTRAINTS "Vincoli Policy Applicazione"
    IDS_CMC_DATA "Dati CMC"
    IDS_CMC_RESPONSE "Risposta CMC"
    IDS_UNSIGNED_CMC_REQUEST "Richiesta CMC non firmata"
    IDS_CMC_STATUS_INFO "Informazioni Status CMC"
    IDS_CMC_EXTENSIONS "Estensioni CMC"
    IDS_CMC_ATTRIBUTES "Attributi CMC"
    IDS_PKCS_7_DATA "Dati PKCS 7"
    IDS_PKCS_7_SIGNED "PKCS 7 firmato"
    IDS_PKCS_7_ENVELOPED "PKCS 7 preparato"
    IDS_PKCS_7_SIGNED_ENVELOPED "PKCS 7 firmato e preparato"
    IDS_PKCS_7_DIGESTED "PKCS 7 digerito"
    IDS_PKCS_7_ENCRYPTED "PKCS 7 criptato"
    IDS_PREVIOUS_CA_CERT_HASH "Hash precedente Certificato CA"
    IDS_CRL_VIRTUAL_BASE "Numero Base Virtuale CRL"
    IDS_CRL_NEXT_PUBLISH "Prossima Pubblicazione CRL"
    IDS_CA_EXCHANGE "Certificato Crittografia CA"
    IDS_KEY_RECOVERY_AGENT "Agente Recupero Chiave"
    IDS_CERTIFICATE_TEMPLATE "Modello Informazioni Certificato"
    IDS_ENTERPRISE_ROOT_OID "OID Root Azienda"
    IDS_RDN_DUMMY_SIGNER "Firmatario Fittizio"
    IDS_ARCHIVED_KEY_ATTR "Chiave Privata Criptata"
    IDS_CRL_SELF_CDP "Locazioni CRL pubblicate"
    IDS_REQUIRE_CERT_CHAIN_POLICY "Applica Policy Catena Certificato"
    IDS_TRANSACTION_ID "Id Transazione"
    IDS_SENDER_NONCE "Nonce Mittente"
    IDS_RECIPIENT_NONCE "Nonce Destinatario"
    IDS_REG_INFO "Informazioni Reg"
    IDS_GET_CERTIFICATE "Ottieni Certificato"
    IDS_GET_CRL "Ottieni CRL"
    IDS_REVOKE_REQUEST "Revoca Richiesta"
    IDS_QUERY_PENDING "Query in attesa"
    IDS_SORTED_CTL "Lista di Fiducia di Certificati"
    IDS_ARCHIVED_KEY_CERT_HASH "Hash Archiviata Chiave Certificato"
    IDS_PRIVATE_KEY_USAGE_PERIOD "Periodo Uso Chiave Privata"
    IDS_CLIENT_INFORMATION "Informazioni Client"
    IDS_SERVER_AUTHENTICATION "Autenticazione Server"
    IDS_CLIENT_AUTHENTICATION "Autenticazione Client"
    IDS_CODE_SIGNING "Firma Codice"
    IDS_SECURE_EMAIL "Email sicura"
    IDS_TIME_STAMPING "Timbro Ora"
    IDS_MICROSOFT_TRUST_LIST_SIGNING "Firma Lista di Fiducia Microsoft"
    IDS_MICROSOFT_TIME_STAMPING "Timbro Ora Microsoft"
    IDS_IPSEC_END_SYSTEM "Fine del sistema Sicurezza IP"
    IDS_IPSEC_TUNNEL "Terminazione tunnel Sicurezza IP"
    IDS_IPSEC_USER "Utente Sicurezza IP"
    IDS_EFS "File System con Crittografia"
    IDS_WHQL_CRYPTO "Verifica Driver Hardware per Windows"
    IDS_NT5_CRYPTO "Verifica Componente di Sistema Windows"
    IDS_OEM_WHQL_CRYPTO "Verifica Componente di Sistema Windows OEM"
    IDS_EMBEDDED_NT_CRYPTO "Verifica Componente di Sistema Windows Embedded"
    IDS_KEY_PACK_LICENSES "Chiave del pacchetto di licenze"
    IDS_LICENSE_SERVER "Verifica Server Licenza"
    IDS_SMART_CARD_LOGON "Logon con Smart Card"
    IDS_DIGITAL_RIGHTS "Diritti Digitali"
    IDS_QUALIFIED_SUBORDINATION "Subordinazione Qualificata"
    IDS_KEY_RECOVERY "Recupero Chiave"
    IDS_DOCUMENT_SIGNING "Firma Documento"
    IDS_IPSEC_IKE_INTERMEDIATE "IP sizurezza IKE intermedia"
    IDS_FILE_RECOVERY "Recupero File"
    IDS_ROOT_LIST_SIGNER "Firmatario Lista Root"
    IDS_ANY_APPLICATION_POLICIES "Tutte le polici di applicazioni"
    IDS_DS_EMAIL_REPLICATION "Servizio Directory di Replica Email"
    IDS_ENROLLMENT_AGENT "Agente di richiesta certificato"
    IDS_LIFETIME_SIGNING "Firma Lifetime"
    IDS_ANY_CERT_POLICY "Tutte le policy di rilascio"
}

STRINGTABLE DISCARDABLE
{
    IDS_LOCALIZEDNAME_ROOT "Autorità Certificazione Root Fidate"
    IDS_LOCALIZEDNAME_MY "Personale"
    IDS_LOCALIZEDNAME_CA "Autorità Certificazione Intermedie"
    IDS_LOCALIZEDNAME_ADDRESSBOOK "Altre Persone"
    IDS_LOCALIZEDNAME_TRUSTEDPUBLISHER "Editori Fidati"
    IDS_LOCALIZEDNAME_DISALLOWED "Certificati non fidati"
}

STRINGTABLE DISCARDABLE
{
    IDS_KEY_ID "IDChiave="
    IDS_CERT_ISSUER "Emittente Certificato"
    IDS_CERT_SERIAL_NUMBER "Numero Seriale del Certificato="
    IDS_ALT_NAME_OTHER_NAME "Altro Nome="
    IDS_ALT_NAME_RFC822_NAME "Indirizzo Email="
    IDS_ALT_NAME_DNS_NAME "Nome DNS="
    IDS_ALT_NAME_DIRECTORY_NAME "Indirizzo della cartella"
    IDS_ALT_NAME_URL "URL="
    IDS_ALT_NAME_IP_ADDRESS "Indirizzo IP="
    IDS_ALT_NAME_MASK "Maschera="
    IDS_ALT_NAME_REGISTERED_ID "ID registrato="
    IDS_USAGE_UNKNOWN "Uso della Chiave Sconosciuto"
    IDS_SUBJECT_TYPE "Tipo Soggetto="
    IDS_SUBJECT_TYPE_CA "AC"
    IDS_SUBJECT_TYPE_END_CERT "Fine Entità"
    IDS_PATH_LENGTH "Vincolo Lunghezza Percorso="
    IDS_PATH_LENGTH_NONE "Nessuno"
    IDS_INFO_NOT_AVAILABLE "Informazione non disponibile"
    IDS_AIA "Accesso Informazioni Autorità"
    IDS_ACCESS_METHOD "Metodo Accesso="
    IDS_ACCESS_METHOD_OCSP "OCSP"
    IDS_ACCESS_METHOD_CA_ISSUERS "AC emittenti"
    IDS_ACCESS_METHOD_UNKNOWN "Metodo Accesso Sconosciuto"
    IDS_ACCESS_LOCATION "Nome Alternativo"
    IDS_CRL_DIST_POINT "Punto Distribuzione CRL"
    IDS_CRL_DIST_POINT_NAME "Nome Punto Distribuzione"
    IDS_CRL_DIST_POINT_FULL_NAME "Nome Completo"
    IDS_CRL_DIST_POINT_RDN_NAME "Nome RDN"
    IDS_CRL_DIST_POINT_REASON "Motivo CRL="
    IDS_CRL_DIST_POINT_ISSUER "Emittente CRL"
    IDS_REASON_KEY_COMPROMISE "Chiave Compromessa"
    IDS_REASON_CA_COMPROMISE "CA Compromessa"
    IDS_REASON_AFFILIATION_CHANGED "Affiliazione Cambiata"
    IDS_REASON_SUPERSEDED "Sostituito"
    IDS_REASON_CESSATION_OF_OPERATION "Operazione Cessata"
    IDS_REASON_CERTIFICATE_HOLD "Certificato Trattenuto"
    IDS_FINANCIAL_CRITERIA "Informazioni Finanziarie="
    IDS_FINANCIAL_CRITERIA_AVAILABLE "Disponibili"
    IDS_FINANCIAL_CRITERIA_NOT_AVAILABLE "Non disponibili"
    IDS_FINANCIAL_CRITERIA_MEETS_CRITERIA "Soddisfa Criteri="
    IDS_YES "Sì"
    IDS_NO "No"
    IDS_DIGITAL_SIGNATURE "Firma Digitale"
    IDS_NON_REPUDIATION "Non Ripudio"
    IDS_KEY_ENCIPHERMENT "Cifratura Chiave"
    IDS_DATA_ENCIPHERMENT "Cifratura Dati"
    IDS_KEY_AGREEMENT "Accordo Chiavi"
    IDS_CERT_SIGN "Firma Certificato"
    IDS_OFFLINE_CRL_SIGN "Firma Off-line CRL"
    IDS_CRL_SIGN "Firma CRL"
    IDS_ENCIPHER_ONLY "Solo Cifratura"
    IDS_DECIPHER_ONLY "Solo Decifratura"
    IDS_NETSCAPE_SSL_CLIENT "Autenticazione Client SSL"
    IDS_NETSCAPE_SSL_SERVER "Autenticazione Server SSL"
    IDS_NETSCAPE_SMIME "S/MIME"
    IDS_NETSCAPE_SIGN "Firma"
    IDS_NETSCAPE_SSL_CA "CA SSL"
    IDS_NETSCAPE_SMIME_CA "CA S/MIME"
    IDS_NETSCAPE_SIGN_CA "CA Firma"
}
