<?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">"Selector para vehículos"</string>
    <string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Todas las apps"</string>
    <string name="app_launcher_title_media_only" msgid="4400886555907422816">"Apps multimedia"</string>
    <string name="driving_toast_text" msgid="149483091947120092">"No puedes usar <xliff:g id="APP_NAME">%1$s</xliff:g> mientras conduces."</string>
    <string name="tap_for_more_info_text" msgid="2043549383814415585">"Presiona la tarjeta para obtener más información"</string>
    <string name="tap_to_launch_text" msgid="6910695705119260847">"Presiona la tarjeta para iniciar"</string>
    <string name="ongoing_call_duration_text_separator" msgid="6019453854809413561">" • "</string>
    <string name="ongoing_call_text" msgid="2394626676478708070">"Llamada en curso"</string>
    <string name="dialing_call_text" msgid="415326503409745490">"Marcando…"</string>
    <string name="projected_launch_text" msgid="5809132353957907500">"Iniciar Android Auto"</string>
    <string name="projected_onclick_launch_error_toast_text" msgid="7462478007773137082">"No se puede iniciar Android Auto. No se encontró ninguna actividad."</string>
    <!-- no translation found for projection_devices (916314090031116598) -->
    <skip />
    <string name="weather_app_name" msgid="8048146303519139993">"Tiempo"</string>
    <string name="fake_weather_main_text" msgid="8117240999340284429">"--° Mayormente soleado"</string>
    <string name="fake_weather_footer_text" msgid="4570172025869749926">"Mountain View • M: --° M: --°"</string>
    <string name="hide_debug_apps" msgid="6128313544379622475">"Ocultar apps de depuración"</string>
    <string name="show_debug_apps" msgid="4521073121286325786">"Mostrar apps de depuración"</string>
</resources>
