<?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">"Mountain View • H: --° L: --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"デバッグアプリを表示しない"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"デバッグアプリを表示する"</string>
</resources>
