<?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">"Car Launcher"</string>
    <string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Барлық қолданба"</string>
    <string name="app_launcher_title_media_only" msgid="4400886555907422816">"Мультимедиа қолданбалары"</string>
    <string name="default_media_song_title" msgid="2970305231647817808"></string>
    <string name="driving_toast_text" msgid="149483091947120092">"Көлік жүргізгенде <xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасын пайдалануға болмайды."</string>
    <string name="tap_for_more_info_text" msgid="2043549383814415585">"Қосымша ақпарат алу үшін картаны түртіңіз."</string>
    <string name="tap_to_launch_text" msgid="6910695705119260847">"Іске қосу үшін картаны түртіңіз."</string>
    <string name="ongoing_call_duration_text_separator" msgid="6019453854809413561">" • "</string>
    <string name="ongoing_call_text" msgid="2394626676478708070">"Ағымдағы қоңырау"</string>
    <string name="dialing_call_text" msgid="415326503409745490">"Терілуде…"</string>
    <string name="projected_launch_text" msgid="5809132353957907500">"Android Auto қолданбасын іске қосу"</string>
    <string name="projected_onclick_launch_error_toast_text" msgid="7462478007773137082">"Android Auto қолданбасы іске қосылмады. Ешқандай әрекет табылмады."</string>
    <string name="projection_devices" msgid="916314090031116598">"{count,plural, =1{# құрылғы}other{# құрылғы}}"</string>
    <string name="weather_app_name" msgid="8048146303519139993">"Ауа райы"</string>
    <string name="fake_weather_main_text" msgid="8117240999340284429">"--° көбінесе күн ашық"</string>
    <string name="fake_weather_footer_text" msgid="4570172025869749926">"Mountain View • H: --° L: --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"Түзету қолданбаларын жасыру"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"Түзету қолданбаларын көрсету"</string>
</resources>
