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 (setq overriding-terminal-local-map nil
61 (concat (devanagari-compose-string dstr 'sanskrit)
62 (list (if (numberp last-command-char)
64 (get last-command-char 'ascii-character))))))))
67 "devanagari-keyboard-a" "Devanagari" "DevK" t
68 "Devanagari input method with ISCII format
70 `
\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
71 ~
\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
73 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
74 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
76 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
77 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
79 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
80 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
82 nil t t nil nil nil nil nil
83 ;;'quail-devanagari-update-translation
85 '((" " . quail-devanagari-compose-characters)
86 ("-" . quail-devanagari-compose-characters)
87 ("," . quail-devanagari-compose-characters)
88 ("\C-m" . quail-devanagari-compose-characters)
89 ([return] . quail-devanagari-compose-characters))
92 ;; ..... (not prepared yet)
93 ;; I forgot where I got this keymap from.
94 ;; Please let me know if you know what this keymap is.
104 ("#" ?# ) ; following "r" in keymap...
106 ("$" ?$ ) ; preceding "r" in keymap...
112 ("&" ?
\e$(5")
\e(B) ; % special
114 ("*" ?
\e$(5"(
\e(B) ; % special
195 ;; Quail Devanagari Input By Transliteration
200 (defvar devanagari-consonant-transliteration-alist
203 ("k" . "
\e$(5!3
\e(B")
204 ("k." . "
\e$(5!3!i
\e(B")
205 ("kh" . "
\e$(5!4
\e(B")
206 ("kh." . "
\e$(5!4!i
\e(B")
207 ("g" . "
\e$(5!5
\e(B")
208 ("g." . "
\e$(5!5!i
\e(B")
209 ("gh" . "
\e$(5!6
\e(B")
210 ("G" . "
\e$(5!7
\e(B")
212 ("c" . "
\e$(5!8
\e(B")
213 ("ch" . "
\e$(5!9
\e(B")
214 ("j" . "
\e$(5!:
\e(B")
215 ("j." . "
\e$(5!:!i
\e(B")
216 ("Z" . "
\e$(5!:!i
\e(B")
217 ("jh" . "
\e$(5!;
\e(B")
218 ("J" . "
\e$(5!<
\e(B")
220 ("T" . "
\e$(5!=
\e(B")
221 ("Th" . "
\e$(5!>
\e(B")
222 ("D" . "
\e$(5!?
\e(B")
223 ("D." . "
\e$(5!?!i
\e(B")
224 ("Dh" . "
\e$(5!@
\e(B")
225 ("Dh." . "
\e$(5!@!i
\e(B")
226 ("N" . "
\e$(5!A
\e(B")
228 ("t" . "
\e$(5!B
\e(B")
229 ("th" . "
\e$(5!C
\e(B")
230 ("d" . "
\e$(5!D
\e(B")
231 ("dh" . "
\e$(5!E
\e(B")
232 ("n" . "
\e$(5!F
\e(B")
233 ("N." . "
\e$(5!G
\e(B")
235 ("p" . "
\e$(5!H
\e(B")
236 ("ph" . "
\e$(5!I
\e(B")
237 ("ph." . "
\e$(5!I!i
\e(B")
238 ("f" . "
\e$(5!I
\e(B")
239 ("f." . "
\e$(5!I!i
\e(B")
240 ("b" . "
\e$(5!J
\e(B")
241 ("bh" . "
\e$(5!K
\e(B")
242 ("m" . "
\e$(5!L
\e(B")
244 ("y" . "
\e$(5!M
\e(B")
245 ("y." . "
\e$(5!N
\e(B")
246 ("Y" . "
\e$(5!N
\e(B")
247 ("r" . "
\e$(5!O
\e(B")
248 ("r." . "
\e$(5!P
\e(B")
249 ("l" . "
\e$(5!Q
\e(B")
250 ("W" . "
\e$(5!R
\e(B")
251 ("W." . "
\e$(5!S
\e(B")
252 ("v" . "
\e$(5!T
\e(B")
253 ("w" . "
\e$(5!T
\e(B")
255 ("z" . "
\e$(5!U
\e(B")
256 ("S" . "
\e$(5!V
\e(B")
257 ("s" . "
\e$(5!W
\e(B")
258 ("h" . "
\e$(5!X
\e(B")
261 (defvar devanagari-vowel-transliteration-alist
263 ;; Special treatment unique to IS 13194 Transliteration
267 ("A" . "
\e$(5!Z
\e(B")
268 ("i" . "
\e$(5![
\e(B")
269 ("I" . "
\e$(5!\
\e(B")
270 ("u" . "
\e$(5!]
\e(B")
271 ("U" . "
\e$(5!^
\e(B")
272 ("R" . "
\e$(5!_
\e(B")
273 ;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
274 ("q" . "
\e$(5#K
\e(B") ; "
\e$(5#K
\e(B" = "
\e$(5!_!i
\e(B" in IS 13194.
275 ("L" . "
\e$(5#L
\e(B") ; "
\e$(5#L
\e(B" = "
\e$(5![!i
\e(B" in IS 13194.
276 ("E" . "
\e$(5#M
\e(B") ; "
\e$(5#M
\e(B" = "
\e$(5!\!i
\e(B" in IS 13194.
277 ("E" . "
\e$(5!`
\e(B") ; only for transcription of other scripts.
278 ("e" . "
\e$(5!a
\e(B")
279 ("ai" . "
\e$(5!b
\e(B")
280 ("ae" . "
\e$(5!b
\e(B") ; variation of transliteration.
281 ("EE" . "
\e$(5!c
\e(B") ; only for transcription of other scripts. (Candra E)
282 ("O" . "
\e$(5!d
\e(B") ; only for transcription of other scripts.
283 ("o" . "
\e$(5!e
\e(B")
284 ("au" . "
\e$(5!f
\e(B")
285 ("ao" . "
\e$(5!f
\e(B") ; variation of transliteration.
286 ("OO" . "
\e$(5!g
\e(B") ; only for transcription of other scripts. (Candra O)
290 ;; Independent vowels and other signs.
293 (defvar devanagari-other-letters-alist
295 ("a" . "
\e$(5!$
\e(B")
296 ("A" . "
\e$(5!%
\e(B")
297 ("i" . "
\e$(5!&
\e(B")
298 ("I" . "
\e$(5!'
\e(B")
299 ("u" . "
\e$(5!(
\e(B")
300 ("U" . "
\e$(5!)
\e(B")
301 ("R" . "
\e$(5!*
\e(B")
302 ;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
303 ("q" . "
\e$(5#*
\e(B") ; "
\e$(5#*
\e(B" = "
\e$(5!*!i
\e(B" in IS 13194.
304 ("L" . "
\e$(5#&
\e(B") ; "
\e$(5#&
\e(B" = "
\e$(5!&!i
\e(B" in IS 13194.
305 ("E" . "
\e$(5#'
\e(B") ; "
\e$(5#'
\e(B" = "
\e$(5!'!i
\e(B" in IS 13194.
306 ("Ex" . "
\e$(5!+
\e(B") ; only for transcription of other scripts.
307 ("e" . "
\e$(5!,
\e(B")
308 ("ai" . "
\e$(5!-
\e(B")
309 ("EE" . "
\e$(5!.
\e(B") ; only for transcription of other scripts. (Candra E)
310 ("O" . "
\e$(5!/
\e(B") ; only for transcription of other scripts.
311 ("o" . "
\e$(5!0
\e(B")
312 ("au" . "
\e$(5!1
\e(B")
313 ("ao" . "
\e$(5!1
\e(B") ; variation of transliteration.
314 ("OO" . "
\e$(5!2
\e(B") ; only for transcription of other scripts. (Candra O)
315 ("'" . "
\e$(5#J
\e(B") ; avagraha
316 ("@" . "
\e$(5#!
\e(B") ; OM
317 ("/" . "
\e$(5!j
\e(B")
318 ("M" . "
\e$(5!"
\e(B")
319 ("&" . "
\e$(5!!
\e(B")
320 ("H" . "
\e$(5!#
\e(B")
321 ("." . "
\e$(5!i
\e(B") ; Nukta
322 ("0" . "
\e$(5!q
\e(B")
323 ("1" . "
\e$(5!r
\e(B")
324 ("2" . "
\e$(5!s
\e(B")
325 ("3" . "
\e$(5!t
\e(B")
326 ("4" . "
\e$(5!u
\e(B")
327 ("5" . "
\e$(5!v
\e(B")
328 ("6" . "
\e$(5!w
\e(B")
329 ("7" . "
\e$(5!x
\e(B")
330 ("8" . "
\e$(5!y
\e(B")
331 ("9" . "
\e$(5!z
\e(B")
335 (defmacro devanagari-transliteration-quail-define-rules ()
336 (cons 'quail-define-rules
337 (let ((cl devanagari-consonant-transliteration-alist)
338 (ml devanagari-other-letters-alist) rules)
340 (let ((vl devanagari-vowel-transliteration-alist))
343 (cons (list (concat (car (car cl)) (car (car vl)))
345 (concat (cdr (car cl)) (cdr (car vl)))))
350 (setq rules (cons (list (car (car ml))
351 (make-vector 1 (cdr (car ml))))
356 (quail-define-package
357 "devanagari-transliteration" "Devanagari" "DEVt" t
358 "Devanagari input method by transliteration
359 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
360 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
361 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
362 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
363 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)
364 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
365 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)
366 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)
367 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
368 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
369 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
371 Specials : Anuswar M
\e$(5!"
\e(B Visarg H
\e$(5!#
\e(B
372 Chandrabindu &
\e$(5!!
\e(B Nukta .
\e$(5!i
\e(B
373 Danda /
\e$(5!j
\e(B Avagrah '
\e$(5#J
\e(B
376 nil t t nil nil nil nil nil
377 ;; 'quail-devanagari-update-translation
379 '((" " . quail-devanagari-compose-characters)
380 ("-" . quail-devanagari-compose-characters)
381 ("," . quail-devanagari-compose-characters)
382 ("\C-m" . quail-devanagari-compose-characters)
383 ([return] . quail-devanagari-compose-characters))
386 (devanagari-transliteration-quail-define-rules)
389 ;; ITRANS - Indian Script Translation
394 (defun rule-indian-to-devanagari (alist)
396 (cons (cons (car (car alist))
397 (indian-to-devanagari-string (cdr (car alist))))
398 (rule-indian-to-devanagari (cdr alist)))))
403 (defvar devanagari-consonant-itrans-alist
404 (rule-indian-to-devanagari indian-itrans-consonant-alist))
406 (defvar devanagari-vowel-itrans-alist
407 (rule-indian-to-devanagari indian-itrans-vowel-sign-alist))
409 (defvar devanagari-other-letters-itrans-alist
410 (rule-indian-to-devanagari indian-itrans-other-letters-alist))
414 (defmacro devanagari-itrans-quail-define-rules ()
415 (cons 'quail-define-rules
416 (let ((cl devanagari-consonant-itrans-alist)
417 (ml devanagari-other-letters-itrans-alist) rules)
419 (let ((vl devanagari-vowel-itrans-alist))
422 (cons (list (concat (car (car cl)) (car (car vl)))
424 (concat (cdr (car cl)) (cdr (car vl)))))
429 (setq rules (cons (list (car (car ml))
430 (make-vector 1 (cdr (car ml))))
435 (quail-define-package
436 "devanagari-itrans" "Devanagari" "DEVi" t
437 "Devanagari input method by ITRANS
438 Special Keys : Anuswar n'
441 Nukta type capital letter for first character.
442 \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)
444 nil t t nil nil nil nil nil
445 ;; 'quail-devanagari-update-translation
447 '((" " . quail-devanagari-compose-characters)
448 ("-" . quail-devanagari-compose-characters)
449 ("," . quail-devanagari-compose-characters)
450 ("\C-m" . quail-devanagari-compose-characters)
451 ([return] . quail-devanagari-compose-characters))
454 (devanagari-itrans-quail-define-rules)
458 ;; Quail Hindi Input By Transliteration
461 (defun quail-devanagari-hindi-compose-characters ()
463 (if (quail-point-in-conversion-region)
464 (let* ((from (overlay-start quail-conv-overlay))
465 (to (overlay-end quail-conv-overlay))
466 (dstr (buffer-substring from to)))
467 (setq overriding-terminal-local-map nil
470 (concat (devanagari-compose-string dstr)
471 (list (if (numberp last-command-char)
473 (get last-command-char 'ascii-character))))))))
477 (defvar devanagari-hindi-consonant-transliteration-alist
480 ("k" . "
\e$(5!3
\e(B")
481 ("ks" . "
\e$(5$.
\e(B")
482 ("k." . "
\e$(5!3!i
\e(B")
483 ("kh" . "
\e$(5!4
\e(B")
484 ("kh." . "
\e$(5!4!i
\e(B")
485 ("g" . "
\e$(5!5
\e(B")
486 ("g." . "
\e$(5!5!i
\e(B")
487 ("gh" . "
\e$(5!6
\e(B")
488 ("G" . "
\e$(5!7
\e(B")
490 ("ch" . "
\e$(5!8
\e(B")
491 ("chh" . "
\e$(5!9
\e(B")
492 ("j" . "
\e$(5!:
\e(B")
493 ("j." . "
\e$(5!:!i
\e(B")
494 ("z" . "
\e$(5!:!i
\e(B")
495 ("jh" . "
\e$(5!;
\e(B")
496 ("J" . "
\e$(5!<
\e(B")
498 ("T" . "
\e$(5!=
\e(B")
499 ("Th" . "
\e$(5!>
\e(B")
500 ("D" . "
\e$(5!?
\e(B")
501 ("D." . "
\e$(5!?!i
\e(B")
502 ("Dh" . "
\e$(5!@
\e(B")
503 ("Dh." . "
\e$(5!@!i
\e(B")
504 ("N" . "
\e$(5!A
\e(B")
506 ("t" . "
\e$(5!B
\e(B")
507 ("th" . "
\e$(5!C
\e(B")
508 ("d" . "
\e$(5!D
\e(B")
509 ("dh" . "
\e$(5!E
\e(B")
510 ("n" . "
\e$(5!F
\e(B")
511 ("N." . "
\e$(5!G
\e(B")
513 ("p" . "
\e$(5!H
\e(B")
514 ("ph" . "
\e$(5!I
\e(B")
515 ("ph." . "
\e$(5!I!i
\e(B")
516 ("f" . "
\e$(5!I
\e(B")
517 ("f." . "
\e$(5!I!i
\e(B")
518 ("b" . "
\e$(5!J
\e(B")
519 ("bh" . "
\e$(5!K
\e(B")
520 ("m" . "
\e$(5!L
\e(B")
522 ("y" . "
\e$(5!M
\e(B")
523 ("y." . "
\e$(5!N
\e(B")
524 ("Y" . "
\e$(5!N
\e(B")
525 ("r" . "
\e$(5!O
\e(B")
526 ("r." . "
\e$(5!P
\e(B")
527 ("l" . "
\e$(5!Q
\e(B")
528 ("W" . "
\e$(5!R
\e(B")
529 ("W." . "
\e$(5!S
\e(B")
530 ("v" . "
\e$(5!T
\e(B")
531 ("w" . "
\e$(5!T
\e(B")
533 ("sh" . "
\e$(5!U
\e(B")
534 ("S" . "
\e$(5!V
\e(B")
535 ("s" . "
\e$(5!W
\e(B")
536 ("h" . "
\e$(5!X
\e(B")
538 ("ks" . "
\e$(5$.
\e(B")
539 ("tr" . "
\e$(5"%
\e(B")
540 ("xn" . "
\e$(5$E
\e(B")
543 (defvar devanagari-hindi-vowel-transliteration-alist
545 ; In hindi, halant sign is rarely used so should explicity typed in.
547 ("~" . "
\e$(5!h
\e(B")
549 ("a" . "
\e$(5!Z
\e(B")
550 ("i" . "
\e$(5![
\e(B")
551 ("I" . "
\e$(5!\
\e(B")
552 ("u" . "
\e$(5!]
\e(B")
553 ("U" . "
\e$(5!^
\e(B")
554 ("R" . "
\e$(5!_
\e(B")
555 ;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
556 ("q" . "
\e$(5#K
\e(B") ; "
\e$(5#K
\e(B" = "
\e$(5!_!i
\e(B" in IS 13194.
557 ("L" . "
\e$(5#L
\e(B") ; "
\e$(5#L
\e(B" = "
\e$(5![!i
\e(B" in IS 13194.
558 ("E" . "
\e$(5#M
\e(B") ; "
\e$(5#M
\e(B" = "
\e$(5!\!i
\e(B" in IS 13194.
559 ("E" . "
\e$(5!`
\e(B") ; only for transcription of other scripts.
560 ("e" . "
\e$(5!a
\e(B")
561 ("ai" . "
\e$(5!b
\e(B")
562 ("ae" . "
\e$(5!b
\e(B") ; variation of transliteration.
563 ("EE" . "
\e$(5!c
\e(B") ; only for transcription of other scripts. (Candra E)
564 ("O" . "
\e$(5!d
\e(B") ; only for transcription of other scripts.
565 ("o" . "
\e$(5!e
\e(B")
566 ("au" . "
\e$(5!f
\e(B")
567 ("ao" . "
\e$(5!f
\e(B") ; variation of transliteration.
568 ("OO" . "
\e$(5!g
\e(B") ; only for transcription of other scripts. (Candra O)
572 ;; Independent vowels and other signs.
575 (defvar devanagari-hindi-other-letters-alist
577 ("a" . "
\e$(5!$
\e(B")
578 ("A" . "
\e$(5!%
\e(B")
579 ("i" . "
\e$(5!&
\e(B")
580 ("I" . "
\e$(5!'
\e(B")
581 ("u" . "
\e$(5!(
\e(B")
582 ("U" . "
\e$(5!)
\e(B")
583 ("R" . "
\e$(5!*
\e(B")
584 ;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
585 ("q" . "
\e$(5#*
\e(B") ; "
\e$(5#*
\e(B" = "
\e$(5!*!i
\e(B" in IS 13194.
586 ("L" . "
\e$(5#&
\e(B") ; "
\e$(5#&
\e(B" = "
\e$(5!&!i
\e(B" in IS 13194.
587 ("E" . "
\e$(5#'
\e(B") ; "
\e$(5#'
\e(B" = "
\e$(5!'!i
\e(B" in IS 13194.
588 ("Ex" . "
\e$(5!+
\e(B") ; only for transcription of other scripts.
589 ("e" . "
\e$(5!,
\e(B")
590 ("ai" . "
\e$(5!-
\e(B")
591 ("EE" . "
\e$(5!.
\e(B") ; only for transcription of other scripts. (Candra E)
592 ("O" . "
\e$(5!/
\e(B") ; only for transcription of other scripts.
593 ("o" . "
\e$(5!0
\e(B")
594 ("au" . "
\e$(5!1
\e(B")
595 ("ao" . "
\e$(5!1
\e(B") ; variation of transliteration.
596 ("OO" . "
\e$(5!2
\e(B") ; only for transcription of other scripts. (Candra O)
597 ("'" . "
\e$(5#J
\e(B") ; avagraha
598 ("@" . "
\e$(5#!
\e(B") ; OM
599 ("/" . "
\e$(5!j
\e(B")
600 ("M" . "
\e$(5!"
\e(B")
601 ("&" . "
\e$(5!!
\e(B")
602 ("H" . "
\e$(5!#
\e(B")
603 ("." . "
\e$(5!i
\e(B") ; Nukta
604 ("0" . "
\e$(5!q
\e(B")
605 ("1" . "
\e$(5!r
\e(B")
606 ("2" . "
\e$(5!s
\e(B")
607 ("3" . "
\e$(5!t
\e(B")
608 ("4" . "
\e$(5!u
\e(B")
609 ("5" . "
\e$(5!v
\e(B")
610 ("6" . "
\e$(5!w
\e(B")
611 ("7" . "
\e$(5!x
\e(B")
612 ("8" . "
\e$(5!y
\e(B")
613 ("9" . "
\e$(5!z
\e(B")
617 (defmacro devanagari-hindi-transliteration-quail-define-rules ()
618 (cons 'quail-define-rules
619 (let ((cl devanagari-hindi-consonant-transliteration-alist)
620 (ml devanagari-hindi-other-letters-alist) rules)
622 (let ((vl devanagari-hindi-vowel-transliteration-alist))
625 (cons (list (concat (car (car cl)) (car (car vl)))
627 (concat (cdr (car cl)) (cdr (car vl)))))
632 (setq rules (cons (list (car (car ml))
633 (make-vector 1 (cdr (car ml))))
638 (quail-define-package
639 "devanagari-hindi-transliteration" "Hindi" "HINt" t
640 "Devanagari-Hindi input method by transliteration
641 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
642 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
643 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
644 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
645 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
646 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
647 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)
648 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)
649 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
650 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
651 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
652 OTHERS : ks
\e$(5$.
\e(B tr
\e$(5"%
\e(B xn
\e$(5$E
\e(B
654 Specials : Anuswar M
\e$(5!"
\e(B Visarg H
\e$(5!#
\e(B
655 Chandrabindu &
\e$(5!!
\e(B Nukta .
\e$(5!i
\e(B
656 Danda /
\e$(5!j
\e(B Avagrah '
\e$(5#J
\e(B
657 OM @
\e$(5#!
\e(B Halant ~
\e$(5!h
\e(B
659 nil t t nil nil nil nil nil
660 ;; 'quail-devanagari-update-translation
662 '((" " . quail-devanagari-hindi-compose-characters)
663 ("-" . quail-devanagari-hindi-compose-characters)
664 ("," . quail-devanagari-hindi-compose-characters)
665 ("\C-m" . quail-devanagari-hindi-compose-characters)
666 ([return] . quail-devanagari-hindi-compose-characters))
669 (devanagari-hindi-transliteration-quail-define-rules)