<?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">"Перне тізбектері"</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">"Сертификаттарды сыртқы жадта орналасқан %1$s немесе %2$s жалғаулы PKCS#12 файлынан орнатуға болады."</string>
    <string name="install_new_cert_button_label" msgid="903474285774077171">"Сертификатты орнату"</string>
    <string name="allow_button" msgid="3030990695030371561">"Таңдау"</string>
    <string name="deny_button" msgid="3766539809121892584">"Бас тарту"</string>
</resources>
