<?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 de veu"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Sabíeu que..."</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Si manteniu premut el botó verd de trucada s\'obre el Marcador de veu."</string>
    <string name="examples" msgid="2100807337052050741">" Exemples: "<b>" \n\"Truca a Jordi Grau\" \n\"Truca a Jordi Grau a casa, …\" \n\"Truca al correu de veu\" \n\"Marca el (866) 555 0123\" \n\"Marca el 911, 811, …\" \n\"Marca el +44 7333 444 555\" \n\"Torna a marcar\" \n\"Obre el calendari\" "</b></string>
    <string name="title" msgid="60788431860720964">"Marcador de veu"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Marcador de veu Bluetooth"</string>
    <string name="initializing" msgid="1455696989718692334">"S\'està iniciant..."</string>
    <string name="listening" msgid="6886486282595802147">"S\'està escoltant..."</string>
    <string name="please_try_again" msgid="6612157920739645345">"Torna-ho a provar."</string>
    <string name="failure" msgid="4363633038755445209">"No s\'ha pogut inicialitzar"</string>
    <string name="recognition_error" msgid="6171111971593859630">"Reinicia el telèfon i torna-ho a provar."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"S\'ha perdut la connexió amb l\'auricular."</string>
    <string name="at_home" msgid="8478880812967663328">" a casa"</string>
    <string name="on_mobile" msgid="5739841127369724804">" al mòbil"</string>
    <string name="at_work" msgid="2946111016850670818">" a la feina"</string>
    <string name="at_other" msgid="1863773841760953063">" en un altre"</string>
    <string name="logging_enabled" msgid="1797105104286961324">"S\'ha activat el registre de marcatge per veu."</string>
    <string name="logging_disabled" msgid="5851271054900000063">"S\'ha desactivat el registre de marcatge per veu."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Parleu ara."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"No hi ha cap resultat; torneu-ho a provar."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Selecció no vàlida."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Adéu."</string>
</resources>
