<?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:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name" msgid="170210454004696382">"Key Chain"</string>
    <string name="title_no_certs" msgid="8350009443064722873">"Няма намерени сертификати"</string>
    <string name="title_select_cert" msgid="3588447616418041699">"Избор на сертификат"</string>
    <string name="requesting_application" msgid="1589142627467598421">"Приложението %s поиска сертификат. Избирането на такъв ще му разреши да използва тази самоличност със сървърите сега и в бъдеще."</string>
    <string name="requesting_server" msgid="5832565605998634370">"Приложението идентифицира искащия сървър като %s, но трябва да дадете на приложението достъп до сертификата само ако му имате доверие."</string>
    <string name="install_new_cert_message" msgid="4451971501142085495">"Можете да инсталирате сертификати от файл с формат PKCS#12 с разширение %1$s или %2$s, намиращ се във външното хранилище."</string>
    <string name="install_new_cert_button_label" msgid="510732745267546907">"Инсталиране"</string>
    <string name="allow_button" msgid="5340501035618157678">"Разрешаване"</string>
    <string name="deny_button" msgid="3766539809121892584">"Отказ"</string>
</resources>
