Add support for the Sundanese script (bug#55686)

* lisp/language/indonesian.el ("Sundanese"): New language environment.
Add composition rules for Sundanese.  Add sample text and input
method.
Improve composition rules for Balinese and Javanese.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Sundanese.
* lisp/leim/quail/indonesian.el ("sundanese"): New input method.

* etc/HELLO: Add a Sundanese greeting.
* etc/NEWS: Announce the new language environment and its
input method.
This commit is contained in:
समीर सिंह Sameer Singh 2022-05-26 18:35:00 +05:30 committed by Eli Zaretskii
parent 6f1d5e59f3
commit fb6484e3d0
5 changed files with 126 additions and 2 deletions

View file

@ -89,6 +89,7 @@ Sinhala (සිංහල) ආයුබෝවන්
Slovak (slovenčina) Dobrý deň
Slovenian (slovenščina) Pozdravljeni!
Spanish (español) ¡Hola!
Sundanese (ᮃᮊ᮪ᮟᮛᮞᮥᮔ᮪ᮓ) ᮞᮙ᮪ᮕᮥᮛᮞᮥᮔ᮪
Swedish (svenska) Hej / Goddag / Hallå
Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ) ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ / ꠘꠝꠡ꠆ꠇꠣꠞ
Tamil (தமிழ்) வணக்கம்

View file

@ -832,6 +832,7 @@ corresponding language environments are:
**** Limbu script and language environment
**** Balinese script and language environment
**** Javanese script and language environment
**** Sundanese script and language environment
---
*** The "Oriya" language environment was renamed to "Odia".

View file

@ -190,6 +190,7 @@
(mongolian #x1826)
(limbu #x1901 #x1920 #x1936)
(balinese #x1B13 #x1B35 #x1B5E)
(sundanese #x1B8A #x1BAB #x1CC4)
(tai-le #x1950)
(tai-lue #x1980)
(tai-tham #x1A20 #x1A55 #x1A61 #x1A80)
@ -760,6 +761,7 @@
tagbanwa
limbu
balinese
sundanese
symbol
braille
yi

View file

@ -45,6 +45,14 @@ Balinese language and its script are supported in this language environment.")))
(documentation . "\
Javanese language and its script are supported in this language environment.")))
(set-language-info-alist
"Sundanese" '((charset unicode)
(coding-system utf-8)
(coding-priority utf-8)
(input-method . "sundanese")
(sample-text . "Sundanese (ᮃᮊ᮪ᮞᮛᮞᮥᮔ᮪ᮓ) ᮞᮙ᮪ᮕᮥᮛᮞᮥᮔ᮪")
(documentation . "\
Sundanese language and its script are supported in this language environment.")))
;; Balinese composition rules
(let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]")
@ -58,7 +66,7 @@ Javanese language and its script are supported in this language environment.")))
'(#x1B34 . #x1B44)
(list (vector
;; Consonant based syllables
(concat consonant rerekan "?" "\\(?:" adeg-adeg consonant
(concat consonant rerekan "?\\(?:" adeg-adeg consonant
rerekan "?\\)*\\(?:" adeg-adeg "\\|" vowel "*" rerekan
"?" modifier-above "?" musical-symbol "?\\)")
1 'font-shape-gstring)
@ -80,7 +88,7 @@ Javanese language and its script are supported in this language environment.")))
'(#xA9B3 . #xA9C0)
(list (vector
;; Consonant based syllables
(concat consonant telu "?" "\\(?:" pangkon consonant
(concat consonant telu "?\\(?:" pangkon consonant
telu "?\\)*\\(?:" pangkon "\\|" vowel "*" telu
"?" modifier-above "?" dependant-consonant "?\\)")
1 'font-shape-gstring)
@ -90,5 +98,26 @@ Javanese language and its script are supported in this language environment.")))
vowel "?" modifier-above "?" dependant-consonant "?")
1 'font-shape-gstring))))
;; Sundanese composition rules
(let ((consonant "[\x1B8A-\x1BA0\x1BAE\x1BAF\x1BBB-\x1BBF]")
(independent-vowel "[\x1B83-\x1B89]")
(vowel "[\x1BA4-\x1BA9]")
(dependant-consonant "[\x1BA1-\x1BA3\x1BAC-\x1BAD]")
(modifier-above "[\x1B80-\x1B82]")
(virama "[\x1BAA\x1BAB]"))
(set-char-table-range composition-function-table
'(#x1BA1 . #x1BAD)
(list (vector
;; Consonant based syllables
(concat consonant "\\(?:" virama consonant
"\\)*\\(?:" virama "\\|" vowel "*"
modifier-above "?" dependant-consonant "?\\)")
1 'font-shape-gstring)
(vector
;; Vowels based syllables
(concat independent-vowel virama "?"
vowel "?" modifier-above "?" dependant-consonant "?")
1 'font-shape-gstring))))
(provide 'indonesian)
;;; indonesian.el ends here

View file

@ -286,5 +286,96 @@
("M" ?ꦁ)
("`m" ?ꦀ))
(quail-define-package
"sundanese" "Sundanese" "" t "Sundanese phonetic input method.
`\\=`' is used to switch levels instead of Alt-Gr.
" nil t t t t nil nil nil nil nil t)
(quail-define-rules
("1" ?᮱)
("`1" ?1)
("`!" ?᳀)
("2" ?᮲)
("`2" ?2)
("`@" ?᳁)
("3" ?᮳)
("`3" ?3)
("`#" ?᳂)
("4" ?᮴)
("`4" ?4)
("`$" ?᳃)
("5" ?᮵)
("`5" ?5)
("6" ?᮶)
("`6" ?6)
("7" ?᮷)
("`7" ?7)
("8" ?᮸)
("`8" ?8)
("9" ?᮹)
("`9" ?9)
("0" ?᮰)
("`0" ?0)
("`" ?ᮒ)
("q" ?ᮋ)
("w" ?ᮝ)
("W" ?ᮭ)
("e" ?ᮨ)
("E" ?ᮩ)
("`e" ?ᮈ)
("`E" ?ᮉ)
("r" ?ᮛ)
("R" ?ᮢ)
("`r" ?ᮁ)
("`R" ?ᮻ)
("t" ?ᮒ)
("y" ?ᮚ)
("Y" ?ᮡ)
("u" ?ᮥ)
("U" ?ᮅ)
("i" ?ᮤ)
("I" ?ᮄ)
("o" ?ᮧ)
("O" ?ᮇ)
("p" ?ᮕ)
("P" ?ᮖ)
("a" ?ᮃ)
("A" ?ᮦ)
("`a" ?ᮆ)
("s" ?ᮞ)
("S" ?ᮯ)
("d" ?ᮓ)
("D" ?᳆)
("f" ?᮪)
("F" ?᮫)
("g" ?ᮌ)
("h" ?ᮠ)
("H" ?ᮂ)
("j" ?ᮏ)
("k" ?ᮊ)
("K" ?ᮮ)
("`k" ?ᮾ)
("`K" ?᳅)
("l" ?ᮜ)
("L" ?ᮣ)
("`l" ?ᮼ)
("`L" ?᳄)
("z" ?ᮐ)
("x" ?ᮟ)
("c" ?ᮎ)
("`c" #x200C) ; ZWNJ
("b" ?ᮘ)
("B" ?ᮽ)
("`b" ?ᮺ)
("`B" ?᳇)
("n" ?ᮔ)
("N" ?ᮍ)
("`n" ?ᮑ)
("m" ?ᮙ)
("M" ?ᮀ)
("`m" ?ᮿ)
("`M" ?ᮬ))
(provide 'indonesian)
;;; indonesian.el ends here