<?xml version="1.0" encoding="utf-8"?>
<!--
    Copyright (c) 2015, The Linux Foundation. All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are
    met:
        * Redistributions of source code must retain the above copyright
          notice, this list of conditions and the following disclaimer.
        * Redistributions in binary form must reproduce the above
          copyright notice, this list of conditions and the following
          disclaimer in the documentation and/or other materials provided
          with the distribution.
        * Neither the name of The Linux Foundation nor the names of its
          contributors may be used to endorse or promote products derived
          from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
    ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
    BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
    IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->

<resources>
    <string-array name="preferred_network_mode_choices" translatable="false">
        <item>@string/preferred_network_mode_td_scdma_lte_gsm_wcdma_cdma_evdo_choice </item>
        <item>@string/preferred_network_mode_td_scdma_gsm_wcdma_cdma_evdo_choice</item>
        <item>@string/preferred_network_mode_td_scdma_gsm_wcdma_lte_choice</item>
        <item>@string/preferred_network_mode_td_scdma_wcdma_lte_choice</item>
        <item>@string/preferred_network_mode_td_scdma_gsm_wcdma_choice</item>
        <item>@string/preferred_network_mode_td_scdma_gsm_lte_choice</item>
        <item>@string/preferred_network_mode_td_scdma_gsm_choice</item>
        <item>@string/preferred_network_mode_td_scdma_lte_choice</item>
        <item>@string/preferred_network_mode_td_scdma_wcdma_choice</item>
        <item>@string/preferred_network_mode_td_scdma_only_choice</item>
        <item>@string/preferred_network_mode_lte_wcdma_choice</item>
        <item>@string/preferred_network_mode_lte_choice</item>
        <item>@string/preferred_network_mode_global_choice</item>
        <item>@string/preferred_network_mode_gsm_wcdma_lte_choice</item>
        <item>@string/preferred_network_mode_cdma_lte_evdo_choice</item>
        <item>@string/preferred_network_mode_cdma_evdo_gsm_wcdma_choice</item>
        <item>@string/preferred_network_mode_evdo_only_choice</item>
        <item>@string/preferred_network_mode_cdma_wo_evdo_choice</item>
        <item>@string/preferred_network_mode_cdma_evdo_auto_choice</item>
        <item>@string/preferred_network_mode_gsm_wcdma_auto_choice</item>
        <item>@string/preferred_network_mode_wcdma_only_choice</item>
        <item>@string/preferred_network_mode_gsm_only_choice</item>
        <item>@string/preferred_network_mode_gsm_wcdma_preferred_choice</item>
    </string-array>
    <string name="preferred_network_mode_td_scdma_only_choice">Nur TD-SCDMA"</string>
    <string name="preferred_network_mode_lte_wcdma_choice">"LTE/WCDMA"</string>
    <string name="preferred_network_mode_lte_choice">"LTE"</string>
    <string name="preferred_network_mode_global_choice">"Global"</string>
    <string name="preferred_network_mode_gsm_wcdma_lte_choice">"GSM/WCDMA/LTE"</string>
    <string name="preferred_network_mode_cdma_lte_evdo_choice">"CDMA + LTE/EvDo"</string>
    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_choice">"CDMA/EvDo/GSM/WCDMA"</string>
    <string name="preferred_network_mode_evdo_only_choice">"Nur EvDo"</string>
    <string name="preferred_network_mode_cdma_wo_evdo_choice">"CDMA ohne EvDo"</string>
    <string name="preferred_network_mode_cdma_evdo_auto_choice">"CDMA/EvDo (automatisch)"</string>
    <string name="preferred_network_mode_gsm_wcdma_auto_choice">"GSM/WCDMA (automatisch)"</string>
    <string name="preferred_network_mode_wcdma_only_choice">"Nur WCDMA"</string>
    <string name="preferred_network_mode_gsm_only_choice">"Nur GSM"</string>
    <string name="preferred_network_mode_gsm_wcdma_preferred_choice">"GSM/WCDMA bevorzugt"</string>
</resources>
