<?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">"Alat za instaliranje certifikata"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Odaberite certifikat"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Izdvajanje certifikata"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Izdvajanje..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Izdvojeno iz značajke %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Naziv certifikata"</string>
    <string name="credential_name" msgid="1974979771369744378">"Naziv certifikata:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Unesite zaporku za izdvajanje certifikata."</string>
    <string name="credential_info" msgid="2436768402308470397">"Paket sadrži:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Certifikat za bazu ključeva PKCS12."</string>
    <string name="one_userkey" msgid="3500697912370644881">"tipka jednog korisnika"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"certifikat jednog korisnika"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"jedan CA certifikat"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA certifikati"</string>
    <string name="password_error" msgid="2042471639556516356">"Unesite ispravnu zaporku."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Unesite zaporku."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Unesite naziv."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Upišite naziv koji sadrži samo slova i brojeve."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Nije moguće spremiti certifikat. Pohranjivanje vjerodajnica nije omogućeno ili nije ispravno pokrenuto."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Certifikat nije instaliran."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Nema certifikata za instalaciju."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Certifikat je nevažeći."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> je instaliran."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Nije moguće instalirati jer je certifikat prevelik."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Nije moguće instalirati jer nije bilo moguće locirati datoteku certifikata."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Nije moguće instalirati jer nije bilo moguće pročitati datoteku certifikata."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"Na USB memoriji nije pronađena datoteka certifikata."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"Na SD kartici nije moguće pronaći datoteku certifikata."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Memorija USB nije dostupna."</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD kartica nije priključena."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Samo vlasnik ovog uređaja može instalirati certifikate."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Upotreba vjerodajnice:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN i aplikacije"</item>
    <item msgid="692322974985472861">"Wi-Fi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Napomena: izdavatelj tog certifikata može pregledavati sav promet upućen s uređaja i na uređaj."</string>
    <string name="wifi_title" msgid="8475811746333426489">"Profil Wi-Fi-ja"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Pojedinosti za %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Pojedinosti"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Instaliraj"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Instaliranje"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Odustani"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Odbaci"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Ništa"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Naziv: %1$s\nFQDN: %2$s\nUdruženja za roaming: %3$s\nPodručje: %4$s\nMetoda autentifikacije: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Korisničko ime: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Certifikat klijenta:\n%1$s\nKljuč: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Certifikat pouzdanosti:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Vjerodajnice su instalirane"</string>
    <string name="install_done" msgid="1522718684172097080">"<xliff:g id="NAME">%1$s</xliff:g> vjerodajnice dodane su u spremljene Wi-Fi mreže."</string>
    <string name="done_label" msgid="5597425930652904250">"GOTOVO"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Instalirajte vjerodajnice Wi-Fi-ja da biste se povezivali s mrežama dostupnim putem <xliff:g id="NAME">%1$s</xliff:g>."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Na preuzetoj datoteci ima problema, pa je nije moguće instalirati. Provjerite jeste li preuzeli datoteku iz točnog izvora."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Instaliranje vjerodajnica Wi-Fi-ja nije uspjelo. Ponovo pokušajte preuzeti datoteku."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Instalacija otkazana"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Instaliranje nije moguće"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Uključite Wi-Fi i pokušajte ponovo."</string>
</resources>
