<?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">"Sertifika Yükleyicisi"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Sertifika seçin"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Sertifikayı çıkart"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Çıkarılıyor..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"%s dosyasından ayıkla"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Sertifikayı adlandırın"</string>
    <string name="credential_name" msgid="1974979771369744378">"Sertifika adı:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Sertifikaları çıkarmak için şifreyi yazın."</string>
    <string name="credential_info" msgid="2436768402308470397">"Paket şunları içeriyor:"</string>
    <string name="p12_description" msgid="4128352087331630024">"PKCS12 anahtar deposundaki sertifikalar."</string>
    <string name="one_userkey" msgid="3500697912370644881">"bir kullanıcı anahtarı"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"bir kullanıcı sertifikası"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"bir CA sertifikası"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA sertifikası"</string>
    <string name="password_error" msgid="2042471639556516356">"Doğru şifreyi yazın."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Şifreyi yazın."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Bir ad yazın."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Yalnızca harflerden ve rakamlardan oluşan bir ad yazın."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Sertifika kaydedilemedi. Kimlik bilgileri deposu etkinleştirilmemiş veya düzgün bir şekilde başlatılmamış."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Sertifika yüklenmedi."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Yüklenecek sertifika yok."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Sertifika geçersiz."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> yüklendi."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Sertifika boyutu çok büyük olduğundan yüklenemedi."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Sertifika dosyası bulunamadığından yüklenemedi."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Sertifika dosyası okunamadığından yüklenemedi."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"USB bellekte hiçbir sertifika dosyası bulunamadı."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"SD kartta hiçbir sertifika dosyası bulunamadı."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB bellek kullanılamıyor."</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD kart yok."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Sadece bu cihazın sahibi sertifikaları yükleyebilir."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Kimlik bilgisinin kullanımı:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN ve uygulamalar"</item>
    <item msgid="692322974985472861">"Kablosuz"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Not: Bu sertifikayı veren kuruluş bu cihaza gelen ve bu cihazdan giden tüm trafiği inceleyebilir."</string>
    <string name="wifi_title" msgid="8475811746333426489">"Kablosuz Ağ Profili"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"%s ayrıntıları"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Ayrıntılar"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Yükle"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Yükleniyor"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"İptal"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Kapat"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Yok"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Ad: %1$s\nTam Nitelikli Alan Adı: %2$s\nDolaşım Konsorsiyumları: %3$s\nYetki Alanı: %4$s\nKimlik doğrulama yöntemi: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Kullanıcı adı: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"İstemci sertifikası:\n%1$s\nAnahtar: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Güven sertifikası:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Kimlik bilgileri yüklendi"</string>
    <string name="install_done" msgid="1522718684172097080">"<xliff:g id="NAME">%1$s</xliff:g> kimlik bilgileri kayıtlı kablosuz ağlara eklendi."</string>
    <string name="done_label" msgid="5597425930652904250">"BİTTİ"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"<xliff:g id="NAME">%1$s</xliff:g> aracılığıyla kullanılabilen ağlara bağlanmak için kablosuz kimlik bilgilerini yükleyin."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"İndirilen dosyada sorunlar var ve yüklenemiyor. Dosyayı doğru kaynaktan indirdiğinizden emin olun."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Kablosuz kimlik bilgileri yüklenemiyor. Dosyayı tekrar indirmeyi deneyin."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Yükleme işlemi iptal edildi"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Yüklenemiyor"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Kablosuz bağlantıyı açın ve tekrar deneyin."</string>
</resources>
