Fix Persian keyboard having correct code points
Bug: 6679850
Change-Id: Iaa33f48ffb5634de31e039574fb58185c6c078e8
diff --git a/java/res/xml-sw600dp/rowkeys_farsi2.xml b/java/res/xml-sw600dp/rowkeys_farsi2.xml
index 98e0f21..234f984 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 c80c14a..cb81840 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 6fe8624..d7067e0 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 4584e5c..bc9ecdf 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 81618af7..840b048 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 77279c6..2154893 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 44710e0..29c3513 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 34b9aa2..425e204 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 2b2d9a4..c89716b 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 917e233..1e3a0a5 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 @@
/* ~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 @@
// 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 @@
// 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 b34e580..e64af95 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>