<?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">"Test for mobilmeddelelser"</string>
    <string name="button_etws_normal_type" msgid="3852703138521119537">"Send normal ETWS-meddelelse"</string>
    <string name="button_etws_cancel_type" msgid="7194264116649371175">"Send ETWS Annuller Broadcast"</string>
    <string name="button_etws_test_type" msgid="6353906188028139901">"Send ETWS Test Broadcast"</string>
    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Send CMAS-advarsel fra præsidenten"</string>
    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Send CMAS-advarsel om nødsituation: Ekstrem"</string>
    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Send CMAS-advarsel om nødsituation: Alvorlig"</string>
    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"Send CMAS-advarsel om børnebortførelse"</string>
    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Send CMAS-advarsel om månedlig test"</string>
    <string name="button_gsm_7bit_type" msgid="4757698592787955850">"Send UMTS 7 Bit Multi Page Broadcast"</string>
    <string name="button_gsm_7bit_umts_type" msgid="4377077702628367387">"Send UMTS 7 Bit Test Broadcast"</string>
    <string name="button_gsm_7bit_nopadding_type" msgid="5289528095948674862">"Send GSM 7 Bit Full Length Broadcast"</string>
    <string name="button_gsm_7bit_nopadding_umts_type" msgid="7953047238483884846">"Send UMTS 7 bit i fuld længde Broadcast"</string>
    <string name="button_gsm_7bit_multipage_type" msgid="8516540964071070491">"Send GSM 7 Bit Multi Page Broadcast"</string>
    <string name="button_gsm_7bit_multipage_umts_type" msgid="474883728254547100">"Send UMTS 7 Bit Multi Page Broadcast"</string>
    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"Send GSM 7 Bit With Language"</string>
    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">"Send GSM 7-bit med tekstens sprog"</string>
    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"Send UMTS 7 Bit With Language"</string>
    <string name="button_gsm_ucs2_type" msgid="6652864601384080678">"Send GSM UCS-2 Test Broadcast"</string>
    <string name="button_gsm_ucs2_umts_type" msgid="2985879481785569626">"Send UMTS UCS-2 Test Broadcast"</string>
    <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"Send UMTS UCS-2 Multi Page Broadcast"</string>
    <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Send GSM UCS-2 med sprog"</string>
    <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Send GSM UCS-2 With Language"</string>
    <string name="button_delay_broadcast" msgid="5138650276363839541">"Vent 5 sekunder, før du sender"</string>
    <string name="message_id_label" msgid="4365322663037110887">"Meddelelses-id:"</string>
</resources>
