<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2007 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>
    <!-- Choices for timezone picker first level.
         These values will be used as search terms for TimeZone displayName
         strings. --> <skip />
    <!-- The time zone picker screen has two levels.  The first level allows the user to choose a region. -->
    <string-array name="timezone_filters">
	<!-- The next level of the time zoner picker should show time zones from the Americas. -->
        <item>America</item>
	<!-- The next level of the time zoner picker should show time zones from Europe. -->
        <item>Europe</item>
	<!-- The next level of the time zoner picker should show time zones from Africa. -->
        <item>Africa</item>
	<!-- The next level of the time zoner picker should show time zones from Asia. -->
        <item>Asia</item>
	<!-- The next level of the time zoner picker should show time zones from Australia. -->
        <item>Australia</item>
	<!-- The next level of the time zoner picker should show time zones from Pacific. -->
        <item>Pacific</item>
	<!-- The next level of the time zoner picker should show time zones from ALL regions. -->
        <item>All</item>
    </string-array>

    <!-- There is a setting to control the format of dates displayed throughout the system.  This is in the Date & Time Settings screen.  These will be adjusted to use punctuation appropriate to the user's locale. -->
    <string-array name="date_format_values" translatable="false">
        <!-- The blank item means to use whatever the locale calls for. -->
        <item></item>
        <item>MM-dd-yyyy</item>
        <item>dd-MM-yyyy</item>
        <item>yyyy-MM-dd</item>
    </string-array>

    <!-- Display settings.  The type of animations to show. -->
    <string-array name="animations_entries">
        <item>No animations</item>
        <item>Some animations</item>
        <item>All animations</item>
    </string-array>

    <!-- Display settings.  Summary for each type of animation. -->
    <string-array name="animations_summaries">
        <item>No window animations are shown</item>
        <item>Some window animations are shown</item>
        <item>All window animations are shown</item>
    </string-array>

    <!-- Do not translate. -->
    <string-array name="animations_values">
        <!-- Do not translate. -->
        <item>00</item>
        <!-- Do not translate. -->
        <item>01</item>
        <!-- Do not translate. -->
        <item>11</item>
    </string-array>

    <!-- Display settings.  The delay in inactivity before the screen is turned off. These are shown ain a list dialog. -->
    <string-array name="screen_timeout_entries">
        <item>15 seconds</item>
        <item>30 seconds</item>
        <item>1 minute</item>
        <item>2 minutes</item>
        <item>10 minutes</item>
        <!-- Choosing this means the screen will only turn off after the user manually does so.  There will be no inactivity check. -->
        <item>Never timeout</item>
    </string-array>

    <!-- Do not translate. -->
    <string-array name="screen_timeout_values">
        <!-- Do not translate. -->
        <item>15000</item>
        <!-- Do not translate. -->
        <item>30000</item>
        <!-- Do not translate. -->
        <item>60000</item>
        <!-- Do not translate. -->
        <item>120000</item>
        <!-- Do not translate. -->
        <item>600000</item>
        <!-- Do not translate. -->
        <item>-1</item>
    </string-array>

    <!-- TTS settings -->

    <!-- Default speech rate choices -->
    <string-array name="tts_rate_entries">
        <item>Very slow</item>
        <item>Slow</item>
        <item>Normal</item>
        <item>Fast</item>
        <item>Very fast</item>
    </string-array>
    <!-- Do not translate. -->
    <string-array name="tts_rate_values">
        <item>60</item>
        <item>80</item>
        <item>100</item>
        <item>150</item>
        <item>200</item>
    </string-array>

    <!-- Default pitch choices -->
    <string-array name="tts_pitch_entries">
        <item>Very low</item>
        <item>Low</item>
        <item>Normal</item>
        <item>High</item>
        <item>Very high</item>
    </string-array>
    <!-- Do not translate. -->
    <string-array name="tts_pitch_values">
        <item>50</item>
        <item>80</item>
        <item>100</item>
        <item>120</item>
        <item>150</item>
    </string-array>
    
    <!-- Default language choices -->
    <string-array name="tts_lang_entries">
        <item>American English</item>
        <item>British English</item>
        <item>French</item>
        <item>German</item>
        <item>Italian</item>
        <item>Spanish</item>
    </string-array>
    <!-- Do not translate. -->
    <string-array name="tts_lang_values">
        <item>eng-USA</item>
        <item>eng-GBR</item>
        <item>fra-FRA</item>
        <item>deu-DEU</item>
        <item>ita-ITA</item>
        <item>spa-ESP</item>
    </string-array>
    <!-- Do not translate. -->
    <string-array name="tts_demo_strings">
        <item>This is an example of speech synthesis in English.</item>
        <item>This is an example of speech synthesis in English.</item>
        <item>Voici un échantillon de synthèse vocale en français.</item>
        <item>Dies ist ein Beispiel für Sprachsynthese in Deutsch.</item>
        <item>Questo è un esempio di sintesi vocale in italiano.</item>
        <item>Este es un ejemplo de síntesis de voz en español.</item>
    </string-array>

    <!-- Wi-Fi settings -->

    <!-- Match this with code. --> <skip />
    <!-- Wi-Fi settings.  The type of security a Wi-Fi network has.  The user can choose this when he adds a manual network, or configures an existing network. -->
    <string-array name="wifi_security_entries">
        <!-- Let the phone figure out the security type auutomatically. -->
        <item>Auto</item>
        <!-- The Wi-Fi network does not have any security. -->
        <item>None</item>
        <!-- Do not translate. The Wi-Fi network has WEP security. -->
        <item>WEP</item>
        <!-- The Wi-Fi network has WPA personal security. WPA Personal is a tech term, and might be better left untranslated? -->
        <item>WPA/WPA2 PSK</item>
        <!-- The Wi-Fi network has WPA EAP extensible authentication protocol. -->
        <item>802.1x Enterprise</item>
    </string-array>

    <!-- Match this with code. --> <skip />
    <!-- Wi-Fi settings.  The type of security a Wi-Fi network has.  The user can choose this when he adds a manual network, or configures an existing network. -->
    <string-array name="wifi_security_without_auto_entries">
        <!-- The Wi-Fi network does not have any security. -->
        <item>None</item>
        <!-- Do not translate. The Wi-Fi network has WEP security. -->
        <item>WEP</item>
        <!-- The Wi-Fi network has WPA personal security. WPA Personal is a tech term, and might be better left untranslated? -->
        <item>WPA/WPA2 PSK</item>
        <!-- The Wi-Fi network has WPA enterprise security. WPA Enterprise is a tech term, and might be better left untranslated? -->
        <item>802.1x Enterprise</item>
    </string-array>

    <!-- Match this with code. --> <skip />
    <!-- Wi-Fi settings.  Presented as a list dialog to the user.  He chooses the type of WEP key he entered. -->
    <string-array name="wifi_wep_type">
        <!-- This means the phone should figure out the type automatically the best it can. -->
        <item>Auto</item>
        <!-- Do not translate. -->
        <item>WEP ASCII</item>
        <!-- WEP key that is in hexadecimal. -->
        <item>WEP hexadecimal</item>
    </string-array>
    
    <!-- Wi-Fi settings. Presented as a list dialog to the user to choose the Wi-Fi sleep policy. -->
    <string-array name="wifi_sleep_policy_entries">
        <!-- Wi-Fi should go to sleep when the screen turns off. -->
        <item>When screen turns off</item>
        <!-- When plugged in, never go to sleep.  When on battery, go to sleep when screen turns off. -->
        <item>Never when plugged in</item>
        <!-- Never go to sleep. -->
        <item>Never</item>
    </string-array>

    <!-- Match with wifi_sleep_policy_entries and the values of the settings in Settings class. --> <skip />
    <!-- Do not translate. -->
    <string-array name="wifi_sleep_policy_values">
        <!-- Do not translate. -->
        <item>0</item>
        <!-- Do not translate. -->
        <item>1</item>
        <!-- Do not translate. -->
        <item>2</item>
    </string-array>

    <!-- Match with constants in BatteryHistory class -->
    <string-array name="battery_history_type_spinner">
        <item>CPU usage</item>
        <item>Network usage</item>
        <item>GPS usage</item>
        <item>Sensor usage</item>
        <item>Partial wake usage</item>
        <item>Other usage</item>
    </string-array>

    <!-- Match with constants in BatteryStats class -->
    <string-array name="battery_history_which_spinner">
        <item>Since last unplugged</item>
        <item>Total since boot</item>
        <item>Total in all time</item>
    </string-array>

    <!-- Display options for UsageStats class -->
    <string-array name="usage_stats_display_order_types">
        <item>Usage Time</item>
        <item>Launch Count</item>
        <item>Application Name</item>
    </string-array>

    <!-- EAP method -->
    <string-array name="wifi_eap_entries">
        <item>PEAP</item>
        <item>TLS</item>
        <item>TTLS</item>
    </string-array>

    <!-- Phase 2 options -->
    <string-array name="wifi_phase2_entries">
        <item>None</item>
        <item>PAP</item>
        <item>MSCHAP</item>
        <item>MSCHAPV2</item>
        <item>GTC</item>
    </string-array>

    <!-- Sound settings for emergency tone. -->
    <string-array name="emergency_tone_entries">
        <item>Off</item>
        <item>Alert</item>
        <item>Vibrate</item>
    </string-array>

    <!-- Do not translate. -->
    <string-array name="emergency_tone_values">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>

    <!-- Locales in this list are displayed with the corresponding
         name from special_locale_names instead of using the name
         from Locale.getDisplayName(). -->
    <string-array translatable="false" name="special_locale_codes">
        <item>zh_CN</item>
        <item>zh_TW</item>
    </string-array>

    <string-array translatable="false" name="special_locale_names">
        <item>中文（简体）</item>
        <item>中文 (繁體)</item>
    </string-array>

</resources>
