<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2015 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="phone_app_name" msgid="238824437273544459">"Telefon"</string>
    <string name="no_hfp" msgid="7371139867234667691">"Telefonikõne tegemiseks ühendage esmalt Bluetoothi kaudu oma telefon autoga."</string>
    <string name="bluetooth_unavailable" msgid="5258854283739591569">"Bluetooth ei ole saadaval."</string>
    <string name="bluetooth_disabled" msgid="1275246762067907843">"Helistamiseks või kõnede vastuvõtmiseks lülitage Bluetooth sisse."</string>
    <string name="bluetooth_unpaired" msgid="1600552386483652892">"Helistamiseks või kõnede vastuvõtmiseks siduge oma telefon autoga."</string>
    <string name="connect_bluetooth_button_text" msgid="293188695227298042">"Ühenda Bluetoothiga"</string>
    <string name="emergency_button_text" msgid="3467659545392931727">"Hädaabi"</string>
    <string name="emergency_call_description" msgid="6700161437750325693">"Hädaabikõne"</string>
    <string name="error_contact_deleted" msgid="6356539067659368396">"See kontakt võib olla kustutatud."</string>
    <string name="error_invalid_phone_number" msgid="5349049631580646136">"Seda numbrit ei saa valida. Kontrollige seda ja proovige uuesti."</string>
    <string name="error_telephony_not_available" msgid="8715829862083386178">"Helistamine ei ole saadaval. Proovige hiljem uuesti."</string>
    <string name="decline_call" msgid="2505987200485272226">"Keeldu"</string>
    <string name="answer_call" msgid="3272474440561548115">"Vasta"</string>
    <string name="call_back" msgid="5745638356098600872">"Helista tagasi"</string>
    <string name="audio_route_vehicle" msgid="6274519162997743620">"Sõiduki Bluetooth"</string>
    <string name="audio_route_phone_speaker" msgid="407520293892557697">"Valjuhääldi"</string>
    <string name="audio_route_handset" msgid="1100259514278439355">"Käsitelefon"</string>
    <string name="dial_a_number" msgid="7432322177412387160">"Vali number"</string>
    <string name="favorites_title" msgid="4767723901530488145">"Lemmikud"</string>
    <string name="call_history_title" msgid="1495905524218923242">"Kõneajalugu"</string>
    <string name="contacts_title" msgid="9201954388634537346">"Kontaktid"</string>
    <string name="dialpad_title" msgid="3746259645005208554">"Valimisklahvistik"</string>
    <string name="call_log_header_today" msgid="2069013936632793214">"Täna"</string>
    <string name="call_log_header_yesterday" msgid="4613686845163357847">"Eile"</string>
    <string name="call_log_header_older" msgid="3971634717537073179">"Vanemad"</string>
    <string name="add_favorite_button" msgid="7914955940249767808">"Lisa lemmik"</string>
    <string name="favorites_empty" msgid="6712416359691979975">"Te ei ole veel lemmikuid lisanud"</string>
    <string name="search_title" msgid="5412680850141871664">"Otsige kontakte"</string>
    <string name="search_hint" msgid="3099066132607042439">"Otsige kontakte"</string>
    <string name="type_multiple" msgid="3402949522797441236">"Mitu"</string>
    <string name="select_number_dialog_title" msgid="5770700626013782205">"Telefoninumbri valimine"</string>
    <string name="select_number_dialog_just_once_button" msgid="1814381354393374660">"Ainult üks kord"</string>
    <string name="select_number_dialog_always_button" msgid="6862338683635863764">"Alati"</string>
    <string name="primary_number_description" msgid="7428950659304219592">"<xliff:g id="LABEL">%1$s</xliff:g> – vaikeseade"</string>
    <string name="favorite_number_description" msgid="6490014728613395653">"<xliff:g id="LABEL">%1$s</xliff:g>  – lemmik"</string>
    <string name="in_call_notification_channel_name" msgid="1978093630512401778">"Sissetuleva kõne märguanne"</string>
    <string name="notification_incoming_call" msgid="1722904631804432389">"Sissetulev kõne"</string>
    <string name="missed_call_notification_channel_name" msgid="1135686963409691772">"Vastamata kõne märguanne"</string>
    <string name="notification_missed_call" msgid="7127823385811396529">"Vastamata kõne"</string>
    <string name="onhold_call_label" msgid="1937027519810985499">"Ootel"</string>
    <string name="setting_title" msgid="1296639422364732365">"Seaded"</string>
    <string name="pref_start_page_title" msgid="1953465507368478503">"Avakuva"</string>
    <string name="sort_order_title" msgid="975104366728292702">"Kontaktide järjestus"</string>
    <string name="given_name_first_title" msgid="8072187841056104968">"Eesnimi"</string>
    <string name="family_name_first_title" msgid="7721976826282427987">"Perekonnanimi"</string>
</resources>
