1 ;;; indian.el --- Quail packages for inputting Indian
3 ;; Copyright (C) 2000, 2001 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 2, or (at your option)
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; see the file COPYING. If not, write to the
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 ;; Boston, MA 02111-1307, USA.
31 ;; Totally re-written from devanagari.el to handle multiple Indian Scripts.
40 ;;; Input by transliteration
43 (defun quail-define-indian-trans-package (hashtbls pkgname
45 (funcall 'quail-define-package pkgname lang title t doc
46 nil nil nil nil nil nil t nil)
49 (quail-defrule key (if (= (length val) 1)
54 ;; This needs to be seen by quail-update-leim-list-file, but cannot be
55 ;; commented out because quail-update-leim-list-file ignores
56 ;; commented-out lines.
58 (quail-define-package "devanagari-itrans" "Devanagari" "DevIT" t "Devanagari ITRANS"))
59 (quail-define-indian-trans-package
60 indian-dev-itrans-v5-hash "devanagari-itrans" "Devanagari" "DevIT"
61 "Devanagari transliteration by ITRANS method.")
64 (quail-define-package "devanagari-kyoto-harvard" "Devanagari" "DevKH" t "Devanagari Kyoto-Harvard"))
65 (quail-define-indian-trans-package
66 indian-dev-kyoto-harvard-hash
67 "devanagari-kyoto-harvard" "Devanagari" "DevKH"
68 "Devanagari transliteration by Kyoto-Harvard method.")
71 (quail-define-package "devanagari-aiba" "Devanagari" "DevAB" t "Devanagari Aiba"))
72 (quail-define-indian-trans-package
73 indian-dev-aiba-hash "devanagari-aiba" "Devanagari" "DevAB"
74 "Devanagari transliteration by Aiba-method.")
77 (quail-define-package "punjabi-itrans" "Punjabi" "PnjIT" t "Punjabi ITRANS"))
78 (quail-define-indian-trans-package
79 indian-pnj-itrans-v5-hash "punjabi-itrans" "Punjabi" "PnjIT"
80 "Punjabi transliteration by ITRANS method.")
83 (quail-define-package "gujarati-itrans" "Gujarati" "GjrIT" t "Gujarati ITRANS"))
84 (quail-define-indian-trans-package
85 indian-gjr-itrans-v5-hash "gujarati-itrans" "Gujarati" "GjrIT"
86 "Gujarati transliteration by ITRANS method.")
89 (quail-define-package "oriya-itrans" "Oriya" "OriIT" t "Oriya ITRANS"))
90 (quail-define-indian-trans-package
91 indian-ori-itrans-v5-hash "oriya-itrans" "Oriya" "OriIT"
92 "Oriya transliteration by ITRANS method.")
95 (quail-define-package "bengali-itrans" "Bengali" "BngIT" t "Bengali ITRANS"))
96 (quail-define-indian-trans-package
97 indian-bng-itrans-v5-hash "bengali-itrans" "Bengali" "BngIT"
98 "Bengali transliteration by ITRANS method.")
101 (quail-define-package "assamese-itrans" "Assamese" "AsmIT" t "Assamese ITRANS"))
102 (quail-define-indian-trans-package
103 indian-asm-itrans-v5-hash "assamese-itrans" "Assamese" "AsmIT"
104 "Assamese transliteration by ITRANS method.")
107 (quail-define-package "telugu-itrans" "Telugu" "TlgIT" t "Telugu ITRANS"))
108 (quail-define-indian-trans-package
109 indian-tlg-itrans-v5-hash "telugu-itrans" "Telugu" "TlgIT"
110 "Telugu transliteration by ITRANS method.")
113 (quail-define-package "kannada-itrans" "Kannada" "KndIT" t "Kannada ITRANS"))
114 (quail-define-indian-trans-package
115 indian-knd-itrans-v5-hash "kannada-itrans" "Kannada" "KndIT"
116 "Kannada transliteration by ITRANS method.")
119 (quail-define-package "malayalam-itrans" "Malayalam" "MlmIT" t "Malayalam ITRANS"))
120 (quail-define-indian-trans-package
121 indian-mlm-itrans-v5-hash "malayalam-itrans" "Malayalam" "MlmIT"
122 "Malayalam transliteration by ITRANS method.")
125 (quail-define-package "tamil-itrans" "Tamil" "TmlIT" t "Tamil ITRANS"))
126 (quail-define-indian-trans-package
127 indian-tml-itrans-v5-hash "tamil-itrans" "Tamil" "TmlIT"
128 "Tamil transliteration by ITRANS method.")
132 ;;; Input by Inscript
135 (defun quail-indian-flatten-list (lst)
136 "Flatten the nested LIST so that there would be no innner list."
138 (apply 'append (mapcar 'quail-indian-flatten-list lst))
141 (defun quail-define-inscript-package (char-table key-table pkgname lang title
143 (setq char-table (quail-indian-flatten-list char-table))
144 (setq key-table (quail-indian-flatten-list key-table))
145 (funcall 'quail-define-package pkgname lang title nil docstring
146 nil nil nil nil nil nil nil nil)
147 (dolist (key key-table)
148 (let ((val (pop char-table)))
151 (if (characterp key) (char-to-string key) key)
152 (if (stringp val) (vector val) val))))))
156 (defvar inscript-dev-keytable
159 (?D nil) (?E ?e) (?F ?f) (?R ?r) (?G ?g) (?T ?t)
160 (?+ ?=) ("F]" "f]") (?! ?@) (?Z ?z) (?S ?s) (?W ?w)
161 (?| ?\\) (?~ ?`) (?A ?a) (?Q ?q) ("+]" "=]") ("R]" "r]"))
163 ?k ?K ?i ?I ?U ;; GRUTTALS
164 ?\; ?: ?p ?P ?} ;; PALATALS
165 ?' ?\" ?\[ ?{ ?C ;; CEREBRALS
166 ?l ?L ?o ?O ?v ?V ;; DENTALS
167 ?h ?H ?y ?Y ?c ;; LABIALS
168 ?/ ?j ?J ?n ?N "N]" ?b ;; SEMIVOWELS
169 ?M ?< ?m ?u ;; SIBILANTS
170 "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS
173 ?X ?x ?_ ">]" ?d "X]" ?>)
175 ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9)
180 (quail-define-package "devanagari-inscript" "Devanagari" "DevIS" t "Devanagari keyboard Inscript"))
181 (quail-define-inscript-package
182 indian-dev-base-table inscript-dev-keytable
183 "devanagari-inscript" "Devanagari" "DevIS"
184 "Devanagari keyboard Inscript.")
187 (quail-define-package "punjabi-inscript" "Punjabi" "PnjIS" t "Punjabi keyboard Inscript"))
188 (quail-define-inscript-package
189 indian-pnj-base-table inscript-dev-keytable
190 "punjabi-inscript" "Punjabi" "PnjIS"
191 "Punjabi keyboard Inscript.")
194 (quail-define-package "gujarati-inscript" "Gujarati" "GjrIS" t "Gujarati keyboard Inscript"))
195 (quail-define-inscript-package
196 indian-gjr-base-table inscript-dev-keytable
197 "gujarati-inscript" "Gujarati" "GjrIS"
198 "Gujarati keyboard Inscript.")
201 (quail-define-package "oriya-inscript" "Oriya" "OriIS" t "Oriya keyboard Inscript"))
202 (quail-define-inscript-package
203 indian-ori-base-table inscript-dev-keytable
204 "oriya-inscript" "Oriya" "OriIS"
205 "Oriya keyboard Inscript.")
208 (quail-define-package "bengali-inscript" "Bengali" "BngIS" t "Bengali keyboard Inscript"))
209 (quail-define-inscript-package
210 indian-bng-base-table inscript-dev-keytable
211 "bengali-inscript" "Bengali" "BngIS"
212 "Bengali keyboard Inscript.")
215 (quail-define-package "assamese-inscript" "Assamese" "AsmIS" t "Assamese keyboard Inscript"))
216 (quail-define-inscript-package
217 indian-asm-base-table inscript-dev-keytable
218 "assamese-inscript" "Assamese" "AsmIS"
219 "Assamese keyboard Inscript.")
222 (quail-define-package "telugu-inscript" "Telugu" "TlgIS" t "Telugu keyboard Inscript"))
223 (quail-define-inscript-package
224 indian-dev-base-table inscript-dev-keytable
225 "telugu-inscript" "Telugu" "TlgIS"
226 "Telugu keyboard Inscript.")
229 (quail-define-package "kannada-inscript" "Kannada" "KndIS" t "Kannada keyboard Inscript"))
230 (quail-define-inscript-package
231 indian-knd-base-table inscript-dev-keytable
232 "kannada-inscript" "Kannada" "KndIS"
233 "Kannada keyboard Inscript.")
236 (quail-define-package "malayalam-inscript" "Malayalam" "MlmIS" t "Malayalam keyboard Inscript"))
237 (quail-define-inscript-package
238 indian-mlm-base-table inscript-dev-keytable
239 "malayalam-inscript" "Malayalam" "MlmIS"
240 "Malayalam keyboard Inscript.")
243 (quail-define-package "tamil-inscript" "Tamil" "TmlIS" t "Tamil keyboard Inscript"))
244 (quail-define-inscript-package
245 indian-tml-base-table inscript-dev-keytable
246 "tamil-inscript" "Tamil" "TmlIS"
247 "Tamil keyboard Inscript.")
249 ;;; indian.el ends here