From 6de1b7a70986ebb1bf63078617d59ec4e46b657f Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" <takaoka@google.com> Date: Fri, 15 Jun 2012 18:37:06 -0700 Subject: [PATCH] Fix Persian keyboard having correct code points Bug: 6679850 Change-Id: Iaa33f48ffb5634de31e039574fb58185c6c078e8 --- java/res/xml-sw600dp/rowkeys_farsi2.xml | 21 +++++----- java/res/xml-sw600dp/rowkeys_farsi3.xml | 5 +-- java/res/xml-sw600dp/rowkeys_symbols2.xml | 36 +++++++++++++++-- java/res/xml/keys_less_greater.xml | 34 ++++++++++++---- java/res/xml/rowkeys_farsi1.xml | 40 +++++++++---------- java/res/xml/rowkeys_farsi2.xml | 19 ++++----- java/res/xml/rowkeys_farsi3.xml | 5 +-- java/res/xml/rowkeys_symbols2.xml | 26 ++++++++++-- java/res/xml/rowkeys_symbols3.xml | 30 +++++++++++--- .../keyboard/internal/KeyboardTextsSet.java | 8 ++-- .../values-fa/donottranslate-more-keys.xml | 6 +-- 11 files changed, 157 insertions(+), 73 deletions(-) diff --git a/java/res/xml-sw600dp/rowkeys_farsi2.xml b/java/res/xml-sw600dp/rowkeys_farsi2.xml index 98e0f21866..234f984308 100644 --- a/java/res/xml-sw600dp/rowkeys_farsi2.xml +++ b/java/res/xml-sw600dp/rowkeys_farsi2.xml @@ -29,10 +29,12 @@ latin:keyLabel="س" /> <!-- U+06CC: "ÛŒ" ARABIC LETTER FARSI YEH U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE - U+064A: "ÙŠ" ARABIC LETTER YEH --> + U+064A: "ÙŠ" ARABIC LETTER YEH + U+FBE8: "ﯨ" ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM + U+0649: "Ù‰" ARABIC LETTER ALEF MAKSURA --> <Key latin:keyLabel="ی" - latin:moreKeys="ئ,ي" /> + latin:moreKeys="ئ,ي,ﯨ|ى" /> <!-- U+0628: "ب" ARABIC LETTER BEH --> <Key latin:keyLabel="ب" /> @@ -42,17 +44,18 @@ <!-- U+0627: "ا" ARABIC LETTER ALEF U+0621: "Ø¡" ARABIC LETTER HAMZA U+0622: "Ø¢" ARABIC LETTER ALEF WITH MADDA ABOVE - U+0672: "Ù²" ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE + U+0623: "Ø£" ARABIC LETTER ALEF WITH HAMZA ABOVE U+0671: "Ù±" ARABIC LETTER ALEF WASLA - U+0673: "Ù³" ARABIC LETTER ALEF WITH WAVY HAMZA BELOW--> - <!-- TODO: DroidSansArabic lacks the glyph of U+0672 ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE --> - <!-- TODO: DroidSansArabic lacks the glyph of U+0673 ARABIC LETTER ALEF WITH WAVY HAMZA BELOW --> + U+0625: "Ø¥" ARABIC LETTER ALEF WITH HAMZA BELOW --> <Key latin:keyLabel="ا" - latin:moreKeys="ء,آ,ٲ,ٱ,ٳ" /> - <!-- U+062A: "ت" ARABIC LETTER TEH --> + latin:moreKeys="ء,آ,أ,ٱ,إ" /> + <!-- U+062A: "ت" ARABIC LETTER TEH + U+062B: "ﺙ" ARABIC LETTER THEH + U+0629: "Ø©": ARABIC LETTER TEH MARBUTA --> <Key - latin:keyLabel="ت" /> + latin:keyLabel="ت" + latin:moreKeys="ث,ة" /> <!-- U+0646: "Ù†" ARABIC LETTER NOON --> <Key latin:keyLabel="ن" /> diff --git a/java/res/xml-sw600dp/rowkeys_farsi3.xml b/java/res/xml-sw600dp/rowkeys_farsi3.xml index c80c14a556..cb81840030 100644 --- a/java/res/xml-sw600dp/rowkeys_farsi3.xml +++ b/java/res/xml-sw600dp/rowkeys_farsi3.xml @@ -45,9 +45,8 @@ <Key latin:keyLabel="پ" /> <!-- U+0648: "Ùˆ" ARABIC LETTER WAW - U+0676: "Ù¶" ARABIC LETTER HIGH HAMZA WAW --> - <!-- TODO: DroidSansArabic lacks the glyph of U+0676 ARABIC LETTER HIGH HAMZA WAW --> + U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE --> <Key latin:keyLabel="و" - latin:moreKeys="ٶ" /> + latin:moreKeys="ؤ" /> </merge> diff --git a/java/res/xml-sw600dp/rowkeys_symbols2.xml b/java/res/xml-sw600dp/rowkeys_symbols2.xml index 6fe86240c9..d7067e0cfe 100644 --- a/java/res/xml-sw600dp/rowkeys_symbols2.xml +++ b/java/res/xml-sw600dp/rowkeys_symbols2.xml @@ -21,15 +21,43 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <Key - latin:keyLabel="#" /> + <switch> + <case + latin:languageCode="fa" + > + <!-- U+066C: "Ù¬" ARABIC THOUSANDS SEPARATOR --> + <Key + latin:keyLabel="٬" + latin:keyHintLabel="&" + latin:keyLabelFlags="hasPopupHint|hasShiftedLetterHint" + latin:moreKeys="&" /> + </case> + <default> + <Key + latin:keyLabel="#" /> + </default> + </switch> <Key latin:keyStyle="currencyKeyStyle" /> <Key latin:keyLabel="!text/keylabel_for_symbols_percent" latin:moreKeys="!text/more_keys_for_symbols_percent" /> - <Key - latin:keyLabel="&" /> + <switch> + <case + latin:languageCode="fa" + > + <!-- U+066B: "Ù«" ARABIC DECIMAL SEPARATOR --> + <Key + latin:keyLabel="٫" + latin:keyHintLabel="#" + latin:keyLabelFlags="hasPopupHint|hasShiftedLetterHint" + latin:moreKeys="#" /> + </case> + <default> + <Key + latin:keyLabel="&" /> + </default> + </switch> <Key latin:keyLabel="*" latin:moreKeys="!text/more_keys_for_star" /> diff --git a/java/res/xml/keys_less_greater.xml b/java/res/xml/keys_less_greater.xml index 4584e5c969..bc9ecdf2ff 100644 --- a/java/res/xml/keys_less_greater.xml +++ b/java/res/xml/keys_less_greater.xml @@ -21,12 +21,30 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <Key - latin:keyLabel="<" - latin:code="!code/key_less_than" - latin:moreKeys="!text/more_keys_for_less_than" /> - <Key - latin:keyLabel=">" - latin:code="!code/key_greater_than" - latin:moreKeys="!text/more_keys_for_greater_than" /> + <switch> + <case + latin:languageCode="fa" + > + <!-- U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK --> + <Key + latin:keyLabel="«" + latin:code="0x00BB" + latin:moreKeys="!text/more_keys_for_less_than" /> + <Key + latin:keyLabel="»" + latin:code="0x00AB" + latin:moreKeys="!text/more_keys_for_greater_than" /> + </case> + <default> + <Key + latin:keyLabel="<" + latin:code="!code/key_less_than" + latin:moreKeys="!text/more_keys_for_less_than" /> + <Key + latin:keyLabel=">" + latin:code="!code/key_greater_than" + latin:moreKeys="!text/more_keys_for_greater_than" /> + </default> + </switch> </merge> diff --git a/java/res/xml/rowkeys_farsi1.xml b/java/res/xml/rowkeys_farsi1.xml index 81618af771..840b048f78 100644 --- a/java/res/xml/rowkeys_farsi1.xml +++ b/java/res/xml/rowkeys_farsi1.xml @@ -27,32 +27,32 @@ <Key latin:keyLabel="ص" latin:moreKeys="ض,%" - latin:keyHintLabel="1" - latin:additionalMoreKeys="1,۱" /> + latin:keyHintLabel="۱" + latin:additionalMoreKeys="۱,1" /> <!-- U+0642: "Ù‚" ARABIC LETTER QAF U+06F2: "Û²" EXTENDED ARABIC-INDIC DIGIT TWO --> <Key latin:keyLabel="ق" - latin:keyHintLabel="2" - latin:additionalMoreKeys="2,۲" /> + latin:keyHintLabel="۲" + latin:additionalMoreKeys="۲,2" /> <!-- U+0641: "Ù" ARABIC LETTER FEH U+06F3: "Û³" EXTENDED ARABIC-INDIC DIGIT THREE --> <Key latin:keyLabel="ف" - latin:keyHintLabel="3" - latin:additionalMoreKeys="3,۳" /> + latin:keyHintLabel="۳" + latin:additionalMoreKeys="۳,3" /> <!-- U+063A: "غ" ARABIC LETTER GHAIN U+06F4: "Û´" EXTENDED ARABIC-INDIC DIGIT FOUR --> <Key latin:keyLabel="غ" - latin:keyHintLabel="4" - latin:additionalMoreKeys="4,۴" /> + latin:keyHintLabel="۴" + latin:additionalMoreKeys="۴,4" /> <!-- U+0639: "ع" ARABIC LETTER AIN U+06F5: "Ûµ" EXTENDED ARABIC-INDIC DIGIT FIVE --> <Key latin:keyLabel="ع" - latin:keyHintLabel="5" - latin:additionalMoreKeys="5,۵" /> + latin:keyHintLabel="۵" + latin:additionalMoreKeys="۵,5" /> <!-- U+0647: "Ù‡" ARABIC LETTER HEH U+FEEB: "ﻫ" ARABIC LETTER HEH INITIAL FORM U+0647/U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER @@ -62,30 +62,30 @@ <Key latin:keyLabel="ه" latin:moreKeys="ﻫ|ه‍,هٔ,ة,%" - latin:keyHintLabel="6" - latin:additionalMoreKeys="6,۶" /> + latin:keyHintLabel="۶" + latin:additionalMoreKeys="۶,6" /> <!-- U+062E: "Ø®" ARABIC LETTER KHAH U+06F7: "Û·" EXTENDED ARABIC-INDIC DIGIT SEVEN --> <Key latin:keyLabel="خ" - latin:keyHintLabel="7" - latin:additionalMoreKeys="7,۷" /> + latin:keyHintLabel="۷" + latin:additionalMoreKeys="۷,7" /> <!-- U+062D: "Ø" ARABIC LETTER HAH U+06F8: "Û¸" EXTENDED ARABIC-INDIC DIGIT EIGHT --> <Key latin:keyLabel="ح" - latin:keyHintLabel="8" - latin:additionalMoreKeys="8,۸" /> + latin:keyHintLabel="۸" + latin:additionalMoreKeys="۸,8" /> <!-- U+062C: "ج" ARABIC LETTER JEEM U+06F9: "Û¹" EXTENDED ARABIC-INDIC DIGIT NINE --> <Key latin:keyLabel="ج" - latin:keyHintLabel="9" - latin:additionalMoreKeys="9,۹" /> + latin:keyHintLabel="۹" + latin:additionalMoreKeys="۹,9" /> <!-- U+0686: "Ú†" ARABIC LETTER TCHEH U+06F0: "Û°" EXTENDED ARABIC-INDIC DIGIT ZERO --> <Key latin:keyLabel="چ" - latin:keyHintLabel="0" - latin:additionalMoreKeys="0,۰" /> + latin:keyHintLabel="۰" + latin:additionalMoreKeys="۰,0" /> </merge> diff --git a/java/res/xml/rowkeys_farsi2.xml b/java/res/xml/rowkeys_farsi2.xml index 77279c60fe..21548936e7 100644 --- a/java/res/xml/rowkeys_farsi2.xml +++ b/java/res/xml/rowkeys_farsi2.xml @@ -31,10 +31,12 @@ latin:moreKeys="ض" /> <!-- U+06CC: "ÛŒ" ARABIC LETTER FARSI YEH U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE - U+064A: "ÙŠ" ARABIC LETTER YEH --> + U+064A: "ÙŠ" ARABIC LETTER YEH + U+FBE8: "ﯨ" ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM + U+0649: "Ù‰" ARABIC LETTER ALEF MAKSURA --> <Key latin:keyLabel="ی" - latin:moreKeys="ئ,ي" /> + latin:moreKeys="ئ,ي,ﯨ|ى" /> <!-- U+0628: "ب" ARABIC LETTER BEH --> <Key latin:keyLabel="ب" /> @@ -44,19 +46,18 @@ <!-- U+0627: "ا" ARABIC LETTER ALEF U+0621: "Ø¡" ARABIC LETTER HAMZA U+0622: "Ø¢" ARABIC LETTER ALEF WITH MADDA ABOVE - U+0672: "Ù²" ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE + U+0623: "Ø£" ARABIC LETTER ALEF WITH HAMZA ABOVE U+0671: "Ù±" ARABIC LETTER ALEF WASLA - U+0673: "Ù³" ARABIC LETTER ALEF WITH WAVY HAMZA BELOW--> - <!-- TODO: DroidSansArabic lacks the glyph of U+0672 ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE --> - <!-- TODO: DroidSansArabic lacks the glyph of U+0673 ARABIC LETTER ALEF WITH WAVY HAMZA BELOW --> + U+0625: "Ø¥" ARABIC LETTER ALEF WITH HAMZA BELOW --> <Key latin:keyLabel="ا" - latin:moreKeys="ء,آ,ٲ,ٱ,ٳ" /> + latin:moreKeys="ء,آ,أ,ٱ,إ" /> <!-- U+062A: "ت" ARABIC LETTER TEH - U+062B: "ﺙ" ARABIC LETTER THEH --> + U+062B: "ﺙ" ARABIC LETTER THEH + U+0629: "Ø©": ARABIC LETTER TEH MARBUTA --> <Key latin:keyLabel="ت" - latin:moreKeys="ث" /> + latin:moreKeys="ث,ة" /> <!-- U+0646: "Ù†" ARABIC LETTER NOON --> <Key latin:keyLabel="ن" /> diff --git a/java/res/xml/rowkeys_farsi3.xml b/java/res/xml/rowkeys_farsi3.xml index 44710e06ae..29c35134cd 100644 --- a/java/res/xml/rowkeys_farsi3.xml +++ b/java/res/xml/rowkeys_farsi3.xml @@ -44,11 +44,10 @@ <Key latin:keyLabel="پ" /> <!-- U+0648: "Ùˆ" ARABIC LETTER WAW - U+0676: "Ù¶" ARABIC LETTER HIGH HAMZA WAW --> - <!-- TODO: DroidSansArabic lacks the glyph of U+0676 ARABIC LETTER HIGH HAMZA WAW --> + U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE --> <Key latin:keyLabel="و" - latin:moreKeys="ٶ" /> + latin:moreKeys="ؤ" /> <!-- U+06AF: "Ú¯" ARABIC LETTER GAF --> <Key latin:keyLabel="گ" /> diff --git a/java/res/xml/rowkeys_symbols2.xml b/java/res/xml/rowkeys_symbols2.xml index 34b9aa2ee5..425e20470e 100644 --- a/java/res/xml/rowkeys_symbols2.xml +++ b/java/res/xml/rowkeys_symbols2.xml @@ -21,10 +21,28 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <Key - latin:keyLabel="\@" /> - <Key - latin:keyLabel="\#" /> + <switch> + <case + latin:languageCode="fa" + > + <!-- U+066C: "Ù¬" ARABIC THOUSANDS SEPARATOR + U+066B: "Ù«" ARABIC DECIMAL SEPARATOR --> + <Key + latin:keyLabel="٬" + latin:keyHintLabel="\@" + latin:moreKeys="\@" /> + <Key + latin:keyLabel="٫" + latin:keyHintLabel="#" + latin:moreKeys="#" /> + </case> + <default> + <Key + latin:keyLabel="\@" /> + <Key + latin:keyLabel="#" /> + </default> + </switch> <Key latin:keyStyle="currencyKeyStyle" /> <Key diff --git a/java/res/xml/rowkeys_symbols3.xml b/java/res/xml/rowkeys_symbols3.xml index 2b2d9a4eac..c89716bc7a 100644 --- a/java/res/xml/rowkeys_symbols3.xml +++ b/java/res/xml/rowkeys_symbols3.xml @@ -24,12 +24,30 @@ <Key latin:keyLabel="!text/keylabel_for_symbols_exclamation" latin:moreKeys="!text/more_keys_for_symbols_exclamation" /> - <Key - latin:keyLabel=""" - latin:moreKeys="!text/more_keys_for_double_quote" /> - <Key - latin:keyLabel="\'" - latin:moreKeys="!text/more_keys_for_single_quote" /> + <switch> + <case + latin:languageCode="fa" + > + <!-- U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK --> + <Key + latin:keyLabel="«" + latin:code="0x00BB" + latin:moreKeys="!text/more_keys_for_double_quote" /> + <Key + latin:keyLabel="»" + latin:code="0x00AB" + latin:moreKeys="!text/more_keys_for_single_quote" /> + </case> + <default> + <Key + latin:keyLabel=""" + latin:moreKeys="!text/more_keys_for_double_quote" /> + <Key + latin:keyLabel="\'" + latin:moreKeys="!text/more_keys_for_single_quote" /> + </default> + </switch> <Key latin:keyLabel=":" /> <Key diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java index 917e233a82..1e3a0a5bae 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java @@ -993,7 +993,7 @@ public final class KeyboardTextsSet { /* ~41 */ // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK // <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> - /* 42 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB", + /* 42 */ "!fixedColumnOrder!4,\u201C,\u201D,\",\'", // TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK // <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> /* 43 */ "!fixedColumnOrder!4,\u201C,\u201D,\u00AB|\u00BB,\u00BB|\u00AB,\u2018,\u2019,\u201A,\u201B", @@ -1031,8 +1031,8 @@ public final class KeyboardTextsSet { // U+201D: "â€" RIGHT DOUBLE QUOTATION MARK // U+201E: "„" DOUBLE LOW-9 QUOTATION MARK // U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK - /* 54 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", - /* 55 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", + /* 54 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,<|>", + /* 55 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,>|<", // U+0655: "Ù•" ARABIC HAMZA BELOW // U+0652: "Ù’" ARABIC SUKUN // U+0651: "Ù‘" ARABIC SHADDA @@ -1049,7 +1049,7 @@ public final class KeyboardTextsSet { // U+0640: "Ù€" ARABIC TATWEEL // In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. /* 56 */ "!fixedColumnOrder!7,\u0655,\u0652,\u0651,\u064C,\u064D,\u064B,\u0654,\u0656,\u0670,\u0653,\u064F,\u0650,\u064E,\u0640\u0640\u0640|\u0640", - /* 57 */ "\u0653", + /* 57 */ "\u064B", // U+06F1: "Û±" EXTENDED ARABIC-INDIC DIGIT ONE /* 58 */ "\u06F1", // U+06F2: "Û²" EXTENDED ARABIC-INDIC DIGIT TWO diff --git a/tools/maketext/res/values-fa/donottranslate-more-keys.xml b/tools/maketext/res/values-fa/donottranslate-more-keys.xml index b34e580e9d..e64af95c47 100644 --- a/tools/maketext/res/values-fa/donottranslate-more-keys.xml +++ b/tools/maketext/res/values-fa/donottranslate-more-keys.xml @@ -100,11 +100,11 @@ U+201D: "â€" RIGHT DOUBLE QUOTATION MARK U+201E: "„" DOUBLE LOW-9 QUOTATION MARK U+201F: "‟" DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> - <string name="more_keys_for_less_than">!fixedColumnOrder!3,‹|›,≤|≥,«|»</string> - <string name="more_keys_for_greater_than">!fixedColumnOrder!3,›|‹,≥|≤,»|«</string> + <string name="more_keys_for_less_than">!fixedColumnOrder!3,‹|›,≤|≥,<|></string> + <string name="more_keys_for_greater_than">!fixedColumnOrder!3,›|‹,≥|≤,>|<</string> <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> <!-- <string name="more_keys_for_double_quote">“,”,„,‟,«|»,»|«</string> --> - <string name="more_keys_for_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«</string> + <string name="more_keys_for_double_quote">!fixedColumnOrder!4,“,”,\",\'</string> <!-- TODO: Neither DroidSans nor Roboto have the glyph for U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> <!-- <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,“,”,„,‟,«|»,»|«;,‘,’,‚,‛</string> --> <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!4,“,”,«|»,»|«,‘,’,‚,‛</string> -- GitLab