<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  ~ Copyright (C) 2012 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="toast_text_copied" msgid="8327159932780920627">"Texto copiado"</string>
    <string name="call_custom" msgid="2786306789889210756">"Ligar para <xliff:g id="CUSTOM">%s</xliff:g>"</string>
    <string name="call_home" msgid="1479549630992276827">"Ligar para residência"</string>
    <string name="call_mobile" msgid="8618334085824709009">"Ligar para celular"</string>
    <string name="call_work" msgid="8299062439076337075">"Ligar para trabalho"</string>
    <string name="call_fax_work" msgid="3770754834467992571">"Ligar para fax comercial"</string>
    <string name="call_fax_home" msgid="6219051113573396065">"Ligar para fax residencial"</string>
    <string name="call_pager" msgid="3038080882899955112">"Ligar para pager"</string>
    <string name="call_other" msgid="4472141328347894937">"Ligar"</string>
    <string name="call_callback" msgid="687494744634190411">"Retornar chamada"</string>
    <string name="call_car" msgid="9078083109758282133">"Ligar para carro"</string>
    <string name="call_company_main" msgid="8768047233970315359">"Ligar para empresa (principal)"</string>
    <string name="call_isdn" msgid="3342482563847537747">"Ligar para ISDN"</string>
    <string name="call_main" msgid="4640261071249938558">"Ligar para principal"</string>
    <string name="call_other_fax" msgid="2536328553125487877">"Ligar para fax"</string>
    <string name="call_radio" msgid="9055749313292712021">"Ligar para rádio"</string>
    <string name="call_telex" msgid="2909886619224843563">"Ligar para telex"</string>
    <string name="call_tty_tdd" msgid="6704940636171078852">"Ligar para TTY/TDD"</string>
    <string name="call_work_mobile" msgid="4408630608955148641">"Ligar para celular comercial"</string>
    <string name="call_work_pager" msgid="3036932765279753793">"Ligar para pager comercial"</string>
    <string name="call_assistant" msgid="5188990854852312696">"Ligar para <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
    <string name="call_mms" msgid="8998771923464696960">"Ligar para MMS"</string>
    <string name="sms_custom" msgid="4601748252470175865">"Enviar mensagem de texto para <xliff:g id="CUSTOM">%s</xliff:g>"</string>
    <string name="sms_home" msgid="7765831490534280540">"Enviar mensagem de texto para residência"</string>
    <string name="sms_mobile" msgid="8387632124165893103">"Enviar mensagem de texto para celular"</string>
    <string name="sms_work" msgid="3910570578912367742">"Enviar mensagem de texto para trabalho"</string>
    <string name="sms_fax_work" msgid="909086167151248212">"Enviar mensagem de texto para fax comercial"</string>
    <string name="sms_fax_home" msgid="4145442497939634875">"Enviar mensagem de texto para fax residencial"</string>
    <string name="sms_pager" msgid="5664381349583724906">"Enviar mensagem de texto para pager"</string>
    <string name="sms_other" msgid="910895193552957097">"Enviar mensagem de texto"</string>
    <string name="sms_callback" msgid="728414485478941361">"Enviar mensagem de texto para retorno de chamada"</string>
    <string name="sms_car" msgid="8543669230270954512">"Enviar mensagem de texto para carro"</string>
    <string name="sms_company_main" msgid="5441902128445061862">"Enviar mensagem de texto para empresa (principal)"</string>
    <string name="sms_isdn" msgid="7142483128948042667">"Enviar mensagem de texto para ISDN"</string>
    <string name="sms_main" msgid="6815987840926184815">"Enviar mensagem de texto para principal"</string>
    <string name="sms_other_fax" msgid="8649822154879781466">"Enviar mensagem de texto para fax"</string>
    <string name="sms_radio" msgid="8750339218480745940">"Enviar mensagem de texto para rádio"</string>
    <string name="sms_telex" msgid="5469333785775443999">"Enviar mensagem de texto para telex"</string>
    <string name="sms_tty_tdd" msgid="5057886576150816002">"Enviar mensagem de texto para TTY/TDD"</string>
    <string name="sms_work_mobile" msgid="8426872094268475047">"Enviar mensagem de texto para celular comercial"</string>
    <string name="sms_work_pager" msgid="499303540738557836">"Enviar mensagem de texto para pager comercial"</string>
    <string name="sms_assistant" msgid="2677586547377136683">"Enviar mensagem de texto para <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
    <string name="sms_mms" msgid="4887206338311086612">"Enviar mensagem de texto para MMS"</string>
    <string name="clearFrequentsConfirmation_title" msgid="1482750234535491083">"Apagar contatos frequentes?"</string>
    <string name="clearFrequentsConfirmation" msgid="2101370440975269958">"Você apagará a lista de contatos frequentes nos aplicativos Pessoas e Telefone, fazendo com que os aplicativos de e-mail tenham que descobrir suas preferências de endereçamento."</string>
    <string name="clearFrequentsProgress_title" msgid="3738406170865048982">"Apagando contatos frequentes…"</string>
    <string name="status_available" msgid="4832569677396634846">"Disponível"</string>
    <string name="status_away" msgid="6267905184545881094">"Ausente"</string>
    <string name="status_busy" msgid="7111912905211403545">"Ocupado"</string>
    <string name="contactsList" msgid="7140022347217602605">"Contatos"</string>
    <string name="local_invisible_directory" msgid="8934840494825588347">"Outro"</string>
    <string name="directory_search_label" msgid="4484648822765516947">"Diretório"</string>
    <string name="local_search_label" msgid="9094584931063745728">"Todos os contatos"</string>
    <string name="user_profile_contacts_list_header" msgid="8436133790234197565">"Eu"</string>
    <string name="search_results_searching" msgid="9022794597388306615">"Pesquisando…"</string>
    <string name="foundTooManyContacts" msgid="3060037437459313616">"Mais de <xliff:g id="COUNT">%d</xliff:g> encontrados."</string>
    <string name="listFoundAllContactsZero" msgid="4406036083994138930">"Nenhum contato"</string>
  <plurals name="searchFoundContacts">
    <item quantity="one" msgid="1013734912609351182">"Um encontrado"</item>
    <item quantity="other" msgid="4649647748678161594">"<xliff:g id="COUNT">%d</xliff:g> encontrados"</item>
  </plurals>
    <string name="description_quick_contact_for" msgid="6355240770807101947">"Contato rápido de <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="missing_name" msgid="2633118852693000081">"(Sem nome)"</string>
</resources>
