<?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>
