<?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">"음성 다이얼"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"유용한 정보..."</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"녹색 \'통화\' 버튼을 길게 누르면 음성 다이얼이 시작됩니다."</string>
    <string name="examples" msgid="2100807337052050741">" 예: "<b>" \n\'김구글\' \n\'김구글 집, …\' \n\'음성사서함\' \n\'(866) 555 0123\' \n\'911, 811, …\' \n\'(02) 123 4567\' \n\'재다이얼\' \n\'캘린더 열기\' "</b></string>
    <string name="title" msgid="60788431860720964">"음성 다이얼"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"블루투스 음성 다이얼"</string>
    <string name="initializing" msgid="1455696989718692334">"시작 중..."</string>
    <string name="listening" msgid="6886486282595802147">"청취 중..."</string>
    <string name="please_try_again" msgid="6612157920739645345">"다시 시도해 보세요."</string>
    <string name="failure" msgid="4363633038755445209">"초기화하지 못했습니다."</string>
    <string name="recognition_error" msgid="6171111971593859630">"휴대전화를 다시 시작한 다음 다시 시도해 보세요."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"헤드셋 연결이 끊어졌습니다."</string>
    <string name="at_home" msgid="8478880812967663328">" (집)"</string>
    <string name="on_mobile" msgid="5739841127369724804">" (휴대전화)"</string>
    <string name="at_work" msgid="2946111016850670818">" (직장)"</string>
    <string name="at_other" msgid="1863773841760953063">" (기타)"</string>
    <string name="logging_enabled" msgid="1797105104286961324">"음성 다이얼 로깅을 사용하도록 설정했습니다."</string>
    <string name="logging_disabled" msgid="5851271054900000063">"음성 다이얼 로깅을 사용 중지했습니다."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"지금 말하세요."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"검색결과가 없습니다. 다시 시도해 주세요."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"선택이 잘못되었습니다."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"종료됩니다."</string>
</resources>
