<?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">"Pruebas de Cell Broadcasts"</string>
    <string name="button_etws_normal_type" msgid="3852703138521119537">"Enviar emisión normal de ETWS"</string>
    <string name="button_etws_cancel_type" msgid="7194264116649371175">"Enviar difusión de cancelación de ETWS"</string>
    <string name="button_etws_test_type" msgid="6353906188028139901">"Enviar difusión de prueba de ETWS"</string>
    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Enviar alerta presidencial del CMAS"</string>
    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Enviar alerta extrema del CMAS"</string>
    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Enviar alerta grave del CMAS"</string>
    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"Enviar alerta AMBER del CMAS"</string>
    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Enviar alerta de prueba mensual del CMAS"</string>
    <string name="button_gsm_7bit_type" msgid="4757698592787955850">"Enviar difusión de prueba de GSM 7 Bit"</string>
    <string name="button_gsm_7bit_umts_type" msgid="4377077702628367387">"Enviar difusión de prueba de UMTS 7 Bit"</string>
    <string name="button_gsm_7bit_nopadding_type" msgid="5289528095948674862">"Enviar difusión completa de GSM 7 Bit"</string>
    <string name="button_gsm_7bit_nopadding_umts_type" msgid="7953047238483884846">"Enviar difusión completa de UMTS 7 Bit"</string>
    <string name="button_gsm_7bit_multipage_type" msgid="8516540964071070491">"Enviar difusión de varias páginas de GSM 7 Bit"</string>
    <string name="button_gsm_7bit_multipage_umts_type" msgid="474883728254547100">"Enviar difusión de varias páginas de UMTS 7 Bit"</string>
    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"Enviar GSM 7 Bit con idioma"</string>
    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">"Enviar GSM 7 Bit con idioma en cuerpo"</string>
    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"Enviar UMTS 7 Bit con idioma"</string>
    <string name="button_gsm_ucs2_type" msgid="6652864601384080678">"Enviar difusión de prueba de GSM UCS-2"</string>
    <string name="button_gsm_ucs2_umts_type" msgid="2985879481785569626">"Enviar difusión de prueba de UMTS UCS-2"</string>
    <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"Enviar difusión de varias páginas de UMTS UCS-2"</string>
    <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Enviar GSM UCS-2 con idioma"</string>
    <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Enviar UMTS UCS-2 con idioma"</string>
    <string name="button_delay_broadcast" msgid="5138650276363839541">"Retrasar 5 segundos antes de enviar"</string>
    <string name="message_id_label" msgid="4365322663037110887">"ID de mensaje:"</string>
</resources>
