From d5f32b38f507cf0f4e3ceed5a360f6f809ada3c6 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" <takaoka@google.com> Date: Wed, 9 Jul 2014 01:38:21 +0900 Subject: [PATCH] Add Telugu keyboard Bug: 10028759 Change-Id: Id1bf030a9928124ead695aa7bf76db48ca58de4b --- java/res/xml-sw600dp/key_space_5kw.xml | 7 +- java/res/xml-sw600dp/rows_telugu.xml | 49 +++++ java/res/xml/kbd_telugu.xml | 26 +++ java/res/xml/key_space_5kw.xml | 7 +- java/res/xml/keyboard_layout_set_telugu.xml | 42 ++++ java/res/xml/method.xml | 13 +- java/res/xml/rowkeys_telugu1.xml | 97 +++++++++ java/res/xml/rowkeys_telugu2.xml | 78 ++++++++ java/res/xml/rowkeys_telugu3.xml | 67 +++++++ java/res/xml/rows_telugu.xml | 45 +++++ .../keyboard/internal/KeyboardTextsTable.java | 173 ++++++++-------- .../KeyboardLayoutSetSubtypesCountTests.java | 2 +- .../inputmethod/keyboard/layout/Telugu.java | 189 ++++++++++++++++++ .../keyboard/layout/tests/TestsTeluguIN.java | 37 ++++ .../donottranslate-more-keys.xml | 28 +++ 15 files changed, 774 insertions(+), 86 deletions(-) create mode 100644 java/res/xml-sw600dp/rows_telugu.xml create mode 100644 java/res/xml/kbd_telugu.xml create mode 100644 java/res/xml/keyboard_layout_set_telugu.xml create mode 100644 java/res/xml/rowkeys_telugu1.xml create mode 100644 java/res/xml/rowkeys_telugu2.xml create mode 100644 java/res/xml/rowkeys_telugu3.xml create mode 100644 java/res/xml/rows_telugu.xml create mode 100644 tests/src/com/android/inputmethod/keyboard/layout/Telugu.java create mode 100644 tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java create mode 100644 tools/make-keyboard-text/res/values-te-rIN/donottranslate-more-keys.xml diff --git a/java/res/xml-sw600dp/key_space_5kw.xml b/java/res/xml-sw600dp/key_space_5kw.xml index bf7dffbe94..8302184c71 100644 --- a/java/res/xml-sw600dp/key_space_5kw.xml +++ b/java/res/xml-sw600dp/key_space_5kw.xml @@ -24,9 +24,10 @@ <switch> <!-- fa: Perisan kn: Kannada - ne: Nepali --> + ne: Nepali + te: Telugu --> <case - latin:languageCode="fa|kn|ne" + latin:languageCode="fa|kn|ne|te" latin:languageSwitchKeyEnabled="true" > <Key @@ -38,7 +39,7 @@ latin:keyStyle="zwnjKeyStyle" /> </case> <case - latin:languageCode="fa|kn|ne" + latin:languageCode="fa|kn|ne|te" latin:languageSwitchKeyEnabled="false" > <Key diff --git a/java/res/xml-sw600dp/rows_telugu.xml b/java/res/xml-sw600dp/rows_telugu.xml new file mode 100644 index 0000000000..c9aeb7ef22 --- /dev/null +++ b/java/res/xml-sw600dp/rows_telugu.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <include latin:keyboardLayout="@xml/key_styles_common" /> + <Row + latin:keyWidth="8.182%p" + latin:keyLabelFlags="fontNormal|autoXScale" + > + <include latin:keyboardLayout="@xml/rowkeys_telugu1" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="fillRight" /> + </Row> + <Row + latin:keyWidth="8.182%p" + latin:keyLabelFlags="fontNormal|autoXScale" + > + <include latin:keyboardLayout="@xml/rowkeys_telugu2" /> + <Key + latin:keyStyle="enterKeyStyle" + latin:keyWidth="fillRight" /> + </Row> + <Row + latin:keyWidth="8.182%p" + latin:keyLabelFlags="fontNormal|autoXScale" + > + <include latin:keyboardLayout="@xml/rowkeys_telugu3" /> + <include latin:keyboardLayout="@xml/keys_exclamation_question" /> + </Row> + <include latin:keyboardLayout="@xml/row_qwerty4" /> +</merge> diff --git a/java/res/xml/kbd_telugu.xml b/java/res/xml/kbd_telugu.xml new file mode 100644 index 0000000000..b4fc337d1b --- /dev/null +++ b/java/res/xml/kbd_telugu.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/rows_telugu" /> +</Keyboard> diff --git a/java/res/xml/key_space_5kw.xml b/java/res/xml/key_space_5kw.xml index 1b62eabccd..b1fe0bbeb2 100644 --- a/java/res/xml/key_space_5kw.xml +++ b/java/res/xml/key_space_5kw.xml @@ -24,9 +24,10 @@ <switch> <!-- fa: Perisan kn: Kannada - ne: Nepali --> + ne: Nepali + te: Telugu --> <case - latin:languageCode="fa|kn|ne" + latin:languageCode="fa|kn|ne|te" latin:languageSwitchKeyEnabled="true" > <Key @@ -38,7 +39,7 @@ latin:keyStyle="zwnjKeyStyle" /> </case> <case - latin:languageCode="fa|kn|ne" + latin:languageCode="fa|kn|ne|te" latin:languageSwitchKeyEnabled="false" > <Key diff --git a/java/res/xml/keyboard_layout_set_telugu.xml b/java/res/xml/keyboard_layout_set_telugu.xml new file mode 100644 index 0000000000..aca47b9d92 --- /dev/null +++ b/java/res/xml/keyboard_layout_set_telugu.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<KeyboardLayoutSet + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <Element + latin:elementName="alphabet" + latin:elementKeyboard="@xml/kbd_telugu" + latin:enableProximityCharsCorrection="true" /> + <Element + latin:elementName="symbols" + latin:elementKeyboard="@xml/kbd_symbols" /> + <Element + latin:elementName="symbolsShifted" + latin:elementKeyboard="@xml/kbd_symbols_shift" /> + <Element + latin:elementName="phone" + latin:elementKeyboard="@xml/kbd_phone" /> + <Element + latin:elementName="phoneSymbols" + latin:elementKeyboard="@xml/kbd_phone_symbols" /> + <Element + latin:elementName="number" + latin:elementKeyboard="@xml/kbd_number" /> +</KeyboardLayoutSet> diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml index 2a03f20d91..5021f33ee9 100644 --- a/java/res/xml/method.xml +++ b/java/res/xml/method.xml @@ -91,7 +91,8 @@ (sr-Latn: Serbian/qwerty) # not yet implemented. sv: Swedish/nordic sw: Swahili/qwerty - (ta: Tamil/tamil) # This is a preliminary keyboard layout. + (ta_IN: Tamil (India)/tamil) # This is a preliminary keyboard layout. + (te_IN: Telugu (India)/telugu) # This is a preliminary keyboard layout. th: Thai/thai tl: Tagalog/spanish tr: Turkish/qwerty @@ -699,6 +700,16 @@ android:imeSubtypeExtraValue="KeyboardLayoutSet=tamil,EmojiCapable" android:isAsciiCapable="false" /> + <!-- TODO: This telugu keyboard is a preliminary layout. + This isn't based on the final specification. --> + <subtype android:icon="@drawable/ic_ime_switcher_dark" + android:label="@string/subtype_generic" + android:subtypeId="0x1e177389" + android:imeSubtypeLocale="te_IN" + android:imeSubtypeMode="keyboard" + android:imeSubtypeExtraValue="KeyboardLayoutSet=telugu,EmojiCapable" + android:isAsciiCapable="false" + /> <subtype android:icon="@drawable/ic_ime_switcher_dark" android:label="@string/subtype_generic" android:subtypeId="0x1f94d5d4" diff --git a/java/res/xml/rowkeys_telugu1.xml b/java/res/xml/rowkeys_telugu1.xml new file mode 100644 index 0000000000..8a5c8506fa --- /dev/null +++ b/java/res/xml/rowkeys_telugu1.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <!-- U+0C4C: "ౌ" TELUGU VOWEL SIGN AU + U+0C14: "à°”" TELUGU LETTER AU --> + <Key + latin:keySpec="ౌ" + latin:moreKeys="ఔ,%" + latin:keyHintLabel="1" + latin:additionalMoreKeys="1" /> + <!-- U+0C48: "ై" TELUGU VOWEL SIGN AI + U+0C10: "à°" TELUGU LETTER AI --> + <Key + latin:keySpec="ై" + latin:moreKeys="ఐ,%" + latin:keyHintLabel="2" + latin:additionalMoreKeys="2" /> + <!-- U+0C3E: "à°¾" TELUGU VOWEL SIGN AA + U+0C06: "à°†" TELUGU LETTER AA --> + <Key + latin:keySpec="ా" + latin:moreKeys="ఆ,%" + latin:keyHintLabel="3" + latin:additionalMoreKeys="3" /> + <!-- U+0C40: "à±€" TELUGU VOWEL SIGN II + U+0C08: "à°ˆ" TELUGU LETTER II --> + <Key + latin:keySpec="ీ" + latin:moreKeys="ఈ,%" + latin:keyHintLabel="4" + latin:additionalMoreKeys="4" /> + <!-- U+0C42: "ూ" TELUGU VOWEL SIGN UU + U+0C0A: "à°Š" TELUGU LETTER UU --> + <Key + latin:keySpec="ూ" + latin:moreKeys="ఊ,%" + latin:keyHintLabel="5" + latin:additionalMoreKeys="5" /> + <!-- U+0C2C: "à°¬" TELUGU LETTER BA + U+0C2D: "à°" TELUGU LETTER BHA --> + <Key + latin:keySpec="బ" + latin:moreKeys="భ,%" + latin:keyHintLabel="6" + latin:additionalMoreKeys="6" /> + <!-- U+0C39: "à°¹" TELUGU LETTER HA + U+0C03: "à°ƒ" TELUGU SIGN VISARGA --> + <Key + latin:keySpec="హ" + latin:moreKeys="ః,%" + latin:keyHintLabel="7" + latin:additionalMoreKeys="7" /> + <!-- U+0C17: "à°—" TELUGU LETTER GA + U+0C18: "à°˜" TELUGU LETTER GHA --> + <Key + latin:keySpec="గ" + latin:moreKeys="ఘ,%" + latin:keyHintLabel="8" + latin:additionalMoreKeys="8" /> + <!-- U+0C26: "à°¦" TELUGU LETTER DA + U+0C27: "à°§" TELUGU LETTER DHA --> + <Key + latin:keySpec="ద" + latin:moreKeys="ధ,%" + latin:keyHintLabel="9" + latin:additionalMoreKeys="9" /> + <!-- U+0C1C: "à°œ" TELUGU LETTER JA + U+0C1D: "à°" TELUGU LETTER JHA --> + <Key + latin:keySpec="జ" + latin:moreKeys="ఝ,%" + latin:keyHintLabel="0" + latin:additionalMoreKeys="0" /> + <!-- U+0C21: "à°¡" TELUGU LETTER DDA + U+0C22: "à°¢" TELUGU LETTER DDHA --> + <Key + latin:keySpec="డ" + latin:moreKeys="ఢ" /> +</merge> diff --git a/java/res/xml/rowkeys_telugu2.xml b/java/res/xml/rowkeys_telugu2.xml new file mode 100644 index 0000000000..a472fd3f84 --- /dev/null +++ b/java/res/xml/rowkeys_telugu2.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <!-- U+0C4B: "ో" TELUGU VOWEL SIGN OO + U+0C13: "à°“" TELUGU LETTER OO --> + <Key + latin:keySpec="ో" + latin:moreKeys="ఓ" /> + <!-- U+0C47: "ే" TELUGU VOWEL SIGN EE + U+0C0F: "à°" TELUGU LETTER EE --> + <Key + latin:keySpec="ే" + latin:moreKeys="ఏ" /> + <!-- U+0C4D: "à±" TELUGU SIGN VIRAMA + U+0C05: "à°…" TELUGU LETTER A --> + <Key + latin:keySpec="్" + latin:moreKeys="అ" /> + <!-- U+0C3F: "à°¿" TELUGU VOWEL SIGN I + U+0C07: "à°‡" TELUGU LETTER I --> + <Key + latin:keySpec="ి" + latin:moreKeys="ఇ" /> + <!-- U+0C41: "à±" TELUGU VOWEL SIGN U + U+0C09: "à°‰" TELUGU LETTER U --> + <Key + latin:keySpec="ు" + latin:moreKeys="ఉ" /> + <!-- U+0C2A: "à°ª" TELUGU LETTER PA + U+0C2B: "à°«" TELUGU LETTER PHA --> + <Key + latin:keySpec="ప" + latin:moreKeys="ఫ" /> + <!-- U+0C30: "à°°" TELUGU LETTER RA + U+0C31: "à°±" TELUGU LETTER RRA + U+0C43: "ృ" TELUGU VOWEL SIGN VOCALIC R --> + <Key + latin:keySpec="ర" + latin:moreKeys="ఱ,ృ" /> + <!-- U+0C15: "à°•" TELUGU LETTER KA + U+0C16: "à°–" TELUGU LETTER KHA --> + <Key + latin:keySpec="క" + latin:moreKeys="ఖ" /> + <!-- U+0C24: "à°¤" TELUGU LETTER TA + U+0C25: "à°¥" TELUGU LETTER THA --> + <Key + latin:keySpec="త" + latin:moreKeys="థ" /> + <!-- U+0C1A: "à°š" TELUGU LETTER CA + U+0C1B: "à°›" TELUGU LETTER CHA --> + <Key + latin:keySpec="చ" + latin:moreKeys="ఛ" /> + <!-- U+0C1F: "à°Ÿ" TELUGU LETTER TTA + U+0C20: "à° " TELUGU LETTER TTHA --> + <Key + latin:keySpec="ట" + latin:moreKeys="ఠ" /> +</merge> diff --git a/java/res/xml/rowkeys_telugu3.xml b/java/res/xml/rowkeys_telugu3.xml new file mode 100644 index 0000000000..05755ec4da --- /dev/null +++ b/java/res/xml/rowkeys_telugu3.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <!-- U+0C46: "ె" TELUGU VOWEL SIGN E + U+0C12: "à°’" TELUGU LETTER O --> + <Key + latin:keySpec="ె" + latin:moreKeys="ఒ" /> + <!-- U+0C02: "à°‚" TELUGU SIGN ANUSVARA + U+0C0E: "à°Ž" TELUGU LETTER E --> + <Key + latin:keySpec="ం" + latin:moreKeys="ఎ" /> + <!-- U+0C2E: "à°®" TELUGU LETTER MA --> + <Key latin:keySpec="మ" /> + <!-- U+0C28: "à°¨" TELUGU LETTER NA + U+0C23: "à°£" TELUGU LETTER NNA + U+0C19: "à°™" TELUGU LETTER NGA --> + <Key + latin:keySpec="న" + latin:moreKeys="ణ,ఙ" /> + <!-- U+0C35: "à°µ" TELUGU LETTER VA --> + <Key latin:keySpec="వ" /> + <!-- U+0C32: "à°²" TELUGU LETTER LA + U+0C33: "à°³" TELUGU LETTER LLA --> + <Key + latin:keySpec="ల" + latin:moreKeys="ళ" /> + <!-- U+0C38: "à°¸" TELUGU LETTER SA + U+0C36: "à°¶" TELUGU LETTER SHA --> + <Key + latin:keySpec="స" + latin:moreKeys="శ" /> + <!-- U+0C0B: "à°‹" TELUGU LETTER VOCALIC R + U+0C4D/U+0C30: "à±à°°" TELUGU SIGN VIRAMA/TELUGU LETTER RA --> + <Key + latin:keySpec="ఋ" + latin:moreKeys="్ర" /> + <!-- U+0C37: "à°·" TELUGU LETTER SSA + U+0C15/U+0C4D/U+0C37: "à°•à±à°·" TELUGU LETTER KA/TELUGU SIGN VIRAMA/TELUGU LETTER SSA --> + <Key + latin:keySpec="ష" + latin:moreKeys="క్ష" /> + <!-- U+0C2F: "à°¯" TELUGU LETTER YA + U+0C1C/U+0C4D/U+0C1E: "à°œà±à°ž" TELUGU LETTER JA/TELUGU SIGN VIRAMA/TELUGU LETTER NYA --> + <Key + latin:keySpec="య" + latin:moreKeys="జ్ఞ" /> +</merge> diff --git a/java/res/xml/rows_telugu.xml b/java/res/xml/rows_telugu.xml new file mode 100644 index 0000000000..4a31d5dc3f --- /dev/null +++ b/java/res/xml/rows_telugu.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <include latin:keyboardLayout="@xml/key_styles_common" /> + <Row + latin:keyWidth="9.091%p" + latin:keyLabelFlags="fontNormal|autoXScale" + > + <include latin:keyboardLayout="@xml/rowkeys_telugu1" /> + </Row> + <Row + latin:keyWidth="9.091%p" + latin:keyLabelFlags="fontNormal|autoXScale" + > + <include latin:keyboardLayout="@xml/rowkeys_telugu2" /> + </Row> + <Row + latin:keyWidth="9.091%p" + latin:keyLabelFlags="fontNormal|autoXScale" + > + <include latin:keyboardLayout="@xml/rowkeys_telugu3" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="fillRight" /> + </Row> + <include latin:keyboardLayout="@xml/row_qwerty4" /> +</merge> \ No newline at end of file diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java index b508563169..eb494275fa 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java @@ -88,14 +88,14 @@ public final class KeyboardTextsTable { /* 2:30 */ "morekeys_u", /* 3:29 */ "morekeys_e", /* 4:28 */ "morekeys_i", - /* 5:27 */ "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:14 */ "keyspec_currency", + /* 11:15 */ "keyspec_currency", + /* 12:14 */ "morekeys_y", /* 13:13 */ "morekeys_d", /* 14:12 */ "morekeys_z", /* 15:10 */ "morekeys_t", @@ -267,10 +267,9 @@ public final class KeyboardTextsTable { /* morekeys_n */ EMPTY, /* single_quotes */ "!text/single_lqm_rqm", /* morekeys_s */ EMPTY, - /* morekeys_y */ EMPTY, /* keyspec_currency */ "$", - /* morekeys_d ~ */ - EMPTY, EMPTY, 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", @@ -515,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", @@ -696,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 @@ -763,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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+09F3: "৳" BENGALI RUPEE SIGN /* keyspec_currency */ "\u09F3", }; @@ -903,10 +903,10 @@ 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", - /* keyspec_currency */ null, // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON /* morekeys_d */ "\u010F", // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON @@ -962,10 +962,10 @@ 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", - /* keyspec_currency */ null, // U+00F0: "ð" LATIN SMALL LETTER ETH /* morekeys_d */ "\u00F0", /* morekeys_z */ null, @@ -1038,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", @@ -1199,12 +1199,12 @@ 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 // U+00FE: "þ" LATIN SMALL LETTER THORN /* morekeys_y */ "y,\u00FD,\u0177,\u00FF,\u00FE", - /* keyspec_currency */ null, // U+00F0: "ð" LATIN SMALL LETTER ETH // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON // U+0111: "Ä‘" LATIN SMALL LETTER D WITH STROKE @@ -1397,10 +1397,10 @@ 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", - /* keyspec_currency */ null, // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON /* morekeys_d */ "\u010F", // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON @@ -1504,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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+FDFC: "ï·¼" RIAL SIGN /* keyspec_currency */ "\uFDFC", - /* morekeys_d ~ */ + /* 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, /* ~ morekeys_cyrillic_soft_sign */ // U+06F1: "Û±" EXTENDED ARABIC-INDIC DIGIT ONE /* keyspec_symbols_1 */ "\u06F1", @@ -1662,7 +1662,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", - /* morekeys_y ~ */ + /* keyspec_currency ~ */ null, null, null, /* ~ morekeys_d */ // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON @@ -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", - /* keyspec_currency ~ */ + /* 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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20B9: "₹" INDIAN RUPEE SIGN /* keyspec_currency */ "\u20B9", - /* morekeys_d ~ */ + /* 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, /* ~ morekeys_cyrillic_soft_sign */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", @@ -1886,8 +1886,8 @@ public final class KeyboardTextsTable { // U+015B: "Å›" LATIN SMALL LETTER S WITH ACUTE // U+00DF: "ß" LATIN SMALL LETTER SHARP S /* morekeys_s */ "\u0161,\u015B,\u00DF", - /* morekeys_y */ null, /* 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 @@ -2064,10 +2064,10 @@ 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", - /* keyspec_currency */ null, // U+00F0: "ð" LATIN SMALL LETTER ETH /* morekeys_d */ "\u00F0", /* morekeys_z */ null, @@ -2153,14 +2153,13 @@ public final class KeyboardTextsTable { /* morekeys_n */ null, /* single_quotes */ "!text/single_rqm_9qm", /* morekeys_s */ null, - /* morekeys_y */ null, // U+20AA: "₪" NEW SHEQEL SIGN /* keyspec_currency */ "\u20AA", - /* morekeys_d ~ */ + /* 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, null, null, /* ~ morekeys_swiss_row2_11 */ // U+2605: "★" BLACK STAR /* morekeys_star */ "\u2605", @@ -2305,8 +2304,8 @@ public final class KeyboardTextsTable { // U+0CA1: "ಡ" KANNADA LETTER DDA /* keylabel_to_alpha */ "\u0C95\u0CA8\u0CCD\u0CA8\u0CA1", /* morekeys_c ~ */ - null, null, null, null, null, null, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20B9: "₹" INDIAN RUPEE SIGN /* keyspec_currency */ "\u20B9", }; @@ -2366,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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20AD: "â‚" KIP SIGN /* keyspec_currency */ "\u20AD", }; @@ -2436,10 +2435,10 @@ 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", - /* keyspec_currency */ null, // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON /* morekeys_d */ "\u010F", // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON @@ -2530,10 +2529,10 @@ 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", - /* keyspec_currency */ null, // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON /* morekeys_d */ "\u010F", // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON @@ -2608,8 +2607,8 @@ public final class KeyboardTextsTable { // U+0D05: "à´…" MALAYALAM LETTER A /* keylabel_to_alpha */ "\u0D05", /* morekeys_c ~ */ - null, null, null, null, null, null, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20B9: "₹" INDIAN RUPEE SIGN /* keyspec_currency */ "\u20B9", }; @@ -2625,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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20AE: "â‚®" TUGRIK SIGN /* keyspec_currency */ "\u20AE", }; @@ -2642,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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20B9: "₹" INDIAN RUPEE SIGN /* keyspec_currency */ "\u20B9", - /* morekeys_d ~ */ + /* 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, /* ~ morekeys_cyrillic_soft_sign */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", @@ -2789,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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+0930/U+0941/U+002E "रà¥." NEPALESE RUPEE SIGN /* keyspec_currency */ "\u0930\u0941.", - /* morekeys_d ~ */ + /* 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, /* ~ morekeys_cyrillic_soft_sign */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", @@ -2881,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", }; @@ -2930,7 +2930,7 @@ 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 ~ */ + /* keyspec_currency ~ */ null, null, null, /* ~ morekeys_d */ // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE @@ -3036,7 +3036,7 @@ 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, /* ~ morekeys_z */ // U+021B: "È›" LATIN SMALL LETTER T WITH COMMA BELOW @@ -3152,10 +3152,10 @@ 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", - /* keyspec_currency */ null, // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON /* morekeys_d */ "\u010F", // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON @@ -3196,8 +3196,8 @@ public final class KeyboardTextsTable { /* single_quotes */ "!text/single_9qm_lqm", // U+0161: "Å¡" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u0161", - /* morekeys_y */ null, /* 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 @@ -3317,10 +3317,10 @@ 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", - /* keyspec_currency */ null, // U+00F0: "ð" LATIN SMALL LETTER ETH // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON /* morekeys_d */ "\u00F0,\u010F", @@ -3405,7 +3405,7 @@ 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\'", @@ -3422,12 +3422,29 @@ public final class KeyboardTextsTable { // 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, null, - /* ~ morekeys_y */ + 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+0C24/U+0C46: "తె" TELUGU LETTER TA/TELUGU VOWEL SIGN E + // U+0C32/U+0C41: "à°²à±" TELUGU LETTER LA/TELUGU VOWEL SIGN U + // U+0C17/U+0C41: "à°—à±" TELUGU LETTER GA/TELUGU VOWEL SIGN U + /* keylabel_to_alpha */ "\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41", + /* 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 ~ */ @@ -3439,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, - /* ~ morekeys_y */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT /* keyspec_currency */ "\u0E3F", }; @@ -3541,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 @@ -3563,11 +3580,10 @@ public final class KeyboardTextsTable { /* morekeys_n */ null, /* single_quotes */ "!text/single_9qm_lqm", /* morekeys_s */ null, - /* morekeys_y */ null, // U+20B4: "â‚´" HRYVNIA SIGN /* keyspec_currency */ "\u20B4", - /* morekeys_d ~ */ - null, null, 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", @@ -3664,14 +3680,14 @@ 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 // U+1EF9: "ỹ" LATIN SMALL LETTER Y WITH TILDE // U+1EF5: "ỵ" LATIN SMALL LETTER Y WITH DOT BELOW /* morekeys_y */ "\u1EF3,\u00FD,\u1EF7,\u1EF9,\u1EF5", - // U+20AB: "â‚«" DONG SIGN - /* keyspec_currency */ "\u20AB", // U+0111: "Ä‘" LATIN SMALL LETTER D WITH STROKE /* morekeys_d */ "\u0111", }; @@ -3807,12 +3823,12 @@ 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 // U+0133: "ij" LATIN SMALL LIGATURE IJ /* morekeys_y */ "\u00FD,\u0177,\u00FF,\u0133", - /* keyspec_currency */ null, // U+010F: "Ä" LATIN SMALL LETTER D WITH CARON // U+0111: "Ä‘" LATIN SMALL LETTER D WITH STROKE // U+00F0: "ð" LATIN SMALL LETTER ETH @@ -3867,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_IN" , TEXTS_bn_IN, /* 2/ 13 Bengali (India) */ + "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 */ @@ -3897,19 +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/ 13 Kannada (India) */ + "kn_IN" , TEXTS_kn_IN, /* 2/ 12 Kannada (India) */ "ky" , TEXTS_ky, /* 10/ 89 Kirghiz */ - "lo_LA" , TEXTS_lo_LA, /* 2/ 13 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 */ - "ml_IN" , TEXTS_ml_IN, /* 2/ 13 Malayalam (India) */ - "mn_MN" , TEXTS_mn_MN, /* 2/ 13 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 */ @@ -3921,8 +3937,9 @@ public final class KeyboardTextsTable { "sr" , TEXTS_sr, /* 11/ 94 Serbian */ "sv" , TEXTS_sv, /* 21/ 54 Swedish */ "sw" , TEXTS_sw, /* 9/ 18 Swahili */ - "ta_IN" , TEXTS_ta_IN, /* 2/ 13 Tamil (India) */ - "th" , TEXTS_th, /* 2/ 13 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 */ diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java index 6b0652c595..eb67bc134e 100644 --- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java +++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java @@ -25,7 +25,7 @@ import java.util.ArrayList; @SmallTest public class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase { - private static final int NUMBER_OF_SUBTYPES = 76; + private static final int NUMBER_OF_SUBTYPES = 77; private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 45; private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2; diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java b/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java new file mode 100644 index 0000000000..f5d8d4148e --- /dev/null +++ b/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java @@ -0,0 +1,189 @@ +/* + * 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.keyboard.layout; + +import com.android.inputmethod.keyboard.layout.expected.ExpectedKey; +import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder; +import com.android.inputmethod.latin.Constants; + +import java.util.Locale; + +/** + * The Telugu keyboard. + */ +public final class Telugu extends LayoutBase { + private static final String LAYOUT_NAME = "telugu"; + + public Telugu(final LayoutCustomizer customizer) { + super(customizer, Symbols.class, SymbolsShifted.class); + } + + @Override + public String getName() { return LAYOUT_NAME; } + + public static class TeluguCustomizer extends LayoutCustomizer { + public TeluguCustomizer(final Locale locale) { super(locale); } + + @Override + public ExpectedKey getAlphabetKey() { return TELUGU_ALPHABET_KEY; } + + @Override + public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; } + + @Override + public ExpectedKey[] getOtherCurrencyKeys() { + return SymbolsShifted.CURRENCIES_OTHER_GENERIC; + } + + @Override + public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) { + return EMPTY_KEYS; + } + + @Override + public ExpectedKey[] getRightShiftKeys(final boolean isPhone) { + return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS; + } + + @Override + public ExpectedKey[] getSpaceKeys(final boolean isPhone) { + return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY)); + } + + // U+0C24/U+0C46: "తె" TELUGU LETTER TA/TELUGU VOWEL SIGN E + // U+0C32/U+0C41: "à°²à±" TELUGU LETTER LA/TELUGU VOWEL SIGN U + // U+0C17/U+0C41: "à°—à±" TELUGU LETTER GA/TELUGU VOWEL SIGN U + private static final ExpectedKey TELUGU_ALPHABET_KEY = key( + "\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41", Constants.CODE_SWITCH_ALPHA_SYMBOL); + + // U+20B9: "₹" INDIAN RUPEE SIGN + private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9", + Symbols.CURRENCY_GENERIC_MORE_KEYS); + } + + @Override + ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; } + + @Override + ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) { + return null; + } + + private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder() + .setKeysOfRow(1, + // U+0C4C: "ౌ" TELUGU VOWEL SIGN AU + // U+0C14: "à°”" TELUGU LETTER AU + key("\u0C4C", joinMoreKeys("\u0C14", "1")), + // U+0C48: "ై" TELUGU VOWEL SIGN AI + // U+0C10: "à°" TELUGU LETTER AI + key("\u0C48", joinMoreKeys("\u0C10", "2")), + // U+0C3E: "à°¾" TELUGU VOWEL SIGN AA + // U+0C06: "à°†" TELUGU LETTER AA + key("\u0C3E", joinMoreKeys("\u0C06", "3")), + // U+0C40: "à±€" TELUGU VOWEL SIGN II + // U+0C08: "à°ˆ" TELUGU LETTER II + key("\u0C40", joinMoreKeys("\u0C08", "4")), + // U+0C42: "ూ" TELUGU VOWEL SIGN UU + // U+0C0A: "à°Š" TELUGU LETTER UU + key("\u0C42", joinMoreKeys("\u0C0A", "5")), + // U+0C2C: "à°¬" TELUGU LETTER BA + // U+0C2D: "à°" TELUGU LETTER BHA + key("\u0C2C", joinMoreKeys("\u0C2D", "6")), + // U+0C39: "à°¹" TELUGU LETTER HA + // U+0C03: "à°ƒ" TELUGU SIGN VISARGA + key("\u0C39", joinMoreKeys("\u0C03", "7")), + // U+0C17: "à°—" TELUGU LETTER GA + // U+0C18: "à°˜" TELUGU LETTER GHA + key("\u0C17", joinMoreKeys("\u0C18", "8")), + // U+0C26: "à°¦" TELUGU LETTER DA + // U+0C27: "à°§" TELUGU LETTER DHA + key("\u0C26", joinMoreKeys("\u0C27", "9")), + // U+0C1C: "à°œ" TELUGU LETTER JA + // U+0C1D: "à°" TELUGU LETTER JHA + key("\u0C1C", joinMoreKeys("\u0C1D", "0")), + // U+0C21: "à°¡" TELUGU LETTER DDA + // U+0C22: "à°¢" TELUGU LETTER DDHA + key("\u0C21", moreKey("\u0C22"))) + .setKeysOfRow(2, + // U+0C4B: "ో" TELUGU VOWEL SIGN OO + // U+0C13: "à°“" TELUGU LETTER OO + key("\u0C4B", moreKey("\u0C13")), + // U+0C47: "ే" TELUGU VOWEL SIGN EE + // U+0C0F: "à°" TELUGU LETTER EE + key("\u0C47", moreKey("\u0C0F")), + // U+0C4D: "à±" TELUGU SIGN VIRAMA + // U+0C05: "à°…" TELUGU LETTER A + key("\u0C4D", moreKey("\u0C05")), + // U+0C3F: "à°¿" TELUGU VOWEL SIGN I + // U+0C07: "à°‡" TELUGU LETTER I + key("\u0C3F", moreKey("\u0C07")), + // U+0C41: "à±" TELUGU VOWEL SIGN U + // U+0C09: "à°‰" TELUGU LETTER U + key("\u0C41", moreKey("\u0C09")), + // U+0C2A: "à°ª" TELUGU LETTER PA + // U+0C2B: "à°«" TELUGU LETTER PHA + key("\u0C2A", moreKey("\u0C2B")), + // U+0C30: "à°°" TELUGU LETTER RA + // U+0C31: "à°±" TELUGU LETTER RRA + // U+0C43: "ృ" TELUGU VOWEL SIGN VOCALIC R + key("\u0C30", joinMoreKeys("\u0C31", "\u0C43")), + // U+0C15: "à°•" TELUGU LETTER KA + // U+0C16: "à°–" TELUGU LETTER KHA + key("\u0C15", moreKey("\u0C16")), + // U+0C24: "à°¤" TELUGU LETTER TA + // U+0C25: "à°¥" TELUGU LETTER THA + key("\u0C24", moreKey("\u0C25")), + // U+0C1A: "à°š" TELUGU LETTER CA + // U+0C1B: "à°›" TELUGU LETTER CHA + key("\u0C1A", moreKey("\u0C1B")), + // U+0C1F: "à°Ÿ" TELUGU LETTER TTA + // U+0C20: "à° " TELUGU LETTER TTHA + key("\u0C1F", moreKey("\u0C20"))) + .setKeysOfRow(3, + // U+0C46: "ె" TELUGU VOWEL SIGN E + // U+0C12: "à°’" TELUGU LETTER O + key("\u0C46", moreKey("\u0C12")), + // U+0C02: "à°‚" TELUGU SIGN ANUSVARA + // U+0C0E: "à°Ž" TELUGU LETTER E + key("\u0C02", moreKey("\u0C0E")), + // U+0C2E: "à°®" TELUGU LETTER MA + "\u0C2E", + // U+0C28: "à°¨" TELUGU LETTER NA + // U+0C23: "à°£" TELUGU LETTER NNA + // U+0C19: "à°™" TELUGU LETTER NGA + key("\u0C28", joinMoreKeys("\u0C23", "\u0C19")), + // U+0C35: "à°µ" TELUGU LETTER VA + "\u0C35", + // U+0C32: "à°²" TELUGU LETTER LA + // U+0C33: "à°³" TELUGU LETTER LLA + key("\u0C32", moreKey("\u0C33")), + // U+0C38: "à°¸" TELUGU LETTER SA + // U+0C36: "à°¶" TELUGU LETTER SHA + key("\u0C38", moreKey("\u0C36")), + // U+0C0B: "à°‹" TELUGU LETTER VOCALIC R + // U+0C4D/U+0C30: "à±à°°" TELUGU SIGN VIRAMA/TELUGU LETTER RA + key("\u0C0B", moreKey("\u0C4D\u0C30")), + // U+0C37: "à°·" TELUGU LETTER SSA + // U+0C15/U+0C4D/U+0C37: + // "à°•à±à°·" TELUGU LETTER KA/TELUGU SIGN VIRAMA/TELUGU LETTER SSA + key("\u0C37", moreKey("\u0C15\u0C4D\u0C37")), + // U+0C2F: "à°¯" TELUGU LETTER YA + // U+0C1C/U+0C4D/U+0C1E: + // "à°œà±à°ž" TELUGU LETTER JA/TELUGU SIGN VIRAMA/TELUGU LETTER NYA + key("\u0C2F", moreKey("\u0C1C\u0C4D\u0C1E"))) + .build(); +} diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java new file mode 100644 index 0000000000..04996d9aa2 --- /dev/null +++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java @@ -0,0 +1,37 @@ +/* + * 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.keyboard.layout.tests; + +import android.test.suitebuilder.annotation.SmallTest; + +import com.android.inputmethod.keyboard.layout.LayoutBase; +import com.android.inputmethod.keyboard.layout.Telugu; +import com.android.inputmethod.keyboard.layout.Telugu.TeluguCustomizer; + +import java.util.Locale; + +/** + * te_IN: Telugu (India)/telugu + */ +@SmallTest +public final class TestsTeluguIN extends LayoutTestsBase { + private static final Locale LOCALE = new Locale("te", "IN"); + private static final LayoutBase LAYOUT = new Telugu(new TeluguCustomizer(LOCALE)); + + @Override + LayoutBase getLayout() { return LAYOUT; } +} diff --git a/tools/make-keyboard-text/res/values-te-rIN/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-te-rIN/donottranslate-more-keys.xml new file mode 100644 index 0000000000..7fa769d064 --- /dev/null +++ b/tools/make-keyboard-text/res/values-te-rIN/donottranslate-more-keys.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Label for "switch to alphabetic" key. + U+0C24/U+0C46: "తె" TELUGU LETTER TA/TELUGU VOWEL SIGN E + U+0C32/U+0C41: "à°²à±" TELUGU LETTER LA/TELUGU VOWEL SIGN U + U+0C17/U+0C41: "à°—à±" TELUGU LETTER GA/TELUGU VOWEL SIGN U --> + <string name="keylabel_to_alpha">తెలుగు</string> + <!-- U+20B9: "₹" INDIAN RUPEE SIGN --> + <string name="keyspec_currency">₹</string> +</resources> -- GitLab