diff --git a/frontend/document/credocument.lua b/frontend/document/credocument.lua index 84742f5e9..f72d9e51c 100644 --- a/frontend/document/credocument.lua +++ b/frontend/document/credocument.lua @@ -51,6 +51,7 @@ local CreDocument = Document:new{ "Noto Sans CJK SC", "Noto Naskh Arabic", "Noto Sans Devanagari UI", + "Noto Sans Bengali UI", "FreeSans", "FreeSerif", "Noto Serif", diff --git a/frontend/fontlist.lua b/frontend/fontlist.lua index 53a292d75..994eda9ab 100644 --- a/frontend/fontlist.lua +++ b/frontend/fontlist.lua @@ -40,8 +40,8 @@ local kindle_fonts_blacklist = { ["NotoNaskhArabicUI-Regular.ttf"] = true, ["NotoNaskh-Bold.ttf"] = true, ["NotoNaskh-Regular.ttf"] = true, - ["NotoSansBengali-Regular.ttf"] = true, ["NotoSansDevanagari-Regular.ttf"] = true, + ["NotoSansBengali-Regular.ttf"] = true, ["NotoSansGujarati-Regular.ttf"] = true, ["NotoSansKannada-Regular.ttf"] = true, ["NotoSansMalayalam-Regular.ttf"] = true, diff --git a/frontend/ui/data/keyboardlayouts/bn_keyboard.lua b/frontend/ui/data/keyboardlayouts/bn_keyboard.lua new file mode 100644 index 000000000..572e74918 --- /dev/null +++ b/frontend/ui/data/keyboardlayouts/bn_keyboard.lua @@ -0,0 +1,215 @@ +local bn_popup = require("ui/data/keyboardlayouts/keypopup/bn_popup") +local pco = bn_popup.pco +local cop = bn_popup.cop +local cse = bn_popup.cse +local sec = bn_popup.sec +local quo = bn_popup.quo +-- Bengali letters +local _da_ = bn_popup._da_ +local _dha_ = bn_popup._dha_ +local _U_kaar_ = bn_popup._U_kaar_ +local _U_ = bn_popup._U_ +local _I_kaar_ = bn_popup._I_kaar_ +local _I_ = bn_popup._I_ +local _ra_ = bn_popup._ra_ +local _rda_ = bn_popup._rda_ +local _Ta_ = bn_popup._Ta_ +local _Tha_ = bn_popup._Tha_ +local _e_ = bn_popup._e_ +local _oi_ = bn_popup._oi_ +local _u_kaar_ = bn_popup._u_kaar_ +local _u_ = bn_popup._u_ +local _i_kaar_ = bn_popup._i_kaar_ +local _i_ = bn_popup._i_ +local _o_ = bn_popup._o_ +local _ou_ = bn_popup._ou_ +local _pa_ = bn_popup._pa_ +local _pha_ = bn_popup._pha_ +local _e_kaar_ = bn_popup._e_kaar_ +local _oi_kaar_ = bn_popup._oi_kaar_ +local _o_kaar_ = bn_popup._o_kaar_ +local _ou_kaar_ = bn_popup._ou_kaar_ +local _aa_kaar_ = bn_popup._aa_kaar_ +local _a_ = bn_popup._a_ +local _sa_ = bn_popup._sa_ +local _sHa_ = bn_popup._sHa_ +local _Da_ = bn_popup._Da_ +local _Dha_ = bn_popup._Dha_ +local _ta_ = bn_popup._ta_ +local _tha_ = bn_popup._tha_ +local _ga_ = bn_popup._ga_ +local _gha_ = bn_popup._gha_ +local _ha_ = bn_popup._ha_ +local _bisarga_ = bn_popup._bisarga_ +local _ja_ = bn_popup._ja_ +local _jha_ = bn_popup._jha_ +local _ka_ = bn_popup._ka_ +local _kha_ = bn_popup._kha_ +local _la_ = bn_popup._la_ +local _anuswara_ = bn_popup._anuswara_ +local _jya_ = bn_popup._jya_ +local _ya_ = bn_popup._ya_ +local _sha_ = bn_popup._sha_ +local _Rha_ = bn_popup._Rha_ +local _cha_ = bn_popup._cha_ +local _Cha_ = bn_popup._Cha_ +local _aa_ = bn_popup._aa_ +local _rwi_ = bn_popup._rwi_ +local _ba_ = bn_popup._ba_ +local _bha_ = bn_popup._bha_ +local _na_ = bn_popup._na_ +local _Na_ = bn_popup._Na_ +local _ma_ = bn_popup._ma_ +local _uma_ = bn_popup._uma_ +local _rwi_kaar_ = bn_popup._rwi_kaar_ +local _chandrabindu_ = bn_popup._chandrabindu_ +local com2 = bn_popup.com2 +local daari = bn_popup.daari +local hashanto = bn_popup.hashanto +local question2 = bn_popup.question2 + +-- other +local _1_ = bn_popup._1_ -- numeric key 1 +local _1p = bn_popup._1p -- numeric key 1, popup sibling (they have north swipe ups of each other, the rest is the same) +local _1n = bn_popup._1n -- numpad key 1 +local _1s = bn_popup._1s -- superscript key 1 +local _2_ = bn_popup._2_ +local _2p = bn_popup._2p +local _2n = bn_popup._2n +local _2s = bn_popup._2s +local _3_ = bn_popup._3_ +local _3p = bn_popup._3p +local _3n = bn_popup._3n +local _3s = bn_popup._3s +local _4_ = bn_popup._4_ +local _4p = bn_popup._4p +local _4n = bn_popup._4n +local _4s = bn_popup._4s +local _5_ = bn_popup._5_ +local _5p = bn_popup._5p +local _5n = bn_popup._5n +local _5s = bn_popup._5s +local _6_ = bn_popup._6_ +local _6p = bn_popup._6p +local _6n = bn_popup._6n +local _6s = bn_popup._6s +local _7_ = bn_popup._7_ +local _7p = bn_popup._7p +local _7n = bn_popup._7n +local _7s = bn_popup._7s +local _8_ = bn_popup._8_ +local _8p = bn_popup._8p +local _8n = bn_popup._8n +local _8s = bn_popup._8s +local _9_ = bn_popup._9_ +local _9p = bn_popup._9p +local _9n = bn_popup._9n +local _9s = bn_popup._9s +local _0_ = bn_popup._0_ +local _0p = bn_popup._0p +local _0n = bn_popup._0n +local _0s = bn_popup._0s +local sla = bn_popup.sla +local sl2 = bn_popup.sl2 +local eql = bn_popup.eql +local eq2 = bn_popup.eq2 +local pls = bn_popup.pls +local pl2 = bn_popup.pl2 +local mns = bn_popup.mns +local mn2 = bn_popup.mn2 +local dsh = bn_popup.dsh +local dgr = bn_popup.dgr +local tpg = bn_popup.tpg +local mth = bn_popup.mth +local mt2 = bn_popup.mt2 +local int = bn_popup.int +local dif = bn_popup.dif +local df2 = bn_popup.df2 +local ls1 = bn_popup.ls1 +local ls2 = bn_popup.ls2 +local mr1 = bn_popup.mr1 +local mr2 = bn_popup.mr2 +local pdc = bn_popup.pdc +local pd2 = bn_popup.pd2 +local bar = bn_popup.bar +local prm = bn_popup.prm +local hsh = bn_popup.hsh +local hs2 = bn_popup.hs2 + +return { + min_layer = 1, + max_layer = 4, + shiftmode_keys = { [""] = true }, + symbolmode_keys = { ["⌥"] = true }, + utf8mode_keys = { ["🌐"] = true }, + -- Width of any key can be modified by adding "width = 1.0, " in the list. + keys = { + -- First row + { -- R r S s + { _1p, _1_, "`", "!", }, + { _2p, _2_, "‘", "¡", }, + { _3p, _3_, "’", dsh, }, + { _4p, _4_, "“", "_", }, + { _5p, _5_, "”", quo, }, + { _6p, _6_, eq2, eql, }, + { _7p, _7_, _7s, _7n, }, + { _8p, _8_, _8s, _8n, }, + { _9p, _9_, _9s, _9n, }, + { _0p, _0_, mn2, mns, }, + }, + -- Second row + { -- R r S s + { _dha_, _da_, dif, "?", width = 0.833}, + { _U_, _U_kaar_, int, "¿", width = 0.833}, + { _I_, _I_kaar_, mth, "~", width = 0.833}, + { _rda_, _ra_, mt2, "\\", width = 0.833}, + { _Tha_, _Ta_, df2, bar, width = 0.833}, + { _oi_, _e_, sl2, sla, width = 0.833}, + { _u_, _u_kaar_, _4s, _4n, width = 0.833}, + { _i_, _i_kaar_, _5s, _5n, width = 0.833}, + { _ou_, _o_, _6s, _6n, width = 0.833}, + { _pha_, _pa_, pl2, pls, width = 0.833}, + { _oi_kaar_, _e_kaar_, "[", "{", width = 0.833}, + { _ou_kaar_, _o_kaar_, "]", "}", width = 0.833}, + }, + + -- Third row + { -- R r S s + { _a_, _aa_kaar_, ls2, ls1, }, + { _sHa_, _sa_, mr2, mr1, }, + { _Dha_, _Da_, dgr, "(", }, + { _tha_, _ta_, tpg, ")", }, + { _gha_, _ga_, hs2, hsh, }, + { _bisarga_, _ha_, pd2, pdc, }, + { _jha_, _ja_, _1s, _1n, }, + { _kha_, _ka_, _2s, _2n, }, + { _anuswara_, _la_, _3s, _3n, }, + { sec, cse, sec, cse, }, -- comma/semicolon with CSS popup block + }, + -- Fourth row + { -- R r S s + { label = "", width = 0.9 }, -- Shift + { _ya_, _jya_, prm, "{", width = 0.82}, + { _Rha_, _sha_, "°", "}", width = 0.82}, + { _Cha_, _cha_, "«", "[", width = 0.82}, + { _rwi_, _aa_, "»", "]", width = 0.82}, + { _bha_, _ba_, _0s, _0n, width = 0.82}, + { _Na_, _na_, "↑", "↑", width = 0.82}, + { _uma_, _ma_, "↓", "↓", width = 0.82}, + { _rwi_kaar_, com2, "়", "ৄ", width = 0.82}, + { _chandrabindu_, daari, "ৠ", "ৡ", width = 0.82}, + { question2, hashanto, "ৰ", "ৱ", width = 0.82}, + { label = "", width = 0.9 }, -- Backspace + }, + -- Fifth row + { -- R r S s + { label = "⌥", width = 1.5, bold = true, alt_label = "SYM"}, -- SYM key + { label = "🌐", }, -- Globe key + { cop, pco, cop, pco, }, -- period/colon with RegEx popup block + { label = "বাংলা", " ", " ", " ", " ", width = 3.0, }, -- Spacebar + { label = "←", }, -- Arrow left + { label = "→", }, -- Arrow right + { label = "⮠", "\n","\n","\n","\n", width = 1.5, }, -- Enter + }, + }, +} diff --git a/frontend/ui/data/keyboardlayouts/keypopup/bn_popup.lua b/frontend/ui/data/keyboardlayouts/keypopup/bn_popup.lua new file mode 100644 index 000000000..8818de012 --- /dev/null +++ b/frontend/ui/data/keyboardlayouts/keypopup/bn_popup.lua @@ -0,0 +1,558 @@ +return { + com = { + ",", + north = ";", + alt_label = ";", + northeast = "(", + northwest = "¿", + east = "„", + west = "?", + }, + + prd = { + ".", + north = ":", + alt_label = ":", + northeast = ")", + northwest = "¡", + east = "…", + west = "!", + }, + _at = { + "@", + north = "Ⓒ", + alt_label = "Ⓒ", + northeast = "™", + northwest = "Ⓡ", + }, + _eq = { + "=", + north = "_", + alt_label = "_", + northwest = "-", + west = "≈", + south = "≥", + southwest = "≤", + }, + pco = { -- period + colon + ".", + north = { + key = "‍", + label = "ZWJ", + }, + alt_label = "ZWJ", + northeast = "'", + northwest = "=", + east = "!", + west = "?", + south = "|", + southeast = ":", + southwest = "/", + "\\", + '^', + "&", + "$", + }, + cop = { -- colon + period + "‍", + label = "ZWJ", + north = ".", + alt_label = ".", + northeast = "'", + northwest = "=", + east = "!", + west = "?", + south = "|", + southeast = ":", + southwest = "/", + "\\", + '^', + "&", + "$", + }, + quo = { + '"', + north = "'", + alt_label = "'", + northeast = "»", + northwest = "«", + east = "”", + west = "“", + south = "`", + southeast = "’", + southwest = "‘", + "‹", + "›", + }, + cse = { -- comma + semicolon + ",", + north = ";", + alt_label = ";", + northeast = "}", + northwest = "{", + east = { label = "!…", key = "!important;" }, + west = "-", + south = "*", + southwest = "0", + southeast = ">", + "[", + "+", + "]", + }, + sec = { -- semicolon + comma + ";", + north = ",", + alt_label = ",", + northeast = "}", + northwest = "{", + east = { label = "!…", key = "!important;" }, + west = "-", + south = "*", + southwest = "0", + southeast = ">", + "[", + "*", + "]", + }, + _da_ = { + "দ", + north = "ধ", + alt_label = "ধ", + }, + _dha_ = { + "ধ", + north = "দ", + alt_label = "দ", + }, + _U_kaar_ = { + "ূ", + north = "ঊ", + alt_label = "ঊ", + }, + _U_ = { + "ঊ", + north = "ূ", + alt_label = "ূ", + }, + _I_kaar_ = { + "ী", + north = "ঈ", + alt_label = "ঈ", + }, + _I_ = { + "ঈ", + north = "ী", + alt_label = "ী", + + }, + _ra_ = { + "র", + north = "ড়", + alt_label = "ড়", + northeast = "Ð", + northwest = "Ď", + east = "$", -- Dollar currency + west = "Đ", + south = "∂", -- partial derivative + southeast = "Δ", -- Greek delta + }, + _rda_ = { + "ড়", + north = "র", + alt_label = "র", + }, + _Ta_ = { + "ট", + north = "ঠ", + alt_label = "ঠ", + }, + _Tha_ = { + "ঠ", + north = "ট", + alt_label = "ট", + }, + _e_ = { + "এ", + north = "ঐ", + alt_label = "ঐ", + }, + _oi_ = { + "ঐ", + north = "এ", + alt_label = "এ", + }, + _u_kaar_ = { + "ু", + north = "উ", + alt_label = "উ", + }, + _u_ = { + "উ", + north = "ু", + alt_label = "ু", + }, + _i_kaar_ = { + "ি", + north = "ই", + alt_label = "ই", + }, + _i_ = { + "ই", + north = "ি", + alt_label = "ি", + }, + _o_ = { + "ও", + north = "ঔ", + alt_label = "ঔ", + + }, + _ou_ = { + "ঔ", + north = "ও", + alt_label = "ও", + + }, + _pa_ = { + "প", + north = "ফ", + alt_label = "ফ", + }, + _pha_ = { + "ফ", + north = "প", + alt_label = "প", + }, + _e_kaar_ = { + "ে", + north = "ৈ", + alt_label = "ৈ", + }, + _oi_kaar_ = { + "ৈ", + north = "ে", + alt_label = "ে", + }, + _o_kaar_ = { + "ো", + north = "ৌ", + alt_label = "ৌ", + }, + _ou_kaar_ = { + "ৌ", + north = "ো", + alt_label = "ো", + }, + _aa_kaar_ = { + "া", + north = "অ", + alt_label = "অ", + }, + _a_ = { + "অ", + north = "া", + alt_label = "া", + }, + _sa_ = { + "স", + north = "ষ", + alt_label = "ষ", + + }, + _sHa_ = { + "ষ", + north = "স", + alt_label = "স", + + }, + _Da_ = { + "ড", + north = "ঢ", + alt_label = "ঢ", + }, + _Dha_ = { + "ঢ", + north = "ড", + alt_label = "ড", + }, + _ta_ = { + "ত", + north = "থ", + alt_label = "থ", + }, + _tha_ = { + "থ", + north = "ত", + alt_label = "ত", + }, + _ga_ = { + "গ", + north = "ঘ", + alt_label = "ঘ", + }, + _gha_ = { + "ঘ", + north = "গ", + alt_label = "গ", + }, + _ha_ = { + "হ", + north = "ঃ", + alt_label = "ঃ", + }, + _bisarga_ = { + "ঃ", + north = "হ", + alt_label = "হ", + }, + _ja_ = { + "জ", + north = "ঝ", + alt_label = "ঝ", + }, + _jha_ = { + "ঝ", + north = "জ", + alt_label = "জ", + }, + _ka_ = { + "ক", + north = "খ", + alt_label = "খ", + + }, + _kha_ = { + "খ", + north = "ক", + alt_label = "ক", + }, + _la_ = { + "ল", + north = "ং", + alt_label = "ং", + }, + _anuswara_ = { + "ং", + north = "ল", + alt_label = "ল", + + }, + _jya_ = { + "য", + north = "য়", + alt_label = "য়", + + }, + _ya_ = { + "য়", + north = "য", + alt_label = "য", + + }, + _sha_ = { + "শ", + north = "ঢ়", + alt_label = "ঢ়", + + }, + _Rha_ = { + "ঢ়", + north = "শ", + alt_label = "শ", + }, + _cha_ = { + "চ", + north = "ছ", + alt_label = "ছ", + }, + _Cha_ = { + "ছ", + north = "চ", + alt_label = "চ", + }, + _aa_ = { + "আ", + north = "ঋ", + alt_label = "ঋ", + }, + _rwi_ = { + "ঋ", + north = "আ", + alt_label = "আ", + }, + _ba_ = { + "ব", + north = "ভ", + alt_label = "ভ", + }, + _bha_ = { + "ভ", + north = "ব", + alt_label = "ব", + }, + _na_ = { + "ন", + north = "ণ", + alt_label = "ণ", + + }, + _Na_ = { + "ণ", + north = "ন", + alt_label = "ন", + }, + _ma_ = { + "ম", + north = "ঙ", + alt_label = "ঙ", + + }, + _uma_ = { + "ঙ", + north = "ম", + alt_label = "ম", + + }, + _rwi_kaar_ = { + "ৃ", + north = ",", + alt_label = "," + }, + _chandrabindu_ = { + "ঁ", + north = "।", + alt_label = "।", + }, + -- Bengali Pancuations + com2 = { + ",", + north = "ৃ", + alt_label = "ৃ", + }, + daari = { + "।", + north = "ঁ", + alt_label = "ঁ", + }, + hashanto = { + "্", + north = "?", + alt_label = "?", + + }, + question2 = { + "?", + north = "্", + alt_label = "্", + + }, + -- _1_ and _1p: numeric key 1 and its popup sibling (they have north swipe ups of each other, the rest is the same) + -- _1n and _1s: numpad key 1 (layer 2), -- superscript key 1 (layer 2, shifted) + _1_ = { "১", north = "!", alt_label = "!", northeast = "¡", south = "'", southeast = "¿", east = "?", }, + _1p = { "!", north = "১", alt_label = "১", northeast = "¡", south = "'", southeast = "¿", east = "?", }, + _1n = { "১", north = "¹", northeast = "⅑", northwest = "⅐", east = "⅙", west = "¼", south = "₁", southwest = "½", southeast = "⅓", "⅕", "⅛", "⅒", }, + _1s = { "¹", north = "১", northeast = "⅑", northwest = "⅐", east = "⅙", west = "¼", south = "₁", southwest = "½", southeast = "⅓", "⅕", "⅛", "⅒", }, + + _2_ = { "২", north = "@", alt_label = "@", northeast = "~", northwest = "http://", east = "-", west = "https://", south = '"', southeast = "…", southwest = "/", }, + _2p = { "@", north = "২", alt_label = "২", northeast = "~", northwest = "http://", east = "-", west = "https://", south = '"', southeast = "…", southwest = "/", }, + _2n = { "২", north = "²", northeast = "⅖", east = "½", south = "₂", southeast = "⅔", }, -- numpad 2 + _2s = { "²", north = "২", northeast = "⅖", east = "½", south = "₂", southeast = "⅔", }, -- superscript 2 + + _3_ = { "৩", north = "#", alt_label = "#", northeast = "☑", northwest = "★", east = "☐", west = "•", south = "№", southeast = "☒", southwest = "☆", ":)", ":|", ":(", }, + _3p = { "#", north = "৩", alt_label = "৩", northeast = "☑", northwest = "★", east = "☐", west = "•", south = "№", southeast = "☒", southwest = "☆", ":)", ":|", ":(", }, + _3n = { "৩", north = "³", northwest = "¾", east = "⅓", west = "⅗", southwest = "⅜", south = "₃", }, -- numpad 3 + _3s = { "³", north = "৩", northwest = "¾", east = "⅓", west = "⅗", southwest = "⅜", south = "₃", }, -- superscript 3 + + _4_ = { "৪", north = "৳", alt_label = "$", northeast = "₹", northwest = "¥", east = "₽", west = "£", south = "€", southeast = "¢", southwest = "₪", "₹", "₿", "₺", }, + _4p = { "৳", north = "৪", alt_label = "৪", northeast = "₹", northwest = "¥", east = "₽", west = "£", south = "€", southeast = "¢", southwest = "₪", "₹", "₿", "₺", }, + _4n = { "৪", north = "⁴", east = "¼", south = "₄", southeast = "⅘", }, -- numpad 4 + _4s = { "⁴", north = "৪", east = "¼", south = "₄", southeast = "⅘", }, -- superscript 4 + + _5_ = { "৬", north = "%", alt_label = "%", northeast = "‱", northwest = "‰", east = "⅓", west = "¼", south = "½", southeast = "⅔", southwest = "¾", }, + _5p = { "%", north = "৬", alt_label = "৫", northeast = "‱", northwest = "‰", east = "⅓", west = "¼", south = "½", southeast = "⅔", southwest = "¾", }, + _5n = { "৫", north = "⁵", northeast = "⅚", east = "⅕", south = "₅", southeast = "⅝", }, -- numpad 5 + _5s = { "⁵", north = "৫", northeast = "⅚", east = "⅕", south = "₅", southeast = "⅝", }, -- superscript 5 + + -- diacritics. Symbols in quotation marks might look weird, however they should work fine. + _6_ = { + "৬", + north = "^", + alt_label = "^", + northeast = { label = "◌́", key = "́", }, -- Combining Acute Accent + northwest = { label = "◌̀", key = "̀", }, -- Combinig Grave Accent + east = { label = "◌̂", key = "̂", }, -- Combining Circumflex Accent + west = { label = "◌̃", key = "̃", }, -- Combining Tilde + south = { label = "◌̧", key = "̧", }, -- Combining Cedilla + southeast = { label = "◌̈", key = "̈", }, -- Combining Diaeresis (Umlaut) + southwest = { label = "◌̇", key = "̇", }, -- Combining Dot Above + { label = "◌̄", key = "̄", }, -- Combining Macron + { label = "◌̌", key = "̌", }, -- Combining Caron + { label = "◌̨", key = "̨", }, -- Combining Ogonek + }, + _6p = { + "^", + north = "৬", + alt_label = "৬", + northeast = { label = "◌́", key = "́", }, -- Combining Acute Accent + northwest = { label = "◌̀", key = "̀", }, -- Combinig Grave Accent + east = { label = "◌̂", key = "̂", }, -- Combining Circumflex Accent + west = { label = "◌̃", key = "̃", }, -- Combining Tilde + south = { label = "◌̧", key = "̧", }, -- Combining Cedilla + southeast = { label = "◌̈", key = "̈", }, -- Combining Diaeresis (Umlaut) + southwest = { label = "◌̇", key = "̇", }, -- Combining Dot Above + { label = "◌̄", key = "̄", }, -- Combining Macron + { label = "◌̌", key = "̌", }, -- Combining Caron + { label = "◌̨", key = "̨", }, -- Combining Ogonek + }, + _6n = { "৬", north = "⁶", east = "⅙", south = "₆", }, -- numpad 6 + _6s = { "⁶", north = "৬", east = "⅙", south = "₆", }, -- superscript 6 + + _7_ = { "৭", north = "ঞ", alt_label = "ঞ", northeast = "»", northwest = "«", east = "¶", west = "§", south = "¤", southeast = "⟩", southwest = "⟨", "†", "■", "‡", }, + _7p = { "ঞ", north = "৭", alt_label = "৭", northeast = "»", northwest = "«", east = "¶", west = "§", south = "¤", southeast = "⟩", southwest = "⟨", "†", "■", "‡", }, + _7n = { "৭", north = "⁷", east = "⅐", south = "₇", southeast = "⅞", }, -- numpad 7 + _7s = { "⁷", north = "৭", east = "⅐", south = "₇", southeast = "⅞", }, -- superscript 7 + + _8_ = { "৮", north = "ৎ", alt_label = "ৎ", northeast = "=", northwest = "≠", east = "+", west = "-", south = "/", southeast = ">", southwest = "<", "≤", "≈", "≥", }, + _8p = { "ৎ", north = "৮", alt_label = "৮", northeast = "=", northwest = "≠", east = "+", west = "-", south = "/", southeast = ">", southwest = "<", "≤", "≈", "≥", }, + _8n = { "৮", north = "⁸", east = "⅛", south = "₈", }, -- numpad 8 + _8s = { "⁸", north = "৮", east = "⅛", south = "₈", }, -- superscript 8 + + _9_ = { "৯", north = "(", alt_label = "(", northeast = "_", northwest = "“", east = "-", west = "{", south = "[", southeast = "—", southwest = "‘", }, + _9p = { "(", north = "৯", alt_label = "৯", northeast = "_", northwest = "“", east = "-", west = "{", south = "[", southeast = "—", southwest = "‘", }, + _9n = { "৯", north = "⁹", east = "⅑", south = "₉", }, -- numpad 9 + _9s = { "⁹", north = "৯", east = "⅑", south = "₉", }, -- superscript 9 + + + _0_ = { "০", north = ")", alt_label = ")", northwest = "”", west = "}", south = "]", southwest = "’", }, + _0p = { ")", north = "০", alt_label = "০", northwest = "”", west = "}", south = "]", southwest = "’", }, + _0n = { "০", north = "⁰", south = "₀", }, -- numpad 0 + _0s = { "⁰", north = "০", south = "₀", }, -- superscript 0 + + sla = { "/", north = "÷", alt_label = "÷", northeast = "⅟", east = "⁄", }, -- numpad slash + sl2 = { "÷", north = "/", alt_label = "/", northeast = "⅟", east = "⁄", }, -- superscript slash + + eql = { "=", north = "≠", alt_label = "≠", northwest = "≃", west = "≡", south = "≈", southwest = "≉", }, -- equality + eq2 = { "≠", north = "=", alt_label = "=", northwest = "≃", west = "≡", south = "≈", southwest = "≉", }, -- popup sibling + ls1 = { "<", north = "≤", alt_label = "≤", south = "≪", }, -- "less than" sign + ls2 = { "≤", north = "<", alt_label = "<", south = "≪", }, -- (popup sibling) + mr1 = { ">", north = "≥", alt_label = "≥", south = "≫", }, -- "more than" + mr2 = { "≥", north = ">", alt_label = ">", south = "≫", }, -- (popup sibling) + pls = { "+", north = "±", alt_label = "±", }, -- plus sign + pl2 = { "±", north = "+", alt_label = "+", }, -- (popup sibling) + mns = { "-", north = "∓", alt_label = "∓", }, -- minus sign + mn2 = { "∓", north = "-", alt_label = "-", }, -- (popup sibling) + dsh = { "-", north = "—", alt_label = "—", south = "–", }, -- dashes + dgr = { "†", north = "‡", alt_label = "‡", }, -- dagger + tpg = { "¶", north = "§", alt_label = "§", northeast = "™", northwest = "℠", east = "¤", west = "•", south = "®", southeast = "🄯", southwest = "©", }, -- typography symbols + mth = { "∇", north = "∀",alt_label = "∀", northeast = "∃", northwest = "∄", east = "∈", west = "∉", south = "∅", southeast = "∩", southwest = "∪", "⊆", "⊂", "⊄", }, -- math operations 1 + mt2 = { "∞", north = "ℕ", alt_label = "ℕ", northeast = "ℤ", northwest = "ℚ", east = "𝔸", west = "ℝ", south = "𝕀", southeast = "ℂ", southwest = "𝕌", "⊇", "⊃", "⊅", }, -- math operations 2 + int = { "∫", north = "∬", alt_label = "∬", northeast = "⨌", northwest = "∭", east = "∑", west = "∏", south = "∮", southeast = "∰", southwest = "∯", "⊕", "ℍ", "⊗", }, -- integrals + dif = { "∂", north = "√", alt_label = "√", northeast = "∴", east = "⇒", south = "⇔", southeast = "∵", }, -- math operations 3 + df2 = { "…", north = "⟂", alt_label = "⟂", northeast = "∡", northwest = "∟", east = "∝", west = "ℓ", }, -- math operations 4 + pdc = { "*", north = "⨯", alt_label = "⨯", south = "⋅", }, -- asterisk, cross-product and dot-prodcuts symbols + pd2 = { "⨯", north = "*", alt_label = "*", south = "⋅", }, + bar = { "|", north = "¦", alt_label = "¦", }, -- bars like pipe and broken bar + prm = { "‰", north = "‱", alt_label = "‱", }, -- per mile types + hsh = { "#", north = "№", alt_label = "№", }, -- hash and "No." sign + hs2 = { "№", north = "#", alt_label = "#", }, +} diff --git a/frontend/ui/elements/font_ui_fallbacks.lua b/frontend/ui/elements/font_ui_fallbacks.lua index 4995fcff3..0367cadf3 100644 --- a/frontend/ui/elements/font_ui_fallbacks.lua +++ b/frontend/ui/elements/font_ui_fallbacks.lua @@ -16,6 +16,7 @@ local hardcoded_fallbacks = { "Noto Sans CJK SC", "Noto Sans Arabic UI", "Noto Sans Devanagari UI", + "Noto Sans Bengali UI", } -- Add any user font after Noto Sans CJK SC in the menu local additional_fallback_insert_indice = 2 -- (indice in the above list) diff --git a/frontend/ui/font.lua b/frontend/ui/font.lua index 48f55db88..67514cf25 100644 --- a/frontend/ui/font.lua +++ b/frontend/ui/font.lua @@ -109,9 +109,10 @@ local Font = { [2] = "NotoSansCJKsc-Regular.otf", [3] = "NotoSansArabicUI-Regular.ttf", [4] = "NotoSansDevanagariUI-Regular.ttf", - [5] = "nerdfonts/symbols.ttf", - [6] = "freefont/FreeSans.ttf", - [7] = "freefont/FreeSerif.ttf", + [5] = "NotoSansBengaliUI-Regular.ttf", + [6] = "nerdfonts/symbols.ttf", + [7] = "freefont/FreeSans.ttf", + [8] = "freefont/FreeSerif.ttf", }, -- Additional fallback fonts are managed by frontend/ui/elements/font_ui_fallbacks.lua -- Add any after NotoSansCJKsc (because CJKsc has better symbols, and has 'locl' OTF diff --git a/frontend/ui/language.lua b/frontend/ui/language.lua index 996b8bc1d..d20c9e605 100644 --- a/frontend/ui/language.lua +++ b/frontend/ui/language.lua @@ -33,7 +33,7 @@ local Language = { vi_VN = "Viet Nam", ar_AA = "عربى", bg_BG = "български", - bn = "বাঙালি", + bn = "বাংলা", el = "Ελληνικά", fa = "فارسی", ja = "日本語", diff --git a/frontend/ui/widget/virtualkeyboard.lua b/frontend/ui/widget/virtualkeyboard.lua index 59fe4d79e..0bfb7d25b 100644 --- a/frontend/ui/widget/virtualkeyboard.lua +++ b/frontend/ui/widget/virtualkeyboard.lua @@ -745,6 +745,7 @@ local VirtualKeyboard = FocusManager:new{ lang_to_keyboard_layout = { ar_AA = "ar_AA_keyboard", bg_BG = "bg_keyboard", + bn = "bn_keyboard", de = "de_keyboard", el = "el_keyboard", en = "en_keyboard", diff --git a/resources/fonts b/resources/fonts index de26531b6..120522a37 160000 --- a/resources/fonts +++ b/resources/fonts @@ -1 +1 @@ -Subproject commit de26531b61dd4a46ef450b16fc69d81d08456314 +Subproject commit 120522a37ab157fdb763ccfa66bfb330c3fabd6a diff --git a/spec/unit/document_spec.lua b/spec/unit/document_spec.lua index 319d03855..097fd58f8 100644 --- a/spec/unit/document_spec.lua +++ b/spec/unit/document_spec.lua @@ -78,6 +78,7 @@ describe("EPUB document module", function() "Noto Naskh Arabic", "Noto Sans", "Noto Sans Arabic UI", + "Noto Sans Bengali UI", "Noto Sans CJK SC", "Noto Sans Devanagari UI", "Noto Serif",