<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2009, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- For backward compatibility.
         @see com.android.inputmethod.latin.settings.SettingsValues#needsToShowVoiceInputKey(android.content.SharedPreferences,android.content.res.Resources) -->
    <string name="voice_mode_main">0</string>

    <!-- Subtype locale display name exceptions.
         For each exception, there should be related string resources for display name that may have
         explicit keyboard layout. The string resource name must be "subtype_<locale>" or
         "subtype_with_layout_<locale>. Please refer to strings.xml for these resources. -->
    <string-array name="subtype_locale_exception_keys">
        <item>en_US</item>
        <item>en_GB</item>
        <item>es_US</item>
        <item>hi_ZZ</item>
        <item>hu_ZZ</item>
        <item>sr_ZZ</item>
    </string-array>

    <!-- Subtype locale whose name should be displayed in Locale.ROOT. -->
    <string-array name="subtype_locale_displayed_in_root_locale">
        <item>hi_ZZ</item>
        <item>sr_ZZ</item>
    </string-array>
    <string name="subtype_in_root_locale_hi_ZZ">Hinglish</string>
    <string name="subtype_in_root_locale_sr_ZZ">Srpski</string>

    <!-- Generic subtype label -->
    <string name="subtype_generic">%s</string>

    <!-- Predefined keyboard layouts for additional subtype -->
    <string-array name="predefined_layouts">
        <item>qwerty</item>
        <item>qwertz</item>
        <item>azerty</item>
        <item>dvorak</item>
        <item>colemak</item>
        <item>bepo</item>
        <item>pcqwerty</item>
    </string-array>
    <!-- Predefined keyboard layout display names -->
    <string-array name="predefined_layout_display_names">
        <item>QWERTY</item>
        <item>QWERTZ</item>
        <item>AZERTY</item>
        <item>Dvorak</item>
        <item>Colemak</item>
        <item>Bépo</item>
        <item>PC</item>
    </string-array>
    <!-- Description for generic subtype that has predefined layout.
         The string resource name must be "subtype_generic_<layout name>".
         The string resource with "No language" also must be added to strings.xml and the resource
         name must be "subtype_no_language_<layout name>" -->
    <string name="subtype_generic_qwerty">%s (QWERTY)</string>
    <string name="subtype_generic_qwertz">%s (QWERTZ)</string>
    <string name="subtype_generic_azerty">%s (AZERTY)</string>
    <string name="subtype_generic_dvorak">%s (Dvorak)</string>
    <string name="subtype_generic_colemak">%s (Colemak)</string>
    <string name="subtype_generic_bepo">%s (Bépo)</string>
    <string name="subtype_generic_pcqwerty">%s (PC)</string>

    <!-- Description for Bulgarian (BDS) subtype. -->
    <string name="subtype_bulgarian_bds">%s (BDS)</string>
  
    <!-- Description for Bulgarian (BEKL) subtype. -->
    <string name="subtype_bulgarian_bekl">%s (BEKL)</string>

    <!-- Compatibility map from subtypeLocale:subtypeExtraValue to keyboardLayoutSet -->
    <string-array name="locale_and_extra_value_to_keyboard_layout_set_map">
        <item>en_US:TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwerty</item>
        <item>en_GB:TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwerty</item>
        <item>ar:SupportTouchPositionCorrection,EmojiCapable</item>
        <item>arabic</item>
        <item>cs:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwertz</item>
        <item>da:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>nordic</item>
        <item>de:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwertz</item>
        <item>es:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>spanish</item>
        <item>fi:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>nordic</item>
        <item>fr:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>azerty</item>
        <item>fr_CA:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwerty</item>
        <item>hr:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwertz</item>
        <item>hu:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwertz</item>
        <item>it:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwerty</item>
        <item>iw:SupportTouchPositionCorrection,EmojiCapable</item>
        <item>hebrew</item>
        <item>nb:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>nordic</item>
        <item>nl:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwerty</item>
        <item>pl:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwerty</item>
        <item>ru:SupportTouchPositionCorrection,EmojiCapable</item>
        <item>east_slavic</item>
        <item>sr:SupportTouchPositionCorrection,EmojiCapable</item>
        <item>south_slavic</item>
        <item>sv:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>nordic</item>
        <item>tr:AsciiCapable,SupportTouchPositionCorrection,EmojiCapable</item>
        <item>qwerty</item>
    </string-array>
</resources>
