[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master f8b2aa5e0f 1/2: Add support for the Syloti Nagri script
From: |
Eli Zaretskii |
Subject: |
master f8b2aa5e0f 1/2: Add support for the Syloti Nagri script |
Date: |
Sun, 15 May 2022 02:10:34 -0400 (EDT) |
branch: master
commit f8b2aa5e0f531b629d199aa4ca18d211eea666a5
Author: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Commit: Eli Zaretskii <eliz@gnu.org>
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.
Improve composition rules for Kaithi, Tirhuta, Sharada and Siddham.
* 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 | 1 +
etc/NEWS | 5 +++
lisp/international/fontset.el | 2 ++
lisp/language/indian.el | 79 ++++++++++++++++++++++++++++++++---------
lisp/leim/quail/indian.el | 81 +++++++++++++++++++++++++++++++++++++++++++
5 files changed, 151 insertions(+), 17 deletions(-)
diff --git a/etc/HELLO b/etc/HELLO
index b14fa0e861..16a38b59d3 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 4651977e61..b89771cdbd 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -796,6 +796,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 @@
(kanbun #x319D)
(han #x5B57)
(yi #xA288)
+ (syloti-nagri #xA807 #xA823 #xA82C)
(javanese #xA980)
(cham #xAA00)
(tai-viet #xAA80)
@@ -748,6 +749,7 @@
symbol
braille
yi
+ syloti-nagri
javanese
tai-viet
aegean-number
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index b399756bbe..559239b491 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -180,6 +180,17 @@ Sanskrit language and one of its script Siddham is
supported
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).
@@ -485,12 +496,13 @@ in this language environment."))
'(#x110B0 . #x110BA)
(list (vector
;; Consonant based syllables
- (concat consonant nukta "?\\(?:" virama zwj "?"
consonant nukta "?\\)*\\(?:"
- virama zwj "?\\|" vowel "*" nukta "?"
nasal "?\\)")
+ (concat consonant nukta "?\\(?:" virama zwj "?"
consonant
+ nukta "?\\)*\\(?:" virama zwj "?\\|"
vowel "*" nukta
+ "?" nasal "?\\)")
1 'font-shape-gstring)
(vector
- ;; Nasal vowels
- (concat independent-vowel nasal "?")
+ ;; Vowel based syllables
+ (concat independent-vowel nukta "?" virama "?"
vowel "?")
1 'font-shape-gstring)))
(set-char-table-range composition-function-table
'(#x110BD . #x110BD)
@@ -516,12 +528,13 @@ in this language environment."))
'(#x114B0 . #x114C3)
(list (vector
;; Consonant based syllables
- (concat consonant nukta "?\\(?:" virama
consonant nukta "?\\)*\\(?:"
- virama "\\|" vowel "*" nukta "?" nasal
"?\\)")
+ (concat consonant nukta "?\\(?:" virama
consonant nukta
+ "?\\)*\\(?:" virama "\\|" vowel "*"
nukta "?"
+ nasal "?\\)")
1 'font-shape-gstring)
(vector
- ;; Nasal vowels
- (concat independent-vowel nasal "?")
+ ;; Vowel based syllables
+ (concat independent-vowel nukta "?" virama "?"
vowel "?" nasal "?")
1 'font-shape-gstring))))
;; Sharada composition rules
@@ -535,19 +548,21 @@ in this language environment."))
(virama "\x111C0")
(fricatives "[\x111C2\x111C3]")
(sandhi-mark "\x111C9")
- (misc
"[^\x11180-\x111C0\x111C2\x111C3\x111C9-\x111CC\x111CE-\x111CF]"))
+ (misc "[\x111C4-\x111C8\x111CD]"))
(set-char-table-range composition-function-table
- '(#x111B3 . #x111CF)
+ '(#x111B3 . #x111CE)
(list (vector
;; Consonant based syllables
(concat consonant nukta "?" vowel-modifier
"?\\(?:" virama
consonant nukta "?" vowel-modifier
"?\\)*\\(?:" virama
"\\|" vowel "*" nukta "?" nasal "?"
extra-short-vowel-mark
- "?" vowel-modifier "?" sandhi-mark "?+"
misc "?\\)")
+ "?" vowel-modifier "?" sandhi-mark
"?+" misc "?\\)")
1 'font-shape-gstring)
(vector
- ;; Nasal vowels
- (concat independent-vowel nasal "?")
+ ;; Vowel based syllables
+ (concat independent-vowel nukta "?"
vowel-modifier "?" virama "?"
+ vowel "?" extra-short-vowel-mark "?"
sandhi-mark "?"
+ fricatives "?" misc "?")
1 'font-shape-gstring)
(vector
;; Fricatives with Consonants
@@ -560,17 +575,47 @@ in this language environment."))
(independent-vowel "[\x11580-\x1158D\x115D8-\x115DB]")
(vowel "[\x115AF-\x115BB\x115DC\x115DD]")
(nasal "[\x115BC\x115BD]")
+ (visarga "\x115BE")
(virama "\x115BF"))
(set-char-table-range composition-function-table
'(#x115AF . #x115C0)
(list (vector
;; Consonant based syllables
- (concat consonant nukta "?\\(?:" virama
consonant nukta "?\\)*\\(?:"
- virama "\\|" vowel "*" nukta "?" nasal
"?\\)")
+ (concat consonant nukta "?" "\\(?:" virama
consonant nukta
+ "?\\)*\\(?:" virama "\\|" vowel "*"
nukta "?" nasal
+ "?" visarga "?\\)")
1 'font-shape-gstring)
(vector
- ;; Nasal vowels
- (concat independent-vowel nasal "?")
+ ;; Vowels based syllables
+ (concat independent-vowel nukta "?" virama "?"
vowel "?"
+ nasal "?" visarga "?")
+ 1 'font-shape-gstring))))
+
+;; Syloti Nagri composition rules
+(let ((consonant "[\xA807-\xA80A\xA80C-\xA822]")
+ (vowel "[\xA802\xA823-\xA827]")
+ (nasal "[\xA80B]")
+ (virama "\xA806")
+ (alternate-virama "\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)))
+ (set-char-table-range composition-function-table
+ '(#xA823 . #xA827)
+ (list (vector
+ ;; Non Consonant conjunct based syllables
+ (concat consonant vowel nasal "?")
+ 1 'font-shape-gstring)))
+ (set-char-table-range composition-function-table
+ '(#xA82C . #xA82C)
+ (list (vector
+ ;; Consonant with the alternate virama
+ (concat consonant "\\(?:" alternate-virama
consonant "\\)+"
+ vowel "?" nasal "?")
1 'font-shape-gstring))))
(provide 'indian)
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 @@ Full key sequences are listed below:")
("`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