<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2011 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name">Key Chain</string>

    <!-- Dialog title when no certificates were found -->
    <string name="title_no_certs">No certificates found</string>

    <!-- Dialog title when at least one certificate was found -->
    <string name="title_select_cert">Choose certificate</string>

    <!-- Used at top of dialog to identify requesting application -->
    <string name="requesting_application">The app %s has requested a certificate. Choosing a certificate will let the app use this identity with servers now and in the future.</string>

    <!-- Used at top of dialog to identify requesting server (may be host:port or just host)-->
    <string name="requesting_server">The app has identified the requesting server as %s, but you should only give the app access to the certificate if you trust the app.</string>

    <!-- Label of button to send the user to the CertInstaller to install a certificate (arguments are constants for .pfx and .p12) -->
    <string name="install_new_cert_message">You can install certificates from a PKCS#12 file with a %1$s or a %2$s extension located in external storage.</string>

    <!-- Label of button to send the user to the CertInstaller to install a certificate -->
    <string name="install_new_cert_button_label">Install</string>

    <!-- Label of button to send the allow the application certificate request -->
    <string name="allow_button">Allow</string>

    <!-- Label of button to send the deny the application certificate request -->
    <string name="deny_button">Deny</string>

</resources>
