<?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">"Numerio rinkiklis balsu"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Ar žinojote..."</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Paspaudus ir palaikius žalią mygtuką „Skambinti“, atsidaro numerio rinkiklis balsu."</string>
    <string name="examples" msgid="2100807337052050741">" Pavyzdžiai: "<b>" "\n"„Skambinti Vardeniui Pavardeniui“ "\n"„Skambinti Vardeniui Pavardeniui namų numeriu, …“ "\n"„Skambinti į balso paštą“ "\n"„Rinkti (866) 555 0123“ "\n"„Rinkti 911, 811, …“ "\n"„Rinkti +44 7333 444 555“ "\n"„Rinkti iš naujo“ "\n"„Atidaryti kalendorių“ "</b></string>
    <string name="title" msgid="60788431860720964">"Numerio rinkiklis balsu"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"„Bluetooth“ numerio rinkiklis balsu"</string>
    <string name="initializing" msgid="3146934028021025628">"Paleidžiama."</string>
    <string name="listening" msgid="6886486282595802147">"Klausoma..."</string>
    <string name="please_try_again" msgid="1427744152996396950">"Bandykite dar kartą."</string>
    <string name="failure" msgid="3985785889820564626">"Triktis"</string>
    <string name="recognition_error" msgid="1807947152844267364">"Taip pat galite pabandyti paleisti telefoną iš naujo."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"Prarastas ryšys su ausinėmis."</string>
    <string name="at_home" msgid="8478880812967663328">" namų numeriu"</string>
    <string name="on_mobile" msgid="5739841127369724804">" mobiliojo telefono numeriu"</string>
    <string name="at_work" msgid="2946111016850670818">" darbo telefonu"</string>
    <string name="at_other" msgid="1863773841760953063">" kitu numeriu"</string>
    <string name="logging_enabled" msgid="8702018587287436548">"Numerio rinkiklis balsu įgalintas."</string>
    <string name="logging_disabled" msgid="5992352601321824322">"Numerio rinkiklio balsu prisijungimas išjungtas."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Kalbėkite dabar."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Nėra rezultatų, bandykite dar kartą."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Neteisingas pasirinkimas."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Viso gero."</string>
</resources>
