<?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="6274519162997743620">"Bluetooth do veículo"</string>
    <string name="audio_route_phone_speaker" msgid="407520293892557697">"Viva-voz"</string>
    <string name="audio_route_handset" msgid="1100259514278439355">"Aparelho"</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="1495905524218923242">"Histórico de chamadas"</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="add_favorite_button" msgid="7914955940249767808">"Adicionar favorito"</string>
    <string name="favorites_empty" msgid="6712416359691979975">"Você ainda não adicionou favoritos"</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="7428950659304219592">"<xliff:g id="LABEL">%1$s</xliff:g>  - Padrão"</string>
    <string name="favorite_number_description" msgid="6490014728613395653">"<xliff:g id="LABEL">%1$s</xliff:g> (favorito)"</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>
    <string name="notification_missed_call" msgid="7127823385811396529">"Chamada perdida"</string>
    <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="given_name_first_title" msgid="8072187841056104968">"Nome"</string>
    <string name="family_name_first_title" msgid="7721976826282427987">"Sobrenome"</string>
</resources>
