From 1820e80c48004e27bbaa1bcd219965bedb2bc997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=B8=E0=A4=AE=E0=A5=80=E0=A4=B0=20=E0=A4=B8=E0=A4=BF?= =?UTF-8?q?=E0=A4=82=E0=A4=B9=20Sameer=20Singh?= Date: Sun, 29 May 2022 18:55:58 +0530 Subject: [PATCH] Add support for the Batak script (bug #55694) * lisp/language/indonesian.el ("Batak"): New language environment. Add composition rules for Batak. Add sample text and input method. * lisp/international/fontset.el (script-representative-chars) (setup-default-fontset): Support Batak. * lisp/leim/quail/indonesian.el ("batak"): New input method. Rename TITLE of balinese, javanese and sundanese in ("quail-define-package"). * etc/HELLO: Add a Batak greeting. * etc/NEWS: Announce the new language environment and its input method. --- etc/HELLO | 1 + etc/NEWS | 1 + lisp/international/fontset.el | 2 + lisp/language/indonesian.el | 24 ++++++++++++ lisp/leim/quail/indonesian.el | 72 +++++++++++++++++++++++++++++++++-- 5 files changed, 97 insertions(+), 3 deletions(-) diff --git a/etc/HELLO b/etc/HELLO index 4ff066847d..c89f8943c7 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -28,6 +28,7 @@ Amharic (አማርኛ) ሠላም Arabic (العربيّة) السّلام عليكم Armenian (հայերեն) Բարև ձեզ Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ) ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ +Batak (ᯘᯮᯒᯗ᯲ᯅᯗᯂ᯲) ᯂᯬᯒᯘ᯲ Belarusian (беларуская) Прывітанне Bengali (বাংলা) নমস্কার Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻) 𑀦𑀫𑀲𑁆𑀢𑁂 diff --git a/etc/NEWS b/etc/NEWS index d8d22449f7..5987acdac9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -836,6 +836,7 @@ corresponding language environments are: **** Balinese script and language environment **** Javanese script and language environment **** Sundanese script and language environment +**** Batak script and language environment --- *** The "Oriya" language environment was renamed to "Odia". diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 00ee0cf475..bf4b9b578e 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -191,6 +191,7 @@ font-encoding-charset-alist (limbu #x1901 #x1920 #x1936) (balinese #x1B13 #x1B35 #x1B5E) (sundanese #x1B8A #x1BAB #x1CC4) + (batak #x1BC2 #x1BE7 #x1BFF) (tai-le #x1950) (tai-lue #x1980) (tai-tham #x1A20 #x1A55 #x1A61 #x1A80) @@ -762,6 +763,7 @@ setup-default-fontset limbu balinese sundanese + batak symbol braille yi diff --git a/lisp/language/indonesian.el b/lisp/language/indonesian.el index 4bdcd0a49c..319ec48158 100644 --- a/lisp/language/indonesian.el +++ b/lisp/language/indonesian.el @@ -54,6 +54,16 @@ (documentation . "\ Sundanese language and its script are supported in this language environment."))) +(set-language-info-alist + "Batak" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "batak") + (sample-text . "Batak (ᯘᯮᯒᯗ᯲ᯅᯗᯂ᯲) ᯂᯬᯒᯘ᯲") + (documentation . "\ +Such languages using the Batak script such as Karo, Toba, Pakpak, Mandailing +and Simalungun are supported in this language environment."))) + ;; Balinese composition rules (let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]") (independent-vowel "[\x1B05-\x1B12]") @@ -119,5 +129,19 @@ vowel "?" modifier-above "?" dependant-consonant "?") 1 'font-shape-gstring)))) +;; Batak composition rules +(let ((akshara "[\x1BC0-\x1BE5]") + (vowel "[\x1BE7-\x1BEF]") + (dependant-consonant "[\x1BF0\x1BF1]") + (modifier-above "\x1BE6") + (virama "[\x1BF2\x1BF3]")) + (set-char-table-range composition-function-table + '(#x1BE6 . #x1BF3) + (list (vector + ;; Akshara based syllables + (concat akshara virama "?" vowel "*" modifier-above + "?" dependant-consonant "?") + 1 'font-shape-gstring)))) + (provide 'indonesian) ;;; indonesian.el ends here diff --git a/lisp/leim/quail/indonesian.el b/lisp/leim/quail/indonesian.el index 3a0654db90..fd232c4f71 100644 --- a/lisp/leim/quail/indonesian.el +++ b/lisp/leim/quail/indonesian.el @@ -32,7 +32,7 @@ ;; Javanese. (quail-define-package - "balinese" "Balinese" "ᬅ" t "Balinese phonetic input method. + "balinese" "Balinese" "ᬩ" t "Balinese phonetic input method. `\\=`' is used to switch levels instead of Alt-Gr. " nil t t t t nil nil nil nil nil t) @@ -174,7 +174,7 @@ ("`M" ?ᬀ)) (quail-define-package - "javanese" "Javanese" "ꦄ" t "Javanese phonetic input method. + "javanese" "Javanese" "ꦗ" t "Javanese phonetic input method. `\\=`' is used to switch levels instead of Alt-Gr. " nil t t t t nil nil nil nil nil t) @@ -287,7 +287,7 @@ ("`m" ?ꦀ)) (quail-define-package - "sundanese" "Sundanese" "ᮃ" t "Sundanese phonetic input method. + "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) @@ -377,5 +377,71 @@ ("`m" ?ᮿ) ("`M" ?ᮬ)) +(quail-define-package + "batak" "Batak" "ᯅ" t "Batak phonetic input method, + used by languages such as Karo, Toba, Pakpak, Mandailing + and Simalungun. + + `\\=`' is used to switch levels instead of Alt-Gr. +" nil t t t t nil nil nil nil nil t) + +(quail-define-rules + ("q" ?᯼) + ("Q" ?᯽) + ("w" ?ᯋ) + ("W" ?ᯌ) + ("`w" ?ᯍ) + ("e" ?ᯧ) + ("E" ?ᯨ) + ("`e" ?ᯩ) + ("r" ?ᯒ) + ("R" ?ᯓ) + ("t" ?ᯖ) + ("T" ?ᯗ) + ("y" ?ᯛ) + ("Y" ?ᯜ) + ("u" ?ᯮ) + ("U" ?ᯥ) + ("`u" ?ᯯ) + ("i" ?ᯪ) + ("I" ?ᯫ) + ("`i" ?ᯤ) + ("o" ?ᯬ) + ("O" ?ᯭ) + ("p" ?ᯇ) + ("P" ?ᯈ) + ("a" ?ᯀ) + ("A" ?ᯁ) + ("s" ?ᯘ) + ("S" ?ᯙ) + ("`s" ?ᯚ) + ("d" ?ᯑ) + ("f" ?᯲) + ("F" ?᯳) + ("g" ?ᯎ) + ("G" ?ᯏ) + ("h" ?ᯂ) + ("H" ?ᯃ) + ("`h" ?ᯄ) + ("`H" ?ᯱ) + ("j" ?ᯐ) + ("k" ?᯦) + ("l" ?ᯞ) + ("L" ?ᯟ) + ("z" ?ᯝ) + ("Z" ?ᯰ) + ("x" ?ᯠ) + ("c" ?ᯡ) + ("v" ?᯾) + ("V" ?᯿) + ("b" ?ᯅ) + ("B" ?ᯆ) + ("n" ?ᯉ) + ("N" ?ᯊ) + ("`n" ?ᯢ) + ("m" ?ᯔ) + ("M" ?ᯕ) + ("`m" ?ᯣ)) + (provide 'indonesian) ;;; indonesian.el ends here -- 2.36.1