<?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 cell broadcast"</string>
    <string name="button_etws_normal_type" msgid="3852703138521119537">"Invia trasmissione ETWS normale"</string>
    <string name="button_etws_cancel_type" msgid="7194264116649371175">"Invia broadcast di annullamento ETWS"</string>
    <string name="button_etws_test_type" msgid="6353906188028139901">"Invia broadcast di prova ETWS"</string>
    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Invia avviso presidenziale CMAS"</string>
    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Invia avviso estremo CMAS"</string>
    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Invia avviso grave CMAS"</string>
    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"Invia avviso AMBER CMAS"</string>
    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Invia avviso di prova mensile CMAS"</string>
    <string name="button_gsm_7bit_type" msgid="4757698592787955850">"Invia broadcast di prova GSM 7 bit"</string>
    <string name="button_gsm_7bit_umts_type" msgid="4377077702628367387">"Invia broadcast di prova UMTS 7 bit"</string>
    <string name="button_gsm_7bit_nopadding_type" msgid="5289528095948674862">"Invia broadcast completo GSM 7 bit"</string>
    <string name="button_gsm_7bit_nopadding_umts_type" msgid="7953047238483884846">"Invia broadcast completo UMTS 7 bit"</string>
    <string name="button_gsm_7bit_multipage_type" msgid="8516540964071070491">"Invia broadcast multipagina GSM 7 bit"</string>
    <string name="button_gsm_7bit_multipage_umts_type" msgid="474883728254547100">"Invia broadcast multipagina UMTS 7 bit"</string>
    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"Invia GSM 7 bit con lingua"</string>
    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">"Invia GSM 7 bit con lingua nel corpo"</string>
    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"Invia UMTS 7 bit con lingua"</string>
    <string name="button_gsm_ucs2_type" msgid="6652864601384080678">"Invia broadcast di prova GSM UCS-2"</string>
    <string name="button_gsm_ucs2_umts_type" msgid="2985879481785569626">"Invia broadcast di prova UMTS UCS-2"</string>
    <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"Invia broadcast multipagina UMTS UCS-2"</string>
    <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Invia GSM UCS-2 con lingua"</string>
    <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Invia UMTS UCS-2 con lingua"</string>
    <string name="button_delay_broadcast" msgid="5138650276363839541">"Ritarda 5 secondi prima di inviare"</string>
    <string name="message_id_label" msgid="4365322663037110887">"ID messaggio:"</string>
    <string name="category_id_label" msgid="8472814003810180738">"Categoria:"</string>
</resources>
