diff options
| -rw-r--r-- | res/values/arrays.xml | 4 | ||||
| -rw-r--r-- | res/xml/he_il_1452_1.xml | 41 | ||||
| -rw-r--r-- | res/xml/he_il_1452_2.xml | 39 | ||||
| -rw-r--r-- | res/xml/method.xml | 1 | ||||
| -rw-r--r-- | res/xml/qwerty.xml | 2 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Config.java | 2 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/KeyModifier.java | 19 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/KeyValue.java | 46 |
8 files changed, 152 insertions, 2 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 2b2514a..60a956b 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -28,6 +28,8 @@ <item>jcuken_ua</item> <item>bangla</item> <item>hindi</item> + <item>he_il_1452_1</item> + <item>he_il_1452_2</item> <item>custom</item> </string-array> <string-array name="pref_layout_entries"> @@ -58,6 +60,8 @@ <item>ЙЦУКЕН (Українська)</item> <item>বাংলা</item> <item>हिन्दी</item> + <item>Hebrew SI-1452-1</item> + <item>Hebrew SI-1452-2</item> <item>@string/pref_layout_e_custom</item> </string-array> <string-array name="pref_accents_entries"> diff --git a/res/xml/he_il_1452_1.xml b/res/xml/he_il_1452_1.xml new file mode 100644 index 0000000..c007bbb --- /dev/null +++ b/res/xml/he_il_1452_1.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<keyboard> + <row> + <key key0="/" key2="1" key3="!" key4="esc"/> + <key key0="'" key2="2" key3="\@" key1=";"/> + <key key0="ק" key2="3" key3="\#" key1="€"/> + <key key0="ר" key2="4" key3="$" key1="₪"/> + <key key0="א" key2="5" key3="%"/> + <key key0="ט" key2="6" key3="^" key4="ole_placeholder"/> + <key key0="ו" key2="7" key3="&" key4="meteg_placeholder"/> + <key key0="ן" key2="8" key3="*"/> + <key key0="ם" key2="9" key3="b(" key4="lrm"/> + <key key0="פ" key2="0" key3="b)" key4="rlm"/> + <key key0="backspace" key2="delete" key3="f11_placeholder" key4="f12_placeholder"/> + </row> + <row> + <key key0="ש" key2="`" key1="tab" key3="sindot_placeholder" key4="shindot_placeholder" width="1.333"/> + <key key0="ד" key1="~" width="1.0333"/> + <key key0="ג" key1="geresh" key2="gershayim" width="1.0333"/> + <key key0="כ" width="1.0333"/> + <key key0="ע" width="1.0333"/> + <key key0="י" key2="-" key3="_" key4="maqaf" width="1.0333"/> + <key key0="ח" key2="=" key3="+" width="1.0333"/> + <key key0="ל" key2="b[" key3="b{" width="1.0333"/> + <key key0="ך" key2="b]" key3="b}" width="1.0333"/> + <key key0="ף" key2="," key3=""" key1=":" width="1.4006"/> + </row> + <row> + <key key0="\\" key1="|" key2="shift" key3="loc capslock"/> + <key key0="ז"/> + <key key0="ס"/> + <key key0="ב"/> + <key key0="ה"/> + <key key0="נ"/> + <key key0="מ"/> + <key key0="צ"/> + <key key0="ת" key1="blt"/> + <key key0="ץ" key1="bgt"/> + <key key0="." key1="\?"/> + </row> +</keyboard> diff --git a/res/xml/he_il_1452_2.xml b/res/xml/he_il_1452_2.xml new file mode 100644 index 0000000..78d1536 --- /dev/null +++ b/res/xml/he_il_1452_2.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<keyboard> + <row> + <key key0="ץ" key2="1" key3="!" key4="esc"/> + <key key0="ן" key2="2" key3="\@" key1=";"/> + <key key0="ק" key2="3" key3="\#" key1="€"/> + <key key0="ר" key2="4" key3="$" key1="₪"/> + <key key0="א" key2="5" key3="%"/> + <key key0="ט" key2="6" key3="^" key4="ole_placeholder"/> + <key key0="ו" key2="7" key3="&" key4="meteg_placeholder"/> + <key key0="ת" key2="8" key3="*"/> + <key key0="ם" key2="9" key3="b(" key4="lrm"/> + <key key0="פ" key2="0" key3="b)" key4="rlm" width="1.333"/> + </row> + <row> + <key key0="ש" key2="`" key1="tab" key3="sindot_placeholder" key4="shindot_placeholder" width="1.333"/> + <key key0="ד" key1="~"/> + <key key0="ג" key1="geresh" key2="gershayim"/> + <key key0="כ"/> + <key key0="ע"/> + <key key0="י" key2="-" key3="_" key4="maqaf"/> + <key key0="ח" key2="=" key3="+"/> + <key key0="ל" key2="b[" key3="b{"/> + <key key0="ך" key2="b]" key3="b}"/> + <key key0="ף" key2="'" key3=""" key1=":"/> + </row> + <row> + <key key0="\\" key1="|" key2="shift" key3="loc capslock"/> + <key key0="ז"/> + <key key0="ס"/> + <key key0="ב"/> + <key key0="ה" /> + <key key0="נ"/> + <key key0="מ" key1="blt" key2=","/> + <key key0="צ" key1="bgt" key2="."/> + <key key0="/" key1="\?"/> + <key key0="backspace" key2="delete" key3="f11_placeholder" key4="f12_placeholder" width="1.333"/> + </row> +</keyboard> diff --git a/res/xml/method.xml b/res/xml/method.xml index 28977ab..3cdfd62 100644 --- a/res/xml/method.xml +++ b/res/xml/method.xml @@ -9,6 +9,7 @@ <subtype android:label="%s" android:languageTag="es" android:imeSubtypeLocale="es_ES" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_es,extra_keys=accent_grave|accent_aigu|accent_tilde|accent_trema|€"/> <subtype android:label="%s" android:languageTag="fr" android:imeSubtypeLocale="fr_FR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=azerty,extra_keys=accent_grave|accent_aigu|accent_circonflexe|accent_cedille|accent_trema|€"/> <subtype android:label="%s" android:languageTag="hu" android:imeSubtypeLocale="hu_HU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwertz_hu,extra_keys=accent_aigu|accent_trema|accent_ogonek|€"/> + <subtype android:label="%s" android:languageTag="he" android:imeSubtypeLocale="he_IL" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=he_il_1452_1,extra_keys=₪|€"/> <subtype android:label="%s" android:languageTag="it" android:imeSubtypeLocale="it_IT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=accent_grave|accent_aigu|€"/> <subtype android:label="%s" android:languageTag="ko" android:imeSubtypeLocale="ko_KR" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty_ko"/> <subtype android:label="%s" android:languageTag="lt" android:imeSubtypeLocale="lt_LT" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="default_layout=qwerty,extra_keys=accent_ogonek|accent_caron|accent_dot_above|accent_macron|€"/> diff --git a/res/xml/qwerty.xml b/res/xml/qwerty.xml index 31429c1..87b56f5 100644 --- a/res/xml/qwerty.xml +++ b/res/xml/qwerty.xml @@ -4,7 +4,7 @@ <key key0="q" key2="1" key4="esc"/> <key key0="w" key1="~" key2="2" key3="\@"/> <key key0="e" key1="!" key2="3" key3="\#" key4="loc €"/> - <key key0="r" key2="4" key3="$"/> + <key key0="r" key2="4" key3="$" key1="loc ₪"/> <key key0="t" key2="5" key3="%"/> <key key0="y" key2="6" key3="^"/> <key key0="u" key2="7" key3="&"/> diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java index bd0db23..87ce92d 100644 --- a/srcs/juloo.keyboard2/Config.java +++ b/srcs/juloo.keyboard2/Config.java @@ -362,6 +362,8 @@ final class Config case "qwertz_hu": id = R.xml.qwertz_hu; break; case "qwertz_sk": id = R.xml.qwertz_sk; break; case "ru_jcuken": id = R.xml.local_ru_jcuken; break; + case "he_il_1452_1": id = R.xml.he_il_1452_1; break; + case "he_il_1452_2": id = R.xml.he_il_1452_2; break; } return KeyboardData.load(res, id); } diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index 454cc29..c00ff07 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -156,6 +156,10 @@ class KeyModifier { case F11: return "f11"; case F12: return "f12"; + case SHINDOT: return "shindot"; + case SINDOT: return "sindot"; + case OLE: return "ole"; + case METEG: return "meteg"; default: return null; } } @@ -198,6 +202,7 @@ class KeyModifier case ',': return "·"; case '!': return "¡"; case '?': return "¿"; + case '|': return "¦"; // arrows case '↖': return "⇖"; case '↑': return "⇑"; @@ -243,6 +248,20 @@ class KeyModifier case '⊂': return "⊆"; case '⊃': return "⊇"; case '±': return "∓"; + // hebrew niqqud + case 'ק': return "qamats"; // kamatz + case 'ר': return "hataf_qamats"; // reduced kamatz + case 'ו': return "holam"; + case 'ם': return "rafe"; + case 'פ': return "patah"; // patach + case 'ש': return "sheva"; + case 'ד': return "dagesh"; // or mapiq + case 'ח': return "hiriq"; + case 'ף': return "hataf_patah"; // reduced patach + case 'ז': return "qubuts"; // kubuts + case 'ס': return "segol"; + case 'ב': return "hataf_segol"; // reduced segol + case 'צ': return "tsere"; // other case ' ': return "nbsp"; default: return null; diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 4a6223e..e93e61f 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -72,7 +72,11 @@ final class KeyValue { REMOVED, F11, - F12 + F12, + SHINDOT, + SINDOT, + OLE, + METEG } public static enum Kind @@ -357,10 +361,50 @@ final class KeyValue case "space": return charKey("\r", ' ', FLAG_KEY_FONT | FLAG_SECONDARY); case "nbsp": return charKey("\u237d", '\u00a0', FLAG_SMALLER_FONT); + /* bidi */ + case "lrm": return charKey("↱", '\u200e', 0); // Send left-to-right mark + case "rlm": return charKey("↰", '\u200f', 0); // Send right-to-left mark + case "b(": return charKey("(", ')', 0); + case "b)": return charKey(")", '(', 0); + case "b[": return charKey("[", ']', 0); + case "b]": return charKey("]", '[', 0); + case "b{": return charKey("{", '}', 0); + case "b}": return charKey("}", '{', 0); + case "blt": return charKey("<", '>', 0); + case "bgt": return charKey(">", '<', 0); + case "removed": return placeholderKey(Placeholder.REMOVED); case "f11_placeholder": return placeholderKey(Placeholder.F11); case "f12_placeholder": return placeholderKey(Placeholder.F12); + /* hebrew niqqud */ + case "qamats": return charKey("\u05E7\u05B8", '\u05B8', 0); // kamatz + case "patah": return charKey("\u05E4\u05B7", '\u05B7', 0); // patach + case "sheva": return charKey("\u05E9\u05B0", '\u05B0', 0); + case "dagesh": return charKey("\u05D3\u05BC", '\u05BC', 0); // or mapiq + case "hiriq": return charKey("\u05D7\u05B4", '\u05B4', 0); + case "segol": return charKey("\u05E1\u05B6", '\u05B6', 0); + case "tsere": return charKey("\u05E6\u05B5", '\u05B5', 0); + case "holam": return charKey("\u05D5\u05B9", '\u05B9', 0); + case "qubuts": return charKey("\u05E7\u05BB", '\u05BB', 0); // kubuts + case "hataf_patah": return charKey("\u05D7\u05B2\u05E4\u05B7", '\u05B2', 0); // reduced patach + case "hataf_qamats": return charKey("\u05D7\u05B3\u05E7\u05B8", '\u05B3', 0); // reduced kamatz + case "hataf_segol": return charKey("\u05D7\u05B1\u05E1\u05B6", '\u05B1', 0); // reduced segol + case "shindot": return charKey("\u05E9\u05C1", '\u05C1', 0); + case "shindot_placeholder": return placeholderKey(Placeholder.SHINDOT); + case "sindot": return charKey("\u05E9\u05C2", '\u05C2', 0); + case "sindot_placeholder": return placeholderKey(Placeholder.SINDOT); + /* hebrew punctuation */ + case "geresh": return charKey("\u05F3", '\u05F3', 0); + case "gershayim": return charKey("\u05F4", '\u05F4', 0); + case "maqaf": return charKey("\u05BE", '\u05BE', 0); + /* hebrew biblical */ + case "rafe": return charKey("\u05E4\u05BF", '\u05BF', 0); + case "ole": return charKey("\u05E2\u05AB", '\u05AB', 0); + case "ole_placeholder": return placeholderKey(Placeholder.OLE); + case "meteg": return charKey("\u05DE\u05BD", '\u05BD', 0); // or siluq or sof-pasuq + case "meteg_placeholder": return placeholderKey(Placeholder.METEG); + case "copy": return editingKey("copy", Editing.COPY); case "paste": return editingKey("paste", Editing.PASTE); case "cut": return editingKey("cut", Editing.CUT); |
