<?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">"Izdvoji certifikat"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Izdvajanje..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Izdvoji iz %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Imenovanje certifikata"</string>
    <string name="credential_name" msgid="1974979771369744378">"Ime certifikata:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Unesite lozinku za izdvajanje certifikata."</string>
    <string name="credential_info" msgid="2436768402308470397">"Paket sadrži:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Certifikati u bazi ključeva PKCS12."</string>
    <string name="one_userkey" msgid="3500697912370644881">"jedan korisnički ključ"</string>
    <string name="userkey_type" msgid="6214833257030657106">"Algoritam:"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"jedan korisnički certifikat"</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 lozinku."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Unesite lozinku."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Unesite ime."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Unesite ime koje sadrži samo slova i brojeve."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Certifikat nije spremljen. Pohranjivanje akreditiva nije omogućeno niti 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="action_missing_private_key" msgid="7543470057312920042">"Za instaliranje certifikata potreban je privatni ključ"</string>
    <string name="action_missing_user_cert" msgid="3727411730202316771">"Za instalaciju privatnog ključa potrebna je potvrda"</string>
    <string name="cert_is_added" msgid="6996557598167000500">"Certifikat <xliff:g id="CREDENTIAL">%s</xliff:g> je instaliran."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Instalacija je prekinuta jer je certifikat prevelik."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Instalacija je prekinuta jer fajl u kojem je pohranjen certifikat nije pronađen."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Instalacija je prekinuta jer fajl u kojem je pohranjen certifikat nije očitan."</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 akreditiva:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN i aplikacije"</item>
    <item msgid="692322974985472861">"WiFi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Napomena: izdavač ove potvrde može pregledati sav promet koji se vrši preko uređaja."</string>
    <string name="wifi_title" msgid="8475811746333426489">"WiFi profil"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Detalji za mrežu %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Detalji"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Instaliraj"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Instalira se"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Otkaži"</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">"Ime: %1$s\nPuno ime domene: %2$s\nKonzorcijumi za roming: %3$s\nImenovana oblast: %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">"Pouzdani certifikat:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Akreditivi su instalirani"</string>
    <string name="install_done" msgid="1522718684172097080">"Akreditivi za <xliff:g id="NAME">%1$s</xliff:g> su dodani na sačuvane WiFi mreže."</string>
    <string name="done_label" msgid="5597425930652904250">"GOTOVO"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Instalirajte akreditive za WiFi da se povežete sa mrežama dostupnim preko <xliff:g id="NAME">%1$s</xliff:g>."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Postoje problemi u preuzetom fajlu i ne može se instalirati. Provjerite da li ste preuzeli fajl iz ispravnog izvora."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Nije uspjelo instaliranje WiFi akreditiva. Pokušajte ponovo preuzeti fajl."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Instalacija je otkazana"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Instaliranje nije uspjelo"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Uključite WiFi i pokušajte ponovo."</string>
</resources>
