From 12446f0abb2ee7fc8de11c2550cdc2bb3c78842a 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: Wed, 11 May 2022 20:18:23 +0530 Subject: [PATCH] Add support for the Syloti Nagri script * lisp/language/indian.el ("Syloti Nagri"): New language environment. Add composition rules for Syloti Nagri. Add sample text and input method. * lisp/international/fontset.el (script-representative-chars) (setup-default-fontset): Support Syloti Nagri. * lisp/leim/quail/indian.el ("syloti-nagri"): New input method. * etc/HELLO: Add two Syloti Nagri greetings. * etc/NEWS: Announce the new language environment and its input method. --- etc/HELLO | 2 + etc/NEWS | 5 +++ lisp/international/fontset.el | 2 + lisp/language/indian.el | 35 +++++++++++++++ lisp/leim/quail/indian.el | 81 +++++++++++++++++++++++++++++++++++ 5 files changed, 125 insertions(+) diff --git a/etc/HELLO b/etc/HELLO index b14fa0e861..131456a4de 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -82,6 +82,7 @@ Slovak (slovenčina) Dobrý deň Slovenian (slovenščina) Pozdravljeni! Spanish (español) ¡Hola! Swedish (svenska) Hej / Goddag / Hallå +Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ) ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ / ꠘꠝꠡ꠆ꠇꠣꠞ Tamil (தமிழ்) வணக்கம் Telugu (తెలుగు) నమస్కారం TaiViet (ꪁꪫꪱꪣ ꪼꪕ) ꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ diff --git a/etc/NEWS b/etc/NEWS index 595e477e2f..68baac3224 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -778,6 +778,11 @@ language. Nowadays it is mostly used by the Buddhist monks in Japan for religious writings. A new input method, 'siddham', is provided to type text in this script. +*** New language environment "Syloti Nagri" +This language environment supports the Syloti Nagri script for the Sylheti +language, which is spoke in parts of Bangladesh, Assam and Tripura. A new +input method, 'syloti-nagri', is provided to type text in this script. + --- *** New Greek translation of the Emacs tutorial. Type 'C-u C-h t' to select it in case your language setup does not do diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 144c3761a0..2579b839dd 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -194,6 +194,7 @@ font-encoding-charset-alist (kanbun #x319D) (han #x5B57) (yi #xA288) + (syloti-nagri #xA807 #xA823 #xA82C) (javanese #xA980) (cham #xAA00) (tai-viet #xAA80) @@ -748,6 +749,7 @@ setup-default-fontset symbol braille yi + syloti-nagri javanese tai-viet aegean-number diff --git a/lisp/language/indian.el b/lisp/language/indian.el index b399756bbe..e31d48efeb 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el @@ -180,6 +180,17 @@ 'devanagari in this language environment.")) '("Indian")) +(set-language-info-alist + "Syloti Nagri" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "syloti-nagri") + (sample-text . "Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ) ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ") + (documentation . "\ +Sylheti language and its script Syloti Nagri is supported +in this language environment.")) + '("Indian")) + ;; Replace mnemonic characters in REGEXP according to TABLE. TABLE is ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING). @@ -573,5 +584,29 @@ malayalam-composable-pattern (concat independent-vowel nasal "?") 1 'font-shape-gstring)))) +;; Syloti Nagri composition rules +(let ((consonant "[\xA807-\xA80A\xA80C-\xA822]") + (independent-vowel "[\xA800\xA801\xA803-\xA805]") + (vowel "[\xA802\xA823-\xA827]") + (nasal "[\xA80B]") + (virama "[\xA806\xA82C]")) + (set-char-table-range composition-function-table + '(#xA806 . #xA806) + (list (vector + ;; Consonant conjunct based syllables + (concat consonant "\\(?:" virama consonant "\\)+" + vowel "?" nasal "?") + 1 'font-shape-gstring) + (vector + ;; Nasal vowels + (concat independent-vowel nasal "?") + 1 'font-shape-gstring))) + (set-char-table-range composition-function-table + '(#xA823 . #xA827) + (list (vector + ;; Non Consonant conjunct based syllables + (concat consonant vowel "?" nasal "?") + 1 'font-shape-gstring)))) + (provide 'indian) ;;; indian.el ends here diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el index 6c58fdd40b..eb9d1183e5 100644 --- a/lisp/leim/quail/indian.el +++ b/lisp/leim/quail/indian.el @@ -1267,4 +1267,85 @@ "||" ("`m" ?𑖼) ) + +(quail-define-package + "syloti-nagri" "Syloti Nagri" "ꠍꠤ" t "Syloti Nagri 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" ?ꠐ) +("Q" ?ꠑ) +("`q" ?꠨) +("`Q" ?꠩) +("w" ?ꠒ) +("W" ?ꠓ) +("`w" ?꠪) +("`W" ?꠫) +("e" ?ꠦ) +("E" ?ꠄ) +("r" ?ꠞ) +("R" ?ꠠ) +("t" ?ꠔ) +("T" ?ꠕ) +("y" ?ꠂ) +("u" ?ꠥ) +("U" ?ꠃ) +("i" ?ꠤ) +("I" ?ꠁ) +("o" ?ꠧ) +("O" ?ꠅ) +("p" ?ꠙ) +("P" ?ꠚ) +("a" ?ꠣ) +("A" ?ꠀ) +("s" ?ꠡ) +("d" ?ꠖ) +("D" ?ꠗ) +("f" ?꠆) +("F" ?꠬) +("g" ?ꠉ) +("G" ?ꠊ) +("h" ?ꠢ) +("j" ?ꠎ) +("J" ?ꠏ) +("k" ?ꠇ) +("K" ?ꠈ) +("l" ?ꠟ) +("c" ?ꠌ) +("C" ?ꠍ) +("`c" #x200C) ; ZWNJ +("b" ?ꠛ) +("B" ?ꠜ) +("n" ?ꠘ) +("m" ?ꠝ) +("M" ?ꠋ) +) + ;;; indian.el ends here -- 2.36.1