<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2015 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="phone_app_name" msgid="238824437273544459">"Teléfono"</string>
    <string name="no_hfp" msgid="7371139867234667691">"Para completar a chamada, primeiro conecta o teléfono ao coche por Bluetooth."</string>
    <string name="bluetooth_unavailable" msgid="5258854283739591569">"O Bluetooth non está dispoñible."</string>
    <string name="bluetooth_disabled" msgid="1275246762067907843">"Para facer ou recibir chamadas, activa o Bluetooth."</string>
    <string name="bluetooth_unpaired" msgid="1600552386483652892">"Para facer ou recibir chamadas, vincula o teléfono co coche."</string>
    <string name="connect_bluetooth_button_text" msgid="293188695227298042">"Conectar ao Bluetooth"</string>
    <string name="emergency_button_text" msgid="3467659545392931727">"Chamada de emerxencia"</string>
    <string name="emergency_call_description" msgid="6700161437750325693">"Chamada de emerxencia"</string>
    <string name="error_contact_deleted" msgid="6356539067659368396">"É posible que se eliminase este contacto."</string>
    <string name="error_invalid_phone_number" msgid="5349049631580646136">"Non se puido marcar este número. Compróbao e téntao de novo."</string>
    <string name="error_telephony_not_available" msgid="8715829862083386178">"As chamadas telefónicas non están dispoñibles. Téntao de novo máis tarde."</string>
    <string name="decline_call" msgid="2505987200485272226">"Rexeitar"</string>
    <string name="answer_call" msgid="3272474440561548115">"Responder"</string>
    <string name="call_back" msgid="5745638356098600872">"Devolver chamada"</string>
    <string name="audio_route_vehicle" msgid="6250361588960528769">"Altofalantes do coche"</string>
    <string name="audio_route_phone_speaker" msgid="4608904003558187244">"Altofalante do teléfono"</string>
    <string name="audio_route_handset" msgid="9133081623895172144">"Teléfono"</string>
    <string name="dial_a_number" msgid="7432322177412387160">"Marcar un número"</string>
    <string name="favorites_title" msgid="4767723901530488145">"Favoritos"</string>
    <string name="call_history_title" msgid="7997887846276371553">"Chamadas recentes"</string>
    <string name="contacts_title" msgid="9201954388634537346">"Contactos"</string>
    <string name="dialpad_title" msgid="3746259645005208554">"Teclado de marcación"</string>
    <string name="call_log_header_today" msgid="2069013936632793214">"Hoxe"</string>
    <string name="call_log_header_yesterday" msgid="4613686845163357847">"Onte"</string>
    <string name="call_log_header_older" msgid="3971634717537073179">"Máis antigas"</string>
    <string name="call_logs_empty" msgid="3084720078894119049">"Non hai chamadas recentes"</string>
    <string name="contact_list_empty" msgid="4225504548491888138">"Non hai ningún contacto"</string>
    <string name="available_after_sync" msgid="33765918799197782">"A páxina estará dispoñible despois da sincronización. Asegúrate de ter activada no teléfono a opción de compartir os contactos."</string>
    <string name="favorites_empty" msgid="5794510741132758130">"Non hai favoritos"</string>
    <string name="no_favorites_added" msgid="2359050103464783907">"Aínda non engadiches ningún favorito"</string>
    <string name="add_favorite_button" msgid="7914955940249767808">"Engadir favorito"</string>
    <string name="search_title" msgid="5412680850141871664">"Buscar contactos"</string>
    <string name="search_hint" msgid="3099066132607042439">"Buscar contactos"</string>
    <string name="type_multiple" msgid="3402949522797441236">"Varios"</string>
    <string name="select_number_dialog_title" msgid="5770700626013782205">"Escoller un número de teléfono"</string>
    <string name="select_number_dialog_just_once_button" msgid="1814381354393374660">"Só unha vez"</string>
    <string name="select_number_dialog_always_button" msgid="6862338683635863764">"Sempre"</string>
    <string name="primary_number_description" msgid="1211198148918329509">"<xliff:g id="LABEL">%1$s</xliff:g>, predeterminado"</string>
    <string name="favorite_number_description" msgid="8175362259853807385">"Favorito (<xliff:g id="LABEL">%1$s</xliff:g>)"</string>
    <string name="local_favorite_number_description" msgid="3723823871011997275">"Favorito do lugar (<xliff:g id="LABEL">%1$s</xliff:g>)"</string>
    <string name="phone_favorites" msgid="2257447553252980575">"Favoritos"</string>
    <string name="local_favorites" msgid="4954852813126882412">"Favoritos do lugar"</string>
    <string name="no_phone_numbers" msgid="8738691115921148445">"Non hai ningún número de teléfono"</string>
    <string name="in_call_notification_channel_name" msgid="1978093630512401778">"Notificación de chamada entrante"</string>
    <string name="notification_incoming_call" msgid="1722904631804432389">"Chamada entrante"</string>
    <string name="missed_call_notification_channel_name" msgid="1135686963409691772">"Notificación de chamada perdida"</string>
    <plurals name="notification_missed_call" formatted="false" msgid="1018870358427938752">
      <item quantity="other">Chamadas perdidas (<xliff:g id="NUMBER">%1$d</xliff:g>) </item>
      <item quantity="one">Chamada perdida</item>
    </plurals>
    <string name="onhold_call_label" msgid="1937027519810985499">"En espera"</string>
    <string name="setting_title" msgid="1296639422364732365">"Configuración"</string>
    <string name="pref_start_page_title" msgid="1953465507368478503">"Pantalla de inicio"</string>
    <string name="sort_order_title" msgid="975104366728292702">"Orde dos contactos"</string>
    <string name="pref_connected_phone_title" msgid="5472866963149472593">"Teléfono conectado"</string>
    <string name="pref_no_incoming_call_hun_title" msgid="2314257779205958332">"Privacidade"</string>
    <string name="pref_no_incoming_call_hun_summary" msgid="8833377984331845097">"Só mostra as alertas de chamadas en grupo"</string>
    <string name="pref_no_fullscreen_active_call_ui_title" msgid="5306041252780754725">"Chamada activa"</string>
    <string name="pref_no_fullscreen_active_call_ui_summary" msgid="2316908551231937870">"Mostra a vista da chamada activa cando se responde unha"</string>
    <string name="given_name_first_title" msgid="8072187841056104968">"Nome"</string>
    <string name="family_name_first_title" msgid="7721976826282427987">"Apelidos"</string>
    <string name="audio_route_dialog_title" msgid="2904553846970171054">"Enviar o audio das chamadas a:"</string>
    <string name="audio_route_dialog_subtitle" msgid="8780526104805330121"></string>
</resources>
