<?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="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">"انقر على البطاقة لتشغيل Android Auto."</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{جهاز واحد (#)}zero{# جهاز}two{جهازان (#)}few{# أجهزة}many{# جهازًا}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">"مدينة القاهرة • درجة الحرارة الأعلى: --° الأدنى: --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"إخفاء تطبيقات تصحيح الأخطاء"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"إظهار تطبيقات تصحيح الأخطاء"</string>
</resources>
