<?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="8396461461738434341">"Bộ công cụ SIM"</string>
    <string name="menu_end_session" msgid="7368541737750982217">"Kết thúc phiên"</string>
    <string name="help" msgid="9209980881219397319">"Trợ giúp"</string>
    <string name="menu_back" msgid="301227740977453364">"Quay lại"</string>
    <string name="service_name" msgid="6860303747999592491">"Tên dịch vụ"</string>
    <string name="stk_no_service" msgid="5427773116839809131">"Không có dịch vụ nào"</string>
    <string name="button_ok" msgid="5760722312558549555">"OK"</string>
    <string name="button_cancel" msgid="1997847915560800261">"Hủy"</string>
    <string name="button_yes" msgid="624420260648337203">"Có"</string>
    <string name="button_no" msgid="1824959157582605627">"Không"</string>
    <string name="alphabet" msgid="1583185545938805861">"Bảng chữ cái"</string>
    <string name="digits" msgid="1746796679021682388">"Chữ số (0-9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="7960194995759849940">"Cuộc gọi đang diễn ra…"</string>
    <string name="default_setup_call_msg" msgid="6126904475461162162">"Cuộc gọi đang được thiết lập"</string>
    <string name="stk_app_state" msgid="18582277302584082">"Trạng thái ứng dụng"</string>
    <string name="enable_app" msgid="3701224550936728203">"Đã bật"</string>
    <string name="disable_app" msgid="6725081975611415214">"Đã vô hiệu hóa"</string>
    <string name="stk_dialog_title" msgid="6954825385456886726">"Bộ công cụ SIM"</string>
    <string name="default_open_channel_msg" msgid="2216070254100295924">"Mở kênh?"</string>
    <string name="default_send_data_msg" msgid="6011219698689931272">"Đang gửi dữ liệu"</string>
    <string name="default_receive_data_msg" msgid="618096941772010682">"Đang nhận dữ liệu"</string>
    <string name="default_close_channel_msg" msgid="765364262263839824">"Đã đóng kênh"</string>
    <string name="stk_dialog_accept" msgid="8498901537508923727">"CÓ"</string>
    <string name="stk_dialog_reject" msgid="921848059485746796">"KHÔNG"</string>
    <string name="no_sim_card_inserted" msgid="5316620398365235988">"Vui lòng lắp SIM để chạy Bộ công cụ SIM."</string>
</resources>
