<?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">"Sertifikaadi installija"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Sertifikaadi valimine"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Sertifikaadi ekstraktimine"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Ekstraktimine ..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Ekstraktimine %s-st"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Lisage sertifikaadile nimi"</string>
    <string name="credential_name" msgid="1974979771369744378">"Sertifikaadi nimi:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Sertifikaatide ekstraktimiseks sisestage parool."</string>
    <string name="credential_info" msgid="2436768402308470397">"Pakett sisaldab:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Sertifikaadid PKCS12 võtmete andmebaasis."</string>
    <string name="one_userkey" msgid="3500697912370644881">"üks kasutajavõti"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"üks kasutaja sertifikaat"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"üks CA-sertifikaat"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA sertifikaadid"</string>
    <string name="password_error" msgid="2042471639556516356">"Sisestage õige parool."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Sisestage parool."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Sisestage nimi."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Sisestage nimi, mis sisaldab ainult tähti ja numbreid."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Sertifikaati ei saanud salvestada. Mandaatide salvestus on keelatud või valesti lähtestatud."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Sertifikaat ei ole installitud."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Installitav sertifikaat puudub."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Sertifikaat on kehtetu."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> on installitud."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Ei saanud installida, sest sertifikaadi maht on liiga suur."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Ei saanud installida, sest sertifikaadi faili ei leitud."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Ei saanud installida, sest sertifikaadi fail pole loetav."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"USB-mäluseadmelt ei leitud sertifikaadifaili."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"SD-kaardilt ei leitud ühtegi sertifikaati."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-mäluseade pole saadaval"</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-kaarti pole."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Ainult seadme omanik võib installida sertifikaate."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Mandaadi kasutus:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN ja rakendused"</item>
    <item msgid="692322974985472861">"WiFi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Märkus. Selle sertifikaadi väljastaja võib kontrollida kogu selle seadme kaudu toimuvat liiklust."</string>
    <string name="wifi_title" msgid="8475811746333426489">"WiFi profiil"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Üksuse %s üksikasjad"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Üksikasjad"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Installi"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Installimine"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Tühista"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Loobu"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Puudub"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Nimi: %1$s\nFQDN: %2$s\nRoaming Consortiums: %3$s\nRealm: %4$s\nAutentimismeetod: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Kasutajanimi: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Kliendi sertifikaat:\n%1$s\nVõti: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM-kaart: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Usaldusväärne sertifikaat:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Installitud mandaat"</string>
    <string name="install_done" msgid="1522718684172097080">"Üksuse <xliff:g id="NAME">%1$s</xliff:g> mandaat on lisatud salvestatud WiFi-võrkudele."</string>
    <string name="done_label" msgid="5597425930652904250">"VALMIS"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Installige WiFi-mandaat, et üksuse <xliff:g id="NAME">%1$s</xliff:g> kaudu saadaolevate võrkudega ühendus luua."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Allalaaditud failiga on probleeme ja seda ei saa alla laadida. Veenduge, kas laadisite faili alla õigest allikast."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"WiFi-mandaati ei saa alla laadida. Proovige fail uuesti alla laadida."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Installimine tühistati"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Ei saa installida"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Lülitage WiFi sisse ja proovige uuesti."</string>
</resources>
