<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2019 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="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Data ya mtandao wa simu"</string>
    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Huduma za Simu"</string>
    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Kipiga Simu za Dhararu"</string>
    <string name="fdnListLabel" msgid="5034563979654950274">"Orodha ya FDN"</string>
    <string name="simContacts_title" msgid="4391084959219666947">"Chagua anwani za kuleta"</string>
    <string name="gsm_umts_options" msgid="1113500053403490666">"Chaguo za GSM/UMTS"</string>
    <string name="cdma_options" msgid="4492063023149886710">"Chaguo za CDMA"</string>
    <string name="call_settings" msgid="8152058602760531097">"Mipangilio ya simu"</string>
    <string name="labelCF" msgid="2140733390678280443">"Kusambaza simu"</string>
    <string name="labelCallBarring" msgid="8300927675522420184">"Kuzuia upigaji simu"</string>
    <string name="labelGSMMore" msgid="4048734049263392253">"Mipangilio ya simu ya GSM"</string>
    <string name="fdn" msgid="1080701466751913822">"Nambari za Simu Zilizobainishwa"</string>
    <string name="get_pin2" msgid="5519152040805796508">"Andika PIN2"</string>
    <string name="delete_fdn_contact" msgid="4232462795352020296">"Futa nambari ya simu iliyobainishwa"</string>
    <string name="enable_pin" msgid="5266421421847399987">"Wezesha/zima PIN ya SIM"</string>
    <string name="change_pin" msgid="7219696137781706635">"Badilisha PIN ya SIM"</string>
    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Ufikivu"</string>
    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
    <string name="sip_connection_service_label" msgid="6852349516774218961">"Upigaji simu wa SIP uliojengewa ndani ya kifaa"</string>
    <string name="phone_accounts" msgid="6930293131442022860">"Akaunti za simu"</string>
    <string name="voicemail" msgid="9083239047687566742">"Ujumbe wa sauti"</string>
    <string name="pstn_connection_service_label" msgid="8160589738201280253">"SIM kadi zilizojengewa ndani"</string>
    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Maelezo kuhusu kompyuta kibao"</string>
    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Maelezo ya simu"</string>
    <string name="band_mode_title" msgid="681256838654706936">"Weka Hali ya Bendi ya Redio"</string>
</resources>
