<?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">"Piga kwa Kutamka"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Ulijua kuwa..."</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Kubonyeza &amp; kushikilia kitufe cha kijani cha Kupiga simu hufungua Kipigaji simu ya Sauti."</string>
    <string name="examples" msgid="2100807337052050741">" Mifano: "<b>" "\n"\"Pigia simu John Doe\" "\n"\"Pigia John Doe simu akiwa nyumbani, …\" "\n"\"Piga simu ya barua ya sauti\" "\n"\"Piga (866) 555 0123\" "\n"\"Piga 911, 811, …\" "\n"\"Piga +44 7333 444 555\" "\n"\"Piga tena\" "\n"\"Fungua Kalenda\" "</b></string>
    <string name="title" msgid="60788431860720964">"Kipiga simu ya Sauti"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Kipigaji cha Sauti cha Blurtooth"</string>
    <string name="initializing" msgid="3146934028021025628">"Inaanza."</string>
    <string name="listening" msgid="6886486282595802147">"Inasikiliza..."</string>
    <string name="please_try_again" msgid="1427744152996396950">"Tafadhali jaribu tena."</string>
    <string name="failure" msgid="3985785889820564626">"Shindikana"</string>
    <string name="recognition_error" msgid="1807947152844267364">"Unaweza pia kujaribu kuanzisha upya simu yako."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"Muunganisho wa kipaza sauti cha kichwa umepotea."</string>
    <string name="at_home" msgid="8478880812967663328">" nyumbani"</string>
    <string name="on_mobile" msgid="5739841127369724804">" kwenye simu ya mkononi"</string>
    <string name="at_work" msgid="2946111016850670818">" kazini"</string>
    <string name="at_other" msgid="1863773841760953063">" kwa nyingine"</string>
    <string name="logging_enabled" msgid="8702018587287436548">"Kuingia kwa kipiga simu cha sauti kimewezeshwa"</string>
    <string name="logging_disabled" msgid="5992352601321824322">"Kuingia kwa kipiga simu cha sauti kimelemazwa"</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Zungumza sasa."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Hakuna matokeo, jaribu tena."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Chaguo batili."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Kwaheri."</string>
</resources>
