<?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="3369897473091780760">"SIM-toolkit"</string>
    <string name="menu_end_session" msgid="9087134977926181033">"Sessie beëindigen"</string>
    <string name="help" msgid="1290449694178547017">"Hulp"</string>
    <string name="menu_back" msgid="7136697148453089659">"Terug"</string>
    <string name="service_name" msgid="6767598098497885828">"Servicenaam"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Geen service beschikbaar"</string>
    <string name="button_ok" msgid="7914432227722142434">"OK"</string>
    <string name="button_cancel" msgid="137404731092374681">"Annuleren"</string>
    <string name="button_yes" msgid="755426085739326674">"Ja"</string>
    <string name="button_no" msgid="564962410861983724">"Nee"</string>
    <string name="alphabet" msgid="9068318253752197929">"Alfabetten"</string>
    <string name="digits" msgid="7391551783961486324">"Symbolen (0-9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Actief gesprek..."</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Aanroep wordt ingesteld"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"Toepassingsstatus"</string>
    <string name="enable_app" msgid="1980493713217690903">"Aangezet"</string>
    <string name="disable_app" msgid="2298201833946002357">"Uitgezet"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"SIM-toolkit"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Toon afspelen"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Kanaal openen?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Gegevens verzenden"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Gegevens ontvangen"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Kanaal gesloten"</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"JA"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"NEE"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"Plaats een simkaart om de SIM Toolkit te starten."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Mobiele serviceberichten"</string>
</resources>
