aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-07-09 01:00:56 +0900
committerTadashi G. Takaoka <takaoka@google.com>2014-07-09 01:44:04 +0900
commit03aa084ccd9d7c542711051ec1c50e0de43f1d8d (patch)
tree1f9a0719fa986f5cc2268dd930a88d4acc74d533
parentcc8f4491e3f1cc956002397f8e04ed023fb20c5c (diff)
downloadlatinime-03aa084ccd9d7c542711051ec1c50e0de43f1d8d.tar.gz
latinime-03aa084ccd9d7c542711051ec1c50e0de43f1d8d.tar.xz
latinime-03aa084ccd9d7c542711051ec1c50e0de43f1d8d.zip
Add Kannada keyboard
Bug: 10029252 Change-Id: Ia03ff886f9e62a2fe228fe59b504b033eead7631
-rw-r--r--java/res/xml-sw600dp/key_space_5kw.xml7
-rw-r--r--java/res/xml-sw600dp/rows_kannada.xml49
-rw-r--r--java/res/xml/kbd_kannada.xml26
-rw-r--r--java/res/xml/key_space_5kw.xml7
-rw-r--r--java/res/xml/keyboard_layout_set_kannada.xml42
-rw-r--r--java/res/xml/method.xml11
-rw-r--r--java/res/xml/rowkeys_kannada1.xml107
-rw-r--r--java/res/xml/rowkeys_kannada2.xml78
-rw-r--r--java/res/xml/rowkeys_kannada3.xml66
-rw-r--r--java/res/xml/rows_kannada.xml45
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java157
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Kannada.java197
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java37
-rw-r--r--tools/make-keyboard-text/res/values-kn-rIN/donottranslate-more-keys.xml28
15 files changed, 783 insertions, 76 deletions
diff --git a/java/res/xml-sw600dp/key_space_5kw.xml b/java/res/xml-sw600dp/key_space_5kw.xml
index 71ae5fd8f..bf7dffbe9 100644
--- a/java/res/xml-sw600dp/key_space_5kw.xml
+++ b/java/res/xml-sw600dp/key_space_5kw.xml
@@ -22,8 +22,11 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<switch>
+ <!-- fa: Perisan
+ kn: Kannada
+ ne: Nepali -->
<case
- latin:languageCode="fa|ne"
+ latin:languageCode="fa|kn|ne"
latin:languageSwitchKeyEnabled="true"
>
<Key
@@ -35,7 +38,7 @@
latin:keyStyle="zwnjKeyStyle" />
</case>
<case
- latin:languageCode="fa|ne"
+ latin:languageCode="fa|kn|ne"
latin:languageSwitchKeyEnabled="false"
>
<Key
diff --git a/java/res/xml-sw600dp/rows_kannada.xml b/java/res/xml-sw600dp/rows_kannada.xml
new file mode 100644
index 000000000..55eedc559
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_kannada.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_kannada1" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ <Row
+ latin:keyWidth="8.182%p"
+ latin:keyLabelFlags="fontNormal|autoXScale"
+ >
+ <include latin:keyboardLayout="@xml/rowkeys_kannada2" />
+ <Key
+ latin:keyStyle="enterKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ <Row
+ latin:keyWidth="8.182%p"
+ latin:keyLabelFlags="fontNormal|autoXScale"
+ >
+ <include latin:keyboardLayout="@xml/rowkeys_kannada3" />
+ <include latin:keyboardLayout="@xml/keys_exclamation_question" />
+ </Row>
+ <include latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml/kbd_kannada.xml b/java/res/xml/kbd_kannada.xml
new file mode 100644
index 000000000..0c5922899
--- /dev/null
+++ b/java/res/xml/kbd_kannada.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_kannada" />
+</Keyboard>
diff --git a/java/res/xml/key_space_5kw.xml b/java/res/xml/key_space_5kw.xml
index b6d38fb33..1b62eabcc 100644
--- a/java/res/xml/key_space_5kw.xml
+++ b/java/res/xml/key_space_5kw.xml
@@ -22,8 +22,11 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<switch>
+ <!-- fa: Perisan
+ kn: Kannada
+ ne: Nepali -->
<case
- latin:languageCode="fa|ne"
+ latin:languageCode="fa|kn|ne"
latin:languageSwitchKeyEnabled="true"
>
<Key
@@ -35,7 +38,7 @@
latin:keyStyle="zwnjKeyStyle" />
</case>
<case
- latin:languageCode="fa|ne"
+ latin:languageCode="fa|kn|ne"
latin:languageSwitchKeyEnabled="false"
>
<Key
diff --git a/java/res/xml/keyboard_layout_set_kannada.xml b/java/res/xml/keyboard_layout_set_kannada.xml
new file mode 100644
index 000000000..8dcf99657
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_kannada.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_kannada"
+ 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 6d4d3f26b..2a03f20d9 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -63,6 +63,7 @@
ka_GE: Georgian (Georgia)/georgian
kk: Kazakh/east_slavic
km_KH: Khmer (Cambodia)/khmer
+ (kn_IN: Kannada (India)/kannada) # This is a preliminary keyboard layout.
ky: Kyrgyz/east_slavic
lo_LA: Lao (Laos)/lao
lt: Lithuanian/qwerty
@@ -444,6 +445,16 @@
android:imeSubtypeExtraValue="KeyboardLayoutSet=khmer,EmojiCapable"
android:isAsciiCapable="false"
/>
+ <!-- TODO: This kannada 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="0x8c78064f"
+ android:imeSubtypeLocale="kn_IN"
+ android:imeSubtypeMode="keyboard"
+ android:imeSubtypeExtraValue="KeyboardLayoutSet=kannada,EmojiCapable"
+ android:isAsciiCapable="false"
+ />
<subtype android:icon="@drawable/ic_ime_switcher_dark"
android:label="@string/subtype_generic"
android:subtypeId="0x2e391c04"
diff --git a/java/res/xml/rowkeys_kannada1.xml b/java/res/xml/rowkeys_kannada1.xml
new file mode 100644
index 000000000..e7aecd867
--- /dev/null
+++ b/java/res/xml/rowkeys_kannada1.xml
@@ -0,0 +1,107 @@
+<?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+0CCC: "ೌ" KANNADA VOWEL SIGN AU
+ U+0C94: "ಔ" KANNADA LETTER AU
+ U+0CE7: "೧" KANNADA DIGIT ONE -->
+ <Key
+ latin:keySpec="&#x0CCC;"
+ latin:moreKeys="&#x0C94;,&#x0CE7;,%"
+ latin:keyHintLabel="1"
+ latin:additionalMoreKeys="1" />
+ <!-- U+0CC8: "ೈ" KANNADA VOWEL SIGN AI
+ U+0C90: "ಐ" KANNADA LETTER AI
+ U+0CE8: "೨" KANNADA DIGIT TWO -->
+ <Key
+ latin:keySpec="&#x0CC8;"
+ latin:moreKeys="&#x0C90;,&#x0CE8;,%"
+ latin:keyHintLabel="2"
+ latin:additionalMoreKeys="2" />
+ <!-- U+0CBE: "ಾ" KANNADA VOWEL SIGN AA
+ U+0C86: "ಆ" KANNADA LETTER AA
+ U+0CE9: "೩" KANNADA DIGIT THREE -->
+ <Key
+ latin:keySpec="&#x0CBE;"
+ latin:moreKeys="&#x0C86;,&#x0CE9;,%"
+ latin:keyHintLabel="3"
+ latin:additionalMoreKeys="3" />
+ <!-- U+0CC0: "ೀ" KANNADA VOWEL SIGN II
+ U+0C88: "ಈ" KANNADA LETTER II
+ U+0CEA: "೪" KANNADA DIGIT FOUR -->
+ <Key
+ latin:keySpec="&#x0CC0;"
+ latin:moreKeys="&#x0C88;,&#x0CEA;,%"
+ latin:keyHintLabel="4"
+ latin:additionalMoreKeys="4" />
+ <!-- U+0CC2: "ೂ" KANNADA VOWEL SIGN UU
+ U+0C8A: "ಊ" KANNADA LETTER UU
+ U+0CEB: "೫" KANNADA DIGIT FIVE -->
+ <Key
+ latin:keySpec="&#x0CC2;"
+ latin:moreKeys="&#x0C8A;,&#x0CEB;,%"
+ latin:keyHintLabel="5"
+ latin:additionalMoreKeys="5" />
+ <!-- U+0CAC: "ಬ" KANNADA LETTER BA
+ U+0CAD: "ಭ" KANNADA LETTER BHA
+ U+0CEC: "೬" KANNADA DIGIT SIX -->
+ <Key
+ latin:keySpec="&#x0CAC;"
+ latin:moreKeys="&#x0CAD;,&#x0CEC;,%"
+ latin:keyHintLabel="6"
+ latin:additionalMoreKeys="6" />
+ <!-- U+0CB9: "ಹ" KANNADA LETTER HA
+ U+0C99: "ಙ" KANNADA LETTER NGA
+ U+0CED: "೭" KANNADA DIGIT SEVEN -->
+ <Key
+ latin:keySpec="&#x0CB9;"
+ latin:moreKeys="&#x0C99;,&#x0CED;,%"
+ latin:keyHintLabel="7"
+ latin:additionalMoreKeys="7" />
+ <!-- U+0C97: "ಗ" KANNADA LETTER GA
+ U+0C98: "ಘ" KANNADA LETTER GHA
+ U+0CEE: "೮" KANNADA DIGIT EIGHT -->
+ <Key
+ latin:keySpec="&#x0C97;"
+ latin:moreKeys="&#x0C98;,&#x0CEE;,%"
+ latin:keyHintLabel="8"
+ latin:additionalMoreKeys="8" />
+ <!-- U+0CA6: "ದ" KANNADA LETTER DA
+ U+0CA7: "ಧ" KANNADA LETTER DHA
+ U+0CEF: "೯" KANNADA DIGIT NINE -->
+ <Key
+ latin:keySpec="&#x0CA6;"
+ latin:moreKeys="&#x0CA7;,&#x0CEF;,%"
+ latin:keyHintLabel="9"
+ latin:additionalMoreKeys="9" />
+ <!-- U+0C9C: "ಜ" KANNADA LETTER JA
+ U+0C9D: "ಝ" KANNADA LETTER JHA
+ U+0CE6: "೦" KANNADA DIGIT ZERO -->
+ <Key
+ latin:keySpec="&#x0C9C;"
+ latin:moreKeys="&#x0C9D;,&#x0CE6;,%"
+ latin:keyHintLabel="0"
+ latin:additionalMoreKeys="0" />
+ <!-- U+0CA1: "ಡ" KANNADA LETTER DDA
+ U+0CA2: "ಢ" KANNADA LETTER DDHA -->
+ <Key
+ latin:keySpec="&#x0CA1;"
+ latin:moreKeys="&#x0CA2;" />
+</merge>
diff --git a/java/res/xml/rowkeys_kannada2.xml b/java/res/xml/rowkeys_kannada2.xml
new file mode 100644
index 000000000..f3e6c187b
--- /dev/null
+++ b/java/res/xml/rowkeys_kannada2.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+0CCB: "ೋ" KANNADA VOWEL SIGN OO
+ U+0C93: "ಓ" KANNADA LETTER OO -->
+ <Key
+ latin:keySpec="&#x0CCB;"
+ latin:moreKeys="&#x0C93;" />
+ <!-- U+0CC7: "ೇ" KANNADA VOWEL SIGN EE
+ U+0C8F: "ಏ" KANNADA LETTER EE -->
+ <Key
+ latin:keySpec="&#x0CC7;"
+ latin:moreKeys="&#x0C8F;" />
+ <!-- U+0CCD: "್" KANNADA SIGN VIRAMA
+ U+0C85: "ಅ" KANNADA LETTER A -->
+ <Key
+ latin:keySpec="&#x0CCD;"
+ latin:moreKeys="&#x0C85;" />
+ <!-- U+0CBF: "ಿ" KANNADA VOWEL SIGN I
+ U+0C87: "ಇ" KANNADA LETTER I -->
+ <Key
+ latin:keySpec="&#x0CBF;"
+ latin:moreKeys="&#x0C87;" />
+ <!-- U+0CC1: "ು" KANNADA VOWEL SIGN U
+ U+0C89: "ಉ" KANNADA LETTER U -->
+ <Key
+ latin:keySpec="&#x0CC1;"
+ latin:moreKeys="&#x0C89;" />
+ <!-- U+0CAA: "ಪ" KANNADA LETTER PA
+ U+0CAB: "ಫ" KANNADA LETTER PHA -->
+ <Key
+ latin:keySpec="&#x0CAA;"
+ latin:moreKeys="&#x0CAB;" />
+ <!-- U+0CB0: "ರ" KANNADA LETTER RA
+ U+0CB1: "ಱ" KANNADA LETTER RRA
+ U+0CC3: "ೃ" KANNADA VOWEL SIGN VOCALIC R -->
+ <Key
+ latin:keySpec="&#x0CB0;"
+ latin:moreKeys="&#x0CB1;,&#x0CC3;" />
+ <!-- U+0C95: "ಕ" KANNADA LETTER KA
+ U+0C96: "ಖ" KANNADA LETTER KHA -->
+ <Key
+ latin:keySpec="&#x0C95;"
+ latin:moreKeys="&#x0C96;" />
+ <!-- U+0CA4: "ತ" KANNADA LETTER TA
+ U+0CA5: "ಥ" KANNADA LETTER THA -->
+ <Key
+ latin:keySpec="&#x0CA4;"
+ latin:moreKeys="&#x0CA5;" />
+ <!-- U+0C9A: "ಚ" KANNADA LETTER CA
+ U+0C9B: "ಛ" KANNADA LETTER CHA -->
+ <Key
+ latin:keySpec="&#x0C9A;"
+ latin:moreKeys="&#x0C9B;" />
+ <!-- U+0C9F: "ಟ" KANNADA LETTER TTA
+ U+0CA0: "ಠ" KANNADA LETTER TTHA -->
+ <Key
+ latin:keySpec="&#x0C9F;"
+ latin:moreKeys="&#x0CA0;" />
+</merge>
diff --git a/java/res/xml/rowkeys_kannada3.xml b/java/res/xml/rowkeys_kannada3.xml
new file mode 100644
index 000000000..0f1aecbac
--- /dev/null
+++ b/java/res/xml/rowkeys_kannada3.xml
@@ -0,0 +1,66 @@
+<?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+0CC6: "ೆ" KANNADA VOWEL SIGN E
+ U+0C92: "ಒ" KANNADA LETTER O -->
+ <Key
+ latin:keySpec="&#x0CC6;"
+ latin:moreKeys="&#x0C92;" />
+ <!-- U+0C82: "ಂ" KANNADA SIGN ANUSVARA
+ U+0C8E: "ಎ" KANNADA LETTER E -->
+ <Key
+ latin:keySpec="&#x0C82;"
+ latin:moreKeys="&#x0C8E;" />
+ <!-- U+0CAE: "ಮ" KANNADA LETTER MA
+ U+0CA3: "ಣ" KANNADA LETTER NNA -->
+ <Key
+ latin:keySpec="&#x0CAE;"
+ latin:moreKeys="&#x0CA3;" />
+ <!-- U+0CA8: "ನ" KANNADA LETTER NA -->
+ <Key latin:keySpec="&#x0CA8;" />
+ <!-- U+0CB5: "ವ" KANNADA LETTER VA -->
+ <Key latin:keySpec="&#x0CB5;" />
+ <!-- U+0CB2: "ಲ" KANNADA LETTER LA
+ U+0CB3: "ಳ" KANNADA LETTER LLA -->
+ <Key
+ latin:keySpec="&#x0CB2;"
+ latin:moreKeys="&#x0CB3;" />
+ <!-- U+0CB8: "ಸ" KANNADA LETTER SA
+ U+0CB6: "ಶ" KANNADA LETTER SHA -->
+ <Key
+ latin:keySpec="&#x0CB8;"
+ latin:moreKeys="&#x0CB6;" />
+ <!-- U+0C8B: "ಋ" KANNADA LETTER VOCALIC R
+ U+0CCD/U+0CB0: "್ರ" KANNADA SIGN VIRAMA/KANNADA LETTER RA -->
+ <Key
+ latin:keySpec="&#x0C8B;"
+ latin:moreKeys="&#x0CCD;&#x0CB0;" />
+ <!-- U+0CB7: "ಷ" KANNADA LETTER SSA
+ U+0C95/U+0CCD/U+0CB7: "ಕ್ಷ" KANNADA LETTER RA/KANNADA SIGN VIRAMA/KANNADA LETTER SSA -->
+ <Key
+ latin:keySpec="&#x0CB7;"
+ latin:moreKeys="&#x0C95;&#x0CCD;&#x0CB7;" />
+ <!-- U+0CAF: "ಯ" KANNADA LETTER YA
+ U+0C9C/U+0CCD/U+0C9E: "ಜ್ಞ" KANNADA LETTER JA/KANNADA SIGN VIRAMA/KANNADA LETTER NYA -->
+ <Key
+ latin:keySpec="&#x0CAF;"
+ latin:moreKeys="&#x0C9C;&#x0CCD;&#x0C9E;" />
+</merge>
diff --git a/java/res/xml/rows_kannada.xml b/java/res/xml/rows_kannada.xml
new file mode 100644
index 000000000..5dc6271f0
--- /dev/null
+++ b/java/res/xml/rows_kannada.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_kannada1" />
+ </Row>
+ <Row
+ latin:keyWidth="9.091%p"
+ latin:keyLabelFlags="fontNormal|autoXScale"
+ >
+ <include latin:keyboardLayout="@xml/rowkeys_kannada2" />
+ </Row>
+ <Row
+ latin:keyWidth="9.091%p"
+ latin:keyLabelFlags="fontNormal|autoXScale"
+ >
+ <include latin:keyboardLayout="@xml/rowkeys_kannada3" />
+ <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 4c8c37ae8..b50856316 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -88,15 +88,15 @@ public final class KeyboardTextsTable {
/* 2:30 */ "morekeys_u",
/* 3:29 */ "morekeys_e",
/* 4:28 */ "morekeys_i",
- /* 5:26 */ "keylabel_to_alpha",
+ /* 5:27 */ "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:13 */ "keyspec_currency",
+ /* 12:14 */ "keyspec_currency",
+ /* 13:13 */ "morekeys_d",
/* 14:12 */ "morekeys_z",
/* 15:10 */ "morekeys_t",
/* 16:10 */ "morekeys_l",
@@ -266,12 +266,11 @@ public final class KeyboardTextsTable {
/* double_quotes */ "!text/double_lqm_rqm",
/* morekeys_n */ EMPTY,
/* single_quotes */ "!text/single_lqm_rqm",
- /* morekeys_s ~ */
- EMPTY, EMPTY, EMPTY,
- /* ~ morekeys_d */
+ /* morekeys_s */ EMPTY,
+ /* morekeys_y */ EMPTY,
/* keyspec_currency */ "$",
- /* morekeys_z ~ */
- EMPTY, EMPTY, EMPTY, EMPTY,
+ /* morekeys_d ~ */
+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
/* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_laqm_raqm",
/* double_angle_quotes */ "!text/double_laqm_raqm",
@@ -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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+09F3: "৳" BENGALI RUPEE SIGN
/* keyspec_currency */ "\u09F3",
};
@@ -907,9 +906,9 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency */ null,
// 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
@@ -966,11 +965,11 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency ~ */
- 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,
@@ -1205,11 +1204,11 @@ public final class KeyboardTextsTable {
// 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
/* morekeys_d */ "\u00F0,\u010F,\u0111",
- /* keyspec_currency */ null,
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
@@ -1401,9 +1400,9 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency */ null,
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
@@ -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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+FDFC: "﷼" RIAL SIGN
/* keyspec_currency */ "\uFDFC",
- /* morekeys_z ~ */
+ /* morekeys_d ~ */
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",
@@ -1665,7 +1664,7 @@ public final class KeyboardTextsTable {
/* morekeys_s */ "\u0161,\u00DF,\u015B",
/* morekeys_y ~ */
null, null, null,
- /* ~ keyspec_currency */
+ /* ~ 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
@@ -1742,7 +1741,7 @@ public final class KeyboardTextsTable {
/* ~ morekeys_s */
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
/* morekeys_y */ "%,\u00FF",
- /* morekeys_d ~ */
+ /* keyspec_currency ~ */
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,
@@ -1827,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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
- /* morekeys_z ~ */
+ /* morekeys_d ~ */
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",
@@ -1888,9 +1887,9 @@ public final class KeyboardTextsTable {
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u0161,\u015B,\u00DF",
/* morekeys_y */ null,
+ /* keyspec_currency */ null,
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111",
- /* keyspec_currency */ null,
// 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
@@ -2068,9 +2067,9 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency */ null,
/* morekeys_z */ null,
// U+00FE: "þ" LATIN SMALL LETTER THORN
/* morekeys_t */ "\u00FE",
@@ -2153,16 +2152,15 @@ public final class KeyboardTextsTable {
/* double_quotes */ "!text/double_rqm_9qm",
/* morekeys_n */ null,
/* single_quotes */ "!text/single_rqm_9qm",
- /* morekeys_s ~ */
- null, null, null,
- /* ~ morekeys_d */
+ /* morekeys_s */ null,
+ /* morekeys_y */ null,
// U+20AA: "₪" NEW SHEQEL SIGN
/* keyspec_currency */ "\u20AA",
- /* morekeys_z ~ */
+ /* 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,
/* ~ morekeys_swiss_row2_11 */
// U+2605: "★" BLACK STAR
/* morekeys_star */ "\u2605",
@@ -2296,6 +2294,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+0C95: "ಕ" KANNADA LETTER KA
+ // U+0CA8/U+0CCD/U+0CA8: "ನ್ನ" KANNADA LETTER NA/KANNADA SIGN VIRAMA/KANNADA LETTER NA
+ // U+0CA1: "ಡ" KANNADA LETTER DDA
+ /* keylabel_to_alpha */ "\u0C95\u0CA8\u0CCD\u0CA8\u0CA1",
+ /* morekeys_c ~ */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
+ // U+20B9: "₹" INDIAN RUPEE SIGN
+ /* keyspec_currency */ "\u20B9",
+ };
+
/* Locale ky: Kirghiz */
private static final String[] TEXTS_ky = {
/* morekeys_a ~ */
@@ -2351,8 +2366,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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+20AD: "₭" KIP SIGN
/* keyspec_currency */ "\u20AD",
};
@@ -2424,9 +2439,9 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency */ null,
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
@@ -2518,9 +2533,9 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency */ null,
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
@@ -2593,8 +2608,8 @@ public final class KeyboardTextsTable {
// U+0D05: "അ" MALAYALAM LETTER A
/* keylabel_to_alpha */ "\u0D05",
/* morekeys_c ~ */
- null, null, null, null, null, null, null,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
};
@@ -2610,8 +2625,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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+20AE: "₮" TUGRIK SIGN
/* keyspec_currency */ "\u20AE",
};
@@ -2627,13 +2642,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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
- /* morekeys_z ~ */
+ /* morekeys_d ~ */
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",
@@ -2774,13 +2789,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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
/* keyspec_currency */ "\u0930\u0941.",
- /* morekeys_z ~ */
+ /* morekeys_d ~ */
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",
@@ -2917,7 +2932,7 @@ public final class KeyboardTextsTable {
/* morekeys_s */ "\u015B,\u00DF,\u0161",
/* morekeys_y ~ */
null, null, null,
- /* ~ keyspec_currency */
+ /* ~ 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
@@ -3140,9 +3155,9 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency */ null,
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
@@ -3182,9 +3197,9 @@ public final class KeyboardTextsTable {
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
/* morekeys_s */ "\u0161",
/* morekeys_y */ null,
+ /* keyspec_currency */ null,
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111",
- /* keyspec_currency */ null,
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017E",
/* morekeys_t ~ */
@@ -3305,10 +3320,10 @@ public final class KeyboardTextsTable {
// 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",
- /* keyspec_currency */ null,
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
@@ -3407,8 +3422,8 @@ 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, null,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+0BF9: "௹" TAMIL RUPEE SIGN
/* keyspec_currency */ "\u0BF9",
};
@@ -3424,8 +3439,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,
- /* ~ morekeys_d */
+ null, null, null, null, null, null,
+ /* ~ morekeys_y */
// U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT
/* keyspec_currency */ "\u0E3F",
};
@@ -3547,13 +3562,12 @@ public final class KeyboardTextsTable {
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_n */ null,
/* single_quotes */ "!text/single_9qm_lqm",
- /* morekeys_s ~ */
- null, null, null,
- /* ~ morekeys_d */
+ /* morekeys_s */ null,
+ /* morekeys_y */ null,
// U+20B4: "₴" HRYVNIA SIGN
/* keyspec_currency */ "\u20B4",
- /* morekeys_z ~ */
- null, null, null, null, null, null, null, null, null, null, null, null, null,
+ /* morekeys_d ~ */
+ 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",
@@ -3656,10 +3670,10 @@ public final class KeyboardTextsTable {
// 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+0111: "đ" LATIN SMALL LETTER D WITH STROKE
- /* morekeys_d */ "\u0111",
// U+20AB: "₫" DONG SIGN
/* keyspec_currency */ "\u20AB",
+ // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+ /* morekeys_d */ "\u0111",
};
/* Locale zu: Zulu */
@@ -3798,11 +3812,11 @@ public final class KeyboardTextsTable {
// 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
/* morekeys_d */ "\u010F,\u0111,\u00F0",
- /* keyspec_currency */ null,
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
@@ -3858,7 +3872,7 @@ public final class KeyboardTextsTable {
"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/ 14 Bengali (India) */
+ "bn_IN" , TEXTS_bn_IN, /* 2/ 13 Bengali (India) */
"ca" , TEXTS_ca, /* 11/ 96 Catalan */
"cs" , TEXTS_cs, /* 17/ 21 Czech */
"da" , TEXTS_da, /* 19/ 54 Danish */
@@ -3883,13 +3897,14 @@ 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) */
"ky" , TEXTS_ky, /* 10/ 89 Kirghiz */
- "lo_LA" , TEXTS_lo_LA, /* 2/ 14 Lao (Laos) */
+ "lo_LA" , TEXTS_lo_LA, /* 2/ 13 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/ 14 Malayalam (India) */
- "mn_MN" , TEXTS_mn_MN, /* 2/ 14 Mongolian (Mongolia) */
+ "ml_IN" , TEXTS_ml_IN, /* 2/ 13 Malayalam (India) */
+ "mn_MN" , TEXTS_mn_MN, /* 2/ 13 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 */
@@ -3906,8 +3921,8 @@ 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/ 14 Tamil (India) */
- "th" , TEXTS_th, /* 2/ 14 Thai */
+ "ta_IN" , TEXTS_ta_IN, /* 2/ 13 Tamil (India) */
+ "th" , TEXTS_th, /* 2/ 13 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 056fe1bd6..6b0652c59 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 = 75;
+ private static final int NUMBER_OF_SUBTYPES = 76;
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/Kannada.java b/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java
new file mode 100644
index 000000000..c87e304a4
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java
@@ -0,0 +1,197 @@
+/*
+ * 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 Kannada keyboard.
+ */
+public final class Kannada extends LayoutBase {
+ private static final String LAYOUT_NAME = "kannada";
+
+ public Kannada(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class KannadaCustomizer extends LayoutCustomizer {
+ public KannadaCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey getAlphabetKey() { return KANNADA_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+0C95: "ಕ" KANNADA LETTER KA
+ // U+0CA8/U+0CCD/U+0CA8: "ನ್ನ" KANNADA LETTER NA/KANNADA SIGN VIRAMA/KANNADA LETTER NA
+ // U+0CA1: "ಡ" KANNADA LETTER DDA
+ private static final ExpectedKey KANNADA_ALPHABET_KEY = key(
+ "\u0C95\u0CA8\u0CCD\u0CA8\u0CA1", 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+0CCC: "ೌ" KANNADA VOWEL SIGN AU
+ // U+0C94: "ಔ" KANNADA LETTER AU
+ // U+0CE7: "೧" KANNADA DIGIT ONE
+ key("\u0CCC", joinMoreKeys("\u0C94", "\u0CE7", "1")),
+ // U+0CC8: "ೈ" KANNADA VOWEL SIGN AI
+ // U+0C90: "ಐ" KANNADA LETTER AI
+ // U+0CE8: "೨" KANNADA DIGIT TWO
+ key("\u0CC8", joinMoreKeys("\u0C90", "\u0CE8", "2")),
+ // U+0CBE: "ಾ" KANNADA VOWEL SIGN AA
+ // U+0C86: "ಆ" KANNADA LETTER AA
+ // U+0CE9: "೩" KANNADA DIGIT THREE
+ key("\u0CBE", joinMoreKeys("\u0C86", "\u0CE9", "3")),
+ // U+0CC0: "ೀ" KANNADA VOWEL SIGN II
+ // U+0C88: "ಈ" KANNADA LETTER II
+ // U+0CEA: "೪" KANNADA DIGIT FOUR
+ key("\u0CC0", joinMoreKeys("\u0C88", "\u0CEA", "4")),
+ // U+0CC2: "ೂ" KANNADA VOWEL SIGN UU
+ // U+0C8A: "ಊ" KANNADA LETTER UU
+ // U+0CEB: "೫" KANNADA DIGIT FIVE
+ key("\u0CC2", joinMoreKeys("\u0C8A", "\u0CEB", "5")),
+ // U+0CAC: "ಬ" KANNADA LETTER BA
+ // U+0CAD: "ಭ" KANNADA LETTER BHA
+ // U+0CEC: "೬" KANNADA DIGIT SIX
+ key("\u0CAC", joinMoreKeys("\u0CAD", "\u0CEC", "6")),
+ // U+0CB9: "ಹ" KANNADA LETTER HA
+ // U+0C99: "ಙ" KANNADA LETTER NGA
+ // U+0CED: "೭" KANNADA DIGIT SEVEN
+ key("\u0CB9", joinMoreKeys("\u0C99", "\u0CED", "7")),
+ // U+0C97: "ಗ" KANNADA LETTER GA
+ // U+0C98: "ಘ" KANNADA LETTER GHA
+ // U+0CEE: "೮" KANNADA DIGIT EIGHT
+ key("\u0C97", joinMoreKeys("\u0C98", "\u0CEE", "8")),
+ // U+0CA6: "ದ" KANNADA LETTER DA
+ // U+0CA7: "ಧ" KANNADA LETTER DHA
+ // U+0CEF: "೯" KANNADA DIGIT NINE
+ key("\u0CA6", joinMoreKeys("\u0CA7", "\u0CEF", "9")),
+ // U+0C9C: "ಜ" KANNADA LETTER JA
+ // U+0C9D: "ಝ" KANNADA LETTER JHA
+ // U+0CE6: "೦" KANNADA DIGIT ZERO
+ key("\u0C9C", joinMoreKeys("\u0C9D", "\u0CE6", "0")),
+ // U+0CA1: "ಡ" KANNADA LETTER DDA
+ // U+0CA2: "ಢ" KANNADA LETTER DDHA
+ key("\u0CA1", moreKey("\u0CA2")))
+ .setKeysOfRow(2,
+ // U+0CCB: "ೋ" KANNADA VOWEL SIGN OO
+ // U+0C93: "ಓ" KANNADA LETTER OO
+ key("\u0CCB", moreKey("\u0C93")),
+ // U+0CC7: "ೇ" KANNADA VOWEL SIGN EE
+ // U+0C8F: "ಏ" KANNADA LETTER EE
+ key("\u0CC7", moreKey("\u0C8F")),
+ // U+0CCD: "್" KANNADA SIGN VIRAMA
+ // U+0C85: "ಅ" KANNADA LETTER A
+ key("\u0CCD", moreKey("\u0C85")),
+ // U+0CBF: "ಿ" KANNADA VOWEL SIGN I
+ // U+0C87: "ಇ" KANNADA LETTER I
+ key("\u0CBF", moreKey("\u0C87")),
+ // U+0CC1: "ು" KANNADA VOWEL SIGN U
+ // U+0C89: "ಉ" KANNADA LETTER U
+ key("\u0CC1", moreKey("\u0C89")),
+ // U+0CAA: "ಪ" KANNADA LETTER PA
+ // U+0CAB: "ಫ" KANNADA LETTER PHA
+ key("\u0CAA", moreKey("\u0CAB")),
+ // U+0CB0: "ರ" KANNADA LETTER RA
+ // U+0CB1: "ಱ" KANNADA LETTER RRA
+ // U+0CC3: "ೃ" KANNADA VOWEL SIGN VOCALIC R
+ key("\u0CB0", joinMoreKeys("\u0CB1", "\u0CC3")),
+ // U+0C95: "ಕ" KANNADA LETTER KA
+ // U+0C96: "ಖ" KANNADA LETTER KHA
+ key("\u0C95", moreKey("\u0C96")),
+ // U+0CA4: "ತ" KANNADA LETTER TA
+ // U+0CA5: "ಥ" KANNADA LETTER THA
+ key("\u0CA4", moreKey("\u0CA5")),
+ // U+0C9A: "ಚ" KANNADA LETTER CA
+ // U+0C9B: "ಛ" KANNADA LETTER CHA
+ key("\u0C9A", moreKey("\u0C9B")),
+ // U+0C9F: "ಟ" KANNADA LETTER TTA
+ // U+0CA0: "ಠ" KANNADA LETTER TTHA
+ key("\u0C9F", moreKey("\u0CA0")))
+ .setKeysOfRow(3,
+ // U+0CC6: "ೆ" KANNADA VOWEL SIGN E
+ // U+0C92: "ಒ" KANNADA LETTER O
+ key("\u0CC6", moreKey("\u0C92")),
+ // U+0C82: "ಂ" KANNADA SIGN ANUSVARA
+ // U+0C8E: "ಎ" KANNADA LETTER E
+ key("\u0C82", moreKey("\u0C8E")),
+ // U+0CAE: "ಮ" KANNADA LETTER MA
+ // U+0CA3: "ಣ" KANNADA LETTER NNA
+ key("\u0CAE", moreKey("\u0CA3")),
+ // U+0CA8: "ನ" KANNADA LETTER NA
+ // U+0CB5: "ವ" KANNADA LETTER VA
+ "\u0CA8", "\u0CB5",
+ // U+0CB2: "ಲ" KANNADA LETTER LA
+ // U+0CB3: "ಳ" KANNADA LETTER LLA
+ key("\u0CB2", moreKey("\u0CB3")),
+ // U+0CB8: "ಸ" KANNADA LETTER SA
+ // U+0CB6: "ಶ" KANNADA LETTER SHA
+ key("\u0CB8", moreKey("\u0CB6")),
+ // U+0C8B: "ಋ" KANNADA LETTER VOCALIC R
+ // U+0CCD/U+0CB0: "್ರ" KANNADA SIGN VIRAMA/KANNADA LETTER RA
+ key("\u0C8B", moreKey("\u0CCD\u0CB0")),
+ // U+0CB7: "ಷ" KANNADA LETTER SSA
+ // U+0C95/U+0CCD/U+0CB7:
+ // "ಕ್ಷ" KANNADA LETTER RA/KANNADA SIGN VIRAMA/KANNADA LETTER SSA
+ key("\u0CB7", moreKey("\u0C95\u0CCD\u0CB7")),
+ // U+0CAF: "ಯ" KANNADA LETTER YA
+ // U+0C9C/U+0CCD/U+0C9E:
+ // "ಜ್ಞ" KANNADA LETTER JA/KANNADA SIGN VIRAMA/KANNADA LETTER NYA
+ key("\u0CAF", moreKey("\u0C9C\u0CCD\u0C9E")))
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java
new file mode 100644
index 000000000..d1866e803
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.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.Kannada;
+import com.android.inputmethod.keyboard.layout.Kannada.KannadaCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+
+import java.util.Locale;
+
+/**
+ * kn_IN: Kannada (India)/kannada
+ */
+@SmallTest
+public final class TestsKannadaIN extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("kn", "IN");
+ private static final LayoutBase LAYOUT = new Kannada(new KannadaCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tools/make-keyboard-text/res/values-kn-rIN/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-kn-rIN/donottranslate-more-keys.xml
new file mode 100644
index 000000000..88c822683
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-kn-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+0C95: "ಕ" KANNADA LETTER KA
+ U+0CA8/U+0CCD/U+0CA8: "ನ್ನ" KANNADA LETTER NA/KANNADA SIGN VIRAMA/KANNADA LETTER NA
+ U+0CA1: "ಡ" KANNADA LETTER DDA -->
+ <string name="keylabel_to_alpha">&#x0C95;&#x0CA8;&#x0CCD;&#x0CA8;&#x0CA1;</string>
+ <!-- U+20B9: "₹" INDIAN RUPEE SIGN -->
+ <string name="keyspec_currency">&#x20B9;</string>
+</resources>