<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2014 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="sip_settings" msgid="3768482698061677257">"SIP postavke"</string>
    <string name="sip_accounts" msgid="85559497282185405">"SIP računi"</string>
    <string name="sip_accounts_title" msgid="2082527045326874519">"Računi"</string>
    <string name="sip_receive_calls" msgid="426678617137462173">"Primi dolazne pozive"</string>
    <string name="sip_receive_calls_summary" msgid="946161517528227523">"Troši više baterije"</string>
    <string name="sip_call_options_title" msgid="8421210494703869806">"Koristi SIP pozivanje"</string>
    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Koristi SIP pozivanje (samo Wi-Fi)"</string>
    <string name="sip_call_options_entry_1" msgid="7217659161237099900">"Za sve pozive kada je podatkovna mreža dostupna"</string>
    <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Samo za SIP pozive"</string>
    <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"Za sve pozive"</string>
    <string name="add_sip_account" msgid="800843669753980091">"Dodaj račun"</string>
    <string name="remove_sip_account" msgid="1367664438506503690">"Ukloni račun"</string>
    <string name="sip_account_list" msgid="5610858485304821480">"SIP računi"</string>
    <string name="saving_account" msgid="5336529880235177448">"Spremanje računa u toku…"</string>
    <string name="removing_account" msgid="5537351356808985756">"Račun se uklanja…"</string>
    <string name="sip_menu_save" msgid="7882219814563869225">"Sačuvaj"</string>
    <string name="sip_menu_discard" msgid="2350421645423888438">"Odbaci"</string>
    <string name="alert_dialog_close" msgid="1326011828713435134">"Zatvori profil"</string>
    <string name="alert_dialog_ok" msgid="4752048404605388940">"Uredu"</string>
    <string name="close_profile" msgid="3122414058856309881">"Zatvori"</string>
    <string name="registration_status_checking_status" msgid="6136793741862200337">"Provjera statusa u toku..."</string>
    <string name="registration_status_registering" msgid="2677183977796278749">"Registriranje u toku…"</string>
    <string name="registration_status_still_trying" msgid="7648151061205513458">"Još uvijek pokušavamo…"</string>
    <string name="registration_status_not_receiving" msgid="7620333886153361090">"Ne prima pozive."</string>
    <string name="registration_status_no_data" msgid="2541999976218192413">"Registracija računa je zaustavljena jer nema internet veze."</string>
    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Registracija računa je zaustavljena jer nema Wi-Fi veze."</string>
    <string name="registration_status_not_running" msgid="514205414303796800">"Registracija računa neuspješna."</string>
    <string name="registration_status_done" msgid="3264961069247314253">"Primanje poziva."</string>
    <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Registracija računa neuspješna: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); pokušat ćemo kasnije"</string>
    <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Registracija računa neuspješna: netačno korisničko ime ili lozinka."</string>
    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Registracija računa neuspješna: provjerite naziv servera."</string>
    <string name="third_party_account_summary" msgid="9041060473615403041">"Ovaj račun trenutno koristi aplikacija <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
    <string name="sip_edit_title" msgid="1967247832635750410">"Detalji o SIP računima"</string>
    <string name="sip_edit_new_title" msgid="266414118302574305">"Detalji o SIP računima"</string>
    <string name="domain_address_title" msgid="1968479941328225423">"Server"</string>
    <string name="username_title" msgid="6770064611005663470">"Korisničko ime"</string>
    <string name="password_title" msgid="5289013731515564295">"Lozinka"</string>
    <string name="display_name_title" msgid="579241787583079773">"Ime za prikaz"</string>
    <string name="proxy_address_title" msgid="6890163365640631841">"Odlazna proksi adresa"</string>
    <string name="port_title" msgid="6693965912656593862">"Broj priključka"</string>
    <string name="transport_title" msgid="889155457465372527">"Vrsta prijenosa"</string>
    <string name="send_keepalive_title" msgid="599627072150501159">"Pošalji keep-alive poruku"</string>
    <string name="advanced_settings" msgid="6622996380747040711">"Opcionalne postavke"</string>
    <string name="auth_username_title" msgid="8262491689004708265">"Korisničko ime za provjeru vjerodostojnosti"</string>
    <string name="auth_username_summary" msgid="941160241371436473">"Korisničko ime upotrijebljeno za provjeru vjerodostojnosti"</string>
    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nije postavljeno&gt;"</string>
    <string name="display_name_summary" msgid="7155076491675565407">"&lt;Isto kao korisničko ime&gt;"</string>
    <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcionalno&gt;"</string>
    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dodirnite da prikažete sve"</string>
    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Dodirnite da sakrijete sve"</string>
    <string name="all_empty_alert" msgid="4087734950375192387">"Unesite detalje novog SIP računa."</string>
    <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je obavezno polje i ne može biti prazno."</string>
    <string name="not_a_valid_port" msgid="7931422555587011830">"Broj priključka treba biti između 1000 i 65534."</string>
    <string name="no_internet_available" msgid="5523747991760017298">"Da uputite SIP poziv, prvo provjerite internet vezu."</string>
    <string name="no_wifi_available" msgid="1955023904229673488">"Trebate biti povezani na Wi-FI mrežu za SIP pozive (koristite postavke Bežično povezivanje i mreža)."</string>
    <string name="no_voip" msgid="3038021971231952704">"SIP pozivanje nije podržano"</string>
    <string name="sip_system_decide" msgid="5577696249416700671">"Automatski"</string>
    <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Uvijek pošalji"</string>
    <string name="sip_connection_service_label" msgid="6935325004265884453">"Ugrađeno SIP pozivanje"</string>
</resources>
