<?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">"Röstaktiverad uppringningsfunktion"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Visste du…"</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Om du trycker och håller ned den gröna samtalsknappen öppnas den röstaktiverade uppringningsfunktionen."</string>
    <string name="examples" msgid="2100807337052050741">" Till exempel: "<b>" "\n"\"Ring John Berg\" "\n"\"Ring John Berg hem, …\" "\n"\"Ring röstbrevlåda\" "\n"\"Ring (08) 12 34 56\" "\n"\"Ring 112 …\" "\n"\"Ring +44 7333 444 555\" "\n"\"Ring igen\" "\n"\"Öppna kalender\" "</b></string>
    <string name="title" msgid="60788431860720964">"Röstaktiverad uppringningsfunktion"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Bluetooth - röstaktiverad uppringningsfunktion"</string>
    <string name="initializing" msgid="3146934028021025628">"Startar."</string>
    <string name="listening" msgid="6886486282595802147">"Lyssnar…"</string>
    <string name="please_try_again" msgid="1427744152996396950">"Försök igen."</string>
    <string name="failure" msgid="3985785889820564626">"Fel"</string>
    <string name="recognition_error" msgid="1807947152844267364">"Du kan även pröva att starta om telefonen."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"Anslutningen till hörlurarna bröts."</string>
    <string name="at_home" msgid="8478880812967663328">" hem"</string>
    <string name="on_mobile" msgid="5739841127369724804">" på mobilen"</string>
    <string name="at_work" msgid="2946111016850670818">" på jobbet"</string>
    <string name="at_other" msgid="1863773841760953063">" på annat nummer"</string>
    <string name="logging_enabled" msgid="8702018587287436548">"Röstaktiverad uppringningsfunktion aktiverad."</string>
    <string name="logging_disabled" msgid="5992352601321824322">"Röstaktiverad uppringningsfunktion inaktiverad."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Tala nu."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Inga resultat. Försök igen."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Ogiltigt val."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Adjö."</string>
</resources>
