diff --git a/frontend/ui/data/keyboardlayouts/ar_AA_keyboard.lua b/frontend/ui/data/keyboardlayouts/ar_AA_keyboard.lua new file mode 100644 index 000000000..7e924fdda --- /dev/null +++ b/frontend/ui/data/keyboardlayouts/ar_AA_keyboard.lua @@ -0,0 +1,126 @@ +local en_popup = require("ui/data/keyboardlayouts/keypopup/en_popup") +local ar_popup = require("ui/data/keyboardlayouts/keypopup/ar_AA_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 alef = ar_popup.alef +local ba = ar_popup.ba +local jeem = ar_popup.jeem +local daal = ar_popup.daal +local h_aa = ar_popup.h_aa -- This is Arabic letter هـ / as in English "hello". +local waw = ar_popup.waw +local zay = ar_popup.zay +local ha = ar_popup.ha -- while this is Arabic letter ح / as in the sound you make when blowing on a glass to clean it. +local tah = ar_popup.tah +local yaa = ar_popup.yaa +local kaf = ar_popup.kaf +local lam = ar_popup.lam +local meem = ar_popup.meem +local nun = ar_popup.nun +local seen = ar_popup.seen +local ayin = ar_popup.ayin +local fah = ar_popup.fah +local saad = ar_popup.saad +local qaf = ar_popup.qaf +local raa = ar_popup.raa +local sheen = ar_popup.sheen +local taa = ar_popup.taa +local thaa = ar_popup.thaa +local thaal = ar_popup.thaal +local dhad = ar_popup.dhad +local ghayn = ar_popup.ghayn +local khaa = ar_popup.khaa +local hamza = ar_popup.hamza +local wawhamza = ar_popup.wawhamza +local laa = ar_popup.laa +local alefmaqsoura = ar_popup.alefmaqsoura +local taamarbouta = ar_popup.taamarbouta +local diacritics = ar_popup.diacritics +local diacritic_fat_ha = ar_popup.diacritic_fat_ha +local diacritic_damma = ar_popup.diacritic_damma +local diacritic_kasra = ar_popup.diacritic_kasra +local diacritic_sukoon = ar_popup.diacritic_sukoon +local diacritic_shadda = ar_popup.diacritic_shadda +local diacritic_tanween_fath = ar_popup.diacritic_tanween_fath +local diacritic_tanween_damm = ar_popup.diacritic_tanween_damm +local diacritic_tanween_kasr = ar_popup.diacritic_tanween_kasr +local arabic_comma = ar_popup.arabic_comma + + +return { + min_layer = 1, + max_layer = 4, + shiftmode_keys = {["بدّل"] = true}, -- بدّل means "Shift". + symbolmode_keys = {["رمز"] = true,["حرف"]=true}, -- رمز means "Symbol", حرف means "letter" (traditionally "ABC" on QWERTY layouts) + utf8mode_keys = {["🌐"] = true}, -- The famous globe key for layout switching + umlautmode_keys = {["Äéß"] = false}, -- No need for this keyboard panel + keys = { + -- first row + { -- 1 2 3 4 + { diacritic_fat_ha, dhad, "„", "0", }, + { diacritic_tanween_fath, saad, "!", "1", }, + { diacritic_damma, thaa, _at, "2", }, + { diacritic_tanween_damm, qaf, "#", "3", }, + { "ﻹ", fah, "+", _eq, }, + { "إ", ghayn, "€", "(", }, + { "`", ayin, "‰", ")", }, + { "÷", h_aa, "|", "ـ", }, + { "×", khaa, "?", "ّ", }, + { "؛", ha, "~", "ٌ", }, + { "<", jeem, "<", "ً", }, + { ">", daal, ">", "~", }, + }, + -- second row + { -- 1 2 3 4 + { diacritic_kasra, sheen, "…", "4", }, + { diacritic_tanween_kasr, seen, "$", "5", }, + { "]", yaa, "%", "6", }, + { "[", ba, "^", ";", }, + { "ﻷ", lam, ":", "'", }, + { "أ", alef, '"', "\\", }, + { "ـ", taa, "}", "ّ", }, + { "،", nun, "{", "'", }, + { "/", meem, "_", "ِ", }, + { ":", kaf, "÷", "ُ", }, + { "\"", tah, "×", "َ", }, + }, + -- third row + { -- 1 2 3 4 + { diacritic_shadda, thaal, "&", "7", }, + { diacritic_sukoon, hamza, "*", "8", }, + { "}", wawhamza, "£", "9", }, + { "{", raa, "_", com, }, + { "ﻵ", laa, "/", prd, }, + { "آ", alefmaqsoura, "‘", "[", }, + { "'", taamarbouta, "'", "]", }, + { arabic_comma, waw, "#", "↑", }, + { ".", zay, "@", "↓", }, + { "؟", thaa, "!", _at, }, + { label = "Backspace", + icon = "resources/icons/appbar.clear.reflect.horizontal.png", + width = 1.5 + }, + }, + -- fourth row + { + { "بدّل", "بدّل", "بدّل", "بدّل", + width = 1.40}, + { label = "🌐", }, + { "رمز", "رمز", "حرف", "حرف", + width = 1.20}, + { label = "مسافة", + " ", " ", " ", " ", + width = 3.0}, + { com, arabic_comma, "“", "←", }, + { prd, prd, "”", "→", }, + { label = "حركات", diacritics, diacritics, diacritics, diacritics, + width = 1.5}, + { label = "Enter", + "\n", "\n", "\n", "\n", + icon = "resources/icons/appbar.arrow.enter.png", + width = 1.5, + }, + }, + }, +} diff --git a/frontend/ui/data/keyboardlayouts/keypopup/ar_AA_popup.lua b/frontend/ui/data/keyboardlayouts/keypopup/ar_AA_popup.lua new file mode 100644 index 000000000..233ac98d0 --- /dev/null +++ b/frontend/ui/data/keyboardlayouts/keypopup/ar_AA_popup.lua @@ -0,0 +1,162 @@ +return { + alef = { + "ا", + north = "أ", + northeast = "إ", + northwest = "ء", + east = "آ", + west = "ﭐ", + }, + ba = { + "ب", + north = "ݒ", + }, + jeem = { + "ج", + north = "ج", + }, + daal = { + "د", + }, + h_aa = { -- الهاء + "ه", + label = "ﻪ", + }, + waw = { + "و", + }, + zay = { + "ز", + north = "ژ", + }, + ha = { -- الحاء + "ح", + }, + tah = { + "ط", + }, + yaa = { + "ي", + north = "ئ", + }, + kaf = { + "ك", + north = "گ", + northeast = "ک", + }, + lam = { + "ل", + north = "ﻻ", + northeast = "ﻷ", + northwest = "ﻹ", + east = "ﻵ", + }, + meem = { + "م", + }, + nun = { + "ن", + }, + seen = { + "س", + }, + ayin = { + "ع", + }, + fah = { + "ف", + north = "ڤ", + northeast = "ڥ", + east = "ڢ", + }, + saad = { + "ص", + }, + qaf = { + "ق", + north = "ڨ", + }, + raa = { + "ر", + }, + sheen = { + "ش", + north = "ڜ", + }, + taa = { + "ت", + }, + thaa = { + "ث", + }, + thaal = { + "ذ", + }, + dhad = { + "ض", + }, + th_aa = { + "ظ", + }, + ghayn = { + "غ", + }, + khaa = { + "خ", + }, + alefmaqsoura = { + "ى", + }, + hamza = { + "ء", + }, + wawhamza = { + "ؤ", + }, + laa = { + "ﻻ", + }, + taamarbouta = { + "ة", + label = "ﺔ", + }, + diacritic_fat_ha = { + "َ", + }, + diacritic_damma = { + "ُ", + }, + diacritic_kasra = { + "ِ", + }, + diacritic_sukoon = { + "ْ", + }, + diacritic_shadda = { + "ّ", + }, + diacritic_tanween_fath = { + "ً", + }, + diacritic_tanween_damm = { + "ٌ", + }, + diacritic_tanween_kasr = { + "ٍ", + }, + -- Diacritics (al-Harakat الحركات) + diacritics = { + "ّ", + north = "َ", + northeast = "ْ", + northwest = "ً", + east = "ُ", + west = "ٌ", + south= "~", + southeast= "ِ", + southwest= "ٍ", + }, + arabic_comma = { + "،", + }, +} diff --git a/frontend/ui/widget/virtualkeyboard.lua b/frontend/ui/widget/virtualkeyboard.lua index 0188f0d20..eed3abbda 100644 --- a/frontend/ui/widget/virtualkeyboard.lua +++ b/frontend/ui/widget/virtualkeyboard.lua @@ -656,6 +656,7 @@ local VirtualKeyboard = FocusManager:new{ key_padding = Size.padding.default, lang_to_keyboard_layout = { + ar_AA = "ar_AA_keyboard", el = "el_keyboard", en = "en_keyboard", es = "es_keyboard", @@ -787,8 +788,10 @@ function VirtualKeyboard:addKeys() for j = 1, #self.KEYS[i] do local key local key_chars = self.KEYS[i][j][self.keyboard_layer] + local label if type(key_chars) == "table" then key = key_chars[1] + label = key_chars.label else key = key_chars key_chars = nil @@ -797,7 +800,7 @@ function VirtualKeyboard:addKeys() local key_width = math.floor((base_key_width + self.key_padding) * width_factor) - self.key_padding local key_height = base_key_height - local label = self.KEYS[i][j].label or key + label = label or self.KEYS[i][j].label or key local virtual_key = VirtualKey:new{ key = key, key_chars = key_chars,