mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Add tamil99 input method (bug#58070)
* lisp/leim/quail/indian.el: Require pcase and seq.
("tamil99"): New input method.
* etc/NEWS: Mention new tamil99 input method.
This commit is contained in:
parent
a9111d8670
commit
45ca261c98
2 changed files with 164 additions and 0 deletions
|
|
@ -30,6 +30,8 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'pcase)
|
||||
(require 'seq)
|
||||
(require 'quail)
|
||||
(require 'ind-util)
|
||||
|
||||
|
|
@ -699,6 +701,165 @@ is."
|
|||
"tamil-inscript-digits" "Tamil" "TmlISD"
|
||||
"Tamil keyboard Inscript with Tamil digits support.")
|
||||
|
||||
;; Tamil99 input method
|
||||
;;
|
||||
;; Tamil99 is a keyboard layout and input method that is specifically
|
||||
;; designed for the Tamil language. Vowels and vowel modifiers are
|
||||
;; input with your left hand, and consonants are input with your right
|
||||
;; hand. See https://en.wikipedia.org/wiki/Tamil_99
|
||||
;;
|
||||
;; தமிழ்99 உள்ளீட்டு முறை
|
||||
;;
|
||||
;; தமிழ்99 தமிழுக்கென்றே உருவாக்கப்பட்ட விசைப்பலகை அமைப்பும் உள்ளீட்டு முறையும்
|
||||
;; ஆகும். உயிர்களை இடக்கையுடனும் மெய்களை வலக்கையுடனும் தட்டச்சிடும்படி
|
||||
;; அமைக்கப்பட்டது. https://ta.wikipedia.org/wiki/%E0%AE%A4%E0%AE%AE%E0%AE%BF%E0%AE%B4%E0%AF%8D_99
|
||||
;; காண்க.
|
||||
|
||||
(quail-define-package
|
||||
"tamil99" "Tamil" "தமிழ்99"
|
||||
t "Tamil99 input method"
|
||||
nil t t t t nil nil nil nil nil t)
|
||||
|
||||
(defconst tamil99-vowels
|
||||
'(("q" "ஆ")
|
||||
("w" "ஈ")
|
||||
("e" "ஊ")
|
||||
("r" "ஐ")
|
||||
("t" "ஏ")
|
||||
("a" "அ")
|
||||
("s" "இ")
|
||||
("d" "உ")
|
||||
("g" "எ")
|
||||
("z" "ஔ")
|
||||
("x" "ஓ")
|
||||
("c" "ஒ"))
|
||||
"Mapping for vowels.")
|
||||
|
||||
(defconst tamil99-vowel-modifiers
|
||||
'(("q" "ா")
|
||||
("w" "ீ")
|
||||
("e" "ூ")
|
||||
("r" "ை")
|
||||
("t" "ே")
|
||||
("a" "")
|
||||
("s" "ி")
|
||||
("d" "ு")
|
||||
("g" "ெ")
|
||||
("z" "ௌ")
|
||||
("x" "ோ")
|
||||
("c" "ொ")
|
||||
("f" "்"))
|
||||
"Mapping for vowel modifiers.")
|
||||
|
||||
(defconst tamil99-hard-consonants
|
||||
'(("h" "க")
|
||||
("[" "ச")
|
||||
("o" "ட")
|
||||
("l" "த")
|
||||
("j" "ப")
|
||||
("u" "ற"))
|
||||
"Mapping for hard consonants (வல்லினம்).")
|
||||
|
||||
(defconst tamil99-soft-consonants
|
||||
'(("b" "ங")
|
||||
("]" "ஞ")
|
||||
("p" "ண")
|
||||
(";" "ந")
|
||||
("k" "ம")
|
||||
("i" "ன"))
|
||||
"Mapping for soft consonants (மெல்லினம்).")
|
||||
|
||||
(defconst tamil99-medium-consonants
|
||||
'(("'" "ய")
|
||||
("m" "ர")
|
||||
("n" "ல")
|
||||
("v" "வ")
|
||||
("/" "ழ")
|
||||
("y" "ள"))
|
||||
"Mapping for medium consonants (இடையினம்).")
|
||||
|
||||
(defconst tamil99-grantham-consonants
|
||||
'(("Q" "ஸ")
|
||||
("W" "ஷ")
|
||||
("E" "ஜ")
|
||||
("R" "ஹ"))
|
||||
"Mapping for grantham consonants (கிரந்தம்).")
|
||||
|
||||
(defconst tamil99-consonants
|
||||
(append tamil99-hard-consonants
|
||||
tamil99-soft-consonants
|
||||
tamil99-medium-consonants
|
||||
tamil99-grantham-consonants)
|
||||
"Mapping for all consonants.")
|
||||
|
||||
(defconst tamil99-other
|
||||
`(("T" ,(vector "க்ஷ"))
|
||||
("Y" ,(vector "ஶஂரீ"))
|
||||
("O" "[")
|
||||
("P" "]")
|
||||
("A" "௹")
|
||||
("S" "௺")
|
||||
("D" "௸")
|
||||
("F" "ஃ")
|
||||
("K" "\"")
|
||||
("L" ":")
|
||||
(":" ";")
|
||||
("\"" "'")
|
||||
("Z" "௳")
|
||||
("X" "௴")
|
||||
("C" "௵")
|
||||
("V" "௶")
|
||||
("B" "௷")
|
||||
("M" "/"))
|
||||
"Mapping for miscellaneous characters.")
|
||||
|
||||
;; உயிர்
|
||||
;; vowel
|
||||
(mapc (pcase-lambda (`(,vowel-key ,vowel))
|
||||
(quail-defrule vowel-key vowel))
|
||||
tamil99-vowels)
|
||||
|
||||
(mapc (pcase-lambda (`(,consonant-key ,consonant))
|
||||
;; அகர உயிர்மெய்
|
||||
;; consonant symbol (consonant combined with the first vowel அ)
|
||||
(quail-defrule consonant-key consonant)
|
||||
;; மெய்யொற்று பின் அகர உயிர்மெய்
|
||||
;; pulli on double consonant
|
||||
(quail-defrule (concat consonant-key consonant-key)
|
||||
(vector (concat consonant "்" consonant)))
|
||||
(mapc (pcase-lambda (`(,vowel-key ,vowel-modifier))
|
||||
;; உயிர்மெய்
|
||||
;; vowelised consonant
|
||||
(quail-defrule (concat consonant-key vowel-key)
|
||||
(vector (concat consonant vowel-modifier)))
|
||||
;; மெய்யொற்று பின் பிற உயிர்மெய்
|
||||
;; vowelised consonant after double consonant
|
||||
(quail-defrule (concat consonant-key consonant-key vowel-key)
|
||||
(vector (concat consonant "்" consonant vowel-modifier))))
|
||||
tamil99-vowel-modifiers))
|
||||
tamil99-consonants)
|
||||
|
||||
(seq-mapn (pcase-lambda (`(,soft-consonant-key ,soft-consonant)
|
||||
`(,hard-consonant-key ,hard-consonant))
|
||||
;; மெல்லினம் பின் வல்லினம்
|
||||
;; hard consonant after soft consonant
|
||||
(quail-defrule (concat soft-consonant-key hard-consonant-key)
|
||||
(vector (concat soft-consonant "்" hard-consonant)))
|
||||
(mapc (pcase-lambda (`(,vowel-key ,vowel-modifier))
|
||||
;; மெல்லின ஒற்றொட்டிய வல்லினம் பின் உயிர்மெய்
|
||||
;; vowelised consonant after soft-hard consonant pair
|
||||
(quail-defrule (concat soft-consonant-key hard-consonant-key vowel-key)
|
||||
(vector (concat soft-consonant "்" hard-consonant vowel-modifier))))
|
||||
tamil99-vowel-modifiers))
|
||||
tamil99-soft-consonants
|
||||
tamil99-hard-consonants)
|
||||
|
||||
;; பிற வரியுருக்கள்
|
||||
;; other characters
|
||||
(mapc (pcase-lambda (`(,key ,translation))
|
||||
(quail-defrule key translation))
|
||||
tamil99-other)
|
||||
|
||||
;; Probhat Input Method
|
||||
(quail-define-package
|
||||
"bengali-probhat" "Bengali" "BngPB" t
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue