mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-04 11:40:22 +00:00
7bbc9d9f7b
Adjusted for the change of input method handling. (quail-devanagari-hindi-compose-characters): Likewise.
670 lines
21 KiB
EmacsLisp
670 lines
21 KiB
EmacsLisp
;; 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)
|