<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    Copyright (C) 2018 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="app_title" msgid="1995858460392177468">"Auto käivitusprogramm"</string>
    <string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Kõik rakendused"</string>
    <string name="app_launcher_title_media_only" msgid="4400886555907422816">"Meediarakendused"</string>
    <string name="driving_toast_text" msgid="149483091947120092">"Rakendust <xliff:g id="APP_NAME">%1$s</xliff:g> ei saa sõidu ajal kasutada."</string>
    <string name="tap_for_more_info_text" msgid="2043549383814415585">"Lisateabe saamiseks puudutage kaarti"</string>
    <string name="tap_to_launch_text" msgid="6910695705119260847">"Käivitamiseks puudutage kaarti"</string>
    <string name="ongoing_call_duration_text_separator" msgid="6019453854809413561">" • "</string>
    <string name="ongoing_call_text" msgid="2394626676478708070">"Käimasolev kõne"</string>
    <string name="dialing_call_text" msgid="415326503409745490">"Valimine …"</string>
    <string name="projected_launch_text" msgid="5809132353957907500">"Android Auto käivitamine"</string>
    <string name="projected_onclick_launch_error_toast_text" msgid="7462478007773137082">"Android Autot ei õnnestu käivitada. Ühtegi tegevust ei leitud."</string>
    <!-- no translation found for projection_devices (916314090031116598) -->
    <skip />
    <string name="weather_app_name" msgid="8048146303519139993">"Ilm"</string>
    <string name="fake_weather_main_text" msgid="8117240999340284429">"--° – enamasti päikeseline"</string>
    <string name="fake_weather_footer_text" msgid="4570172025869749926">"Mountain View • K: --° M: --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"Peida silumisrakendused"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"Kuva silumisrakendused"</string>
</resources>
