<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2006 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="voiceDialer" msgid="5948204210436590941">"Glasovno biranje"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Jeste li znali…"</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Ako pritisnete i držite zelenu tipku za pozivanje otvorit ćete Glasovno biranje."</string>
    <string name="examples" msgid="2100807337052050741">" Primjeri: "<b>" "\n"\"Nazovi Ivana Ivića\" "\n"\"Nazovi Ivana Ivića kod kuće, …\" "\n"\"Nazovi govornu poštu\" "\n"\"Biraj (866) 555 0123\" "\n"\"Biraj 911, 811, …\" "\n"\"Biraj +44 7333 444 555\" "\n"\"Ponovno biraj\" "\n"\"Otvori kalendar\" "</b></string>
    <string name="title" msgid="60788431860720964">"Glasovno biranje"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Bluetooth Glasovno biranje"</string>
    <string name="initializing" msgid="1455696989718692334">"Pokretanje..."</string>
    <string name="listening" msgid="6886486282595802147">"Slušanje..."</string>
    <string name="please_try_again" msgid="6612157920739645345">"Pokušajte ponovo."</string>
    <string name="failure" msgid="4363633038755445209">"Pokretanje nije moguće"</string>
    <string name="recognition_error" msgid="6171111971593859630">"Ponovo pokrenite telefon pa pokušajte ponovo."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"Veza sa slušalicama je izgubljena."</string>
    <string name="at_home" msgid="8478880812967663328">" kod kuće"</string>
    <string name="on_mobile" msgid="5739841127369724804">" na mobitel"</string>
    <string name="at_work" msgid="2946111016850670818">" na posao"</string>
    <string name="at_other" msgid="1863773841760953063">" drugdje"</string>
    <string name="logging_enabled" msgid="1797105104286961324">"Uključena je prijava za Glasovno biranje."</string>
    <string name="logging_disabled" msgid="5851271054900000063">"Isključena je prijava za Glasovno biranje."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Govorite sad."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Nema rezultata, pokušajte ponovo."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Nevažeći izbor."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Zbogom."</string>
</resources>
