Commit | Line | Data |
---|---|---|
80d75b56 KH |
1 | ;;; tibetan.el --- Support for Tibetan language |
2 | ||
3 | ;; Copyright (C) 1997 Free Software Foundation, Inc. | |
4 | ;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. | |
5 | ||
6 | ;; Keywords: multilingual, Tibetan | |
7 | ||
8 | ;; This file is part of GNU Emacs. | |
9 | ||
10 | ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 | ;; it under the terms of the GNU General Public License as published by | |
12 | ;; the Free Software Foundation; either version 2, or (at your option) | |
13 | ;; any later version. | |
14 | ||
15 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | ;; GNU General Public License for more details. | |
19 | ||
20 | ;; You should have received a copy of the GNU General Public License | |
21 | ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
22 | ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 | ;; Boston, MA 02111-1307, USA. | |
24 | ||
25 | ;; Author: Toru TOMABECHI, <Toru.Tomabechi@orient.unil.ch> | |
26 | ||
27 | ;; Created: Feb. 17. 1997 | |
28 | ||
29 | ;; History: | |
30 | ;; 1997.03.13 Modification for special signs and punctuations. | |
31 | ||
32 | ;;; Code: | |
33 | ||
80d75b56 KH |
34 | ;;; Tibetan Character set. |
35 | ;;; \x2130 -- \x234a is a subset of Unicode v.2 \x0f00 - \x0fb9 | |
36 | ;;; with a slight modification. And there are some subjoined | |
37 | ;;; consonants which are not specified in Unicode. | |
38 | ;;; I hope I can add missing characters later. | |
39 | ;;; | |
40 | ;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |
41 | ;;;2120 // \e$(7!!\e(B \e$(7!"\e(B \e$(7!#\e(B \e$(7!$\e(B \e$(7!%\e(B \e$(7!&\e(B \e$(7!'\e(B \e$(7!(\e(B \e$(7!)\e(B \e$(7!*\e(B \e$(7!+\e(B \e$(7!,\e(B \e$(7!-\e(B \e$(7!.\e(B \e$(7!/\e(B ; | |
42 | ;;;2130 \e$(7!0\e(B \e$(7!1\e(B \e$(7!2\e(B \e$(7!3\e(B \e$(7!4\e(B \e$(7!5\e(B \e$(7!6\e(B \e$(7!7\e(B \e$(7!8\e(B \e$(7!9\e(B \e$(7!:\e(B \e$(7!;\e(B \e$(7!<\e(B \e$(7!=\e(B \e$(7!>\e(B \e$(7!?\e(B ; Punctuations, | |
43 | ;;;2140 \e$(7!@\e(B \e$(7!A\e(B \e$(7!B\e(B \e$(7!C\e(B \e$(7!D\e(B \e$(7!E\e(B \e$(7!F\e(B \e$(7!G\e(B \e$(7!H\e(B \e$(7!I\e(B \e$(7!J\e(B \e$(7!K\e(B \e$(7!L\e(B \e$(7!M\e(B \e$(7!N\e(B \e$(7!O\e(B ; Digits and | |
44 | ;;;2150 \e$(7!P\e(B \e$(7!Q\e(B \e$(7!R\e(B \e$(7!S\e(B \e$(7!T\e(B \e$(7!U\e(B \e$(7!V\e(B \e$(7!W\e(B \e$(7!X\e(B \e$(7!Y\e(B \e$(7!Z\e(B \e$(7![\e(B \e$(7!\\e(B \e$(7!]\e(B \e$(7!^\e(B \e$(7!_\e(B ; Special signs. | |
45 | ;;;2160 \e$(7!`\e(B \e$(7!a\e(B \e$(7!b\e(B \e$(7!c\e(B \e$(7!d\e(B \e$(7!e\e(B \e$(7!f\e(B \e$(7!g\e(B \e$(7!h\e(B \e$(7!i\e(B \e$(7!j\e(B \e$(7!k\e(B \e$(7!l\e(B \e$(7!m\e(B \e$(7!n\e(B \e$(7!o\e(B ; | |
46 | ;;;2170 \e$(7!p\e(B \e$(7!q\e(B \e$(7!r\e(B \e$(7!s\e(B \e$(7!t\e(B \e$(7!u\e(B \e$(7!v\e(B \e$(7!w\e(B \e$(7!x\e(B \e$(7!y\e(B \e$(7!z\e(B \e$(7!{\e(B \e$(7!|\e(B \e$(7!}\e(B \e$(7!~\e(B // ; | |
47 | ;;; | |
48 | ;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |
49 | ;;;2220 // \e$(7"!\e(B \e$(7""\e(B \e$(7"#\e(B \e$(7"$\e(B \e$(7"%\e(B \e$(7"&\e(B \e$(7"'\e(B \e$(7"(\e(B \e$(7")\e(B \e$(7"*\e(B \e$(7"+\e(B \e$(7",\e(B \e$(7"-\e(B \e$(7".\e(B \e$(7"/\e(B ; Base consonants | |
50 | ;;;2230 \e$(7"0\e(B \e$(7"1\e(B \e$(7"2\e(B \e$(7"3\e(B \e$(7"4\e(B \e$(7"5\e(B \e$(7"6\e(B \e$(7"7\e(B \e$(7"8\e(B \e$(7"9\e(B \e$(7":\e(B \e$(7";\e(B \e$(7"<\e(B \e$(7"=\e(B \e$(7">\e(B \e$(7"?\e(B ; and | |
51 | ;;;2240 \e$(7"@\e(B \e$(7"A\e(B \e$(7"B\e(B \e$(7"C\e(B \e$(7"D\e(B \e$(7"E\e(B \e$(7"F\e(B \e$(7"G\e(B \e$(7"H\e(B \e$(7"I\e(B \e$(7"J\e(B \e$(7"K\e(B \e$(7"L\e(B \e$(7"M\e(B \e$(7"N\e(B \e$(7"O\e(B ; Vowel signs. | |
52 | ;;;2250 \e$(7"P\e(B \e$(7"Q\e(B \e$(7"R\e(B \e$(7"S\e(B \e$(7"T\e(B \e$(7"U\e(B \e$(7"V\e(B \e$(7"W\e(B \e$(7"X\e(B \e$(7"Y\e(B \e$(7"Z\e(B \e$(7"[\e(B \e$(7"\\e(B \e$(7"]\e(B \e$(7"^\e(B \e$(7"_\e(B ; (\x2251 = vowel a) | |
53 | ;;;2260 \e$(7"`\e(B \e$(7"a\e(B \e$(7"b\e(B \e$(7"c\e(B \e$(7"d\e(B \e$(7"e\e(B \e$(7"f\e(B \e$(7"g\e(B \e$(7"h\e(B \e$(7"i\e(B \e$(7"j\e(B \e$(7"k\e(B \e$(7"l\e(B \e$(7"m\e(B \e$(7"n\e(B \e$(7"o\e(B ; Long vowels and | |
54 | ;;;2270 \e$(7"p\e(B \e$(7"q\e(B \e$(7"r\e(B \e$(7"s\e(B \e$(7"t\e(B \e$(7"u\e(B \e$(7"v\e(B \e$(7"w\e(B \e$(7"x\e(B \e$(7"y\e(B \e$(7"z\e(B \e$(7"{\e(B \e$(7"|\e(B \e$(7"}\e(B \e$(7"~\e(B // ; vocalic r, l are | |
55 | ;;; ; not atomically | |
56 | ;;; ; encoded. | |
57 | ;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |
58 | ;;;2320 // \e$(7#!\e(B \e$(7#"\e(B \e$(7##\e(B \e$(7#$\e(B \e$(7#%\e(B \e$(7#&\e(B \e$(7#'\e(B \e$(7#(\e(B \e$(7#)\e(B \e$(7#*\e(B \e$(7#+\e(B \e$(7#,\e(B \e$(7#-\e(B \e$(7#.\e(B \e$(7#/\e(B ; Subjoined consonants | |
59 | ;;;2330 \e$(7#0\e(B \e$(7#1\e(B \e$(7#2\e(B \e$(7#3\e(B \e$(7#4\e(B \e$(7#5\e(B \e$(7#6\e(B \e$(7#7\e(B \e$(7#8\e(B \e$(7#9\e(B \e$(7#:\e(B \e$(7#;\e(B \e$(7#<\e(B \e$(7#=\e(B \e$(7#>\e(B \e$(7#?\e(B ; | |
60 | ;;;2340 \e$(7#@\e(B \e$(7#A\e(B \e$(7#B\e(B \e$(7#C\e(B \e$(7#D\e(B \e$(7#E\e(B \e$(7#F\e(B \e$(7#G\e(B \e$(7#H\e(B \e$(7#I\e(B \e$(7#J\e(B \e$(7#K\e(B \e$(7#L\e(B \e$(7#M\e(B \e$(7#N\e(B \e$(7#O\e(B ; 'a chung (\x2341)is | |
61 | ;;; ; here, | |
62 | ;;; ; while in Unicode | |
63 | ;;; ; it is classified | |
64 | ;;; ; as a vowel sign | |
65 | ;;; ; (\x0f71). | |
66 | ;;; | |
67 | ;;;2350 \e$(7#P\e(B \e$(7#Q\e(B \e$(7#R\e(B \e$(7#S\e(B \e$(7#T\e(B \e$(7#U\e(B \e$(7#V\e(B \e$(7#W\e(B \e$(7#X\e(B \e$(7#Y\e(B \e$(7#Z\e(B \e$(7#[\e(B \e$(7#\\e(B \e$(7#]\e(B \e$(7#^\e(B \e$(7#_\e(B ; Hereafter, the chars | |
68 | ;;;2360 \e$(7#`\e(B \e$(7#a\e(B \e$(7#b\e(B \e$(7#c\e(B \e$(7#d\e(B \e$(7#e\e(B \e$(7#f\e(B \e$(7#g\e(B \e$(7#h\e(B \e$(7#i\e(B \e$(7#j\e(B \e$(7#k\e(B \e$(7#l\e(B \e$(7#m\e(B \e$(7#n\e(B \e$(7#o\e(B ; are not specified | |
69 | ;;;2370 \e$(7#p\e(B \e$(7#q\e(B \e$(7#r\e(B \e$(7#s\e(B \e$(7#t\e(B \e$(7#u\e(B \e$(7#v\e(B \e$(7#w\e(B \e$(7#x\e(B \e$(7#y\e(B \e$(7#z\e(B \e$(7#{\e(B \e$(7#|\e(B \e$(7#}\e(B \e$(7#~\e(B // ; in Unicode. | |
70 | ;;; ; The character \x2351 | |
71 | ;;; ; is not used in our | |
72 | ;;; ; implementation. | |
73 | ;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |
74 | ;;;2420 // \e$(7$!\e(B \e$(7$"\e(B \e$(7$#\e(B \e$(7$$\e(B \e$(7$%\e(B \e$(7$&\e(B \e$(7$'\e(B \e$(7$(\e(B \e$(7$)\e(B \e$(7$*\e(B \e$(7$+\e(B \e$(7$,\e(B \e$(7$-\e(B \e$(7$.\e(B \e$(7$/\e(B ; Precomposed | |
75 | ;;;2430 \e$(7$0\e(B \e$(7$1\e(B \e$(7$2\e(B \e$(7$3\e(B \e$(7$4\e(B \e$(7$5\e(B \e$(7$6\e(B \e$(7$7\e(B \e$(7$8\e(B \e$(7$9\e(B \e$(7$:\e(B \e$(7$;\e(B \e$(7$<\e(B \e$(7$=\e(B \e$(7$>\e(B \e$(7$?\e(B ; consonants for | |
76 | ;;;2440 \e$(7$@\e(B \e$(7$A\e(B \e$(7$B\e(B \e$(7$C\e(B \e$(7$D\e(B \e$(7$E\e(B \e$(7$F\e(B \e$(7$G\e(B \e$(7$H\e(B \e$(7$I\e(B \e$(7$J\e(B \e$(7$K\e(B \e$(7$L\e(B \e$(7$M\e(B \e$(7$N\e(B \e$(7$O\e(B ; ordinary Tibetan. | |
77 | ;;;2450 \e$(7$P\e(B \e$(7$Q\e(B \e$(7$R\e(B \e$(7$S\e(B \e$(7$T\e(B \e$(7$U\e(B \e$(7$V\e(B \e$(7$W\e(B \e$(7$X\e(B \e$(7$Y\e(B \e$(7$Z\e(B \e$(7$[\e(B \e$(7$\\e(B \e$(7$]\e(B \e$(7$^\e(B \e$(7$_\e(B ; They are decomposed | |
78 | ;;;2460 \e$(7$`\e(B \e$(7$a\e(B \e$(7$b\e(B \e$(7$c\e(B \e$(7$d\e(B \e$(7$e\e(B \e$(7$f\e(B \e$(7$g\e(B \e$(7$h\e(B \e$(7$i\e(B \e$(7$j\e(B \e$(7$k\e(B \e$(7$l\e(B \e$(7$m\e(B \e$(7$n\e(B \e$(7$o\e(B ; into base and | |
79 | ;;;2470 \e$(7$p\e(B \e$(7$q\e(B \e$(7$r\e(B \e$(7$s\e(B \e$(7$t\e(B \e$(7$u\e(B \e$(7$v\e(B \e$(7$w\e(B \e$(7$x\e(B \e$(7$y\e(B \e$(7$z\e(B \e$(7${\e(B \e$(7$|\e(B \e$(7$}\e(B \e$(7$~\e(B // ; subjoined consonants | |
80 | ;;; ; when written on a | |
81 | ;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ; file in Tibetan | |
82 | ;;;2520 // \e$(7%!\e(B \e$(7%"\e(B \e$(7%#\e(B \e$(7%$\e(B \e$(7%%\e(B \e$(7%&\e(B \e$(7%'\e(B \e$(7%(\e(B \e$(7%)\e(B \e$(7%*\e(B \e$(7%+\e(B \e$(7%,\e(B \e$(7%-\e(B \e$(7%.\e(B \e$(7%/\e(B ; coding system. | |
83 | ;;;2530 \e$(7%0\e(B \e$(7%1\e(B \e$(7%2\e(B \e$(7%3\e(B \e$(7%4\e(B \e$(7%5\e(B \e$(7%6\e(B \e$(7%7\e(B \e$(7%8\e(B \e$(7%9\e(B \e$(7%:\e(B \e$(7%;\e(B \e$(7%<\e(B \e$(7%=\e(B \e$(7%>\e(B \e$(7%?\e(B ; | |
84 | ;;;2540 \e$(7%@\e(B \e$(7%A\e(B \e$(7%B\e(B \e$(7%C\e(B \e$(7%D\e(B \e$(7%E\e(B \e$(7%F\e(B \e$(7%G\e(B \e$(7%H\e(B \e$(7%I\e(B \e$(7%J\e(B \e$(7%K\e(B \e$(7%L\e(B \e$(7%M\e(B \e$(7%N\e(B \e$(7%O\e(B ; | |
85 | ;;;2550 \e$(7%P\e(B \e$(7%Q\e(B \e$(7%R\e(B \e$(7%S\e(B \e$(7%T\e(B \e$(7%U\e(B \e$(7%V\e(B \e$(7%W\e(B \e$(7%X\e(B \e$(7%Y\e(B \e$(7%Z\e(B \e$(7%[\e(B \e$(7%\\e(B \e$(7%]\e(B \e$(7%^\e(B \e$(7%_\e(B ; | |
86 | ;;;2560 \e$(7%`\e(B \e$(7%a\e(B \e$(7%b\e(B \e$(7%c\e(B \e$(7%d\e(B \e$(7%e\e(B \e$(7%f\e(B \e$(7%g\e(B \e$(7%h\e(B \e$(7%i\e(B \e$(7%j\e(B \e$(7%k\e(B \e$(7%l\e(B \e$(7%m\e(B \e$(7%n\e(B \e$(7%o\e(B ; | |
87 | ;;;2570 \e$(7%p\e(B \e$(7%q\e(B \e$(7%r\e(B \e$(7%s\e(B \e$(7%t\e(B \e$(7%u\e(B \e$(7%v\e(B \e$(7%w\e(B \e$(7%x\e(B \e$(7%y\e(B \e$(7%z\e(B \e$(7%{\e(B \e$(7%|\e(B \e$(7%}\e(B \e$(7%~\e(B // ; | |
88 | ;;; | |
89 | ||
90 | ||
91 | (make-coding-system | |
92 | 'tibetan 2 ?Q | |
93 | "Coding-system used for ASCII(MSB=0) & TIBETAN(MSB=1)." | |
94 | '((ascii t) (tibetan t) nil nil | |
95 | nil ascii-eol)) | |
96 | ||
97 | (put 'tibetan 'post-read-conversion 'tibetan-post-read-conversion) | |
98 | (put 'tibetan 'pre-write-conversion 'tibetan-pre-write-conversion) | |
99 | ||
100 | (register-input-method | |
101 | "Tibetan" '("quail-tibetan-wylie" quail-use-package "quail/tibetan")) | |
102 | (register-input-method | |
103 | "Tibetan" '("quail-tibetan-tibkey" quail-use-package "quail/tibetan")) | |
104 | ||
80d75b56 KH |
105 | (set-language-info-alist |
106 | "Tibetan" '((setup-function . setup-tibetan-environment) | |
107 | (charset . (tibetan tibetan-1-column)) | |
108 | (coding-system . (tibetan)) | |
109 | (documentation . t) | |
110 | (sample-text . | |
111 | "Tibetan (\e2\e$(7"70"]\e1"2\e$(8!;\e2\e$(7%P`"Q\e1"2\e$(8!;\e(B) \e2\e$(7#RP#SP#S\e1!>"7\e2$P`"Q\e1\e$(8!;\e2\e$(7"E0"S\e1"G\e$(8!;\e$(7"7\e2"20"[\e1\e$(8!;\e2\e$(7"D0"[\e1"#"G!>\e2"I0"]0"_\e1\e$(8!;\e2\e$(7"9`"Q\e1\e$(8!;\e2\e$(7"/0"S\e1\e$(8!;\e2\e$(7"5`"Q\e1\e2#2`#90"[\e1\e$(8!;\e2\e$(7"H`#A`"U0"c\e1!>\e(B"))) | |
112 | ||
113 | ||
114 | ;;; | |
115 | ;;; Definitions of conversion data. | |
116 | ;;; | |
117 | ||
118 | ||
119 | ;;; alists for tibetan char <-> transcription conversion | |
120 | ;;; longer transcription should come first | |
121 | (defconst tibetan-consonant-transcription-alist | |
122 | '(("tsh" . "\e$(7";\e(B") | |
123 | ("dzh" . "\e$(7"=\e(B") | |
124 | ("kSH" . "\e$(7"J\e(B") | |
125 | ("kh" . "\e$(7""\e(B") | |
126 | ("gh" . "\e$(7"$\e(B") | |
127 | ("ng" . "\e$(7"%\e(B") | |
128 | ("ch" . "\e$(7"'\e(B") | |
129 | ("ny" . "\e$(7"*\e(B") | |
130 | ("TH" . "\e$(7",\e(B") | |
131 | ("DH" . "\e$(7".\e(B") | |
132 | ("th" . "\e$(7"1\e(B") | |
133 | ("dh" . "\e$(7"3\e(B") | |
134 | ("ph" . "\e$(7"6\e(B") | |
135 | ("bh" . "\e$(7"8\e(B") | |
136 | ("ts" . "\e$(7":\e(B") | |
137 | ("dz" . "\e$(7"<\e(B") | |
138 | ("zh" . "\e$(7"?\e(B") | |
139 | ("sh" . "\e$(7"E\e(B") | |
140 | ("SH" . "\e$(7"F\e(B") | |
141 | ("k" . "\e$(7"!\e(B") | |
142 | ("g" . "\e$(7"#\e(B") | |
143 | ("c" . "\e$(7"&\e(B") | |
144 | ("j" . "\e$(7"(\e(B") | |
145 | ("T" . "\e$(7"+\e(B") | |
146 | ("D" . "\e$(7"-\e(B") | |
147 | ("N" . "\e$(7"/\e(B") | |
148 | ("t" . "\e$(7"0\e(B") | |
149 | ("d" . "\e$(7"2\e(B") | |
150 | ("n" . "\e$(7"4\e(B") | |
151 | ("p" . "\e$(7"5\e(B") | |
152 | ("b" . "\e$(7"7\e(B") | |
153 | ("m" . "\e$(7"9\e(B") | |
154 | ("w" . "\e$(7">\e(B") | |
155 | ("z" . "\e$(7"@\e(B") | |
156 | ("'" . "\e$(7"A\e(B") | |
157 | ("y" . "\e$(7"B\e(B") | |
158 | ("r" . "\e$(7"C\e(B") | |
159 | ("l" . "\e$(7"D\e(B") | |
160 | ("s" . "\e$(7"G\e(B") | |
161 | ("h" . "\e$(7"H\e(B") | |
162 | ("H" . "\e$(7"H\e(B") | |
163 | ("A" . "\e$(7"I\e(B"))) | |
164 | ||
165 | ||
166 | (defconst tibetan-vowel-transcription-alist | |
167 | '(("ai" . "\e$(7"\\e(B") | |
168 | ("au" . "\e$(7"^\e(B") | |
169 | ("ee" . "\e$(7"\\e(B") | |
170 | ("oo" . "\e$(7"^\e(B") | |
171 | ("a" . "\e$(7"Q\e(B") ; invisible vowel sign (\x2251) | |
172 | ("i" . "\e$(7"S\e(B") | |
173 | ("u" . "\e$(7"U\e(B") | |
174 | ("e" . "\e$(7"[\e(B") | |
175 | ("o" . "\e$(7"]\e(B") | |
176 | ("E" . "\e$(7"\\e(B") | |
177 | ("O" . "\e$(7"^\e(B") | |
178 | ("I" . "\e$(7"a\e(B") | |
179 | ("M" . "\e$(7"_\e(B") | |
180 | ("~" . "\e$(7"c\e(B") ; not specified in Ext.wylie | |
181 | ("`" . "\e$(7"d\e(B") ; idem. | |
182 | ("," . "\e$(7"e\e(B") ; idem. | |
183 | ("v" . "\e$(7"g\e(B") ; idem. | |
184 | ("V" . "\e$(7"h\e(B") ; idem. | |
185 | ("x" . "\e$(7"i\e(B") ; idem. | |
186 | ("X" . "\e$(7"j\e(B") ; idem. | |
187 | ("q" . "\e$(7"k\e(B") ; idem. | |
188 | ("Q" . "\e$(7"l\e(B") ; idem. | |
189 | ("_o" . "\e$(7!g\e(B") ; idem. | |
190 | ("_O" . "\e$(7!e\e(B") ; idem. | |
191 | ("_/" . "\e$(7!I\e(B") ; idem. | |
192 | )) | |
193 | ||
194 | (defconst tibetan-precomposed-transcription-alist | |
195 | '(("phyw" . "\e$(7$G\e(B") | |
196 | ("tshw" . "\e$(7$)\e(B") | |
197 | ("rtsw" . "\e$(7%.\e(B") | |
198 | ("khw" . "\e$(7$"\e(B") | |
199 | ("nyw" . "\e$(7$%\e(B") | |
200 | ("tsw" . "\e$(7$(\e(B") | |
201 | ("zhw" . "\e$(7$*\e(B") | |
202 | ("shw" . "\e$(7$.\e(B") | |
203 | ("khy" . "\e$(7$A\e(B") | |
204 | ("phy" . "\e$(7$D\e(B") | |
205 | ("khr" . "\e$(7$Q\e(B") | |
206 | ("thr" . "\e$(7$T\e(B") | |
207 | ("phr" . "\e$(7$W\e(B") | |
208 | ("shr" . "\e$(7$Z\e(B") | |
209 | ("dzr" . "\e$(7$^\e(B") | |
210 | ("grw" . "\e$(7$_\e(B") | |
211 | ("rng" . "\e$(7%#\e(B") | |
212 | ("rny" . "\e$(7%%\e(B") | |
213 | ("rts" . "\e$(7%+\e(B") | |
214 | ("rdz" . "\e$(7%,\e(B") | |
215 | ("rgw" . "\e$(7%-\e(B") | |
216 | ("rky" . "\e$(7%0\e(B") | |
217 | ("rgy" . "\e$(7%1\e(B") | |
218 | ("rmy" . "\e$(7%2\e(B") | |
219 | ("lng" . "\e$(7%B\e(B") | |
220 | ("sng" . "\e$(7%R\e(B") | |
221 | ("sny" . "\e$(7%S\e(B") | |
222 | ("sts" . "\e$(7%Z\e(B") | |
223 | ("sky" . "\e$(7%`\e(B") | |
224 | ("sgy" . "\e$(7%a\e(B") | |
225 | ("spy" . "\e$(7%b\e(B") | |
226 | ("sby" . "\e$(7%c\e(B") | |
227 | ("smy" . "\e$(7%d\e(B") | |
228 | ("skr" . "\e$(7%p\e(B") | |
229 | ("sgr" . "\e$(7%q\e(B") | |
230 | ("snr" . "\e$(7%r\e(B") | |
231 | ("spr" . "\e$(7%s\e(B") | |
232 | ("sbr" . "\e$(7%t\e(B") | |
233 | ("smr" . "\e$(7%u\e(B") | |
234 | ("kw" . "\e$(7$!\e(B") | |
235 | ("gw" . "\e$(7$#\e(B") | |
236 | ("cw" . "\e$(7$$\e(B") | |
237 | ("tw" . "\e$(7$&\e(B") | |
238 | ("dw" . "\e$(7$'\e(B") | |
239 | ("zw" . "\e$(7$+\e(B") | |
240 | ("rw" . "\e$(7$,\e(B") | |
241 | ("lw" . "\e$(7$-\e(B") | |
242 | ("sw" . "\e$(7$/\e(B") | |
243 | ("hw" . "\e$(7$0\e(B") | |
244 | ("ky" . "\e$(7$@\e(B") | |
245 | ("gy" . "\e$(7$B\e(B") | |
246 | ("py" . "\e$(7$C\e(B") | |
247 | ("by" . "\e$(7$E\e(B") | |
248 | ("my" . "\e$(7$F\e(B") | |
249 | ("kr" . "\e$(7$P\e(B") | |
250 | ("gr" . "\e$(7$R\e(B") | |
251 | ("tr" . "\e$(7$S\e(B") | |
252 | ("dr" . "\e$(7$U\e(B") | |
253 | ("pr" . "\e$(7$V\e(B") | |
254 | ("brk" . "\e$(7"7%!\e(B") | |
255 | ("brg" . "\e$(7"7%"\e(B") | |
256 | ("brng" . "\e$(7"7%#\e(B") | |
257 | ("brj" . "\e$(7"7%$\e(B") | |
258 | ("brny" . "\e$(7"7%%\e(B") | |
259 | ("brt" . "\e$(7"7%&\e(B") | |
260 | ("brd" . "\e$(7"7%'\e(B") | |
261 | ("brn" . "\e$(7"7%(\e(B") | |
262 | ("brts" . "\e$(7"7%+\e(B") | |
263 | ("brdz" . "\e$(7"7%,\e(B") | |
264 | ("brl" . "\e$(7"7$d\e(B") | |
265 | ("br" . "\e$(7$X\e(B") | |
266 | ("mr" . "\e$(7$Y\e(B") | |
267 | ("sr" . "\e$(7$[\e(B") | |
268 | ("hr" . "\e$(7$\\e(B") | |
269 | ("jr" . "\e$(7$]\e(B") | |
270 | ("kl" . "\e$(7$`\e(B") | |
271 | ("gl" . "\e$(7$a\e(B") | |
272 | ("blt" . "\e$(7"7%E\e(B") | |
273 | ("bld" . "\e$(7"7%F\e(B") | |
274 | ("bl" . "\e$(7$b\e(B") | |
275 | ("zl" . "\e$(7$c\e(B") | |
276 | ("rl" . "\e$(7$d\e(B") | |
277 | ("sl" . "\e$(7$e\e(B") | |
278 | ("rk" . "\e$(7%!\e(B") | |
279 | ("rg" . "\e$(7%"\e(B") | |
280 | ("rj" . "\e$(7%$\e(B") | |
281 | ("rt" . "\e$(7%&\e(B") | |
282 | ("rd" . "\e$(7%'\e(B") | |
283 | ("rn" . "\e$(7%(\e(B") | |
284 | ("rb" . "\e$(7%)\e(B") | |
285 | ("rm" . "\e$(7%*\e(B") | |
286 | ("lk" . "\e$(7%@\e(B") | |
287 | ("lg" . "\e$(7%A\e(B") | |
288 | ("lc" . "\e$(7%C\e(B") | |
289 | ("lj" . "\e$(7%D\e(B") | |
290 | ("lt" . "\e$(7%E\e(B") | |
291 | ("ld" . "\e$(7%F\e(B") | |
292 | ("ln" . "\e$(7!!\e(B") ; dummy \x2121 | |
293 | ("lp" . "\e$(7%G\e(B") | |
294 | ("lb" . "\e$(7%H\e(B") | |
295 | ("lh" . "\e$(7%I\e(B") | |
296 | ("sk" . "\e$(7%P\e(B") | |
297 | ("sg" . "\e$(7%Q\e(B") | |
298 | ("st" . "\e$(7%T\e(B") | |
299 | ("sd" . "\e$(7%U\e(B") | |
300 | ("sn" . "\e$(7%V\e(B") | |
301 | ("sp" . "\e$(7%W\e(B") | |
302 | ("sb" . "\e$(7%X\e(B") | |
303 | ("sm" . "\e$(7%Y\e(B"))) | |
304 | ||
305 | (defconst tibetan-subjoined-transcription-alist | |
306 | '(("+k" . "\e$(7#!\e(B") | |
307 | ("+kh" . "\e$(7#"\e(B") | |
308 | ("+g" . "\e$(7##\e(B") | |
309 | ("+gh" . "\e$(7#$\e(B") | |
310 | ("+ng" . "\e$(7#%\e(B") | |
311 | ("+c" . "\e$(7#&\e(B") | |
312 | ("+ch" . "\e$(7#'\e(B") | |
313 | ("+j" . "\e$(7#(\e(B") | |
314 | ("+ny" . "\e$(7#*\e(B") | |
315 | ("+T" . "\e$(7#+\e(B") | |
316 | ("+TH" . "\e$(7#,\e(B") | |
317 | ("+D" . "\e$(7#-\e(B") | |
318 | ("+DH" . "\e$(7#.\e(B") | |
319 | ("+N" . "\e$(7#/\e(B") | |
320 | ("+t" . "\e$(7#0\e(B") | |
321 | ("+th" . "\e$(7#1\e(B") | |
322 | ("+d" . "\e$(7#2\e(B") | |
323 | ("+dh" . "\e$(7#3\e(B") | |
324 | ("+n" . "\e$(7#4\e(B") | |
325 | ("+p" . "\e$(7#5\e(B") | |
326 | ("+ph" . "\e$(7#6\e(B") | |
327 | ("+b" . "\e$(7#7\e(B") | |
328 | ("+bh" . "\e$(7#8\e(B") | |
329 | ("+m" . "\e$(7#9\e(B") | |
330 | ("+ts" . "\e$(7#:\e(B") | |
331 | ("+tsh" . "\e$(7#;\e(B") | |
332 | ("+dz" . "\e$(7#<\e(B") | |
333 | ("+dzh" . "\e$(7#=\e(B") | |
334 | ("+w" . "\e$(7#>\e(B") | |
335 | ("+zh" . "\e$(7#?\e(B") | |
336 | ("+z" . "\e$(7#@\e(B") | |
337 | ("+'" . "\e$(7#A\e(B") | |
338 | ("+y" . "\e$(7#B\e(B") | |
339 | ("+r" . "\e$(7#C\e(B") | |
340 | ("+l" . "\e$(7#D\e(B") | |
341 | ("+sh" . "\e$(7#E\e(B") | |
342 | ("+SH" . "\e$(7#F\e(B") | |
343 | ("+s" . "\e$(7#G\e(B") | |
344 | ("+h" . "\e$(7#H\e(B") | |
345 | ("+A" . "\e$(7#I\e(B") | |
346 | ("+kSH" . "\e$(7#J\e(B") | |
347 | ("R" . "\e$(7#P\e(B"))) | |
348 | ||
349 | ;;; | |
350 | ;;; alist for Tibetan base consonant <-> subjoined consonant conversion. | |
351 | ;;; | |
352 | (defconst tibetan-base-to-subjoined-alist | |
353 | '(("\e$(7"!\e(B" . "\e$(7#!\e(B") | |
354 | ("\e$(7""\e(B" . "\e$(7#"\e(B") | |
355 | ("\e$(7"#\e(B" . "\e$(7##\e(B") | |
356 | ("\e$(7"$\e(B" . "\e$(7#$\e(B") | |
357 | ("\e$(7"%\e(B" . "\e$(7#%\e(B") | |
358 | ("\e$(7"&\e(B" . "\e$(7#&\e(B") | |
359 | ("\e$(7"'\e(B" . "\e$(7#'\e(B") | |
360 | ("\e$(7"(\e(B" . "\e$(7#(\e(B") | |
361 | ("\e$(7"*\e(B" . "\e$(7#*\e(B") | |
362 | ("\e$(7"+\e(B" . "\e$(7#+\e(B") | |
363 | ("\e$(7",\e(B" . "\e$(7#,\e(B") | |
364 | ("\e$(7"-\e(B" . "\e$(7#-\e(B") | |
365 | ("\e$(7".\e(B" . "\e$(7#.\e(B") | |
366 | ("\e$(7"/\e(B" . "\e$(7#/\e(B") | |
367 | ("\e$(7"0\e(B" . "\e$(7#0\e(B") | |
368 | ("\e$(7"1\e(B" . "\e$(7#1\e(B") | |
369 | ("\e$(7"2\e(B" . "\e$(7#2\e(B") | |
370 | ("\e$(7"3\e(B" . "\e$(7#3\e(B") | |
371 | ("\e$(7"4\e(B" . "\e$(7#4\e(B") | |
372 | ("\e$(7"5\e(B" . "\e$(7#5\e(B") | |
373 | ("\e$(7"6\e(B" . "\e$(7#6\e(B") | |
374 | ("\e$(7"7\e(B" . "\e$(7#7\e(B") | |
375 | ("\e$(7"8\e(B" . "\e$(7#8\e(B") | |
376 | ("\e$(7"9\e(B" . "\e$(7#9\e(B") | |
377 | ("\e$(7":\e(B" . "\e$(7#:\e(B") | |
378 | ("\e$(7";\e(B" . "\e$(7#;\e(B") | |
379 | ("\e$(7"<\e(B" . "\e$(7#<\e(B") | |
380 | ("\e$(7"=\e(B" . "\e$(7#=\e(B") | |
381 | ("\e$(7">\e(B" . "\e$(7#>\e(B") | |
382 | ("\e$(7"?\e(B" . "\e$(7#?\e(B") | |
383 | ("\e$(7"@\e(B" . "\e$(7#@\e(B") | |
384 | ("\e$(7"A\e(B" . "\e$(7#A\e(B") | |
385 | ("\e$(7"B\e(B" . "\e$(7#B\e(B") | |
386 | ("\e$(7"C\e(B" . "\e$(7#C\e(B") | |
387 | ("\e$(7"D\e(B" . "\e$(7#D\e(B") | |
388 | ("\e$(7"E\e(B" . "\e$(7#E\e(B") | |
389 | ("\e$(7"F\e(B" . "\e$(7#F\e(B") | |
390 | ("\e$(7"G\e(B" . "\e$(7#G\e(B") | |
391 | ("\e$(7"H\e(B" . "\e$(7#H\e(B") | |
392 | ("\e$(7"I\e(B" . "\e$(7#I\e(B") | |
393 | ("\e$(7"J\e(B" . "\e$(7#J\e(B"))) | |
394 | ||
395 | ;;; | |
396 | ;;; alist for Tibetan consonantic components <-> precomposed glyph conversion. | |
397 | ;;; (includes some punctuation conversion rules) | |
398 | ;;; | |
399 | (defconst tibetan-precomposition-rule-alist | |
400 | '(("\e$(7"6#B#>\e(B" . "\e$(7$G\e(B") | |
401 | ("\e$(7"##C#>\e(B" . "\e$(7$_\e(B") | |
402 | ("\e$(7";#>\e(B" . "\e$(7$)\e(B") | |
403 | ("\e$(7"C#:#>\e(B" . "\e$(7%.\e(B") | |
404 | ("\e$(7"C###>\e(B" . "\e$(7%-\e(B") | |
405 | ("\e$(7"C#!#B\e(B" . "\e$(7%0\e(B") | |
406 | ("\e$(7"C###B\e(B" . "\e$(7%1\e(B") | |
407 | ("\e$(7"C#9#B\e(B" . "\e$(7%2\e(B") | |
408 | ("\e$(7"G#!#B\e(B" . "\e$(7%`\e(B") | |
409 | ("\e$(7"G###B\e(B" . "\e$(7%a\e(B") | |
410 | ("\e$(7"G#5#B\e(B" . "\e$(7%b\e(B") | |
411 | ("\e$(7"G#7#B\e(B" . "\e$(7%c\e(B") | |
412 | ("\e$(7"G#9#B\e(B" . "\e$(7%d\e(B") | |
413 | ("\e$(7"G#!#C\e(B" . "\e$(7%p\e(B") | |
414 | ("\e$(7"G###C\e(B" . "\e$(7%q\e(B") | |
415 | ("\e$(7"G#4#C\e(B" . "\e$(7%r\e(B") | |
416 | ("\e$(7"G#5#C\e(B" . "\e$(7%s\e(B") | |
417 | ("\e$(7"G#7#C\e(B" . "\e$(7%t\e(B") | |
418 | ("\e$(7"G#9#C\e(B" . "\e$(7%u\e(B") | |
419 | ("\e$(7""#>\e(B" . "\e$(7$"\e(B") | |
420 | ("\e$(7"*#>\e(B" . "\e$(7$%\e(B") | |
421 | ("\e$(7":#>\e(B" . "\e$(7$(\e(B") | |
422 | ("\e$(7"?#>\e(B" . "\e$(7$*\e(B") | |
423 | ("\e$(7"E#>\e(B" . "\e$(7$.\e(B") | |
424 | ("\e$(7""#B\e(B" . "\e$(7$A\e(B") | |
425 | ("\e$(7"6#B\e(B" . "\e$(7$D\e(B") | |
426 | ("\e$(7""#C\e(B" . "\e$(7$Q\e(B") | |
427 | ("\e$(7"1#C\e(B" . "\e$(7$T\e(B") | |
428 | ("\e$(7"6#C\e(B" . "\e$(7$W\e(B") | |
429 | ("\e$(7"E#C\e(B" . "\e$(7$Z\e(B") | |
430 | ("\e$(7"<#C\e(B" . "\e$(7$^\e(B") | |
431 | ("\e$(7"C#%\e(B" . "\e$(7%#\e(B") | |
432 | ("\e$(7"C#*\e(B" . "\e$(7%%\e(B") | |
433 | ("\e$(7"C#:\e(B" . "\e$(7%+\e(B") | |
434 | ("\e$(7"C#<\e(B" . "\e$(7%,\e(B") | |
435 | ("\e$(7"D#%\e(B" . "\e$(7%B\e(B") | |
436 | ("\e$(7"G#%\e(B" . "\e$(7%R\e(B") | |
437 | ("\e$(7"G#*\e(B" . "\e$(7%S\e(B") | |
438 | ("\e$(7"G#:\e(B" . "\e$(7%Z\e(B") | |
439 | ("\e$(7"!#>\e(B" . "\e$(7$!\e(B") | |
440 | ("\e$(7"##>\e(B" . "\e$(7$#\e(B") | |
441 | ("\e$(7"&#>\e(B" . "\e$(7$$\e(B") | |
442 | ("\e$(7"0#>\e(B" . "\e$(7$&\e(B") | |
443 | ("\e$(7"2#>\e(B" . "\e$(7$'\e(B") | |
444 | ("\e$(7"@#>\e(B" . "\e$(7$+\e(B") | |
445 | ("\e$(7"C#>\e(B" . "\e$(7$,\e(B") | |
446 | ("\e$(7"D#>\e(B" . "\e$(7$-\e(B") | |
447 | ("\e$(7"G#>\e(B" . "\e$(7$/\e(B") | |
448 | ("\e$(7"H#>\e(B" . "\e$(7$0\e(B") | |
449 | ("\e$(7"!#B\e(B" . "\e$(7$@\e(B") | |
450 | ("\e$(7"##B\e(B" . "\e$(7$B\e(B") | |
451 | ("\e$(7"5#B\e(B" . "\e$(7$C\e(B") | |
452 | ("\e$(7"7#B\e(B" . "\e$(7$E\e(B") | |
453 | ("\e$(7"9#B\e(B" . "\e$(7$F\e(B") | |
454 | ("\e$(7"!#C\e(B" . "\e$(7$P\e(B") | |
455 | ("\e$(7"##C\e(B" . "\e$(7$R\e(B") | |
456 | ("\e$(7"0#C\e(B" . "\e$(7$S\e(B") | |
457 | ("\e$(7"2#C\e(B" . "\e$(7$U\e(B") | |
458 | ("\e$(7"5#C\e(B" . "\e$(7$V\e(B") | |
459 | ("\e$(7"7#C\e(B" . "\e$(7$X\e(B") | |
460 | ("\e$(7"9#C\e(B" . "\e$(7$Y\e(B") | |
461 | ("\e$(7"G#C\e(B" . "\e$(7$[\e(B") | |
462 | ("\e$(7"H#C\e(B" . "\e$(7$\\e(B") | |
463 | ("\e$(7"(#C\e(B" . "\e$(7$]\e(B") | |
464 | ("\e$(7"!#D\e(B" . "\e$(7$`\e(B") | |
465 | ("\e$(7"##D\e(B" . "\e$(7$a\e(B") | |
466 | ("\e$(7"7#D\e(B" . "\e$(7$b\e(B") | |
467 | ("\e$(7"@#D\e(B" . "\e$(7$c\e(B") | |
468 | ("\e$(7"C#D\e(B" . "\e$(7$d\e(B") | |
469 | ("\e$(7"G#D\e(B" . "\e$(7$e\e(B") | |
470 | ("\e$(7"C#!\e(B" . "\e$(7%!\e(B") | |
471 | ("\e$(7"C##\e(B" . "\e$(7%"\e(B") | |
472 | ("\e$(7"C#(\e(B" . "\e$(7%$\e(B") | |
473 | ("\e$(7"C#0\e(B" . "\e$(7%&\e(B") | |
474 | ("\e$(7"C#2\e(B" . "\e$(7%'\e(B") | |
475 | ("\e$(7"C#4\e(B" . "\e$(7%(\e(B") | |
476 | ("\e$(7"C#7\e(B" . "\e$(7%)\e(B") | |
477 | ("\e$(7"C#9\e(B" . "\e$(7%*\e(B") | |
478 | ("\e$(7"D#!\e(B" . "\e$(7%@\e(B") | |
479 | ("\e$(7"D##\e(B" . "\e$(7%A\e(B") | |
480 | ("\e$(7"D#&\e(B" . "\e$(7%C\e(B") | |
481 | ("\e$(7"D#(\e(B" . "\e$(7%D\e(B") | |
482 | ("\e$(7"D#0\e(B" . "\e$(7%E\e(B") | |
483 | ("\e$(7"D#2\e(B" . "\e$(7%F\e(B") | |
484 | ("\e$(7"D#5\e(B" . "\e$(7%G\e(B") | |
485 | ("\e$(7"D#7\e(B" . "\e$(7%H\e(B") | |
486 | ("\e$(7"D#H\e(B" . "\e$(7%I\e(B") | |
487 | ("\e$(7"G#!\e(B" . "\e$(7%P\e(B") | |
488 | ("\e$(7"G##\e(B" . "\e$(7%Q\e(B") | |
489 | ("\e$(7"G#0\e(B" . "\e$(7%T\e(B") | |
490 | ("\e$(7"G#2\e(B" . "\e$(7%U\e(B") | |
491 | ("\e$(7"G#4\e(B" . "\e$(7%V\e(B") | |
492 | ("\e$(7"G#5\e(B" . "\e$(7%W\e(B") | |
493 | ("\e$(7"G#7\e(B" . "\e$(7%X\e(B") | |
494 | ("\e$(7"G#9\e(B" . "\e$(7%Y\e(B") | |
495 | ("\e$(7!=\e(B" . "\e$(8!=\e(B") ; 2 col <-> 1 col | |
496 | ("\e$(7!?\e(B" . "\e$(8!?\e(B") | |
497 | ("\e$(7!@\e(B" . "\e$(8!@\e(B") | |
498 | ("\e$(7!A\e(B" . "\e$(8!A\e(B") | |
499 | ("\e$(7"`\e(B" . "\e$(8"`\e(B") | |
500 | ("\e$(7!;\e(B" . "\e$(8!;\e(B") | |
501 | ("\e$(7!D\e(B" . "\e$(8!D\e(B") | |
502 | ("\e$(7!>\e(B \e$(7!>\e(B" . "\e2\e$(7!>P\e(B P\e$(7!>\e1\e(B") ; Yes this is dirty. But ... | |
503 | ("\e$(7!4!5!5\e(B" . "\e2\e$(7#RP#SP#SP#S\e1\e(B") | |
504 | ("\e$(7!4!5\e(B" . "\e2\e$(7#RP#SP#S\e1\e(B") | |
505 | ("\e$(7!6\e(B" . "\e2\e$(7#RP#S_!I\e1\e(B") | |
506 | ("\e$(7!4\e(B" . "\e2\e$(7#RP#S\e1\e(B"))) | |
507 | ||
508 | (defvar tibetan-regexp | |
509 | (let ((l (append tibetan-consonant-transcription-alist | |
510 | tibetan-vowel-transcription-alist | |
511 | tibetan-subjoined-transcription-alist)) | |
512 | temp) | |
513 | (setq temp "\\(") | |
514 | (setq temp (concat temp (car (car l)))) | |
515 | (setq l (cdr l)) | |
516 | (while l | |
517 | (setq temp (concat temp "\\|" (car (car l)))) | |
518 | (setq l (cdr l))) | |
519 | (concat temp "\\)$")) | |
520 | "Regexp string to match a romanized Tibetan character component, i.e., | |
521 | base and subjoined consonant, vowel and vowel modifier. The result of matching | |
522 | is to be used for indexing alists at conversion from a roman transcription to | |
523 | the corresponding Tibetan character.") | |
524 | ||
525 | (defvar tibetan-precomposed-regexp | |
526 | (let ((l tibetan-precomposed-transcription-alist) | |
527 | temp) | |
528 | (setq temp "^\\(") | |
529 | (setq temp | |
530 | (concat temp (car (car l)))) | |
531 | (setq l (cdr l)) | |
532 | (while l | |
533 | (setq temp | |
534 | (concat temp "\\|" (car (car l)))) | |
535 | (setq l (cdr l))) | |
536 | (concat temp "\\)")) | |
537 | "Regexp string to match a romanized Tibetan complex consonant. | |
538 | The result of matching is to be used for indexing alists when the input key | |
539 | from an input method is converted to the corresponding precomposed glyph.") | |
540 | ||
541 | (defvar tibetan-precomposition-rule-regexp | |
542 | (let ((l tibetan-precomposition-rule-alist) | |
543 | temp) | |
544 | (setq temp "\\(") | |
545 | (setq temp (concat temp (car (car l)))) | |
546 | (setq l (cdr l)) | |
547 | (while l | |
548 | (setq temp (concat temp "\\|" (car (car l)))) | |
549 | (setq l (cdr l))) | |
550 | (concat temp "\\)")) | |
551 | "Regexp string to match a sequence of Tibetan consonantic components, i.e., | |
552 | one base consonant and one or more subjoined consonants. | |
553 | The result of matching is to be used for indexing alist when the component | |
554 | sequence is converted to the corresponding precomposed glyph. | |
555 | This also matches some punctuation characters which need conversion.") | |
556 | ||
557 | (defvar tibetan-decomposed nil) | |
558 | (defvar tibetan-decomposed-temp nil) | |
559 | ||
560 | ;;; language/tibetan.el ends here |