1 ;; quail/devanagari.el -- Quail packages for inputting Devanagari
3 ;; Copyright (C) 1997 Free Software Foundation, Inc.
5 ;; Author: KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp>
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.
29 ;; 1996.10.10 written by KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp>
30 ;; 1997.03.21 fixed by KAWABATA, Taichi
32 ;; I'm not sure if this keyboard layout is REALLY an ISCII keyboard layout.
33 ;; Please let me know if it is not.
40 ;; This function does nothing for now. For future use.
41 (defun quail-devanagari-update-translation (control-flag)
42 (cond ((eq control-flag t) ; terminate translation with the whole key.
43 (insert quail-current-str)
44 (quail-terminate-translation))
45 ((null control-flag) ; proceed translation with more keys.
46 (insert (or quail-current-str quail-current-key)))
47 (t ; control-flag is the number of keys to be translated.
48 (insert (aref quail-current-key 0))
49 (setq unread-command-events
50 (list (aref quail-current-key control-flag))))))
52 (defun quail-devanagari-compose-characters ()
54 (if (quail-point-in-conversion-region)
55 (let* ((from (overlay-start quail-conv-overlay))
56 (to (overlay-end quail-conv-overlay))
57 (dstr (buffer-substring from to)))
58 (delete-overlay quail-overlay)
59 (delete-overlay quail-conv-overlay)
61 (narrow-to-region from to)
62 (goto-char (point-min))
63 (delete-region (point-min) (point-max))
64 (insert (devanagari-compose-string dstr 'sanskrit))
65 (goto-char (point-max)))
66 (move-overlay quail-conv-overlay from (point))
67 (setq unread-command-events (list last-command-event))
69 (setq unread-command-events (list last-command-event))
73 "devanagari-keyboard-a" "Devanagari" "DevK" t
74 "Devanagari input method with ISCII format
76 `
\e$(5!\
\e(B !
\e$(5!.
\e(B @
\e$(5!c
\e(B #x $x %x ^x &
\e$(5")
\e(B *
\e$(5"(
\e(B ( ) _
\e$(5!#
\e(B +
\e$(5!*
\e(B
77 ~
\e$(5!/
\e(B 1
\e$(5!r
\e(B 2
\e$(5!s
\e(B 3
\e$(5!t
\e(B 4
\e$(5!u
\e(B 5
\e$(5!v
\e(B 6
\e$(5!w
\e(B 7
\e$(5!x
\e(B 8
\e$(5!y
\e(B 9
\e$(5!z
\e(B 0
\e$(5!q
\e(B - =
\e$(5!_
\e(B
79 Q
\e$(5!f
\e(B W
\e$(5!-
\e(B E
\e$(5!%
\e(B R
\e$(5!'
\e(B T
\e$(5!)
\e(B Y
\e$(5!K
\e(B U
\e$(5!7
\e(B I
\e$(5!E
\e(B O
\e$(5!C
\e(B P
\e$(5!;
\e(B {
\e$(5!@
\e(B }
\e$(5!<
\e(B |
\e$(5!2
\e(B
80 q
\e$(5!f
\e(B w
\e$(5!b
\e(B e
\e$(5!Z
\e(B r
\e$(5!\
\e(B t
\e$(5!^
\e(B y
\e$(5!J
\e(B u
\e$(5!X
\e(B i
\e$(5!5
\e(B o
\e$(5!D
\e(B p
\e$(5!:
\e(B [
\e$(5!?
\e(B ]
\e$(5!i
\e(B \\
\e$(5!g
\e(B
82 A
\e$(5!0
\e(B S
\e$(5!,
\e(B D
\e$(5!$
\e(B F
\e$(5!&
\e(B G
\e$(5!(
\e(B H
\e$(5!I
\e(B J
\e$(5!P
\e(B K
\e$(5!4
\e(B l
\e$(5!C
\e(B :
\e$(5!8
\e(B \"
\e$(5!>
\e(B
83 a
\e$(5!e
\e(B s
\e$(5!a
\e(B d
\e$(5!h
\e(B f
\e$(5![
\e(B g
\e$(5!]
\e(B h
\e$(5!H
\e(B j
\e$(5!O
\e(B k
\e$(5!3
\e(B l
\e$(5!B
\e(B ;
\e$(5!9
\e(B '
\e$(5!=
\e(B
85 Z
\e$(5!+
\e(B X
\e$(5!!
\e(B C
\e$(5!A
\e(B V
\e$(5!G
\e(B B
\e$(5!S
\e(B N
\e$(5!R
\e(B M
\e$(5!U
\e(B <
\e$(5!V
\e(B >
\e$(5!j
\e(B ?
\e$(5!N
\e(B
86 z
\e$(5!`
\e(B x
\e$(5!"
\e(B c
\e$(5!L
\e(B v
\e$(5!F
\e(B b
\e$(5!T
\e(B n
\e$(5!Q
\e(B m
\e$(5!W
\e(B , . /
\e$(5!M
\e(B
88 nil t t nil nil nil nil nil
89 ;;'quail-devanagari-update-translation
91 '((" " . quail-devanagari-compose-characters)
92 ("-" . quail-devanagari-compose-characters)
93 ("," . quail-devanagari-compose-characters)
94 ("\C-m" . quail-devanagari-compose-characters)
95 ([return] . quail-devanagari-compose-characters))
98 ;; ..... (not prepared yet)
99 ;; I forgot where I got this keymap from.
100 ;; Please let me know if you know what this keymap is.
110 ("#" ?# ) ; following "r" in keymap...
112 ("$" ?$ ) ; preceding "r" in keymap...
118 ("&" ?
\e$(5")
\e(B) ; % special
120 ("*" ?
\e$(5"(
\e(B) ; % special
201 ;; Quail Devanagari Input By Transliteration
206 (defvar devanagari-consonant-transliteration-alist
209 ("k" . "
\e$(5!3
\e(B")
210 ("k." . "
\e$(5!3!i
\e(B")
211 ("kh" . "
\e$(5!4
\e(B")
212 ("kh." . "
\e$(5!4!i
\e(B")
213 ("g" . "
\e$(5!5
\e(B")
214 ("g." . "
\e$(5!5!i
\e(B")
215 ("gh" . "
\e$(5!6
\e(B")
216 ("G" . "
\e$(5!7
\e(B")
218 ("c" . "
\e$(5!8
\e(B")
219 ("ch" . "
\e$(5!9
\e(B")
220 ("j" . "
\e$(5!:
\e(B")
221 ("j." . "
\e$(5!:!i
\e(B")
222 ("Z" . "
\e$(5!:!i
\e(B")
223 ("jh" . "
\e$(5!;
\e(B")
224 ("J" . "
\e$(5!<
\e(B")
226 ("T" . "
\e$(5!=
\e(B")
227 ("Th" . "
\e$(5!>
\e(B")
228 ("D" . "
\e$(5!?
\e(B")
229 ("D." . "
\e$(5!?!i
\e(B")
230 ("Dh" . "
\e$(5!@
\e(B")
231 ("Dh." . "
\e$(5!@!i
\e(B")
232 ("N" . "
\e$(5!A
\e(B")
234 ("t" . "
\e$(5!B
\e(B")
235 ("th" . "
\e$(5!C
\e(B")
236 ("d" . "
\e$(5!D
\e(B")
237 ("dh" . "
\e$(5!E
\e(B")
238 ("n" . "
\e$(5!F
\e(B")
239 ("N." . "
\e$(5!G
\e(B")
241 ("p" . "
\e$(5!H
\e(B")
242 ("ph" . "
\e$(5!I
\e(B")
243 ("ph." . "
\e$(5!I!i
\e(B")
244 ("f" . "
\e$(5!I
\e(B")
245 ("f." . "
\e$(5!I!i
\e(B")
246 ("b" . "
\e$(5!J
\e(B")
247 ("bh" . "
\e$(5!K
\e(B")
248 ("m" . "
\e$(5!L
\e(B")
250 ("y" . "
\e$(5!M
\e(B")
251 ("y." . "
\e$(5!N
\e(B")
252 ("Y" . "
\e$(5!N
\e(B")
253 ("r" . "
\e$(5!O
\e(B")
254 ("r." . "
\e$(5!P
\e(B")
255 ("l" . "
\e$(5!Q
\e(B")
256 ("W" . "
\e$(5!R
\e(B")
257 ("W." . "
\e$(5!S
\e(B")
258 ("v" . "
\e$(5!T
\e(B")
259 ("w" . "
\e$(5!T
\e(B")
261 ("z" . "
\e$(5!U
\e(B")
262 ("S" . "
\e$(5!V
\e(B")
263 ("s" . "
\e$(5!W
\e(B")
264 ("h" . "
\e$(5!X
\e(B")
267 (defvar devanagari-vowel-transliteration-alist
269 ;; Special treatment unique to IS 13194 Transliteration
273 ("A" . "
\e$(5!Z
\e(B")
274 ("i" . "
\e$(5![
\e(B")
275 ("I" . "
\e$(5!\
\e(B")
276 ("u" . "
\e$(5!]
\e(B")
277 ("U" . "
\e$(5!^
\e(B")
278 ("R" . "
\e$(5!_
\e(B")
279 ;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
280 ("q" . "
\e$(5#K
\e(B") ; "
\e$(5#K
\e(B" = "
\e$(5!_!i
\e(B" in IS 13194.
281 ("L" . "
\e$(5#L
\e(B") ; "
\e$(5#L
\e(B" = "
\e$(5![!i
\e(B" in IS 13194.
282 ("E" . "
\e$(5#M
\e(B") ; "
\e$(5#M
\e(B" = "
\e$(5!\!i
\e(B" in IS 13194.
283 ("E" . "
\e$(5!`
\e(B") ; only for transcription of other scripts.
284 ("e" . "
\e$(5!a
\e(B")
285 ("ai" . "
\e$(5!b
\e(B")
286 ("ae" . "
\e$(5!b
\e(B") ; variation of transliteration.
287 ("EE" . "
\e$(5!c
\e(B") ; only for transcription of other scripts. (Candra E)
288 ("O" . "
\e$(5!d
\e(B") ; only for transcription of other scripts.
289 ("o" . "
\e$(5!e
\e(B")
290 ("au" . "
\e$(5!f
\e(B")
291 ("ao" . "
\e$(5!f
\e(B") ; variation of transliteration.
292 ("OO" . "
\e$(5!g
\e(B") ; only for transcription of other scripts. (Candra O)
296 ;; Independent vowels and other signs.
299 (defvar devanagari-other-letters-alist
301 ("a" . "
\e$(5!$
\e(B")
302 ("A" . "
\e$(5!%
\e(B")
303 ("i" . "
\e$(5!&
\e(B")
304 ("I" . "
\e$(5!'
\e(B")
305 ("u" . "
\e$(5!(
\e(B")
306 ("U" . "
\e$(5!)
\e(B")
307 ("R" . "
\e$(5!*
\e(B")
308 ;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
309 ("q" . "
\e$(5#*
\e(B") ; "
\e$(5#*
\e(B" = "
\e$(5!*!i
\e(B" in IS 13194.
310 ("L" . "
\e$(5#&
\e(B") ; "
\e$(5#&
\e(B" = "
\e$(5!&!i
\e(B" in IS 13194.
311 ("E" . "
\e$(5#'
\e(B") ; "
\e$(5#'
\e(B" = "
\e$(5!'!i
\e(B" in IS 13194.
312 ("Ex" . "
\e$(5!+
\e(B") ; only for transcription of other scripts.
313 ("e" . "
\e$(5!,
\e(B")
314 ("ai" . "
\e$(5!-
\e(B")
315 ("EE" . "
\e$(5!.
\e(B") ; only for transcription of other scripts. (Candra E)
316 ("O" . "
\e$(5!/
\e(B") ; only for transcription of other scripts.
317 ("o" . "
\e$(5!0
\e(B")
318 ("au" . "
\e$(5!1
\e(B")
319 ("ao" . "
\e$(5!1
\e(B") ; variation of transliteration.
320 ("OO" . "
\e$(5!2
\e(B") ; only for transcription of other scripts. (Candra O)
321 ("'" . "
\e$(5#J
\e(B") ; avagraha
322 ("@" . "
\e$(5#!
\e(B") ; OM
323 ("/" . "
\e$(5!j
\e(B")
324 ("M" . "
\e$(5!"
\e(B")
325 ("&" . "
\e$(5!!
\e(B")
326 ("H" . "
\e$(5!#
\e(B")
327 ("." . "
\e$(5!i
\e(B") ; Nukta
328 ("0" . "
\e$(5!q
\e(B")
329 ("1" . "
\e$(5!r
\e(B")
330 ("2" . "
\e$(5!s
\e(B")
331 ("3" . "
\e$(5!t
\e(B")
332 ("4" . "
\e$(5!u
\e(B")
333 ("5" . "
\e$(5!v
\e(B")
334 ("6" . "
\e$(5!w
\e(B")
335 ("7" . "
\e$(5!x
\e(B")
336 ("8" . "
\e$(5!y
\e(B")
337 ("9" . "
\e$(5!z
\e(B")
341 (defmacro devanagari-transliteration-quail-define-rules ()
342 (cons 'quail-define-rules
343 (let ((cl devanagari-consonant-transliteration-alist)
344 (ml devanagari-other-letters-alist) rules)
346 (let ((vl devanagari-vowel-transliteration-alist))
349 (cons (list (concat (car (car cl)) (car (car vl)))
351 (concat (cdr (car cl)) (cdr (car vl)))))
356 (setq rules (cons (list (car (car ml))
357 (make-vector 1 (cdr (car ml))))
362 (quail-define-package
363 "devanagari-transliteration" "Devanagari" "DEVt" t
364 "Devanagari input method by transliteration
365 VOWELS : a
\e$(5!$
\e(B A
\e$(5!%
\e(B i
\e$(5!&
\e(B I
\e$(5!'
\e(B u
\e$(5!(
\e(B U
\e$(5!)
\e(B
366 R
\e$(5!*
\e(B q
\e$(5#*
\e(B L
\e$(5#&
\e(B E
\e$(5#'
\e(B Ex
\e$(5!+
\e(B e
\e$(5!,
\e(B
367 ai
\e$(5!-
\e(B EE
\e$(5!.
\e(B O
\e$(5!/
\e(B o
\e$(5!0
\e(B au
\e$(5!1
\e(B OO
\e$(5!2
\e(B
368 GRUTTALS : k
\e$(5!3
\e(B kh
\e$(5!4
\e(B g
\e$(5!5
\e(B gh
\e$(5!6
\e(B G
\e$(5!7
\e(B
369 PALATALS : c
\e$(5!8
\e(B ch
\e$(5!9
\e(B j
\e$(5!:
\e(B jh
\e$(5!;
\e(B J
\e$(5!<
\e(B (Z
\e$(5!:!i
\e(B)
370 CEREBRALS : T
\e$(5!=
\e(B Th
\e$(5!>
\e(B D
\e$(5!?
\e(B Dh
\e$(5!@
\e(B N
\e$(5!A
\e(B
371 DENTALS : t
\e$(5!B
\e(B th
\e$(5!C
\e(B d
\e$(5!D
\e(B dh
\e$(5!E
\e(B n
\e$(5!F
\e(B (Nq
\e$(5!G
\e(B)
372 LABIALS : p
\e$(5!H
\e(B ph
\e$(5!I
\e(B b
\e$(5!J
\e(B bh
\e$(5!K
\e(B m
\e$(5!L
\e(B (f
\e$(5!I
\e(B)
373 SEMIVOWELS : y
\e$(5!M
\e(B Y
\e$(5!N
\e(B r
\e$(5!O
\e(B Rq
\e$(5!P
\e(B
374 l
\e$(5!Q
\e(B W
\e$(5!R
\e(B W.
\e$(5!S
\e(B v
\e$(5!T
\e(B w
\e$(5!T
\e(B
375 SIBILANTS : z
\e$(5!U
\e(B S
\e$(5!V
\e(B s
\e$(5!W
\e(B h
\e$(5!X
\e(B
377 Specials : Anuswar M
\e$(5!"
\e(B Visarg H
\e$(5!#
\e(B
378 Chandrabindu &
\e$(5!!
\e(B Nukta .
\e$(5!i
\e(B
379 Danda /
\e$(5!j
\e(B Avagrah '
\e$(5#J
\e(B
382 nil t t nil nil nil nil nil
383 ;; 'quail-devanagari-update-translation
385 '((" " . quail-devanagari-compose-characters)
386 ("-" . quail-devanagari-compose-characters)
387 ("," . quail-devanagari-compose-characters)
388 ("\C-m" . quail-devanagari-compose-characters)
389 ([return] . quail-devanagari-compose-characters))
392 (devanagari-transliteration-quail-define-rules)
395 ;; ITRANS - Indian Script Translation
400 (defun rule-indian-to-devanagari (alist)
402 (cons (cons (car (car alist))
403 (indian-to-devanagari-string (cdr (car alist))))
404 (rule-indian-to-devanagari (cdr alist)))))
409 (defvar devanagari-consonant-itrans-alist
410 (rule-indian-to-devanagari indian-itrans-consonant-alist))
412 (defvar devanagari-vowel-itrans-alist
413 (rule-indian-to-devanagari indian-itrans-vowel-sign-alist))
415 (defvar devanagari-other-letters-itrans-alist
416 (rule-indian-to-devanagari indian-itrans-other-letters-alist))
420 (defmacro devanagari-itrans-quail-define-rules ()
421 (cons 'quail-define-rules
422 (let ((cl devanagari-consonant-itrans-alist)
423 (ml devanagari-other-letters-itrans-alist) rules)
425 (let ((vl devanagari-vowel-itrans-alist))
428 (cons (list (concat (car (car cl)) (car (car vl)))
430 (concat (cdr (car cl)) (cdr (car vl)))))
435 (setq rules (cons (list (car (car ml))
436 (make-vector 1 (cdr (car ml))))
441 (quail-define-package
442 "devanagari-itrans" "Devanagari" "DEVi" t
443 "Devanagari input method by ITRANS
444 Special Keys : Anuswar n'
447 Nukta type capital letter for first character.
448 \e$(5!7
\e(B(ng)
\e$(5!<
\e(B(ny)
\e$(5!A
\e(B(nn)
\e$(5!F
\e(B(n)
\e$(5!G
\e(B(nnn)
450 nil t t nil nil nil nil nil
451 ;; 'quail-devanagari-update-translation
453 '((" " . quail-devanagari-compose-characters)
454 ("-" . quail-devanagari-compose-characters)
455 ("," . quail-devanagari-compose-characters)
456 ("\C-m" . quail-devanagari-compose-characters)
457 ([return] . quail-devanagari-compose-characters))
460 (devanagari-itrans-quail-define-rules)
464 ;; Quail Hindi Input By Transliteration
467 (defun quail-devanagari-hindi-compose-characters ()
469 (if (quail-point-in-conversion-region)
470 (let* ((from (overlay-start quail-conv-overlay))
471 (to (overlay-end quail-conv-overlay))
472 (dstr (buffer-substring from to)))
473 (delete-overlay quail-overlay)
474 (delete-overlay quail-conv-overlay)
476 (narrow-to-region from to)
477 (goto-char (point-min))
478 (delete-region (point-min) (point-max))
479 (insert (devanagari-compose-string dstr))
480 (goto-char (point-max)))
481 (move-overlay quail-conv-overlay from (point))
482 (setq unread-command-events (list last-command-event))
484 (setq unread-command-events (list last-command-event))
489 (defvar devanagari-hindi-consonant-transliteration-alist
492 ("k" . "
\e$(5!3
\e(B")
493 ("ks" . "
\e$(5$.
\e(B")
494 ("k." . "
\e$(5!3!i
\e(B")
495 ("kh" . "
\e$(5!4
\e(B")
496 ("kh." . "
\e$(5!4!i
\e(B")
497 ("g" . "
\e$(5!5
\e(B")
498 ("g." . "
\e$(5!5!i
\e(B")
499 ("gh" . "
\e$(5!6
\e(B")
500 ("G" . "
\e$(5!7
\e(B")
502 ("ch" . "
\e$(5!8
\e(B")
503 ("chh" . "
\e$(5!9
\e(B")
504 ("j" . "
\e$(5!:
\e(B")
505 ("j." . "
\e$(5!:!i
\e(B")
506 ("z" . "
\e$(5!:!i
\e(B")
507 ("jh" . "
\e$(5!;
\e(B")
508 ("J" . "
\e$(5!<
\e(B")
510 ("T" . "
\e$(5!=
\e(B")
511 ("Th" . "
\e$(5!>
\e(B")
512 ("D" . "
\e$(5!?
\e(B")
513 ("D." . "
\e$(5!?!i
\e(B")
514 ("Dh" . "
\e$(5!@
\e(B")
515 ("Dh." . "
\e$(5!@!i
\e(B")
516 ("N" . "
\e$(5!A
\e(B")
518 ("t" . "
\e$(5!B
\e(B")
519 ("th" . "
\e$(5!C
\e(B")
520 ("d" . "
\e$(5!D
\e(B")
521 ("dh" . "
\e$(5!E
\e(B")
522 ("n" . "
\e$(5!F
\e(B")
523 ("N." . "
\e$(5!G
\e(B")
525 ("p" . "
\e$(5!H
\e(B")
526 ("ph" . "
\e$(5!I
\e(B")
527 ("ph." . "
\e$(5!I!i
\e(B")
528 ("f" . "
\e$(5!I
\e(B")
529 ("f." . "
\e$(5!I!i
\e(B")
530 ("b" . "
\e$(5!J
\e(B")
531 ("bh" . "
\e$(5!K
\e(B")
532 ("m" . "
\e$(5!L
\e(B")
534 ("y" . "
\e$(5!M
\e(B")
535 ("y." . "
\e$(5!N
\e(B")
536 ("Y" . "
\e$(5!N
\e(B")
537 ("r" . "
\e$(5!O
\e(B")
538 ("r." . "
\e$(5!P
\e(B")
539 ("l" . "
\e$(5!Q
\e(B")
540 ("W" . "
\e$(5!R
\e(B")
541 ("W." . "
\e$(5!S
\e(B")
542 ("v" . "
\e$(5!T
\e(B")
543 ("w" . "
\e$(5!T
\e(B")
545 ("sh" . "
\e$(5!U
\e(B")
546 ("S" . "
\e$(5!V
\e(B")
547 ("s" . "
\e$(5!W
\e(B")
548 ("h" . "
\e$(5!X
\e(B")
550 ("ks" . "
\e$(5$.
\e(B")
551 ("tr" . "
\e$(5"%
\e(B")
552 ("xn" . "
\e$(5$E
\e(B")
555 (defvar devanagari-hindi-vowel-transliteration-alist
557 ; In hindi, halant sign is rarely used so should explicity typed in.
559 ("~" . "
\e$(5!h
\e(B")
561 ("a" . "
\e$(5!Z
\e(B")
562 ("i" . "
\e$(5![
\e(B")
563 ("I" . "
\e$(5!\
\e(B")
564 ("u" . "
\e$(5!]
\e(B")
565 ("U" . "
\e$(5!^
\e(B")
566 ("R" . "
\e$(5!_
\e(B")
567 ;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
568 ("q" . "
\e$(5#K
\e(B") ; "
\e$(5#K
\e(B" = "
\e$(5!_!i
\e(B" in IS 13194.
569 ("L" . "
\e$(5#L
\e(B") ; "
\e$(5#L
\e(B" = "
\e$(5![!i
\e(B" in IS 13194.
570 ("E" . "
\e$(5#M
\e(B") ; "
\e$(5#M
\e(B" = "
\e$(5!\!i
\e(B" in IS 13194.
571 ("E" . "
\e$(5!`
\e(B") ; only for transcription of other scripts.
572 ("e" . "
\e$(5!a
\e(B")
573 ("ai" . "
\e$(5!b
\e(B")
574 ("ae" . "
\e$(5!b
\e(B") ; variation of transliteration.
575 ("EE" . "
\e$(5!c
\e(B") ; only for transcription of other scripts. (Candra E)
576 ("O" . "
\e$(5!d
\e(B") ; only for transcription of other scripts.
577 ("o" . "
\e$(5!e
\e(B")
578 ("au" . "
\e$(5!f
\e(B")
579 ("ao" . "
\e$(5!f
\e(B") ; variation of transliteration.
580 ("OO" . "
\e$(5!g
\e(B") ; only for transcription of other scripts. (Candra O)
584 ;; Independent vowels and other signs.
587 (defvar devanagari-hindi-other-letters-alist
589 ("a" . "
\e$(5!$
\e(B")
590 ("A" . "
\e$(5!%
\e(B")
591 ("i" . "
\e$(5!&
\e(B")
592 ("I" . "
\e$(5!'
\e(B")
593 ("u" . "
\e$(5!(
\e(B")
594 ("U" . "
\e$(5!)
\e(B")
595 ("R" . "
\e$(5!*
\e(B")
596 ;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
597 ("q" . "
\e$(5#*
\e(B") ; "
\e$(5#*
\e(B" = "
\e$(5!*!i
\e(B" in IS 13194.
598 ("L" . "
\e$(5#&
\e(B") ; "
\e$(5#&
\e(B" = "
\e$(5!&!i
\e(B" in IS 13194.
599 ("E" . "
\e$(5#'
\e(B") ; "
\e$(5#'
\e(B" = "
\e$(5!'!i
\e(B" in IS 13194.
600 ("Ex" . "
\e$(5!+
\e(B") ; only for transcription of other scripts.
601 ("e" . "
\e$(5!,
\e(B")
602 ("ai" . "
\e$(5!-
\e(B")
603 ("EE" . "
\e$(5!.
\e(B") ; only for transcription of other scripts. (Candra E)
604 ("O" . "
\e$(5!/
\e(B") ; only for transcription of other scripts.
605 ("o" . "
\e$(5!0
\e(B")
606 ("au" . "
\e$(5!1
\e(B")
607 ("ao" . "
\e$(5!1
\e(B") ; variation of transliteration.
608 ("OO" . "
\e$(5!2
\e(B") ; only for transcription of other scripts. (Candra O)
609 ("'" . "
\e$(5#J
\e(B") ; avagraha
610 ("@" . "
\e$(5#!
\e(B") ; OM
611 ("/" . "
\e$(5!j
\e(B")
612 ("M" . "
\e$(5!"
\e(B")
613 ("&" . "
\e$(5!!
\e(B")
614 ("H" . "
\e$(5!#
\e(B")
615 ("." . "
\e$(5!i
\e(B") ; Nukta
616 ("0" . "
\e$(5!q
\e(B")
617 ("1" . "
\e$(5!r
\e(B")
618 ("2" . "
\e$(5!s
\e(B")
619 ("3" . "
\e$(5!t
\e(B")
620 ("4" . "
\e$(5!u
\e(B")
621 ("5" . "
\e$(5!v
\e(B")
622 ("6" . "
\e$(5!w
\e(B")
623 ("7" . "
\e$(5!x
\e(B")
624 ("8" . "
\e$(5!y
\e(B")
625 ("9" . "
\e$(5!z
\e(B")
629 (defmacro devanagari-hindi-transliteration-quail-define-rules ()
630 (cons 'quail-define-rules
631 (let ((cl devanagari-hindi-consonant-transliteration-alist)
632 (ml devanagari-hindi-other-letters-alist) rules)
634 (let ((vl devanagari-hindi-vowel-transliteration-alist))
637 (cons (list (concat (car (car cl)) (car (car vl)))
639 (concat (cdr (car cl)) (cdr (car vl)))))
644 (setq rules (cons (list (car (car ml))
645 (make-vector 1 (cdr (car ml))))
650 (quail-define-package
651 "devanagari-hindi-transliteration" "Hindi" "HINt" t
652 "Devanagari-Hindi input method by transliteration
653 VOWELS : a
\e$(5!$
\e(B A
\e$(5!%
\e(B i
\e$(5!&
\e(B I
\e$(5!'
\e(B u
\e$(5!(
\e(B U
\e$(5!)
\e(B
654 R
\e$(5!*
\e(B q
\e$(5#*
\e(B L
\e$(5#&
\e(B E
\e$(5#'
\e(B Ex
\e$(5!+
\e(B e
\e$(5!,
\e(B
655 ai
\e$(5!-
\e(B EE
\e$(5!.
\e(B O
\e$(5!/
\e(B o
\e$(5!0
\e(B au
\e$(5!1
\e(B OO
\e$(5!2
\e(B
656 GRUTTALS : k
\e$(5!3
\e(B kh
\e$(5!4
\e(B g
\e$(5!5
\e(B gh
\e$(5!6
\e(B G
\e$(5!7
\e(B
657 PALATALS : c
\e$(5!8
\e(B ch
\e$(5!9
\e(B j
\e$(5!:
\e(B jh
\e$(5!;
\e(B J
\e$(5!<
\e(B z
\e$(5!:!i
\e(B
658 CEREBRALS : T
\e$(5!=
\e(B Th
\e$(5!>
\e(B D
\e$(5!?
\e(B Dh
\e$(5!@
\e(B N
\e$(5!A
\e(B
659 DENTALS : t
\e$(5!B
\e(B th
\e$(5!C
\e(B d
\e$(5!D
\e(B dh
\e$(5!E
\e(B n
\e$(5!F
\e(B (Nq
\e$(5!G
\e(B)
660 LABIALS : p
\e$(5!H
\e(B ph
\e$(5!I
\e(B b
\e$(5!J
\e(B bh
\e$(5!K
\e(B m
\e$(5!L
\e(B (f
\e$(5!I
\e(B)
661 SEMIVOWELS : y
\e$(5!M
\e(B Y
\e$(5!N
\e(B r
\e$(5!O
\e(B Rq
\e$(5!P
\e(B
662 l
\e$(5!Q
\e(B W
\e$(5!R
\e(B W.
\e$(5!S
\e(B v
\e$(5!T
\e(B w
\e$(5!T
\e(B
663 SIBILANTS : sh
\e$(5!U
\e(B S
\e$(5!V
\e(B s
\e$(5!W
\e(B h
\e$(5!X
\e(B
664 OTHERS : ks
\e$(5$.
\e(B tr
\e$(5"%
\e(B xn
\e$(5$E
\e(B
666 Specials : Anuswar M
\e$(5!"
\e(B Visarg H
\e$(5!#
\e(B
667 Chandrabindu &
\e$(5!!
\e(B Nukta .
\e$(5!i
\e(B
668 Danda /
\e$(5!j
\e(B Avagrah '
\e$(5#J
\e(B
669 OM @
\e$(5#!
\e(B Halant ~
\e$(5!h
\e(B
671 nil t t nil nil nil nil nil
672 ;; 'quail-devanagari-update-translation
674 '((" " . quail-devanagari-hindi-compose-characters)
675 ("-" . quail-devanagari-hindi-compose-characters)
676 ("," . quail-devanagari-hindi-compose-characters)
677 ("\C-m" . quail-devanagari-hindi-compose-characters)
678 ([return] . quail-devanagari-hindi-compose-characters))
681 (devanagari-hindi-transliteration-quail-define-rules)