<?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">"Avtomobil uchun launcher"</string>
    <string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Barcha ilovalar"</string>
    <string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media ilovalari"</string>
    <string name="default_media_song_title" msgid="2970305231647817808"></string>
    <string name="driving_toast_text" msgid="149483091947120092">"Avtomobil rejimida <xliff:g id="APP_NAME">%1$s</xliff:g> ishlamaydi."</string>
    <string name="tap_for_more_info_text" msgid="2043549383814415585">"Batafsil axborot olish uchun bildirgi ustiga bosing"</string>
    <string name="tap_to_launch_text" msgid="6910695705119260847">"Ishga tushirish uchun bildirgi ustiga bosing"</string>
    <string name="ongoing_call_duration_text_separator" msgid="6019453854809413561">" • "</string>
    <string name="ongoing_call_text" msgid="2394626676478708070">"Joriy chaqiruv"</string>
    <string name="dialing_call_text" msgid="415326503409745490">"Raqam terilmoqda…"</string>
    <string name="projected_launch_text" msgid="5809132353957907500">"Android Auto xizmatini ishga tushirish"</string>
    <string name="projected_onclick_launch_error_toast_text" msgid="7462478007773137082">"Android Auto ishga tushmadi. Hech qanday harakat topilmadi."</string>
    <string name="projection_devices" msgid="916314090031116598">"{count,plural, =1{# ta qurilma}other{# ta qurilma}}"</string>
    <string name="weather_app_name" msgid="8048146303519139993">"Ob-havo"</string>
    <string name="fake_weather_main_text" msgid="8117240999340284429">"--° Asosan quyoshli"</string>
    <string name="fake_weather_footer_text" msgid="4570172025869749926">"Mountain View • Maks: --° Min: --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"Nosozliklarni aniqlash ilovalarini berkitish"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"Nosozliklarni aniqlash ilovalarini chiqarish"</string>
</resources>
