<?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">"Certificate Installer"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Choose a certificate"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Extract certificate"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Extracting..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Extract from %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Name the certificate"</string>
    <string name="credential_name" msgid="1974979771369744378">"Certificate name:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Enter the password to extract the certificates."</string>
    <string name="credential_info" msgid="2436768402308470397">"The package contains:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Certificates in PKCS12 keystore."</string>
    <string name="one_userkey" msgid="3500697912370644881">"one user key"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"one user certificate"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"one CA certificate"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA certificates"</string>
    <string name="password_error" msgid="2042471639556516356">"Type the correct password."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Type the password."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Type a name."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Type a name that contains only letters and numbers."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Couldn\'t save the certificate. The credential storage isn\'t enabled or properly initialised."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Failed to install certificate."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"No certificate to install."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"The certificate is invalid."</string>
    <string name="action_missing_private_key" msgid="7543470057312920042">"Private key required to install a certificate"</string>
    <string name="action_missing_user_cert" msgid="3727411730202316771">"Certificate required to install a private key"</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> is installed."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Couldn\'t install because the certificate size is too large."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Couldn\'t install because the certificate file couldn\'t be located."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Couldn\'t install because the certificate file couldn\'t be read."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Only the owner of this device may install certificates."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Credential use:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN and apps"</item>
    <item msgid="692322974985472861">"Wi-Fi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Note: The issuer of this certificate may inspect all traffic to and from the device."</string>
    <string name="wifi_title" msgid="8475811746333426489">"Wi-Fi Profile"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Details for %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Details"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Install"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Installing"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Cancel"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Dismiss"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"None"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Name: %1$s\nFQDN: %2$s\nRoaming Consortiums: %3$s\nRealm: %4$s\nAuth method: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"User name: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Client certificate:\n%1$s\nKey: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Trust certificate:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Credentials installed"</string>
    <string name="install_done" msgid="1522718684172097080">"<xliff:g id="NAME">%1$s</xliff:g> credentials have been added to Wi-Fi saved networks."</string>
    <string name="done_label" msgid="5597425930652904250">"DONE"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Install Wi-Fi credentials to connect to networks available via <xliff:g id="NAME">%1$s</xliff:g>."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Downloaded file has problems and can\'t be installed. Make sure that you have downloaded the file from the correct source."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Can\'t install Wi-Fi credentials. Try downloading the file again."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Installation cancelled"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Can\'t install"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Turn on Wi-Fi and try again."</string>
</resources>
