<?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">"Панель запуска для автомобиля"</string>
    <string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Все приложения"</string>
    <string name="app_launcher_title_media_only" msgid="4400886555907422816">"Мультимедийные приложения"</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>
    <!-- no translation found for projection_devices (916314090031116598) -->
    <skip />
    <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">"Маунтин-Вью • Макс. --°, мин. --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"Скрыть приложения для отладки"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"Показать приложения для отладки"</string>
</resources>
