From 6ed29ccbfd4e66c5126b8bfe1f12666e030d1629 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: Sat, 28 May 2022 06:46:55 +0530 Subject: [PATCH] Add support for the Batak scripts * lisp/language/indonesian.el ("Batak Karo") ("Batak Toba") ("Batak Pakpak") ("Batak Mandailing") ("Batak Simalungun"): New language environments. Add composition rules for Batak. Add sample texts and input methods. * lisp/international/fontset.el (script-representative-chars) (setup-default-fontset): Support Batak. * lisp/leim/quail/indonesian.el ("batak-karo") ("batak-toba") ("batak-pakpak") ("batak-mandailing") ("batak-simalungun") : New input methods. * etc/HELLO: Add a Batak greeting. * etc/NEWS: Announce the new language environments and their input methods. --- etc/HELLO | 1 + etc/NEWS | 5 + lisp/international/fontset.el | 2 + lisp/language/indonesian.el | 59 ++++++++++ lisp/leim/quail/indonesian.el | 199 ++++++++++++++++++++++++++++++++++ 5 files changed, 266 insertions(+) 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 97a04405f5..601f103b40 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -826,6 +826,11 @@ corresponding language environments are: **** Balinese script and language environment **** Javanese script and language environment **** Sundanese script and language environment +**** Batak Karo script and language environment +**** Batak Toba script and language environment +**** Batak Pakpak script and language environment +**** Batak Mandailing script and language environment +**** Batak Simalungun 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..aad8c534cb 100644 --- a/lisp/language/indonesian.el +++ b/lisp/language/indonesian.el @@ -54,6 +54,51 @@ (documentation . "\ Sundanese language and its script are supported in this language environment."))) +(set-language-info-alist + "Batak Karo" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "batak-karo") + (sample-text . "Batak Karo (ᯘᯬᯒᯗ᯳ᯆᯗᯂ᯳) ᯔᯧᯐᯬᯀᯱᯐᯬᯀᯱ") + (documentation . "\ +Batak Karo language and its script are supported in this language environment."))) + +(set-language-info-alist + "Batak Toba" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "batak-toba") + (sample-text . "Batak Toba (ᯘᯮᯮᯒᯖ᯲ᯅᯖᯂ᯲) ᯂᯬᯒᯘ᯲") + (documentation . "\ +Batak Toba language and its script are supported in this language environment."))) + +(set-language-info-alist + "Batak Pakpak" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "batak-pakpak") + (sample-text . "Batak Pakpak (ᯘᯮᯒᯗ᯲ᯅᯗᯂ᯲) ᯂᯬᯒᯘ᯲") + (documentation . "\ +Batak Pakpak language and its script are supported in this language environment."))) + +(set-language-info-alist + "Batak Mandailing" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "batak-mandailing") + (sample-text . "Batak Mandailing (ᯚᯮᯒᯖ᯲ᯅᯖᯄᯱ᯲) ᯄᯬᯒᯚ᯲") + (documentation . "\ +Batak Mandailing language and its script are supported in this language environment."))) + +(set-language-info-alist + "Batak Simalungun" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "batak-simalungun") + (sample-text . "Batak Simalungun (ᯙᯮᯮᯓᯖ᯳ᯅᯖᯃ᯳) ᯃᯬᯓᯙ᯲") + (documentation . "\ +Batak Simalungun language and its script are supported in this language environment."))) + ;; Balinese composition rules (let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]") (independent-vowel "[\x1B05-\x1B12]") @@ -119,5 +164,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 dd931e9879..3033a48e4f 100644 --- a/lisp/leim/quail/indonesian.el +++ b/lisp/leim/quail/indonesian.el @@ -377,5 +377,204 @@ ("`m" ?ᮿ) ("`M" ?ᮬ)) +(quail-define-package + "batak-karo" "Batak Karo" "ᯂᯒᯭ" nil "Batak Karo phonetic input method." + nil t t t t nil nil nil nil nil t) + +(quail-define-rules + ("q" ?᯼) + ("Q" ?᯽) + ("w" ?ᯋ) + ("e" ?ᯧ) + ("E" ?ᯩ) + ("r" ?ᯒ) + ("t" ?ᯗ) + ("y" ?ᯛ) + ("u" ?ᯮ) + ("U" ?ᯥ) + ("i" ?ᯫ) + ("I" ?ᯤ) + ("o" ?ᯭ) + ("p" ?ᯇ) + ("a" ?ᯀ) + ("s" ?ᯘ) + ("d" ?ᯑ) + ("f" ?᯲) + ("F" ?᯳) + ("g" ?ᯎ) + ("h" ?ᯱ) + ("j" ?ᯐ) + ("k" ?ᯂ) + ("l" ?ᯞ) + ("z" ?ᯝ) + ("Z" ?ᯰ) + ("c" ?ᯠ) + ("C" ?ᯡ) + ("v" ?᯾) + ("V" ?᯿) + ("b" ?ᯆ) + ("n" ?ᯉ) + ("N" ?ᯢ) + ("m" ?ᯔ) + ("M" ?ᯣ)) + +(quail-define-package + "batak-mandailing" "Batak Mandailing" "ᯔᯊᯑᯤᯞᯪᯰ" nil "Batak Mandailing phonetic input method." + nil t t t t nil nil nil nil nil t) + +(quail-define-rules + ("q" ?᯼) + ("Q" ?᯽) + ("w" ?ᯋ) + ("e" ?ᯧ) + ("E" ?ᯩ) + ("r" ?ᯒ) + ("t" ?ᯖ) + ("y" ?ᯛ) + ("u" ?ᯮ) + ("U" ?ᯥ) + ("i" ?ᯪ) + ("I" ?ᯤ) + ("o" ?ᯬ) + ("p" ?ᯇ) + ("a" ?ᯀ) + ("s" ?ᯚ) + ("d" ?ᯑ) + ("f" ?᯲) + ("F" ?᯳) + ("g" ?ᯎ) + ("h" ?ᯄ) + ("H" ?ᯱ) + ("j" ?ᯐ) + ("l" ?ᯞ) + ("z" ?ᯝ) + ("Z" ?ᯰ) + ("x" ?᯦) + ("v" ?᯾) + ("V" ?᯿) + ("b" ?ᯅ) + ("n" ?ᯊ) + ("N" ?ᯠ) + ("m" ?ᯔ)) + +(quail-define-package + "batak-pakpak" "Batak Pakpak" "ᯇᯂ᯲ᯇᯂ᯲" nil "Batak Pakpak phonetic input method." + nil t t t t nil nil nil nil nil t) + +(quail-define-rules + ("q" ?᯼) + ("Q" ?᯽) + ("w" ?ᯍ) + ("e" ?ᯨ) + ("E" ?ᯩ) + ("r" ?ᯒ) + ("t" ?ᯗ) + ("y" ?ᯛ) + ("u" ?ᯮ) + ("U" ?ᯥ) + ("i" ?ᯪ) + ("I" ?ᯤ) + ("o" ?ᯬ) + ("p" ?ᯇ) + ("a" ?ᯀ) + ("s" ?ᯘ) + ("d" ?ᯑ) + ("f" ?᯲) + ("F" ?᯳) + ("g" ?ᯎ) + ("h" ?ᯱ) + ("j" ?ᯐ) + ("k" ?ᯂ) + ("l" ?ᯞ) + ("z" ?ᯝ) + ("Z" ?ᯰ) + ("c" ?ᯡ) + ("b" ?ᯅ) + ("v" ?᯾) + ("V" ?᯿) + ("n" ?ᯉ) + ("N" ?ᯠ) + ("m" ?ᯔ)) + +(quail-define-package + "batak-toba" "Batak Toba" "ᯖᯬᯅ" nil "Batak Toba phonetic input method." + nil t t t t nil nil nil nil nil t) + +(quail-define-rules + ("q" ?᯼) + ("Q" ?᯽) + ("w" ?ᯋ) + ("W" ?ᯍ) + ("e" ?ᯧ) + ("E" ?ᯩ) + ("r" ?ᯒ) + ("t" ?ᯖ) + ("T" ?ᯗ) + ("y" ?ᯛ) + ("u" ?ᯮ) + ("U" ?ᯥ) + ("i" ?ᯪ) + ("I" ?ᯤ) + ("o" ?ᯬ) + ("p" ?ᯇ) + ("a" ?ᯀ) + ("s" ?ᯘ) + ("d" ?ᯑ) + ("f" ?᯲) + ("F" ?᯳) + ("g" ?ᯎ) + ("h" ?ᯂ) + ("j" ?ᯐ) + ("l" ?ᯞ) + ("z" ?ᯝ) + ("Z" ?ᯰ) + ("c" ?ᯡ) + ("v" ?᯾) + ("V" ?᯿) + ("b" ?ᯅ) + ("n" ?ᯉ) + ("N" ?ᯠ) + ("m" ?ᯔ)) + +(quail-define-package + "batak-simalungun" "Batak Simalungun" "ᯙᯫᯕᯟᯮᯝᯮᯉ᯳" nil "Batak Simalungun phonetic input method." + nil t t t t nil nil nil nil nil t) + +(quail-define-rules + ("q" ?᯼) + ("Q" ?᯽) + ("w" ?ᯌ) + ("e" ?ᯧ) + ("E" ?ᯩ) + ("r" ?ᯓ) + ("t" ?ᯖ) + ("y" ?ᯜ) + ("u" ?ᯮ) + ("U" ?ᯥ) + ("i" ?ᯪ) + ("I" ?ᯤ) + ("o" ?ᯬ) + ("p" ?ᯈ) + ("a" ?ᯁ) + ("s" ?ᯙ) + ("S" ?ᯯ) + ("d" ?ᯑ) + ("f" ?᯲) + ("F" ?᯳) + ("g" ?ᯏ) + ("h" ?ᯃ) + ("H" ?ᯱ) + ("j" ?ᯐ) + ("l" ?ᯟ) + ("z" ?ᯝ) + ("Z" ?ᯰ) + ("c" ?ᯡ) + ("v" ?᯾) + ("V" ?᯿) + ("b" ?ᯅ) + ("n" ?ᯉ) + ("N" ?ᯠ) + ("m" ?ᯕ)) + (provide 'indonesian) ;;; indonesian.el ends here -- 2.36.1