<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name" msgid="9095072584761066851">"Programma di installazione certificato"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Scegli un certificato"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Estrai certificato"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Estrazione..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Estrazione da %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Specifica un nome per il certificato"</string>
    <string name="credential_name" msgid="1974979771369744378">"Nome certificato:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Digita la password per l\'estrazione dei certificati."</string>
    <string name="credential_info" msgid="2436768402308470397">"Il pacchetto contiene:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Certificati in keystore PKCS12."</string>
    <string name="one_userkey" msgid="3500697912370644881">"una chiave utente"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"un certificato utente"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"un certificato CA"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"Certificati CA %d"</string>
    <string name="password_error" msgid="2042471639556516356">"Digita la password corretta."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Digita la password."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Digita un nome."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Digita un nome contenente soltanto lettere e numeri."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Impossibile salvare il certificato. L\'archivio credenziali non è attivo o non è stato inizializzato correttamente."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Il certificato non è stato installato."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Nessun certificato da installare."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Il certificato non è valido."</string>
    <string name="action_missing_private_key" msgid="7543470057312920042">"L\'installazione di un certificato richiede la chiave privata"</string>
    <string name="action_missing_user_cert" msgid="3727411730202316771">"L\'installazione di una chiave privata richiede il certificato"</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> installato."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Installazione impossibile: dimensioni del certificato troppo grandi."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Installazione impossibile: file del certificato non trovato."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Installazione impossibile: file del certificato non leggibile."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Solo il proprietario di questo dispositivo può installare certificati."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Utilizzo della credenziale:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN e app"</item>
    <item msgid="692322974985472861">"Wi-Fi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Nota: la società emittente di questo certificato potrebbe esaminare tutto il traffico da e verso il dispositivo."</string>
    <string name="wifi_title" msgid="8475811746333426489">"Profilo Wi-Fi"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Dettagli relativi a %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Dettagli"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Installa"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Installazione..."</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Annulla"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Ignora"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Nessuna"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Nome: %1$s\nFQDN: %2$s\nRoaming Consortium: %3$s\nRealm: %4$s\nMetodo di autorizzazione: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Nome utente: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Certificato client:\n%1$s\nChiave: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Certificato di attendibilità:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Credenziali installate"</string>
    <string name="install_done" msgid="1522718684172097080">"Le credenziali di <xliff:g id="NAME">%1$s</xliff:g> sono state aggiunte alle reti Wi-Fi memorizzate"</string>
    <string name="done_label" msgid="5597425930652904250">"FINE"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Installa le credenziali Wi-Fi <xliff:g id="NAME">%1$s</xliff:g>."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Il file scaricato ha problemi e non può essere installato. Assicurati di aver scaricato il file dalla fonte corretta."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Impossibile installare le credenziali Wi-Fi. Prova a scaricare nuovamente il file."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Installazione annullata"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Impossibile installare"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Attiva Wi-Fi e riprova."</string>
</resources>
