<?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">"Telefone"</string>
    <string name="no_hfp" msgid="7371139867234667691">"Para completar a chamada, conecte o smartphone ao seu carro via Bluetooth."</string>
    <string name="bluetooth_unavailable" msgid="5258854283739591569">"O Bluetooth não está disponível."</string>
    <string name="bluetooth_disabled" msgid="1275246762067907843">"Para fazer ou receber chamadas, ative o Bluetooth."</string>
    <string name="bluetooth_unpaired" msgid="1600552386483652892">"Para fazer ou receber chamadas, pareie o smartphone com o carro."</string>
    <string name="connect_bluetooth_button_text" msgid="293188695227298042">"Conectar ao Bluetooth"</string>
    <string name="emergency_button_text" msgid="3467659545392931727">"Emergência"</string>
    <string name="emergency_call_description" msgid="6700161437750325693">"Chamada de emergência"</string>
    <string name="error_contact_deleted" msgid="6356539067659368396">"Esse contato pode ter sido excluído."</string>
    <string name="error_invalid_phone_number" msgid="5349049631580646136">"Não é possível discar esse número. Verifique se ele está correto e tente novamente."</string>
    <string name="error_telephony_not_available" msgid="8715829862083386178">"As chamadas telefônicas não estão disponíveis. Tente novamente mais tarde."</string>
    <string name="decline_call" msgid="2505987200485272226">"Recusar"</string>
    <string name="answer_call" msgid="3272474440561548115">"Atender"</string>
    <string name="call_back" msgid="5745638356098600872">"Retornar chamada"</string>
    <string name="audio_route_vehicle" msgid="6250361588960528769">"Alto-falantes do carro"</string>
    <string name="audio_route_phone_speaker" msgid="4608904003558187244">"Alto-falante do smartphone"</string>
    <string name="audio_route_handset" msgid="9133081623895172144">"Smartphone"</string>
    <string name="dial_a_number" msgid="7432322177412387160">"Discar um número"</string>
    <string name="favorites_title" msgid="4767723901530488145">"Favoritos"</string>
    <string name="call_history_title" msgid="7997887846276371553">"Recentes"</string>
    <string name="contacts_title" msgid="9201954388634537346">"Contatos"</string>
    <string name="dialpad_title" msgid="3746259645005208554">"Teclado"</string>
    <string name="call_log_header_today" msgid="2069013936632793214">"Hoje"</string>
    <string name="call_log_header_yesterday" msgid="4613686845163357847">"Ontem"</string>
    <string name="call_log_header_older" msgid="3971634717537073179">"Mais antigas"</string>
    <string name="call_logs_empty" msgid="3084720078894119049">"Nenhum recente"</string>
    <string name="contact_list_empty" msgid="4225504548491888138">"Nenhum contato"</string>
    <string name="available_after_sync" msgid="33765918799197782">"Disponível após a sincronização. Não se esqueça de permitir o compartilhamento de contatos no smartphone."</string>
    <string name="favorites_empty" msgid="5794510741132758130">"Nenhum favorito"</string>
    <string name="no_favorites_added" msgid="2359050103464783907">"Você ainda não adicionou favoritos"</string>
    <string name="add_favorite_button" msgid="7914955940249767808">"Adicionar favorito"</string>
    <string name="search_title" msgid="5412680850141871664">"Pesquisar contatos"</string>
    <string name="search_hint" msgid="3099066132607042439">"Pesquisar contatos"</string>
    <string name="type_multiple" msgid="3402949522797441236">"Vários"</string>
    <string name="select_number_dialog_title" msgid="5770700626013782205">"Escolha um número de telefone"</string>
    <string name="select_number_dialog_just_once_button" msgid="1814381354393374660">"Só uma 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>, padrão"</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 local: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
    <string name="phone_favorites" msgid="2257447553252980575">"Favoritos"</string>
    <string name="local_favorites" msgid="4954852813126882412">"Favoritos locais"</string>
    <string name="no_phone_numbers" msgid="8738691115921148445">"Nenhum número de telefone disponível"</string>
    <string name="in_call_notification_channel_name" msgid="1978093630512401778">"Notificação de chamada recebida"</string>
    <string name="notification_incoming_call" msgid="1722904631804432389">"Chamada recebida"</string>
    <string name="missed_call_notification_channel_name" msgid="1135686963409691772">"Notificação de chamada perdida"</string>
    <plurals name="notification_missed_call" formatted="false" msgid="1018870358427938752">
      <item quantity="one">Chamada perdida (<xliff:g id="NUMBER">%1$d</xliff:g>) </item>
      <item quantity="other">Chamadas perdidas (<xliff:g id="NUMBER">%1$d</xliff:g>) </item>
    </plurals>
    <string name="onhold_call_label" msgid="1937027519810985499">"Em espera"</string>
    <string name="setting_title" msgid="1296639422364732365">"Configurações"</string>
    <string name="pref_start_page_title" msgid="1953465507368478503">"Tela inicial"</string>
    <string name="sort_order_title" msgid="975104366728292702">"Ordem dos contatos"</string>
    <string name="pref_connected_phone_title" msgid="5472866963149472593">"Smartphone conectado"</string>
    <string name="pref_no_incoming_call_hun_title" msgid="2314257779205958332">"Privacidade"</string>
    <string name="pref_no_incoming_call_hun_summary" msgid="8833377984331845097">"Mostrar os alertas de chamadas somente em grupos"</string>
    <string name="pref_no_fullscreen_active_call_ui_title" msgid="5306041252780754725">"Chamada ativa"</string>
    <string name="pref_no_fullscreen_active_call_ui_summary" msgid="2316908551231937870">"Mostrar a visualização da chamada ativa ao atender ligações"</string>
    <string name="given_name_first_title" msgid="8072187841056104968">"Nome"</string>
    <string name="family_name_first_title" msgid="7721976826282427987">"Sobrenome"</string>
    <string name="audio_route_dialog_title" msgid="2904553846970171054">"Saída de áudio da chamada:"</string>
    <string name="audio_route_dialog_subtitle" msgid="8780526104805330121"></string>
</resources>
