1 ;;; indian.el --- Quail packages for inputting Indian
3 ;; Copyright (C) 2000-2011 Free Software Foundation, Inc.
5 ;; Author: KAWABATA, Taichi <kawabata@m17n.org>
7 ;; Keywords: multilingual, input method, Indian, Devanagari
9 ;; This file is part of GNU Emacs.
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
12 ;; it under the terms of the GNU General Public License as published by
13 ;; the Free Software Foundation, either version 3 of the License, or
14 ;; (at your option) any later version.
16 ;; GNU Emacs is distributed in the hope that it will be useful,
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 ;; GNU General Public License for more details.
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
29 ;; Totally re-written from devanagari.el to handle multiple Indian Scripts.
37 ;;; Input by transliteration
40 (defun quail-define-indian-trans-package (hashtbls pkgname
42 (funcall 'quail-define-package pkgname lang title t doc
43 nil nil nil nil nil nil t nil
)
46 (quail-defrule key
(if (= (length val
) 1)
51 ;; This needs to be seen by quail-update-leim-list-file, but cannot be
52 ;; commented out because quail-update-leim-list-file ignores
53 ;; commented-out lines.
55 (quail-define-package "devanagari-itrans" "Devanagari" "DevIT" t
"Devanagari ITRANS"))
56 (quail-define-indian-trans-package
57 indian-dev-itrans-v5-hash
"devanagari-itrans" "Devanagari" "DevIT"
58 "Devanagari transliteration by ITRANS method.")
61 (quail-define-package "devanagari-kyoto-harvard" "Devanagari" "DevKH" t
"Devanagari Kyoto-Harvard"))
62 (quail-define-indian-trans-package
63 indian-dev-kyoto-harvard-hash
64 "devanagari-kyoto-harvard" "Devanagari" "DevKH"
65 "Devanagari transliteration by Kyoto-Harvard method.")
68 (quail-define-package "devanagari-aiba" "Devanagari" "DevAB" t
"Devanagari Aiba"))
69 (quail-define-indian-trans-package
70 indian-dev-aiba-hash
"devanagari-aiba" "Devanagari" "DevAB"
71 "Devanagari transliteration by Aiba-method.")
74 (quail-define-package "punjabi-itrans" "Punjabi" "PnjIT" t
"Punjabi ITRANS"))
75 (quail-define-indian-trans-package
76 indian-pnj-itrans-v5-hash
"punjabi-itrans" "Punjabi" "PnjIT"
77 "Punjabi transliteration by ITRANS method.")
80 (quail-define-package "gujarati-itrans" "Gujarati" "GjrIT" t
"Gujarati ITRANS"))
81 (quail-define-indian-trans-package
82 indian-gjr-itrans-v5-hash
"gujarati-itrans" "Gujarati" "GjrIT"
83 "Gujarati transliteration by ITRANS method.")
86 (quail-define-package "oriya-itrans" "Oriya" "OriIT" t
"Oriya ITRANS"))
87 (quail-define-indian-trans-package
88 indian-ori-itrans-v5-hash
"oriya-itrans" "Oriya" "OriIT"
89 "Oriya transliteration by ITRANS method.")
92 (quail-define-package "bengali-itrans" "Bengali" "BngIT" t
"Bengali ITRANS"))
93 (quail-define-indian-trans-package
94 indian-bng-itrans-v5-hash
"bengali-itrans" "Bengali" "BngIT"
95 "Bengali transliteration by ITRANS method.")
98 (quail-define-package "assamese-itrans" "Assamese" "AsmIT" t
"Assamese ITRANS"))
99 (quail-define-indian-trans-package
100 indian-asm-itrans-v5-hash
"assamese-itrans" "Assamese" "AsmIT"
101 "Assamese transliteration by ITRANS method.")
104 (quail-define-package "telugu-itrans" "Telugu" "TlgIT" t
"Telugu ITRANS"))
105 (quail-define-indian-trans-package
106 indian-tlg-itrans-v5-hash
"telugu-itrans" "Telugu" "TlgIT"
107 "Telugu transliteration by ITRANS method.")
110 (quail-define-package "kannada-itrans" "Kannada" "KndIT" t
"Kannada ITRANS"))
111 (quail-define-indian-trans-package
112 indian-knd-itrans-v5-hash
"kannada-itrans" "Kannada" "KndIT"
113 "Kannada transliteration by ITRANS method.")
116 (quail-define-package "malayalam-itrans" "Malayalam" "MlmIT" t
"Malayalam ITRANS"))
117 (quail-define-indian-trans-package
118 indian-mlm-itrans-v5-hash
"malayalam-itrans" "Malayalam" "MlmIT"
119 "Malayalam transliteration by ITRANS method.")
122 (quail-define-package "tamil-itrans" "Tamil" "TmlIT" t
"Tamil ITRANS"))
123 (quail-define-indian-trans-package
124 indian-tml-itrans-v5-hash
"tamil-itrans" "Tamil" "TmlIT"
125 "Tamil transliteration by ITRANS method.")
129 ;;; Input by Inscript
132 (defun quail-define-inscript-package (char-tables key-tables pkgname lang
134 (funcall 'quail-define-package pkgname lang title nil docstring
135 nil nil nil nil nil nil nil nil
)
136 (let (char-table key-table char key
)
137 (while (and char-tables key-tables
)
138 (setq char-table
(car char-tables
)
139 char-tables
(cdr char-tables
)
140 key-table
(car key-tables
)
141 key-tables
(cdr key-tables
))
142 (while (and char-table key-table
)
143 (setq char
(car char-table
)
144 char-table
(cdr char-table
)
146 key-table
(cdr key-table
))
147 (if (and (consp char
) (consp key
))
148 (setq char-table
(append char char-table
)
149 key-table
(append key key-table
))
152 (if (characterp key
) (char-to-string key
) key
)
153 (if (stringp char
) (vector char
) char
))))))))
157 (defvar inscript-dev-keytable
160 (?D nil
) (?E ?e
) (?F ?f
) (?R ?r
) (?G ?g
) (?T ?t
)
161 (?
+ ?
=) ("F]" "f]") (?
! ?
@) (?Z ?z
) (?S ?s
) (?W ?w
)
162 (?| ?
\\) (?~ ?
`) (?A ?a
) (?Q ?q
) ("+]" "=]") ("R]" "r]"))
164 ?k ?K ?i ?I ?U
;; GRUTTALS
165 ?\
; ?: ?p ?P ?} ;; PALATALS
166 ?
' ?
\" ?\
[ ?
{ ?C
;; CEREBRALS
167 ?l ?L ?o ?O ?v ?V
;; DENTALS
168 ?h ?H ?y ?Y ?c
;; LABIALS
169 ?
/ ?j ?J ?n ?N
"N]" ?b
;; SEMIVOWELS
170 ?M ?
< ?m ?u
;; SIBILANTS
171 "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS
174 ?X ?x ?_
">]" ?d
"X]" ?
>)
176 ?
0 ?
1 ?
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?
8 ?
9)
180 (defvar inscript-mlm-keytable
183 (?D nil
) (?E ?e
) (?F ?f
) (?R ?r
) (?G ?g
) (?T ?t
)
184 (?
+ ?
=) ("F]" "f]") (?
! ?
@) (?S ?s
) (?Z ?z
) (?W ?w
)
185 (?| ?
\\) (?~ ?
`) (?A ?a
) (?Q ?q
) ("+]" "=]") ("R]" "r]"))
187 ?k ?K ?i ?I ?U
;; GRUTTALS
188 ?\
; ?: ?p ?P ?} ;; PALATALS
189 ?
' ?
\" ?\
[ ?
{ ?C
;; CEREBRALS
190 ?l ?L ?o ?O ?v ?V
;; DENTALS
191 ?h ?H ?y ?Y ?c
;; LABIALS
192 ?
/ ?j ?J ?n ?N
"N]" ?b
;; SEMIVOWELS
193 ?M ?
< ?m ?u
;; SIBILANTS
194 "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS
197 ?X ?x ?_
">]" ?d
"X]" ?
>)
199 ?
0 ?
1 ?
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?
8 ?
9)
203 (defvar inscript-tml-keytable
206 (?D nil
) (?E ?e
) (?F ?f
) (?R ?r
) (?G ?g
) (?T ?t
)
207 nil nil nil
(?S ?s
) (?Z ?z
) (?W ?w
)
208 nil
(?A ?a
) (?~ ?
`) (?Q ?q
) nil nil
)
210 ?k ?K ?i ?I ?U
;; GRUTTALS
211 ?\
; ?: ?p ?P ?} ;; PALATALS
212 ?
' ?
\" ?\
[ ?
{ ?C
;; CEREBRALS
213 ?l ?L ?o ?O ?v ?V
;; DENTALS
214 ?h ?H ?y ?Y ?c
;; LABIALS
215 ?
/ ?j ?J ?n ?N
"N]" ?b
;; SEMIVOWELS
216 ?M ?
< ?m ?u
;; SIBILANTS
217 "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS
220 ?X ?x ?_
">]" ?d
"X]" ?
>)
222 ?
0 ?
1 ?
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?
8 ?
9)
227 (quail-define-package "devanagari-inscript" "Devanagari" "DevIS" t
"Devanagari keyboard Inscript"))
228 (quail-define-inscript-package
229 indian-dev-base-table inscript-dev-keytable
230 "devanagari-inscript" "Devanagari" "DevIS"
231 "Devanagari keyboard Inscript.")
234 (quail-define-package "punjabi-inscript" "Punjabi" "PnjIS" t
"Punjabi keyboard Inscript"))
235 (quail-define-inscript-package
236 indian-pnj-base-table inscript-dev-keytable
237 "punjabi-inscript" "Punjabi" "PnjIS"
238 "Punjabi keyboard Inscript.")
241 (quail-define-package "gujarati-inscript" "Gujarati" "GjrIS" t
"Gujarati keyboard Inscript"))
242 (quail-define-inscript-package
243 indian-gjr-base-table inscript-dev-keytable
244 "gujarati-inscript" "Gujarati" "GjrIS"
245 "Gujarati keyboard Inscript.")
248 (quail-define-package "oriya-inscript" "Oriya" "OriIS" t
"Oriya keyboard Inscript"))
249 (quail-define-inscript-package
250 indian-ori-base-table inscript-dev-keytable
251 "oriya-inscript" "Oriya" "OriIS"
252 "Oriya keyboard Inscript.")
255 (quail-define-package "bengali-inscript" "Bengali" "BngIS" t
"Bengali keyboard Inscript"))
256 (quail-define-inscript-package
257 indian-bng-base-table inscript-dev-keytable
258 "bengali-inscript" "Bengali" "BngIS"
259 "Bengali keyboard Inscript.")
262 (quail-define-package "assamese-inscript" "Assamese" "AsmIS" t
"Assamese keyboard Inscript"))
263 (quail-define-inscript-package
264 indian-asm-base-table inscript-dev-keytable
265 "assamese-inscript" "Assamese" "AsmIS"
266 "Assamese keyboard Inscript.")
269 (quail-define-package "telugu-inscript" "Telugu" "TlgIS" t
"Telugu keyboard Inscript"))
270 (quail-define-inscript-package
271 indian-dev-base-table inscript-dev-keytable
272 "telugu-inscript" "Telugu" "TlgIS"
273 "Telugu keyboard Inscript.")
276 (quail-define-package "kannada-inscript" "Kannada" "KndIS" t
"Kannada keyboard Inscript"))
277 (quail-define-inscript-package
278 indian-knd-base-table inscript-dev-keytable
279 "kannada-inscript" "Kannada" "KndIS"
280 "Kannada keyboard Inscript.")
283 (quail-define-package "malayalam-inscript" "Malayalam" "MlmIS" t
"Malayalam keyboard Inscript"))
284 (quail-define-inscript-package
285 indian-mlm-base-table inscript-mlm-keytable
286 "malayalam-inscript" "Malayalam" "MlmIS"
287 "Malayalam keyboard Inscript.")
290 (quail-define-package "tamil-inscript" "Tamil" "TmlIS" t
"Tamil keyboard Inscript"))
291 (quail-define-inscript-package
292 indian-tml-base-table inscript-tml-keytable
293 "tamil-inscript" "Tamil" "TmlIS"
294 "Tamil keyboard Inscript.")
296 ;;; indian.el ends here