1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-04 11:40:22 +00:00
emacs/leim/quail/devanagari.el
Kenichi Handa 7bbc9d9f7b (quail-devanagari-compose-characters):
Adjusted for the change of input method handling.
(quail-devanagari-hindi-compose-characters): Likewise.
1998-12-15 04:35:38 +00:00

670 lines
21 KiB
EmacsLisp
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;; quail/devanagari.el -- Quail packages for inputting Devanagari
;; Copyright (C) 1997 Free Software Foundation, Inc.
;; Author: KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp>
;; Keywords: multilingual, input method, Indian, Devanagari
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Commentary:
;; History:
;; 1996.10.10 written by KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp>
;; 1997.03.21 fixed by KAWABATA, Taichi
;; I'm not sure if this keyboard layout is REALLY an ISCII keyboard layout.
;; Please let me know if it is not.
;;; Code:
(require 'quail)
(require 'devan-util)
;; This function does nothing for now. For future use.
(defun quail-devanagari-update-translation (control-flag)
(cond ((eq control-flag t) ; terminate translation with the whole key.
(insert quail-current-str)
(quail-terminate-translation))
((null control-flag) ; proceed translation with more keys.
(insert (or quail-current-str quail-current-key)))
(t ; control-flag is the number of keys to be translated.
(insert (aref quail-current-key 0))
(setq unread-command-events
(list (aref quail-current-key control-flag))))))
(defun quail-devanagari-compose-characters ()
(interactive)
(if (quail-point-in-conversion-region)
(let* ((from (overlay-start quail-conv-overlay))
(to (overlay-end quail-conv-overlay))
(dstr (buffer-substring from to)))
(setq overriding-terminal-local-map nil
quail-converting nil
quail-conversion-str
(concat (devanagari-compose-string dstr 'sanskrit)
(list (if (numberp last-command-char)
last-command-char
(get last-command-char 'ascii-character))))))))
(quail-define-package
"devanagari-keyboard-a" "Devanagari" "DevK" t
"Devanagari input method with ISCII format
`$(5!\(B !$(5!.(B @$(5!c(B #x $x %x ^x &$(5")(B *$(5"((B ( ) _$(5!#(B +$(5!*(B
~$(5!/(B 1$(5!r(B 2$(5!s(B 3$(5!t(B 4$(5!u(B 5$(5!v(B 6$(5!w(B 7$(5!x(B 8$(5!y(B 9$(5!z(B 0$(5!q(B - =$(5!_(B
Q$(5!f(B W$(5!-(B E$(5!%(B R$(5!'(B T$(5!)(B Y$(5!K(B U$(5!7(B I$(5!E(B O$(5!C(B P$(5!;(B {$(5!@(B }$(5!<(B |$(5!2(B
q$(5!f(B w$(5!b(B e$(5!Z(B r$(5!\(B t$(5!^(B y$(5!J(B u$(5!X(B i$(5!5(B o$(5!D(B p$(5!:(B [$(5!?(B ]$(5!i(B \\$(5!g(B
A$(5!0(B S$(5!,(B D$(5!$(B F$(5!&(B G$(5!((B H$(5!I(B J$(5!P(B K$(5!4(B l$(5!C(B :$(5!8(B \"$(5!>(B
a$(5!e(B s$(5!a(B d$(5!h(B f$(5![(B g$(5!](B h$(5!H(B j$(5!O(B k$(5!3(B l$(5!B(B ;$(5!9(B '$(5!=(B
Z$(5!+(B X$(5!!(B C$(5!A(B V$(5!G(B B$(5!S(B N$(5!R(B M$(5!U(B <$(5!V(B >$(5!j(B ?$(5!N(B
z$(5!`(B x$(5!"(B c$(5!L(B v$(5!F(B b$(5!T(B n$(5!Q(B m$(5!W(B , . /$(5!M(B
"
nil t t nil nil nil nil nil
;;'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-compose-characters)
("-" . quail-devanagari-compose-characters)
("," . quail-devanagari-compose-characters)
("\C-m" . quail-devanagari-compose-characters)
([return] . quail-devanagari-compose-characters))
)
;; ..... (not prepared yet)
;; I forgot where I got this keymap from.
;; Please let me know if you know what this keymap is.
(quail-define-rules
("`" ?$(5!\(B)
("~" ?$(5!/(B)
("1" ?$(5!r(B)
("!" ?$(5!.(B)
("2" ?$(5!s(B)
("@" ?$(5!c(B)
("3" ?$(5!t(B)
("#" ?# ) ; following "r" in keymap...
("4" ?$(5!u(B)
("$" ?$ ) ; preceding "r" in keymap...
("5" ?$(5!v(B)
("%" ?x ) ; ??
("6" ?$(5!w(B)
("^" ?x ) ; %tra
("7" ?$(5!x(B)
("&" ?$(5")(B) ; % special
("8" ?$(5!y(B)
("*" ?$(5"((B) ; % special
("9" ?$(5!z(B)
("(" ?\()
("0" ?$(5!q(B)
(")" ?\))
("-" ?-)
("_" ?$(5!#(B)
("=" ?$(5!_(B)
("+" ?$(5!*(B)
("q" ?$(5!f(B)
("Q" ?$(5!1(B)
("w" ?$(5!b(B)
("W" ?$(5!-(B)
("e" ?$(5!Z(B)
("E" ?$(5!%(B)
("r" ?$(5!\(B)
("R" ?$(5!'(B)
("t" ?$(5!^(B)
("T" ?$(5!)(B)
("y" ?$(5!J(B)
("Y" ?$(5!K(B)
("u" ?$(5!X(B)
("U" ?$(5!7(B)
("i" ?$(5!5(B)
("I" ?$(5!E(B)
("o" ?$(5!D(B)
("O" ?$(5!C(B)
("p" ?$(5!:(B)
("P" ?$(5!;(B)
("[" ?$(5!?(B)
("{" ?$(5!@(B)
("]" ?$(5!i(B)
("}" ?$(5!<(B)
("\\" ?$(5!g(B)
("|" ?$(5!2(B)
("a" ?$(5!e(B)
("A" ?$(5!0(B)
("s" ?$(5!a(B)
("S" ?$(5!,(B)
("d" ?$(5!h(B)
("D" ?$(5!$(B)
("f" ?$(5![(B)
("F" ?$(5!&(B)
("g" ?$(5!](B)
("G" ?$(5!((B)
("h" ?$(5!H(B)
("H" ?$(5!I(B)
("j" ?$(5!O(B)
("J" ?$(5!P(B)
("k" ?$(5!3(B)
("K" ?$(5!4(B)
("l" ?$(5!B(B)
("L" ?$(5!C(B)
(";" ?$(5!8(B)
(":" ?$(5!9(B)
("'" ?$(5!=(B)
("\"" ?$(5!>(B)
("z" ?$(5!`(B)
("Z" ?$(5!+(B)
("x" ?$(5!"(B)
("X" ?$(5!!(B)
("c" ?$(5!L(B)
("C" ?$(5!A(B)
("v" ?$(5!F(B)
("V" ?$(5!G(B)
("b" ?$(5!T(B)
("B" ?$(5!S(B)
("n" ?$(5!Q(B)
("N" ?$(5!R(B)
("m" ?$(5!W(B)
("M" ?$(5!U(B)
;; ("," ?,)
("<" ?$(5!V(B)
;; ("." ?.)
(">" ?$(5!j(B)
("/" ?$(5!M(B)
("?" ?$(5!N(B)
)
;;
;; Quail Devanagari Input By Transliteration
;;
(eval-when-compile
(defvar devanagari-consonant-transliteration-alist
'(
; GUTTURALS
("k" . "$(5!3(B")
("k." . "$(5!3!i(B")
("kh" . "$(5!4(B")
("kh." . "$(5!4!i(B")
("g" . "$(5!5(B")
("g." . "$(5!5!i(B")
("gh" . "$(5!6(B")
("G" . "$(5!7(B")
; PALATALS
("c" . "$(5!8(B")
("ch" . "$(5!9(B")
("j" . "$(5!:(B")
("j." . "$(5!:!i(B")
("Z" . "$(5!:!i(B")
("jh" . "$(5!;(B")
("J" . "$(5!<(B")
; CEREBRALS
("T" . "$(5!=(B")
("Th" . "$(5!>(B")
("D" . "$(5!?(B")
("D." . "$(5!?!i(B")
("Dh" . "$(5!@(B")
("Dh." . "$(5!@!i(B")
("N" . "$(5!A(B")
; DENTALS
("t" . "$(5!B(B")
("th" . "$(5!C(B")
("d" . "$(5!D(B")
("dh" . "$(5!E(B")
("n" . "$(5!F(B")
("N." . "$(5!G(B")
; LABIALS
("p" . "$(5!H(B")
("ph" . "$(5!I(B")
("ph." . "$(5!I!i(B")
("f" . "$(5!I(B")
("f." . "$(5!I!i(B")
("b" . "$(5!J(B")
("bh" . "$(5!K(B")
("m" . "$(5!L(B")
; SEMIVOWELS
("y" . "$(5!M(B")
("y." . "$(5!N(B")
("Y" . "$(5!N(B")
("r" . "$(5!O(B")
("r." . "$(5!P(B")
("l" . "$(5!Q(B")
("W" . "$(5!R(B")
("W." . "$(5!S(B")
("v" . "$(5!T(B")
("w" . "$(5!T(B")
; SIBILANTS
("z" . "$(5!U(B")
("S" . "$(5!V(B")
("s" . "$(5!W(B")
("h" . "$(5!X(B")
))
(defvar devanagari-vowel-transliteration-alist
'(
;; Special treatment unique to IS 13194 Transliteration
("" . "$(5!h(B")
("a" . "")
; Matra (Vowel Sign)
("A" . "$(5!Z(B")
("i" . "$(5![(B")
("I" . "$(5!\(B")
("u" . "$(5!](B")
("U" . "$(5!^(B")
("R" . "$(5!_(B")
;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
("q" . "$(5#K(B") ; "$(5#K(B" = "$(5!_!i(B" in IS 13194.
("L" . "$(5#L(B") ; "$(5#L(B" = "$(5![!i(B" in IS 13194.
("E" . "$(5#M(B") ; "$(5#M(B" = "$(5!\!i(B" in IS 13194.
("E" . "$(5!`(B") ; only for transcription of other scripts.
("e" . "$(5!a(B")
("ai" . "$(5!b(B")
("ae" . "$(5!b(B") ; variation of transliteration.
("EE" . "$(5!c(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!d(B") ; only for transcription of other scripts.
("o" . "$(5!e(B")
("au" . "$(5!f(B")
("ao" . "$(5!f(B") ; variation of transliteration.
("OO" . "$(5!g(B") ; only for transcription of other scripts. (Candra O)
))
;;
;; Independent vowels and other signs.
;;
(defvar devanagari-other-letters-alist
'(
("a" . "$(5!$(B")
("A" . "$(5!%(B")
("i" . "$(5!&(B")
("I" . "$(5!'(B")
("u" . "$(5!((B")
("U" . "$(5!)(B")
("R" . "$(5!*(B")
;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
("q" . "$(5#*(B") ; "$(5#*(B" = "$(5!*!i(B" in IS 13194.
("L" . "$(5#&(B") ; "$(5#&(B" = "$(5!&!i(B" in IS 13194.
("E" . "$(5#'(B") ; "$(5#'(B" = "$(5!'!i(B" in IS 13194.
("Ex" . "$(5!+(B") ; only for transcription of other scripts.
("e" . "$(5!,(B")
("ai" . "$(5!-(B")
("EE" . "$(5!.(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!/(B") ; only for transcription of other scripts.
("o" . "$(5!0(B")
("au" . "$(5!1(B")
("ao" . "$(5!1(B") ; variation of transliteration.
("OO" . "$(5!2(B") ; only for transcription of other scripts. (Candra O)
("'" . "$(5#J(B") ; avagraha
("@" . "$(5#!(B") ; OM
("/" . "$(5!j(B")
("M" . "$(5!"(B")
("&" . "$(5!!(B")
("H" . "$(5!#(B")
("." . "$(5!i(B") ; Nukta
("0" . "$(5!q(B")
("1" . "$(5!r(B")
("2" . "$(5!s(B")
("3" . "$(5!t(B")
("4" . "$(5!u(B")
("5" . "$(5!v(B")
("6" . "$(5!w(B")
("7" . "$(5!x(B")
("8" . "$(5!y(B")
("9" . "$(5!z(B")
))
)
(defmacro devanagari-transliteration-quail-define-rules ()
(cons 'quail-define-rules
(let ((cl devanagari-consonant-transliteration-alist)
(ml devanagari-other-letters-alist) rules)
(while cl
(let ((vl devanagari-vowel-transliteration-alist))
(while vl
(setq rules
(cons (list (concat (car (car cl)) (car (car vl)))
(make-vector 1
(concat (cdr (car cl)) (cdr (car vl)))))
rules))
(setq vl (cdr vl))))
(setq cl (cdr cl)))
(while ml
(setq rules (cons (list (car (car ml))
(make-vector 1 (cdr (car ml))))
rules))
(setq ml (cdr ml)))
rules)))
(quail-define-package
"devanagari-transliteration" "Devanagari" "DEVt" t
"Devanagari input method by transliteration
VOWELS : a $(5!$(B A $(5!%(B i $(5!&(B I $(5!'(B u $(5!((B U $(5!)(B
R $(5!*(B q $(5#*(B L $(5#&(B E $(5#'(B Ex $(5!+(B e $(5!,(B
ai $(5!-(B EE $(5!.(B O $(5!/(B o $(5!0(B au $(5!1(B OO $(5!2(B
GRUTTALS : k $(5!3(B kh $(5!4(B g $(5!5(B gh $(5!6(B G $(5!7(B
PALATALS : c $(5!8(B ch $(5!9(B j $(5!:(B jh $(5!;(B J $(5!<(B (Z $(5!:!i(B)
CEREBRALS : T $(5!=(B Th $(5!>(B D $(5!?(B Dh $(5!@(B N $(5!A(B
DENTALS : t $(5!B(B th $(5!C(B d $(5!D(B dh $(5!E(B n $(5!F(B (Nq $(5!G(B)
LABIALS : p $(5!H(B ph $(5!I(B b $(5!J(B bh $(5!K(B m $(5!L(B (f $(5!I(B)
SEMIVOWELS : y $(5!M(B Y $(5!N(B r $(5!O(B Rq $(5!P(B
l $(5!Q(B W $(5!R(B W. $(5!S(B v $(5!T(B w $(5!T(B
SIBILANTS : z $(5!U(B S $(5!V(B s $(5!W(B h $(5!X(B
Specials : Anuswar M $(5!"(B Visarg H $(5!#(B
Chandrabindu & $(5!!(B Nukta . $(5!i(B
Danda / $(5!j(B Avagrah ' $(5#J(B
OM @ $(5#!(B
"
nil t t nil nil nil nil nil
;; 'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-compose-characters)
("-" . quail-devanagari-compose-characters)
("," . quail-devanagari-compose-characters)
("\C-m" . quail-devanagari-compose-characters)
([return] . quail-devanagari-compose-characters))
)
(devanagari-transliteration-quail-define-rules)
;;
;; ITRANS - Indian Script Translation
;;
(eval-and-compile
(defun rule-indian-to-devanagari (alist)
(if (null alist) nil
(cons (cons (car (car alist))
(indian-to-devanagari-string (cdr (car alist))))
(rule-indian-to-devanagari (cdr alist)))))
)
(eval-when-compile
(defvar devanagari-consonant-itrans-alist
(rule-indian-to-devanagari indian-itrans-consonant-alist))
(defvar devanagari-vowel-itrans-alist
(rule-indian-to-devanagari indian-itrans-vowel-sign-alist))
(defvar devanagari-other-letters-itrans-alist
(rule-indian-to-devanagari indian-itrans-other-letters-alist))
)
(defmacro devanagari-itrans-quail-define-rules ()
(cons 'quail-define-rules
(let ((cl devanagari-consonant-itrans-alist)
(ml devanagari-other-letters-itrans-alist) rules)
(while cl
(let ((vl devanagari-vowel-itrans-alist))
(while vl
(setq rules
(cons (list (concat (car (car cl)) (car (car vl)))
(make-vector 1
(concat (cdr (car cl)) (cdr (car vl)))))
rules))
(setq vl (cdr vl))))
(setq cl (cdr cl)))
(while ml
(setq rules (cons (list (car (car ml))
(make-vector 1 (cdr (car ml))))
rules))
(setq ml (cdr ml)))
rules)))
(quail-define-package
"devanagari-itrans" "Devanagari" "DEVi" t
"Devanagari input method by ITRANS
Special Keys : Anuswar n'
Chandrabindu nn'
Visarg nh
Nukta type capital letter for first character.
$(5!7(B(ng) $(5!<(B(ny) $(5!A(B(nn) $(5!F(B(n) $(5!G(B(nnn)
"
nil t t nil nil nil nil nil
;; 'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-compose-characters)
("-" . quail-devanagari-compose-characters)
("," . quail-devanagari-compose-characters)
("\C-m" . quail-devanagari-compose-characters)
([return] . quail-devanagari-compose-characters))
)
(devanagari-itrans-quail-define-rules)
;;
;; Quail Hindi Input By Transliteration
;;
(defun quail-devanagari-hindi-compose-characters ()
(interactive)
(if (quail-point-in-conversion-region)
(let* ((from (overlay-start quail-conv-overlay))
(to (overlay-end quail-conv-overlay))
(dstr (buffer-substring from to)))
(setq overriding-terminal-local-map nil
quail-converting nil
quail-conversion-str
(concat (devanagari-compose-string dstr)
(list (if (numberp last-command-char)
last-command-char
(get last-command-char 'ascii-character))))))))
(eval-when-compile
(defvar devanagari-hindi-consonant-transliteration-alist
'(
; GUTTURALS
("k" . "$(5!3(B")
("ks" . "$(5$.(B")
("k." . "$(5!3!i(B")
("kh" . "$(5!4(B")
("kh." . "$(5!4!i(B")
("g" . "$(5!5(B")
("g." . "$(5!5!i(B")
("gh" . "$(5!6(B")
("G" . "$(5!7(B")
; PALATALS
("ch" . "$(5!8(B")
("chh" . "$(5!9(B")
("j" . "$(5!:(B")
("j." . "$(5!:!i(B")
("z" . "$(5!:!i(B")
("jh" . "$(5!;(B")
("J" . "$(5!<(B")
; CEREBRALS
("T" . "$(5!=(B")
("Th" . "$(5!>(B")
("D" . "$(5!?(B")
("D." . "$(5!?!i(B")
("Dh" . "$(5!@(B")
("Dh." . "$(5!@!i(B")
("N" . "$(5!A(B")
; DENTALS
("t" . "$(5!B(B")
("th" . "$(5!C(B")
("d" . "$(5!D(B")
("dh" . "$(5!E(B")
("n" . "$(5!F(B")
("N." . "$(5!G(B")
; LABIALS
("p" . "$(5!H(B")
("ph" . "$(5!I(B")
("ph." . "$(5!I!i(B")
("f" . "$(5!I(B")
("f." . "$(5!I!i(B")
("b" . "$(5!J(B")
("bh" . "$(5!K(B")
("m" . "$(5!L(B")
; SEMIVOWELS
("y" . "$(5!M(B")
("y." . "$(5!N(B")
("Y" . "$(5!N(B")
("r" . "$(5!O(B")
("r." . "$(5!P(B")
("l" . "$(5!Q(B")
("W" . "$(5!R(B")
("W." . "$(5!S(B")
("v" . "$(5!T(B")
("w" . "$(5!T(B")
; SIBILANTS
("sh" . "$(5!U(B")
("S" . "$(5!V(B")
("s" . "$(5!W(B")
("h" . "$(5!X(B")
; Special for Hindi
("ks" . "$(5$.(B")
("tr" . "$(5"%(B")
("xn" . "$(5$E(B")
))
(defvar devanagari-hindi-vowel-transliteration-alist
'(
; In hindi, halant sign is rarely used so should explicity typed in.
("" . "")
("~" . "$(5!h(B")
; Matra (Vowel Sign)
("a" . "$(5!Z(B")
("i" . "$(5![(B")
("I" . "$(5!\(B")
("u" . "$(5!](B")
("U" . "$(5!^(B")
("R" . "$(5!_(B")
;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
("q" . "$(5#K(B") ; "$(5#K(B" = "$(5!_!i(B" in IS 13194.
("L" . "$(5#L(B") ; "$(5#L(B" = "$(5![!i(B" in IS 13194.
("E" . "$(5#M(B") ; "$(5#M(B" = "$(5!\!i(B" in IS 13194.
("E" . "$(5!`(B") ; only for transcription of other scripts.
("e" . "$(5!a(B")
("ai" . "$(5!b(B")
("ae" . "$(5!b(B") ; variation of transliteration.
("EE" . "$(5!c(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!d(B") ; only for transcription of other scripts.
("o" . "$(5!e(B")
("au" . "$(5!f(B")
("ao" . "$(5!f(B") ; variation of transliteration.
("OO" . "$(5!g(B") ; only for transcription of other scripts. (Candra O)
))
;;
;; Independent vowels and other signs.
;;
(defvar devanagari-hindi-other-letters-alist
'(
("a" . "$(5!$(B")
("A" . "$(5!%(B")
("i" . "$(5!&(B")
("I" . "$(5!'(B")
("u" . "$(5!((B")
("U" . "$(5!)(B")
("R" . "$(5!*(B")
;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
("q" . "$(5#*(B") ; "$(5#*(B" = "$(5!*!i(B" in IS 13194.
("L" . "$(5#&(B") ; "$(5#&(B" = "$(5!&!i(B" in IS 13194.
("E" . "$(5#'(B") ; "$(5#'(B" = "$(5!'!i(B" in IS 13194.
("Ex" . "$(5!+(B") ; only for transcription of other scripts.
("e" . "$(5!,(B")
("ai" . "$(5!-(B")
("EE" . "$(5!.(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!/(B") ; only for transcription of other scripts.
("o" . "$(5!0(B")
("au" . "$(5!1(B")
("ao" . "$(5!1(B") ; variation of transliteration.
("OO" . "$(5!2(B") ; only for transcription of other scripts. (Candra O)
("'" . "$(5#J(B") ; avagraha
("@" . "$(5#!(B") ; OM
("/" . "$(5!j(B")
("M" . "$(5!"(B")
("&" . "$(5!!(B")
("H" . "$(5!#(B")
("." . "$(5!i(B") ; Nukta
("0" . "$(5!q(B")
("1" . "$(5!r(B")
("2" . "$(5!s(B")
("3" . "$(5!t(B")
("4" . "$(5!u(B")
("5" . "$(5!v(B")
("6" . "$(5!w(B")
("7" . "$(5!x(B")
("8" . "$(5!y(B")
("9" . "$(5!z(B")
))
)
(defmacro devanagari-hindi-transliteration-quail-define-rules ()
(cons 'quail-define-rules
(let ((cl devanagari-hindi-consonant-transliteration-alist)
(ml devanagari-hindi-other-letters-alist) rules)
(while cl
(let ((vl devanagari-hindi-vowel-transliteration-alist))
(while vl
(setq rules
(cons (list (concat (car (car cl)) (car (car vl)))
(make-vector 1
(concat (cdr (car cl)) (cdr (car vl)))))
rules))
(setq vl (cdr vl))))
(setq cl (cdr cl)))
(while ml
(setq rules (cons (list (car (car ml))
(make-vector 1 (cdr (car ml))))
rules))
(setq ml (cdr ml)))
rules)))
(quail-define-package
"devanagari-hindi-transliteration" "Hindi" "HINt" t
"Devanagari-Hindi input method by transliteration
VOWELS : a $(5!$(B A $(5!%(B i $(5!&(B I $(5!'(B u $(5!((B U $(5!)(B
R $(5!*(B q $(5#*(B L $(5#&(B E $(5#'(B Ex $(5!+(B e $(5!,(B
ai $(5!-(B EE $(5!.(B O $(5!/(B o $(5!0(B au $(5!1(B OO $(5!2(B
GRUTTALS : k $(5!3(B kh $(5!4(B g $(5!5(B gh $(5!6(B G $(5!7(B
PALATALS : c $(5!8(B ch $(5!9(B j $(5!:(B jh $(5!;(B J $(5!<(B z $(5!:!i(B
CEREBRALS : T $(5!=(B Th $(5!>(B D $(5!?(B Dh $(5!@(B N $(5!A(B
DENTALS : t $(5!B(B th $(5!C(B d $(5!D(B dh $(5!E(B n $(5!F(B (Nq $(5!G(B)
LABIALS : p $(5!H(B ph $(5!I(B b $(5!J(B bh $(5!K(B m $(5!L(B (f $(5!I(B)
SEMIVOWELS : y $(5!M(B Y $(5!N(B r $(5!O(B Rq $(5!P(B
l $(5!Q(B W $(5!R(B W. $(5!S(B v $(5!T(B w $(5!T(B
SIBILANTS : sh $(5!U(B S $(5!V(B s $(5!W(B h $(5!X(B
OTHERS : ks $(5$.(B tr $(5"%(B xn $(5$E(B
Specials : Anuswar M $(5!"(B Visarg H $(5!#(B
Chandrabindu & $(5!!(B Nukta . $(5!i(B
Danda / $(5!j(B Avagrah ' $(5#J(B
OM @ $(5#!(B Halant ~ $(5!h(B
"
nil t t nil nil nil nil nil
;; 'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-hindi-compose-characters)
("-" . quail-devanagari-hindi-compose-characters)
("," . quail-devanagari-hindi-compose-characters)
("\C-m" . quail-devanagari-hindi-compose-characters)
([return] . quail-devanagari-hindi-compose-characters))
)
(devanagari-hindi-transliteration-quail-define-rules)