From 03aa084ccd9d7c542711051ec1c50e0de43f1d8d Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Wed, 9 Jul 2014 01:00:56 +0900 Subject: [PATCH] Add Kannada keyboard Bug: 10029252 Change-Id: Ia03ff886f9e62a2fe228fe59b504b033eead7631 --- java/res/xml-sw600dp/key_space_5kw.xml | 7 +- java/res/xml-sw600dp/rows_kannada.xml | 49 +++++ java/res/xml/kbd_kannada.xml | 26 +++ java/res/xml/key_space_5kw.xml | 7 +- java/res/xml/keyboard_layout_set_kannada.xml | 42 ++++ java/res/xml/method.xml | 11 + java/res/xml/rowkeys_kannada1.xml | 107 ++++++++++ java/res/xml/rowkeys_kannada2.xml | 78 +++++++ java/res/xml/rowkeys_kannada3.xml | 66 ++++++ java/res/xml/rows_kannada.xml | 45 ++++ .../keyboard/internal/KeyboardTextsTable.java | 157 +++++++------- .../KeyboardLayoutSetSubtypesCountTests.java | 2 +- .../inputmethod/keyboard/layout/Kannada.java | 197 ++++++++++++++++++ .../keyboard/layout/tests/TestsKannadaIN.java | 37 ++++ .../donottranslate-more-keys.xml | 28 +++ 15 files changed, 783 insertions(+), 76 deletions(-) create mode 100644 java/res/xml-sw600dp/rows_kannada.xml create mode 100644 java/res/xml/kbd_kannada.xml create mode 100644 java/res/xml/keyboard_layout_set_kannada.xml create mode 100644 java/res/xml/rowkeys_kannada1.xml create mode 100644 java/res/xml/rowkeys_kannada2.xml create mode 100644 java/res/xml/rowkeys_kannada3.xml create mode 100644 java/res/xml/rows_kannada.xml create mode 100644 tests/src/com/android/inputmethod/keyboard/layout/Kannada.java create mode 100644 tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java create mode 100644 tools/make-keyboard-text/res/values-kn-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 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" > + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + 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" > + + + + + + + + + + + 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" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + \ 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 @@ + + + + + ಕನ್ನಡ + + +