<?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">"Glasovni klicalnik"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Ste vedeli ..."</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Glasovni klicalnik odprete tako, da pritisnete in držite zeleni gumb »Pokliči«."</string>
    <string name="examples" msgid="2100807337052050741">" Primeri: "<b>" "\n"»Pokliči Janeza Kovača« "\n"»Pokliči Janeza Kovača domov …« "\n"»Pokliči tajnico« "\n"»Pokliči (866) 555 0123« "\n"»Pokliči 911, 811 …« "\n"»Pokliči +44 7333 444 555« "\n"»Pokliči isto številko« "\n"»Odpri koledar« "</b></string>
    <string name="title" msgid="60788431860720964">"Glasovni klicalnik"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Bluetoothov glasovni klicalnik"</string>
    <string name="initializing" msgid="3146934028021025628">"Se pripravlja."</string>
    <string name="listening" msgid="6886486282595802147">"Poslušanje ..."</string>
    <string name="please_try_again" msgid="1427744152996396950">"Poskusite znova."</string>
    <string name="failure" msgid="3985785889820564626">"Napaka"</string>
    <string name="recognition_error" msgid="1807947152844267364">"Poskusite lahko tudi z vnovičnim vklopom telefona."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"Povezava s slušalkami z mikrofonom je prekinjena."</string>
    <string name="at_home" msgid="8478880812967663328">" doma"</string>
    <string name="on_mobile" msgid="5739841127369724804">" na mobilnem telefonu"</string>
    <string name="at_work" msgid="2946111016850670818">" v službi"</string>
    <string name="at_other" msgid="1863773841760953063">" drugje"</string>
    <string name="logging_enabled" msgid="8702018587287436548">"Prijava z glasovnim klicalnikom je omogočena."</string>
    <string name="logging_disabled" msgid="5992352601321824322">"Prijava z glasovnim klicalnikom je onemogočena."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Začnite govoriti."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Ni rezultatov, poskusite znova."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Neveljavna izbira."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Nasvidenje."</string>
</resources>
