<?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">"Mobiilne andmeside"</string>
    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefoniteenused"</string>
    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Hädaabikõne valija"</string>
    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-i loend"</string>
    <string name="simContacts_title" msgid="4391084959219666947">"Valige imporditavad kontaktid"</string>
    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-i/UMTS-i valikud"</string>
    <string name="cdma_options" msgid="4492063023149886710">"CDMA valikud"</string>
    <string name="call_settings" msgid="8152058602760531097">"Kõne seaded"</string>
    <string name="labelCF" msgid="2140733390678280443">"Kõne suunamine"</string>
    <string name="labelCallBarring" msgid="8300927675522420184">"Kõnede blokeerimine"</string>
    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-kõneseaded"</string>
    <string name="fdn" msgid="1080701466751913822">"Fikseeritud valimisnumbrid"</string>
    <string name="get_pin2" msgid="5519152040805796508">"Sisestage PIN2-kood"</string>
    <string name="delete_fdn_contact" msgid="4232462795352020296">"Kustuta fikseeritud valimisnumber"</string>
    <string name="enable_pin" msgid="5266421421847399987">"SIM-i PIN-koodi lubamine/keelamine"</string>
    <string name="change_pin" msgid="7219696137781706635">"Muuda SIM-kaardi PIN-koodi"</string>
    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Hõlbustus"</string>
    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
    <string name="sip_connection_service_label" msgid="6852349516774218961">"Sisseehitatud SIP-kõnede tegemine"</string>
    <string name="phone_accounts" msgid="6930293131442022860">"Kõnekontod"</string>
    <string name="voicemail" msgid="9083239047687566742">"Kõnepost"</string>
    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Sisseehitatud SIM-kaardid"</string>
    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Teave tahvelarvuti kohta"</string>
    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefoniteave"</string>
    <string name="band_mode_title" msgid="681256838654706936">"Raadio ribarežiimi määramine"</string>
</resources>
