<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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="app_name" msgid="5955735546071433666">"Sound Recorder"</string>
    <string name="record_your_message" msgid="1583671906691662148">"메시지 녹음"</string>
    <string name="message_recorded" msgid="381539460921872233">"메시지 녹음됨"</string>
    <string name="review_message" msgid="201616012287839474">"메시지 재생"</string>
    <string name="recording" msgid="4426791467211376099">"녹음"</string>
    <string name="recording_stopped" msgid="1580278719585249612">"녹음이 중지되었습니다."</string>
    <string name="storage_is_full" msgid="416039755956726221">"저장공간이 꽉 찼습니다."</string>
    <string name="max_length_reached" msgid="6398215743584093353">"최대 길이에 도달했습니다."</string>
    <string name="insert_sd_card" product="nosdcard" msgid="4609407750669086933">"USB 저장소 마운트"</string>
    <string name="insert_sd_card" product="default" msgid="1007630222084726808">"SD 카드를 삽입하세요."</string>
    <string name="min_available" msgid="5493947690062988925">"<xliff:g id="MINUTES">%d</xliff:g>분 녹음 가능"</string>
    <string name="sec_available" msgid="2297020788861694399">"<xliff:g id="SECONDS">%d</xliff:g>초 녹음 가능"</string>
    <string name="accept" msgid="1888285552128743656">"완료"</string>
    <string name="discard" msgid="761613433029406319">"취소"</string>
    <string name="button_ok" msgid="3004911343723076226">"확인"</string>
    <!-- no translation found for audio_db_title_format (7912182366970749312) -->
    <skip />
    <string name="audio_db_artist_name" msgid="961640229118120080">"내 콘텐츠"</string>
    <string name="audio_db_album_name" msgid="9072588113803264440">"오디오 녹음"</string>
    <string name="audio_db_playlist_name" msgid="5592939050047058162">"내 콘텐츠"</string>
    <string name="error_sdcard_access" product="nosdcard" msgid="86629081075681774">"USB 저장소에 액세스할 수 없습니다."</string>
    <string name="error_sdcard_access" product="default" msgid="5750308258096153274">"SD 카드에 액세스할 수 없습니다."</string>
    <string name="error_app_internal" msgid="312884382388702022">"내부 애플리케이션 오류"</string>
    <string name="error_mediadb_new_record" msgid="261714902333432462">"녹음된 오디오를 저장할 수 없습니다."</string>
</resources>
