<?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">"Kisakinishaji Cheti"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Chagua cheti"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Chopoa cheti"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Inadondoa..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Chopoa kutoka kwa %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Jina lililo kwenye cheti"</string>
    <string name="credential_name" msgid="1974979771369744378">"Jina la cheti:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Chapisha nenosiri ili kudondoa vyeti."</string>
    <string name="credential_info" msgid="2436768402308470397">"Furushi lina:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Vyeti katika hifadhi-vitufe ya PKCS12."</string>
    <string name="one_userkey" msgid="3500697912370644881">"ufunguo wa mtumiaji mmoja"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"cheti cha mtumiaji mmoja"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"Cheti kimoja cha CA"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"Vyeti vya %d CA"</string>
    <string name="password_error" msgid="2042471639556516356">"Chapa nenosiri sahihi."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Chapa nenosiri."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Chapa jina."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Chapisha jina ambalo lina herufi na nambari tu."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Haikuweza kuhifadhi cheti. Hifadhi ya hati haijawezeshwa au haijaanzilishwa vizuri."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Cheti hakijasakinishwa."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Hakuna cheti cha kusakinisha."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Cheti ni batili."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> imesakinishwa."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Haikuweza kusakinisha kwa sababu cheti ni kikubwa mno."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Haikuweza kusakinisha kwa sababu faili ya cheti haikupatikana."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Haikuweza kusakinisha kwa sababu faili ya cheti haikuweza kusomwa."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"Hakuna faili ya cheti iliyopatikana katika hifadhi ya USB."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"Hakuni faili ya cheti iliyopatikana kwenye kadi ya SD."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Hifadhi ya USB haipatikani."</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Kadi ya SD haipo."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Mmiliki wa kifaa hiki tu ndiye awezaye kusakinisha vyeti."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Matumizi ya kitambulisho:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN na programu"</item>
    <item msgid="692322974985472861">"Wi-Fi"</item>
  </string-array>
    <string name="wifi_title" msgid="8475811746333426489">"Wasifu wa Wi-Fi"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Maelezo ya %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Maelezo"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Sakinisha"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Inasakinisha"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Ghairi"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Ondoa"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Hamna"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Jina: %1$s\nFQDN: %2$s\nUbia wa Mashirika ya Watoa Huduma: %3$s\nEneo: %4$s\nMbinu ya uthibitishaji: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Jina la mtumiaji: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Cheti cha kiteja:\n%1$s\nMsimbo: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Cheti unachokiamini:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Kitambulisho kimesakinishwa"</string>
    <string name="install_done" msgid="1522718684172097080">"Kitambulisho cha <xliff:g id="NAME">%1$s</xliff:g> kimeongezwa kwenye mitandao iliyohifadhiwa ya Wi-Fi."</string>
    <string name="done_label" msgid="5597425930652904250">"NIMEMALIZA"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Sakinisha kitambulisho cha Wi-Fi ili uunganishe kwenye mitandao inayopatikana kupitia <xliff:g id="NAME">%1$s</xliff:g>."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Faili iliyopakuliwa ina matatizo na haiwezi kusakinishwa. Hakikisha kuwa ulipakua faili hiyo kutoka chanzo sahihi."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Haiwezi kusakinisha kitambulisho cha Wi-Fi. Jaribu kupakua faili tena."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Usakinishaji umeghairiwa"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Haiwezi kusakinisha"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Washa Wi-Fi kisha ujaribu tena."</string>
</resources>
