<?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="540508675168568249">"Pick a certificate"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Extract certificate"</string>
    <string name="extracting_pkcs12" msgid="5687649614233029807">"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="5251535810456146069">"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="1441470604400783036">"Please enter the correct password."</string>
    <string name="password_empty_error" msgid="5805075735548023047">"Please enter the password."</string>
    <string name="name_empty_error" msgid="7655653930227877414">"Please enter a name."</string>
    <string name="name_char_error" msgid="4674369917792581202">"Please enter a name that contains only letters and numbers."</string>
    <string name="storage_error" msgid="3375395655677579149">"Unable to save the certificate. Click OK to retry."</string>
    <string name="unable_to_save_cert" msgid="864273038676458624">"Unable to save the certificate. The credential storage is not enabled or properly initialised."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"The certificate is not installed."</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="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> is installed."</string>
    <string name="cert_too_large_error" msgid="8806716564341320607">"Installation failed. Certificate size is too large."</string>
    <string name="cert_missing_error" msgid="4220080091005628628">"Installation failed. Cannot locate the certificate file."</string>
    <string name="cert_read_error" msgid="9120813657318906215">"Installation failed. Cannot read the certificate file."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"No certificate file found in USB storage."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"No certificate file found on the SD card."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB storage not available."</string>
    <string name="sdcard_not_present" product="default" msgid="1567335300760018448">"SD card is not present."</string>
</resources>
