<?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">"Sprachwahl"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Wussten Sie schon..."</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Durch Drücken und Halten der grünen Anruftaste wird die Sprachwahl geöffnet."</string>
    <string name="examples" msgid="2100807337052050741">" Beispiele: "<b>" "\n"\"Max Muster anrufen\" "\n"\"Max Muster zu Hause anrufen, …\" "\n"\"Mailbox anrufen\" "\n"\"(040) 123 4567 wählen\" "\n"\"110, 112, … wählen\" "\n"\"+44 7333 444 555 wählen\" "\n"\"Wahlwiederholung\" "\n"\"Kalender öffnen\" "</b></string>
    <string name="title" msgid="60788431860720964">"Sprachwahl"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Bluetooth-Voice-Dialer"</string>
    <string name="initializing" msgid="3146934028021025628">"Startvorgang"</string>
    <string name="listening" msgid="6886486282595802147">"Jetzt sprechen..."</string>
    <string name="please_try_again" msgid="1427744152996396950">"Bitte versuchen Sie es erneut."</string>
    <string name="failure" msgid="3985785889820564626">"Fehler"</string>
    <string name="recognition_error" msgid="1807947152844267364">"Sie können das Telefon auch neu starten."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"Keine Headset-Verbindung"</string>
    <string name="at_home" msgid="8478880812967663328">" Privat"</string>
    <string name="on_mobile" msgid="5739841127369724804">" Mobil"</string>
    <string name="at_work" msgid="2946111016850670818">" Geschäftlich"</string>
    <string name="at_other" msgid="1863773841760953063">" Sonstige"</string>
    <string name="logging_enabled" msgid="8702018587287436548">"Sprachwahl-Protokollierung ist aktiviert."</string>
    <string name="logging_disabled" msgid="5992352601321824322">"Sprachwahl-Protokollierung ist deaktiviert."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Jetzt sprechen..."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Keine Ergebnisse, versuchen Sie es erneut."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Ungültige Auswahl"</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Bis bald."</string>
</resources>
