From 31b9f7838469cff596f0ce3edd16c7b216b39b38 Mon Sep 17 00:00:00 2001 From: yparitcher Date: Sun, 22 Sep 2019 16:21:00 -0400 Subject: [PATCH] [UX] Add Hebrew keyboard (#5414) --- .../ui/data/keyboardlayouts/he_keyboard.lua | 152 ++++++++++++++++++ .../keyboardlayouts/keypopup/he_popup.lua | 119 ++++++++++++++ frontend/ui/language.lua | 1 + frontend/ui/widget/virtualkeyboard.lua | 1 + 4 files changed, 273 insertions(+) create mode 100644 frontend/ui/data/keyboardlayouts/he_keyboard.lua create mode 100644 frontend/ui/data/keyboardlayouts/keypopup/he_popup.lua diff --git a/frontend/ui/data/keyboardlayouts/he_keyboard.lua b/frontend/ui/data/keyboardlayouts/he_keyboard.lua new file mode 100644 index 000000000..afd9c0e18 --- /dev/null +++ b/frontend/ui/data/keyboardlayouts/he_keyboard.lua @@ -0,0 +1,152 @@ +local en_popup = require("ui/data/keyboardlayouts/keypopup/en_popup") +local he_popup = require("ui/data/keyboardlayouts/keypopup/he_popup") +local com = en_popup.com -- comma (,) +local prd = en_popup.prd -- period (.) +local _at = en_popup._at +local _eq = en_popup._eq -- equals sign (=) +local _A_ = en_popup._A_ +local _a_ = en_popup._a_ +local _B_ = en_popup._B_ +local _b_ = en_popup._b_ +local _C_ = en_popup._C_ +local _c_ = en_popup._c_ +local _D_ = en_popup._D_ +local _d_ = en_popup._d_ +local _E_ = en_popup._E_ +local _e_ = en_popup._e_ +local _F_ = en_popup._F_ +local _f_ = en_popup._f_ +local _G_ = en_popup._G_ +local _g_ = en_popup._g_ +local _H_ = en_popup._H_ +local _h_ = en_popup._h_ +local _I_ = en_popup._I_ +local _i_ = en_popup._i_ +local _J_ = en_popup._J_ +local _j_ = en_popup._j_ +local _K_ = en_popup._K_ +local _k_ = en_popup._k_ +local _L_ = en_popup._L_ +local _l_ = en_popup._l_ +local _M_ = en_popup._M_ +local _m_ = en_popup._m_ +local _N_ = en_popup._N_ +local _n_ = en_popup._n_ +local _O_ = en_popup._O_ +local _o_ = en_popup._o_ +local _P_ = en_popup._P_ +local _p_ = en_popup._p_ +local _Q_ = en_popup._Q_ +local _q_ = en_popup._q_ +local _R_ = en_popup._R_ +local _r_ = en_popup._r_ +local _S_ = en_popup._S_ +local _s_ = en_popup._s_ +local _T_ = en_popup._T_ +local _t_ = en_popup._t_ +local _U_ = en_popup._U_ +local _u_ = en_popup._u_ +local _V_ = en_popup._V_ +local _v_ = en_popup._v_ +local _W_ = en_popup._W_ +local _w_ = en_popup._w_ +local _X_ = en_popup._X_ +local _x_ = en_popup._x_ +local _Y_ = en_popup._Y_ +local _y_ = en_popup._y_ +local _Z_ = en_popup._Z_ +local _z_ = en_popup._z_ +local aleph = he_popup.aleph +local beis = he_popup.beis +local gimmel = he_popup.gimmel +local daled = he_popup.daled +local hey = he_popup.hey +local vov = he_popup.vov +local zayin = he_popup.zayin +local tes = he_popup.tes +local yud = he_popup.yud +local chof = he_popup.chof +local lamed = he_popup.lamed +local mem = he_popup.mem +local mem_sofis = he_popup.mem_sofis +local nun = he_popup.nun +local samech = he_popup.samech +local ayin = he_popup.ayin +local pey = he_popup.pey +local pey_sofis = he_popup.pey_sofis +local tzadik = he_popup.tzadik +local kuf = he_popup.kuf +local reish = he_popup.reish +local shin = he_popup.shin +local taf = he_popup.taf + +return { + shiftmode_keys = {["Shift"] = true}, + symbolmode_keys = {["Sym"] = true, ["ABC"] = true}, + utf8mode_keys = {["IM"] = true}, + umlautmode_keys = {["Äéß"] = true}, + keys = { + -- first row + { -- 1 2 3 4 5 6 7 8 9 10 11 12 + { _Q_, _q_, "„", "0", "׳", "״", "?", "!", "Å", "å", "1", "ª", }, + { _W_, _w_, "!", "1", "֘֘֙֙ ", kuf, "(", "1", "Ä", "ä", "2", "º", }, + { _E_, _e_, _at, "2", "֘ ", reish, ")", "2", "Ö", "ö", "3", "¡", }, + { _R_, _r_, "#", "3", "֗", aleph, "~", "3", "ß", "ß", "4", "¿", }, + { _T_, _t_, "+", _eq, "֖ ", tes, "Ә", "ә", "À", "à", "5", "¼", }, + { _Y_, _y_, "€", "(", "֕ ", vov, "І", "і", "Â", "â", "6", "½", }, + { _U_, _u_, "‰", ")", "֔ ", "ן", "Ң", "ң", "Æ", "æ", "7", "¾", }, + { _I_, _i_, "|", "\\", "֓ ", mem_sofis, "Ғ", "ғ", "Ü", "ü", "8", "©", }, + { _O_, _o_, "?", "/", "֒ ", pey, "Х", "х", "È", "è", "9", "®", }, + { _P_, _p_, "~", "`", "֑ ", pey_sofis, "Ъ", "ъ", "É", "é", "0", "™", }, + }, + -- second row + { -- 1 2 3 4 5 6 7 8 9 10 11 12 + { _A_, _a_, "…", _at, "ּ ", shin, "*", "0", "Ê", "ê", "Ş", "ş", }, + { _S_, _s_, "$", "4", "ֻ ", daled, "+", "4", "Ë", "ë", "İ", "ı", }, + { _D_, _d_, "%", "5", "ִ ", gimmel, "-", "5", "Î", "î", "Ğ", "ğ", }, + { _F_, _f_, "^", "6", "ֹ", chof, _eq, "6", "Ï", "ï", "Ć", "ć", }, + { _G_, _g_, ":", ";", "ְ ", ayin, "Ү", "ү", "Ô", "ô", "Č", "č", }, + { _H_, _h_, '"', "'", "ֵ ", yud, "Ұ", "ұ", "Œ", "œ", "Đ", "đ", }, + { _J_, _j_, "{", "[", "ֶ ", "ח", "Қ", "қ", "Ù", "ù", "Š", "š", }, + { _K_, _k_, "}", "]", "ַ ", lamed, "Ж", "ж", "Û", "û", "Ž", "ž", }, + { _L_, _l_, "_", "-", "ָ ", "ך", "Э", "э", "Ÿ", "ÿ", "Ő", "ő", }, + }, + -- third row + { -- 1 2 3 4 5 6 7 8 9 10 11 12 + { label = "Shift", + icon = "resources/icons/appbar.arrow.shift.png", + width = 1.5 + }, + { _Z_, _z_, "&", "7", "׃", zayin, ":", "7", "Á", "á", "Ű", "ű", }, + { _X_, _x_, "*", "8", "׀", samech, ";", "8", "Ø", "ø", "Ã", "ã", }, + { _C_, _c_, "£", "9", "ׄ ", beis, "'", "9", "Í", "í", "Þ", "þ", }, + { _V_, _v_, "<", com, "ׅ ", hey, "Ө", "ө", "Ñ", "ñ", "Ý", "ý", }, + { _B_, _b_, ">", prd, "־", nun, "Һ", "һ", "Ó", "ó", "†", "‡", }, + { _N_, _n_, "‘", "↑", "ֿ ", mem, "Б", "б", "Ú", "ú", "–", "—", }, + { _M_, _m_, "’", "↓", "ֽ ", tzadik, "Ю", "ю", "Ç", "ç", "…", "¨", }, + { label = "Backspace", + icon = "resources/icons/appbar.clear.reflect.horizontal.png", + width = 1.5 + }, + }, + -- fourth row + { + { "Sym", "Sym", "ABC", "ABC", "Sym", "Sym", "ABC", "ABC", "Sym", "Sym", "ABC", "ABC", + width = 1.5}, + { label = "IM", + icon = "resources/icons/appbar.globe.wire.png", + }, + { "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", "Äéß", }, + { label = "space", + " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", + width = 3.0}, + { com, com, "“", "←", com, taf, "Ё", "ё", "Ũ", "ũ", com, com, }, + { prd, prd, "”", "→", prd, "ץ", prd, prd, "Ĩ", "ĩ", prd, prd, }, + { label = "Enter", + "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", + icon = "resources/icons/appbar.arrow.enter.png", + width = 1.5, + }, + }, + }, +} diff --git a/frontend/ui/data/keyboardlayouts/keypopup/he_popup.lua b/frontend/ui/data/keyboardlayouts/keypopup/he_popup.lua new file mode 100644 index 000000000..3b6dcec22 --- /dev/null +++ b/frontend/ui/data/keyboardlayouts/keypopup/he_popup.lua @@ -0,0 +1,119 @@ +return { + aleph = { + "א", + north = "אַ", + northeast = "אָ", + northwest = "אּ", + east = "ﭏ", + west = "ﬡ", + }, + beis = { + "ב", + north = "בּ", + northeast = "בֿ", + }, + gimmel = { + "ג", + north = "גּ", + }, + daled = { + "ד", + north = "דּ", + northeast = "ﬢ", + }, + hey = { + "ה", + north = "הּ", + northeast = "ﬣ", + }, + vov = { + "ו", + north = "וּ", + northeast = "וֹ", + east = "װ", + west = "ױ", + }, + zayin = { + "ז", + north = "זּ", + }, + tes = { + "ט", + north = "טּ", + }, + yud = { + "י", + north = "יּ", + northeast = "יִ", + northwest = "ׯ", + east = "ײ", + west = "ײַ", + }, + chof = { + "כ", + north = "כּ", + northeast = "ﬤ", + northwest = "כֿ", + }, + lamed = { + "ל", + north = "לּ", + northeast = "ﬥ", + }, + mem = { + "מ", + north = "מּ", + }, + mem_sofis = { + "ם", + north = "ﬦ", + }, + nun = { + "נ", + north = 'נּ', + northeast = "׆", + }, + samech = { + "ס", + north = 'סּ', + }, + ayin = { + "ע", + north = "ﬠ", + }, + pey = { + "פ", + north = "פּ", + northeast = "פֿ", + }, + pey_sofis = { + "ף", + north = "ףּ", + }, + tzadik = { + "צ", + north = "צּ", + }, + kuf = { + "ק", + north = "קּ", + }, + reish = { + "ר", + north = "רּ", + northeast = "ﬧ", + }, + shin = { + "ש", + north = "שּ", + northeast = "שּׁ", + northwest = "שּׂ", + east = "שּ", + west = "שׂ", + }, + taf = { + "ת", + north = "תּ", + northeast = "ﬨ", + }, +} diff --git a/frontend/ui/language.lua b/frontend/ui/language.lua index da8570908..1c654a567 100644 --- a/frontend/ui/language.lua +++ b/frontend/ui/language.lua @@ -16,6 +16,7 @@ local Language = { fr = "Français", gl = "Galego", it_IT = "Italiano", + he = "Hebrew", hu = "Magyar", nl_NL = "Nederlands", nb_NO = "Norsk", diff --git a/frontend/ui/widget/virtualkeyboard.lua b/frontend/ui/widget/virtualkeyboard.lua index b51963efe..67ef4a4e5 100644 --- a/frontend/ui/widget/virtualkeyboard.lua +++ b/frontend/ui/widget/virtualkeyboard.lua @@ -523,6 +523,7 @@ local VirtualKeyboard = FocusManager:new{ en = "en_keyboard", es = "es_keyboard", fr = "fr_keyboard", + he = "he_keyboard", ja = "ja_keyboard", pt_BR = "pt_keyboard", ko_KR = "ko_KR_keyboard",