1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

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.
This commit is contained in:
समीर सिंह Sameer Singh 2022-05-15 05:09:15 +05:30 committed by Eli Zaretskii
parent 9ac40fb980
commit f8b2aa5e0f
5 changed files with 151 additions and 17 deletions

View File

@ -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 (ꪁꪫꪱꪣ ꪼꪕ) ꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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