<?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="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">"山景城 • H: --° L: --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"隱藏偵錯應用程式"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"顯示偵錯應用程式"</string>
</resources>
