<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2006 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="voiceDialer" msgid="5948204210436590941">"Marcador por voz"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Sabia que…"</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Ao manter premido o botão Ligar verde abrirá o Marcador por voz."</string>
    <string name="examples" msgid="2100807337052050741">" Exemplos: "<b>" \n\"Ligar para o José Silva\" \n\"Ligar para o número de casa do José Silva, …\" \n\"Ligar para o correio de voz\" \n\"Marcar (866) 555 0123\" \n\"Marcar 911, 811, …\" \n\"Marcar +44 7333 444 555\" \n\"Remarcar\" \n\"Abrir Calendário\" "</b></string>
    <string name="title" msgid="60788431860720964">"Marcador por voz"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Marcação por voz através de Bluetooth"</string>
    <string name="initializing" msgid="1455696989718692334">"A iniciar..."</string>
    <string name="listening" msgid="6886486282595802147">"A ouvir…"</string>
    <string name="please_try_again" msgid="6612157920739645345">"Tente novamente."</string>
    <string name="failure" msgid="4363633038755445209">"Não foi possível inicializar"</string>
    <string name="recognition_error" msgid="6171111971593859630">"Reinicie o telemóvel e tente novamente."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"A ligação ao auricular perdeu-se."</string>
    <string name="at_home" msgid="8478880812967663328">" para o número de casa"</string>
    <string name="on_mobile" msgid="5739841127369724804">" para o telemóvel"</string>
    <string name="at_work" msgid="2946111016850670818">" para o número do trabalho"</string>
    <string name="at_other" msgid="1863773841760953063">" para outro número"</string>
    <string name="logging_enabled" msgid="1797105104286961324">"O registo de Marcação por Voz está ativado."</string>
    <string name="logging_disabled" msgid="5851271054900000063">"O registo de Marcação por Voz está desativado."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Falar agora."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Sem resultados; tente novamente."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Escolha inválida."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Adeus."</string>
</resources>
