<?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">"Trình ghi Âm thanh"</string>
    <string name="record_your_message" msgid="1583671906691662148">"Ghi lại tin nhắn của bạn"</string>
    <string name="message_recorded" msgid="381539460921872233">"Tin nhắn đã được ghi"</string>
    <string name="review_message" msgid="201616012287839474">"Xem lại tin nhắn"</string>
    <string name="recording" msgid="4426791467211376099">"Đang ghi"</string>
    <string name="recording_stopped" msgid="1580278719585249612">"Đã dừng ghi"</string>
    <string name="storage_is_full" msgid="416039755956726221">"Bộ nhớ đầy"</string>
    <string name="max_length_reached" msgid="6398215743584093353">"Đã đạt đến độ dài tối đa"</string>
    <string name="insert_sd_card" product="nosdcard" msgid="8212754638456591792">"Vui lòng kết nối bộ nhớ USB"</string>
    <string name="insert_sd_card" product="default" msgid="2251831579676114197">"Vui lòng lắp thẻ SD"</string>
    <string name="min_available" msgid="5493947690062988925">"Còn <xliff:g id="MINUTES">%d</xliff:g> phút"</string>
    <string name="sec_available" msgid="2297020788861694399">"<xliff:g id="SECONDS">%d</xliff:g> giây khả dụng"</string>
    <string name="accept" msgid="7770652589312551402">"Sử dụng bản ghi này"</string>
    <string name="discard" msgid="761613433029406319">"Huỷ"</string>
    <string name="button_ok" msgid="3004911343723076226">"OK"</string>
    <string name="press_record" msgid="5039711805290780494">"Nhấn vào ghi"</string>
    <!-- no translation found for audio_db_title_format (7912182366970749312) -->
    <skip />
    <string name="audio_db_artist_name" msgid="961640229118120080">"Bản ghi của bạn"</string>
    <string name="audio_db_album_name" msgid="9072588113803264440">"Bản ghi âm thanh"</string>
    <string name="audio_db_playlist_name" msgid="5592939050047058162">"Bản ghi của tôi"</string>
    <string name="error_sdcard_access" product="nosdcard" msgid="7292601458300337571">"Không thể truy cập bộ nhớ USB"</string>
    <string name="error_sdcard_access" product="default" msgid="8005660724361043509">"Không thể truy cập thẻ SD"</string>
    <string name="error_app_internal" msgid="2365923237657572011">"Lỗi ứng dụng nội bộ"</string>
    <string name="error_mediadb_new_record" msgid="2225774949947938064">"Không thể lưu âm thanh đã ghi"</string>
</resources>
