aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java67
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java29
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardTheme.java7
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java1
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java248
6 files changed, 239 insertions, 115 deletions
diff --git a/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java b/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java
new file mode 100644
index 000000000..09f39a756
--- /dev/null
+++ b/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.compat;
+
+import android.view.textservice.TextInfo;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+
+@UsedForTesting
+public final class TextInfoCompatUtils {
+ // Note that TextInfo.getCharSequence() is supposed to be available in API level 21 and later.
+ private static final Method TEXT_INFO_GET_CHAR_SEQUENCE =
+ CompatUtils.getMethod(TextInfo.class, "getCharSequence");
+ private static final Constructor<?> TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE =
+ CompatUtils.getConstructor(TextInfo.class, CharSequence.class, int.class, int.class,
+ int.class, int.class);
+
+ @UsedForTesting
+ public static boolean isCharSequenceSupported() {
+ return TEXT_INFO_GET_CHAR_SEQUENCE != null &&
+ TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE != null;
+ }
+
+ @UsedForTesting
+ public static TextInfo newInstance(CharSequence charSequence, int start, int end, int cookie,
+ int sequenceNumber) {
+ if (TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE != null) {
+ return (TextInfo) CompatUtils.newInstance(TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE,
+ charSequence, start, end, cookie, sequenceNumber);
+ }
+ return new TextInfo(charSequence.subSequence(start, end).toString(), cookie,
+ sequenceNumber);
+ }
+
+ /**
+ * Returns the result of {@link TextInfo#getCharSequence()} when available. Otherwise returns
+ * the result of {@link TextInfo#getText()} as fall back.
+ * @param textInfo the instance for which {@link TextInfo#getCharSequence()} or
+ * {@link TextInfo#getText()} is called.
+ * @return the result of {@link TextInfo#getCharSequence()} when available. Otherwise returns
+ * the result of {@link TextInfo#getText()} as fall back. If {@code textInfo} is {@code null},
+ * returns {@code null}.
+ */
+ @UsedForTesting
+ public static CharSequence getCharSequenceOrString(final TextInfo textInfo) {
+ final CharSequence defaultValue = (textInfo == null ? null : textInfo.getText());
+ return (CharSequence) CompatUtils.invoke(textInfo, defaultValue,
+ TEXT_INFO_GET_CHAR_SEQUENCE);
+ }
+}
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index ed3b2b347..665d9f7a1 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -148,33 +148,28 @@ public class Key implements Comparable<Key> {
public final int mAltCode;
/** Icon for disabled state */
public final int mDisabledIconId;
- /** Preview version of the icon, for the preview popup */
- public final int mPreviewIconId;
/** The visual insets */
public final int mVisualInsetsLeft;
public final int mVisualInsetsRight;
private OptionalAttributes(final String outputText, final int altCode,
- final int disabledIconId, final int previewIconId,
- final int visualInsetsLeft, final int visualInsetsRight) {
+ final int disabledIconId, final int visualInsetsLeft, final int visualInsetsRight) {
mOutputText = outputText;
mAltCode = altCode;
mDisabledIconId = disabledIconId;
- mPreviewIconId = previewIconId;
mVisualInsetsLeft = visualInsetsLeft;
mVisualInsetsRight = visualInsetsRight;
}
public static OptionalAttributes newInstance(final String outputText, final int altCode,
- final int disabledIconId, final int previewIconId,
- final int visualInsetsLeft, final int visualInsetsRight) {
+ final int disabledIconId, final int visualInsetsLeft, final int visualInsetsRight) {
if (outputText == null && altCode == CODE_UNSPECIFIED
- && disabledIconId == ICON_UNDEFINED && previewIconId == ICON_UNDEFINED
- && visualInsetsLeft == 0 && visualInsetsRight == 0) {
+ && disabledIconId == ICON_UNDEFINED && visualInsetsLeft == 0
+ && visualInsetsRight == 0) {
return null;
}
- return new OptionalAttributes(outputText, altCode, disabledIconId, previewIconId,
- visualInsetsLeft, visualInsetsRight);
+ return new OptionalAttributes(outputText, altCode, disabledIconId, visualInsetsLeft,
+ visualInsetsRight);
}
}
@@ -204,8 +199,7 @@ public class Key implements Comparable<Key> {
mMoreKeysColumnAndFlags = 0;
mLabel = label;
mOptionalAttributes = OptionalAttributes.newInstance(outputText, CODE_UNSPECIFIED,
- ICON_UNDEFINED, ICON_UNDEFINED,
- 0 /* visualInsetsLeft */, 0 /* visualInsetsRight */);
+ ICON_UNDEFINED, 0 /* visualInsetsLeft */, 0 /* visualInsetsRight */);
mCode = code;
mEnabled = (code != CODE_UNSPECIFIED);
mIconId = iconId;
@@ -306,8 +300,6 @@ public class Key implements Comparable<Key> {
mIconId = KeySpecParser.getIconId(keySpec);
final int disabledIconId = KeySpecParser.getIconId(style.getString(keyAttr,
R.styleable.Keyboard_Key_keyIconDisabled));
- final int previewIconId = KeySpecParser.getIconId(style.getString(keyAttr,
- R.styleable.Keyboard_Key_keyIconPreview));
final int code = KeySpecParser.getCode(keySpec);
if ((mLabelFlags & LABEL_FLAGS_FROM_CUSTOM_ACTION_LABEL) != 0) {
@@ -361,7 +353,7 @@ public class Key implements Comparable<Key> {
final int altCode = StringUtils.toUpperCaseOfCodeForLocale(
altCodeInAttr, needsToUpperCase, locale);
mOptionalAttributes = OptionalAttributes.newInstance(outputText, altCode,
- disabledIconId, previewIconId, visualInsetsLeft, visualInsetsRight);
+ disabledIconId, visualInsetsLeft, visualInsetsRight);
mKeyVisualAttributes = KeyVisualAttributes.newInstance(keyAttr);
mHashCode = computeHashCode(this);
}
@@ -756,10 +748,7 @@ public class Key implements Comparable<Key> {
}
public Drawable getPreviewIcon(final KeyboardIconsSet iconSet) {
- final OptionalAttributes attrs = mOptionalAttributes;
- final int previewIconId = (attrs != null) ? attrs.mPreviewIconId : ICON_UNDEFINED;
- return previewIconId != ICON_UNDEFINED
- ? iconSet.getIconDrawable(previewIconId) : iconSet.getIconDrawable(getIconId());
+ return iconSet.getIconDrawable(getIconId());
}
public int getWidth() {
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
index 7b41dfef6..4c2e0dd1d 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
@@ -34,7 +34,8 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
public static final int THEME_ID_ICS = 0;
public static final int THEME_ID_KLP = 2;
- public static final int THEME_ID_LXX_DARK = 3;
+ public static final int THEME_ID_LXX_LIGHT = 3;
+ public static final int THEME_ID_LXX_DARK = 4;
public static final int DEFAULT_THEME_ID = THEME_ID_KLP;
private static final KeyboardTheme[] KEYBOARD_THEMES = {
@@ -44,10 +45,12 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
new KeyboardTheme(THEME_ID_KLP, R.style.KeyboardTheme_KLP,
// Default theme for ICS, JB, and KLP.
VERSION_CODES.ICE_CREAM_SANDWICH),
- new KeyboardTheme(THEME_ID_LXX_DARK, R.style.KeyboardTheme_LXX_Dark,
+ new KeyboardTheme(THEME_ID_LXX_LIGHT, R.style.KeyboardTheme_LXX_Light,
// Default theme for LXX.
// TODO: Update this constant once the *next* version becomes available.
VERSION_CODES.CUR_DEVELOPMENT),
+ new KeyboardTheme(THEME_ID_LXX_DARK, R.style.KeyboardTheme_LXX_Dark,
+ VERSION_CODES.BASE),
};
static {
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
index 0b0e761d2..5cbb34119 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
@@ -141,7 +141,6 @@ public final class KeyStylesSet {
readStringArray(keyAttr, R.styleable.Keyboard_Key_additionalMoreKeys);
readFlags(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags);
readString(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled);
- readString(keyAttr, R.styleable.Keyboard_Key_keyIconPreview);
readInt(keyAttr, R.styleable.Keyboard_Key_maxMoreKeysColumn);
readInt(keyAttr, R.styleable.Keyboard_Key_backgroundType);
readFlags(keyAttr, R.styleable.Keyboard_Key_keyActionFlags);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
index 7146deb4b..09550c4cb 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
@@ -48,7 +48,6 @@ public final class KeyboardIconsSet {
public static final String NAME_DONE_KEY = "done_key";
public static final String NAME_PREVIOUS_KEY = "previous_key";
public static final String NAME_TAB_KEY = "tab_key";
- public static final String NANE_TAB_KEY_PREVIEW = "tab_key_preview";
public static final String NAME_SHORTCUT_KEY = "shortcut_key";
public static final String NAME_SHORTCUT_KEY_DISABLED = "shortcut_key_disabled";
public static final String NAME_LANGUAGE_SWITCH_KEY = "language_switch_key";
@@ -79,7 +78,6 @@ public final class KeyboardIconsSet {
NAME_SPACE_KEY_FOR_NUMBER_LAYOUT, R.styleable.Keyboard_iconSpaceKeyForNumberLayout,
NAME_SHIFT_KEY_SHIFTED, R.styleable.Keyboard_iconShiftKeyShifted,
NAME_SHORTCUT_KEY_DISABLED, R.styleable.Keyboard_iconShortcutKeyDisabled,
- NANE_TAB_KEY_PREVIEW, R.styleable.Keyboard_iconTabKeyPreview,
NAME_LANGUAGE_SWITCH_KEY, R.styleable.Keyboard_iconLanguageSwitchKey,
NAME_ZWNJ_KEY, R.styleable.Keyboard_iconZwnjKey,
NAME_ZWJ_KEY, R.styleable.Keyboard_iconZwjKey,
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 6edc56c55..f18ebd1fe 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -88,16 +88,16 @@ public final class KeyboardTextsTable {
/* 2:30 */ "morekeys_u",
/* 3:29 */ "morekeys_e",
/* 4:28 */ "morekeys_i",
- /* 5:24 */ "keylabel_to_alpha",
+ /* 5:28 */ "keylabel_to_alpha",
/* 6:23 */ "morekeys_c",
/* 7:23 */ "double_quotes",
/* 8:22 */ "morekeys_n",
/* 9:22 */ "single_quotes",
/* 10:20 */ "morekeys_s",
- /* 11:14 */ "morekeys_y",
- /* 12:13 */ "morekeys_d",
- /* 13:12 */ "morekeys_z",
- /* 14:11 */ "keyspec_currency",
+ /* 11:15 */ "keyspec_currency",
+ /* 12:14 */ "morekeys_y",
+ /* 13:13 */ "morekeys_d",
+ /* 14:12 */ "morekeys_z",
/* 15:10 */ "morekeys_t",
/* 16:10 */ "morekeys_l",
/* 17: 9 */ "morekeys_g",
@@ -266,12 +266,10 @@ public final class KeyboardTextsTable {
/* double_quotes */ "!text/double_lqm_rqm",
/* morekeys_n */ EMPTY,
/* single_quotes */ "!text/single_lqm_rqm",
- /* morekeys_s ~ */
- EMPTY, EMPTY, EMPTY, EMPTY,
- /* ~ morekeys_z */
+ /* morekeys_s */ EMPTY,
/* keyspec_currency */ "$",
- /* morekeys_t ~ */
- EMPTY, EMPTY, EMPTY,
+ /* morekeys_y ~ */
+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
/* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_laqm_raqm",
/* double_angle_quotes */ "!text/double_laqm_raqm",
@@ -516,8 +514,9 @@ public final class KeyboardTextsTable {
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
- /* single_quotes */ null,
- /* morekeys_s */ null,
+ /* single_quotes ~ */
+ null, null, null,
+ /* ~ keyspec_currency */
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_y */ "\u00FD,\u0133",
@@ -697,7 +696,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161",
- /* morekeys_y ~ */
+ /* keyspec_currency ~ */
null, null, null, null, null, null,
/* ~ morekeys_l */
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
@@ -753,8 +752,8 @@ public final class KeyboardTextsTable {
/* double_quotes */ "!text/double_9qm_lqm",
};
- /* Locale bn: Bengali */
- private static final String[] TEXTS_bn = {
+ /* Locale bn_IN: Bengali (India) */
+ private static final String[] TEXTS_bn_IN = {
/* morekeys_a ~ */
null, null, null, null, null,
/* ~ morekeys_i */
@@ -764,8 +763,8 @@ public final class KeyboardTextsTable {
// U+0997: "ग" BENGALI LETTER GA
/* keylabel_to_alpha */ "\u0995\u0996\u0997",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+09F3: "৳" BENGALI RUPEE SIGN
/* keyspec_currency */ "\u09F3",
};
@@ -904,6 +903,7 @@ public final class KeyboardTextsTable {
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
/* morekeys_s */ "\u0161,\u00DF,\u015B",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
@@ -913,7 +913,6 @@ public final class KeyboardTextsTable {
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
/* morekeys_z */ "\u017E,\u017A,\u017C",
- /* keyspec_currency */ null,
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0165",
/* morekeys_l */ null,
@@ -963,14 +962,14 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u00DF,\u015B,\u0161",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
// U+00F0: "ð" LATIN SMALL LETTER ETH
/* morekeys_d */ "\u00F0",
- /* morekeys_z ~ */
- null, null, null,
- /* ~ morekeys_t */
+ /* morekeys_z */ null,
+ /* morekeys_t */ null,
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
/* morekeys_l */ "\u0142",
/* morekeys_g */ null,
@@ -1039,7 +1038,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u00DF,\u015B,\u0161",
- /* morekeys_y ~ */
+ /* keyspec_currency ~ */
null, null, null, null, null, null, null,
/* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
@@ -1200,6 +1199,7 @@ public final class KeyboardTextsTable {
// U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
/* morekeys_s */ "\u00DF,\u0161,\u015B,\u0219,\u015F",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
@@ -1213,7 +1213,6 @@ public final class KeyboardTextsTable {
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017A,\u017C,\u017E",
- /* keyspec_currency */ null,
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
@@ -1398,6 +1397,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
/* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
@@ -1407,7 +1407,6 @@ public final class KeyboardTextsTable {
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
/* morekeys_z */ "\u017E,\u017C,\u017A",
- /* keyspec_currency */ null,
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0163,\u0165",
@@ -1505,13 +1504,13 @@ public final class KeyboardTextsTable {
// U+067E: "پ" ARABIC LETTER PEH
/* keylabel_to_alpha */ "\u0627\u200C\u0628\u200C\u067E",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+FDFC: "﷼" RIAL SIGN
/* keyspec_currency */ "\uFDFC",
- /* morekeys_t ~ */
+ /* morekeys_y ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null,
+ null, null, null, null, null,
/* ~ morekeys_cyrillic_soft_sign */
// U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE
/* keyspec_symbols_1 */ "\u06F1",
@@ -1663,14 +1662,15 @@ public final class KeyboardTextsTable {
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
/* morekeys_s */ "\u0161,\u00DF,\u015B",
- /* morekeys_y */ null,
- /* morekeys_d */ null,
+ /* keyspec_currency ~ */
+ null, null, null,
+ /* ~ morekeys_d */
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
/* morekeys_z */ "\u017E,\u017A,\u017C",
- /* keyspec_currency ~ */
- null, null, null, null, null, null, null, null, null,
+ /* morekeys_t ~ */
+ null, null, null, null, null, null, null, null,
/* ~ morekeys_cyrillic_ie */
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
/* keyspec_nordic_row1_11 */ "\u00E5",
@@ -1737,14 +1737,14 @@ public final class KeyboardTextsTable {
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,%,\u0107,\u010D",
/* double_quotes ~ */
- null, null, null, null,
- /* ~ morekeys_s */
+ null, null, null, null, null,
+ /* ~ keyspec_currency */
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "%,\u00FF",
/* morekeys_d ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null,
/* ~ keyspec_tablet_comma */
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
/* keyspec_swiss_row1_11 */ "\u00E8",
@@ -1826,13 +1826,13 @@ public final class KeyboardTextsTable {
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
- /* morekeys_t ~ */
+ /* morekeys_y ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null,
+ null, null, null, null, null,
/* ~ morekeys_cyrillic_soft_sign */
// U+0967: "१" DEVANAGARI DIGIT ONE
/* keyspec_symbols_1 */ "\u0967",
@@ -1886,6 +1886,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u0161,\u015B,\u00DF",
+ /* keyspec_currency */ null,
/* morekeys_y */ null,
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111",
@@ -1893,8 +1894,8 @@ public final class KeyboardTextsTable {
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
/* morekeys_z */ "\u017E,\u017A,\u017C",
- /* keyspec_currency ~ */
- null, null, null, null,
+ /* morekeys_t ~ */
+ null, null, null,
/* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
@@ -2063,13 +2064,13 @@ public final class KeyboardTextsTable {
/* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* morekeys_s */ null,
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
// U+00F0: "ð" LATIN SMALL LETTER ETH
/* morekeys_d */ "\u00F0",
/* morekeys_z */ null,
- /* keyspec_currency */ null,
// U+00FE: "þ" LATIN SMALL LETTER THORN
/* morekeys_t */ "\u00FE",
};
@@ -2151,16 +2152,14 @@ public final class KeyboardTextsTable {
/* double_quotes */ "!text/double_rqm_9qm",
/* morekeys_n */ null,
/* single_quotes */ "!text/single_rqm_9qm",
- /* morekeys_s ~ */
- null, null, null, null,
- /* ~ morekeys_z */
+ /* morekeys_s */ null,
// U+20AA: "₪" NEW SHEQEL SIGN
/* keyspec_currency */ "\u20AA",
- /* morekeys_t ~ */
+ /* morekeys_y ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null,
+ null, null, null, null, null,
/* ~ morekeys_swiss_row2_11 */
// U+2605: "★" BLACK STAR
/* morekeys_star */ "\u2605",
@@ -2294,6 +2293,23 @@ public final class KeyboardTextsTable {
/* morekeys_currency_dollar */ "\u17DB,\u00A2,\u00A3,\u20AC,\u00A5,\u20B1",
};
+ /* Locale kn_IN: Kannada (India) */
+ private static final String[] TEXTS_kn_IN = {
+ /* morekeys_a ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_i */
+ // Label for "switch to alphabetic" key.
+ // U+0C85: "ಅ" KANNADA LETTER A
+ // U+0C86: "ಆ" KANNADA LETTER AA
+ // U+0C87: "ಇ" KANNADA LETTER I
+ /* keylabel_to_alpha */ "\u0C85\u0C86\u0C87",
+ /* morekeys_c ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
+ // U+20B9: "₹" INDIAN RUPEE SIGN
+ /* keyspec_currency */ "\u20B9",
+ };
+
/* Locale ky: Kirghiz */
private static final String[] TEXTS_ky = {
/* morekeys_a ~ */
@@ -2349,8 +2365,8 @@ public final class KeyboardTextsTable {
// U+0E84: "ຄ" LAO LETTER KHO TAM
/* keylabel_to_alpha */ "\u0E81\u0E82\u0E84",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+20AD: "₭" KIP SIGN
/* keyspec_currency */ "\u20AD",
};
@@ -2419,6 +2435,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
/* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
@@ -2428,7 +2445,6 @@ public final class KeyboardTextsTable {
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
/* morekeys_z */ "\u017E,\u017C,\u017A",
- /* keyspec_currency */ null,
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0163,\u0165",
@@ -2513,6 +2529,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
/* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
@@ -2522,7 +2539,6 @@ public final class KeyboardTextsTable {
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
/* morekeys_z */ "\u017E,\u017C,\u017A",
- /* keyspec_currency */ null,
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0163,\u0165",
@@ -2582,6 +2598,21 @@ public final class KeyboardTextsTable {
/* keyspec_south_slavic_row3_8 */ "\u0453",
};
+ /* Locale ml_IN: Malayalam (India) */
+ private static final String[] TEXTS_ml_IN = {
+ /* morekeys_a ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_i */
+ // Label for "switch to alphabetic" key.
+ // U+0D05: "അ" MALAYALAM LETTER A
+ /* keylabel_to_alpha */ "\u0D05",
+ /* morekeys_c ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
+ // U+20B9: "₹" INDIAN RUPEE SIGN
+ /* keyspec_currency */ "\u20B9",
+ };
+
/* Locale mn_MN: Mongolian (Mongolia) */
private static final String[] TEXTS_mn_MN = {
/* morekeys_a ~ */
@@ -2593,8 +2624,8 @@ public final class KeyboardTextsTable {
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+20AE: "₮" TUGRIK SIGN
/* keyspec_currency */ "\u20AE",
};
@@ -2610,13 +2641,13 @@ public final class KeyboardTextsTable {
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
- /* morekeys_t ~ */
+ /* morekeys_y ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null,
+ null, null, null, null, null,
/* ~ morekeys_cyrillic_soft_sign */
// U+0967: "१" DEVANAGARI DIGIT ONE
/* keyspec_symbols_1 */ "\u0967",
@@ -2757,13 +2788,13 @@ public final class KeyboardTextsTable {
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
/* keyspec_currency */ "\u0930\u0941.",
- /* morekeys_t ~ */
+ /* morekeys_y ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null,
+ null, null, null, null, null,
/* ~ morekeys_cyrillic_soft_sign */
// U+0967: "१" DEVANAGARI DIGIT ONE
/* keyspec_symbols_1 */ "\u0967",
@@ -2849,6 +2880,7 @@ public final class KeyboardTextsTable {
/* morekeys_n */ "\u00F1,\u0144",
/* single_quotes */ "!text/single_9qm_rqm",
/* morekeys_s */ null,
+ /* keyspec_currency */ null,
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_y */ "\u0133",
};
@@ -2898,13 +2930,13 @@ public final class KeyboardTextsTable {
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u015B,\u00DF,\u0161",
- /* morekeys_y */ null,
- /* morekeys_d */ null,
+ /* keyspec_currency ~ */
+ null, null, null,
+ /* ~ morekeys_d */
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017C,\u017A,\u017E",
- /* keyspec_currency */ null,
/* morekeys_t */ null,
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
/* morekeys_l */ "\u0142",
@@ -3004,9 +3036,9 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u0219,\u00DF,\u015B,\u0161",
- /* morekeys_y ~ */
+ /* keyspec_currency ~ */
null, null, null, null,
- /* ~ keyspec_currency */
+ /* ~ morekeys_z */
// U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
/* morekeys_t */ "\u021B",
};
@@ -3120,6 +3152,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
/* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
@@ -3129,7 +3162,6 @@ public final class KeyboardTextsTable {
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
/* morekeys_z */ "\u017E,\u017C,\u017A",
- /* keyspec_currency */ null,
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
/* morekeys_t */ "\u0165,\u0163",
@@ -3164,13 +3196,14 @@ public final class KeyboardTextsTable {
/* single_quotes */ "!text/single_9qm_lqm",
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u0161",
+ /* keyspec_currency */ null,
/* morekeys_y */ null,
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111",
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017E",
- /* keyspec_currency ~ */
- null, null, null, null,
+ /* morekeys_t ~ */
+ null, null, null,
/* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
@@ -3284,6 +3317,7 @@ public final class KeyboardTextsTable {
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u015B,\u0161,\u015F,\u00DF",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "\u00FD,\u00FF",
@@ -3294,7 +3328,6 @@ public final class KeyboardTextsTable {
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
/* morekeys_z */ "\u017A,\u017E,\u017C",
- /* keyspec_currency */ null,
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+00FE: "þ" LATIN SMALL LETTER THORN
/* morekeys_t */ "\u0165,\u00FE",
@@ -3372,12 +3405,46 @@ public final class KeyboardTextsTable {
/* single_quotes */ null,
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u00DF",
- /* morekeys_y ~ */
+ /* keyspec_currency ~ */
null, null, null, null, null, null,
/* ~ morekeys_l */
/* morekeys_g */ "g\'",
};
+ /* Locale ta_IN: Tamil (India) */
+ private static final String[] TEXTS_ta_IN = {
+ /* morekeys_a ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_i */
+ // Label for "switch to alphabetic" key.
+ // U+0BA4: "த" TAMIL LETTER TA
+ // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
+ // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
+ /* keylabel_to_alpha */ "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",
+ /* morekeys_c ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
+ // U+0BF9: "௹" TAMIL RUPEE SIGN
+ /* keyspec_currency */ "\u0BF9",
+ };
+
+ /* Locale te_IN: Telugu (India) */
+ private static final String[] TEXTS_te_IN = {
+ /* morekeys_a ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_i */
+ // Label for "switch to alphabetic" key.
+ // U+0C05: "అ" TELUGU LETTER A
+ // U+0C06: "ఆ" TELUGU LETTER AA
+ // U+0C07: "ఇ" TELUGU LETTER I
+ /* keylabel_to_alpha */ "\u0C05\u0C06\u0C07",
+ /* morekeys_c ~ */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
+ // U+20B9: "₹" INDIAN RUPEE SIGN
+ /* keyspec_currency */ "\u20B9",
+ };
+
/* Locale th: Thai */
private static final String[] TEXTS_th = {
/* morekeys_a ~ */
@@ -3389,8 +3456,8 @@ public final class KeyboardTextsTable {
// U+0E04: "ค" THAI CHARACTER KHO KHWAI
/* keylabel_to_alpha */ "\u0E01\u0E02\u0E04",
/* morekeys_c ~ */
- null, null, null, null, null, null, null, null,
- /* ~ morekeys_z */
+ null, null, null, null, null,
+ /* ~ morekeys_s */
// U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT
/* keyspec_currency */ "\u0E3F",
};
@@ -3491,7 +3558,7 @@ public final class KeyboardTextsTable {
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161",
- /* morekeys_y ~ */
+ /* keyspec_currency ~ */
null, null, null, null, null, null,
/* ~ morekeys_l */
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
@@ -3512,13 +3579,11 @@ public final class KeyboardTextsTable {
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
- /* morekeys_s ~ */
- null, null, null, null,
- /* ~ morekeys_z */
+ /* morekeys_s */ null,
// U+20B4: "₴" HRYVNIA SIGN
/* keyspec_currency */ "\u20B4",
- /* morekeys_t ~ */
- null, null, null, null, null, null, null, null, null, null, null, null,
+ /* morekeys_y ~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
/* ~ morekeys_nordic_row2_10 */
// U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
/* keyspec_east_slavic_row1_9 */ "\u0449",
@@ -3615,6 +3680,8 @@ public final class KeyboardTextsTable {
/* keylabel_to_alpha ~ */
null, null, null, null, null, null,
/* ~ morekeys_s */
+ // U+20AB: "₫" DONG SIGN
+ /* keyspec_currency */ "\u20AB",
// U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+1EF7: "ỷ" LATIN SMALL LETTER Y WITH HOOK ABOVE
@@ -3623,9 +3690,6 @@ public final class KeyboardTextsTable {
/* morekeys_y */ "\u1EF3,\u00FD,\u1EF7,\u1EF9,\u1EF5",
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111",
- /* morekeys_z */ null,
- // U+20AB: "₫" DONG SIGN
- /* keyspec_currency */ "\u20AB",
};
/* Locale zu: Zulu */
@@ -3759,6 +3823,7 @@ public final class KeyboardTextsTable {
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+017F: "ſ" LATIN SMALL LETTER LONG S
/* morekeys_s */ "\u00DF,\u015B,\u015D,\u015F,\u0161,\u017F",
+ /* keyspec_currency */ null,
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
@@ -3772,7 +3837,6 @@ public final class KeyboardTextsTable {
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017A,\u017C,\u017E",
- /* keyspec_currency */ null,
// U+00FE: "þ" LATIN SMALL LETTER THORN
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
@@ -3819,12 +3883,12 @@ public final class KeyboardTextsTable {
private static final Object[] LOCALES_AND_TEXTS = {
// "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */
"DEFAULT", TEXTS_DEFAULT, /* 168/168 DEFAULT */
- "af" , TEXTS_af, /* 7/ 12 Afrikaans */
+ "af" , TEXTS_af, /* 7/ 13 Afrikaans */
"ar" , TEXTS_ar, /* 55/110 Arabic */
"az_AZ" , TEXTS_az_AZ, /* 8/ 18 Azerbaijani (Azerbaijan) */
"be_BY" , TEXTS_be_BY, /* 9/ 32 Belarusian (Belarus) */
"bg" , TEXTS_bg, /* 2/ 8 Bulgarian */
- "bn" , TEXTS_bn, /* 2/ 15 Bengali */
+ "bn_IN" , TEXTS_bn_IN, /* 2/ 12 Bengali (India) */
"ca" , TEXTS_ca, /* 11/ 96 Catalan */
"cs" , TEXTS_cs, /* 17/ 21 Czech */
"da" , TEXTS_da, /* 19/ 54 Danish */
@@ -3849,17 +3913,19 @@ public final class KeyboardTextsTable {
"ka_GE" , TEXTS_ka_GE, /* 3/ 10 Georgian (Georgia) */
"kk" , TEXTS_kk, /* 15/121 Kazakh */
"km_KH" , TEXTS_km_KH, /* 2/122 Khmer (Cambodia) */
+ "kn_IN" , TEXTS_kn_IN, /* 2/ 12 Kannada (India) */
"ky" , TEXTS_ky, /* 10/ 89 Kirghiz */
- "lo_LA" , TEXTS_lo_LA, /* 2/ 15 Lao (Laos) */
+ "lo_LA" , TEXTS_lo_LA, /* 2/ 12 Lao (Laos) */
"lt" , TEXTS_lt, /* 18/ 22 Lithuanian */
"lv" , TEXTS_lv, /* 18/ 22 Latvian */
"mk" , TEXTS_mk, /* 9/ 94 Macedonian */
- "mn_MN" , TEXTS_mn_MN, /* 2/ 15 Mongolian (Mongolia) */
+ "ml_IN" , TEXTS_ml_IN, /* 2/ 12 Malayalam (India) */
+ "mn_MN" , TEXTS_mn_MN, /* 2/ 12 Mongolian (Mongolia) */
"mr_IN" , TEXTS_mr_IN, /* 23/ 53 Marathi (India) */
"my_MM" , TEXTS_my_MM, /* 8/104 Burmese (Myanmar) */
"nb" , TEXTS_nb, /* 11/ 54 Norwegian Bokmål */
"ne_NP" , TEXTS_ne_NP, /* 23/ 53 Nepali (Nepal) */
- "nl" , TEXTS_nl, /* 9/ 12 Dutch */
+ "nl" , TEXTS_nl, /* 9/ 13 Dutch */
"pl" , TEXTS_pl, /* 10/ 17 Polish */
"pt" , TEXTS_pt, /* 6/ 7 Portuguese */
"rm" , TEXTS_rm, /* 1/ 2 Raeto-Romance */
@@ -3871,11 +3937,13 @@ public final class KeyboardTextsTable {
"sr" , TEXTS_sr, /* 11/ 94 Serbian */
"sv" , TEXTS_sv, /* 21/ 54 Swedish */
"sw" , TEXTS_sw, /* 9/ 18 Swahili */
- "th" , TEXTS_th, /* 2/ 15 Thai */
+ "ta_IN" , TEXTS_ta_IN, /* 2/ 12 Tamil (India) */
+ "te_IN" , TEXTS_te_IN, /* 2/ 12 Telugu (India) */
+ "th" , TEXTS_th, /* 2/ 12 Thai */
"tl" , TEXTS_tl, /* 7/ 9 Tagalog */
"tr" , TEXTS_tr, /* 7/ 18 Turkish */
"uk" , TEXTS_uk, /* 11/ 88 Ukrainian */
- "vi" , TEXTS_vi, /* 8/ 15 Vietnamese */
+ "vi" , TEXTS_vi, /* 8/ 14 Vietnamese */
"zu" , TEXTS_zu, /* 8/ 11 Zulu */
"zz" , TEXTS_zz, /* 19/112 Alphabet */
};