<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2011 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_label" msgid="2102435118079140813">"Cell broadcast-tests"</string>
    <string name="button_etws_normal_type" msgid="3852703138521119537">"Normaal ETWS-bericht verzenden"</string>
    <string name="button_etws_cancel_type" msgid="7194264116649371175">"ETWS annuleringsbericht sturen"</string>
    <string name="button_etws_test_type" msgid="6353906188028139901">"ETWS-testbericht verzenden"</string>
    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Presidentiële waarschuwing voor CMAS verzenden"</string>
    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Extreme waarschuwing voor CMAS verzenden"</string>
    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Ernstige waarschuwing voor CMAS verzenden"</string>
    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"AMBER-alert voor CMAS verzenden"</string>
    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Maandelijkse testwaarschuwing voor CMAS verzenden"</string>
    <string name="button_gsm_7bit_type" msgid="4757698592787955850">"GSM 7-bits testbericht verzenden"</string>
    <string name="button_gsm_7bit_umts_type" msgid="4377077702628367387">"UMTS 7-bits testbericht verzenden"</string>
    <string name="button_gsm_7bit_nopadding_type" msgid="5289528095948674862">"GSM 7-bits bericht van volledige lengte verzenden"</string>
    <string name="button_gsm_7bit_nopadding_umts_type" msgid="7953047238483884846">"UMTS 7-bits bericht van volledige lengte sturen"</string>
    <string name="button_gsm_7bit_multipage_type" msgid="8516540964071070491">"GSM 7-bits bericht van meerdere pagina\'s sturen"</string>
    <string name="button_gsm_7bit_multipage_umts_type" msgid="474883728254547100">"UMTS 7-bits bericht van meerdere pagina\'s sturen"</string>
    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"GSM 7-bits met taal sturen"</string>
    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">"GSM 7-bits met taal verzenden"</string>
    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"UMTS 7-bits met taal verzenden"</string>
    <string name="button_gsm_ucs2_type" msgid="6652864601384080678">"GSM UCS-2 testbericht verzenden"</string>
    <string name="button_gsm_ucs2_umts_type" msgid="2985879481785569626">"UMTS UCS-2 testbericht verzenden"</string>
    <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"UMTS UCS-2 bericht van meerdere pagina\'s sturen"</string>
    <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"GSM UCS-2 met taal sturen"</string>
    <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"UMTS UCS-2 met taal sturen"</string>
    <string name="button_delay_broadcast" msgid="5138650276363839541">"Vertraging van vijf seconden voor verzending"</string>
    <string name="message_id_label" msgid="4365322663037110887">"Bericht-ID:"</string>
</resources>
