| 1 |
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 |
|
|---|
| 28 |
|
|---|
| 29 |
|
|---|
| 30 |
|
|---|
| 31 |
(require 'quail) |
|---|
| 32 |
(require 'thai-util) |
|---|
| 33 |
|
|---|
| 34 |
(defmacro thai-generate-quail-map (translation-table) |
|---|
| 35 |
(let (map) |
|---|
| 36 |
(dotimes (i (length translation-table)) |
|---|
| 37 |
(let ((trans (aref translation-table i))) |
|---|
| 38 |
(when (not (eq trans 0)) |
|---|
| 39 |
(if (> (length trans) 1) |
|---|
| 40 |
(setq trans (vector trans)) |
|---|
| 41 |
(setq trans (aref trans 0))) |
|---|
| 42 |
(setq map (cons (list (char-to-string i) trans) map))))) |
|---|
| 43 |
`(quail-define-rules ,@map))) |
|---|
| 44 |
|
|---|
| 45 |
|
|---|
| 46 |
|
|---|
| 47 |
(quail-define-package |
|---|
| 48 |
"thai-kesmanee" "Thai" ",T!!(B>" t |
|---|
| 49 |
"Thai Kesmanee input method with TIS620 keyboard layout |
|---|
| 50 |
|
|---|
| 51 |
The difference from the ordinal Thai keyboard: |
|---|
| 52 |
',T_(B' and ',To(B' are assigned to '\\' and '|' respectively, |
|---|
| 53 |
',T#(B' and ',T%(B' are assigned to '`' and '~' respectively, |
|---|
| 54 |
Don't know where to assign characters ',Tz(B' and ',T{(B'." |
|---|
| 55 |
nil t t t t nil nil nil nil nil t) |
|---|
| 56 |
|
|---|
| 57 |
(quail-install-map |
|---|
| 58 |
(thai-generate-quail-map |
|---|
| 59 |
[ |
|---|
| 60 |
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|---|
| 61 |
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|---|
| 62 |
|
|---|
| 63 |
|
|---|
| 64 |
|
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 |
|
|---|
| 68 |
|
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 |
|
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
0 "+" "." ",Tr(B" ",Ts(B" ",Tt(B" ",T_(B" ",T'(B" |
|---|
| 77 |
",Tv(B" ",Tw(B" ",Tu(B" ",Ty(B" ",TA(B" ",T"(B" ",Tc(B" ",T=(B" ; ( .. / |
|---|
| 78 |
,T((B" ",Te(B" "/" "-" ",T@(B" ",T6(B" ",TX(B" ",TV(B" ; 0 .. 7 |
|---|
| 79 |
,T$(B" ",T5(B" ",T+(B" ",TG(B" ",T2(B" ",T*(B" ",TL(B" ",TF(B" ; 8 .. ? |
|---|
| 80 |
,Tq(B" ",TD(B" ",TZ(B" ",T)(B" ",T/(B" ",T.(B" ",Tb(B" ",T,(B" ; @ .. G |
|---|
| 81 |
,Tg(B" ",T3(B" ",Tk(B" ",TI(B" ",TH(B" "?" ",Tl(B" ",TO(B" ; H .. O |
|---|
| 82 |
,T-(B" ",Tp(B" ",T1(B" ",T&(B" ",T8(B" ",Tj(B" ",TN(B" "\"" |
|---|
| 83 |
"\)" ",Tm(B" "\(" ",T:(B" ",T#(B" ",TE(B" ",TY(B" ",Tx(B" |
|---|
| 84 |
"_" ",T?(B" ",TT(B" ",Ta(B" ",T!(B" ",TS(B" ",T4(B" ",T`(B" |
|---|
| 85 |
",Ti(B" ",TC(B" ",Th(B" ",TR(B" ",TJ(B" ",T7(B" ",TW(B" ",T9(B" |
|---|
| 86 |
",TB(B" ",Tf(B" ",T>(B" ",TK(B" ",TP(B" ",TU(B" ",TM(B" ",Td(B" |
|---|
| 87 |
",T;(B" ",TQ(B" ",T<(B" ",T0(B" ",T%(B" "," "%" 0 |
|---|
| 88 |
])) |
|---|
| 89 |
|
|---|
| 90 |
|
|---|
| 91 |
|
|---|
| 92 |
|
|---|
| 93 |
|
|---|
| 94 |
(quail-define-package |
|---|
| 95 |
"thai-pattachote" "Thai" ",T!;(B>" t |
|---|
| 96 |
"Thai Pattachote input method with TIS620 keyboard layout" |
|---|
| 97 |
nil t t t t nil nil nil nil nil t) |
|---|
| 98 |
|
|---|
| 99 |
(quail-install-map |
|---|
| 100 |
(thai-generate-quail-map |
|---|
| 101 |
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|---|
| 102 |
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|---|
| 103 |
0 "+" ",T1(B" "/" "," "?" "_" ",T"(B" ; SPC .. ' |
|---|
| 104 |
(" ")" "." "%" ",TP(B" ",Tq(B" ",T((B" ",T>(B" ; ( .. / |
|---|
| 105 |
,Tp(B" "=" ",Tr(B" ",Ts(B" ",Tt(B" ",Tu(B" ",TY(B" ",Tw(B" ; 0 .. 7 |
|---|
| 106 |
,Tx(B" ",Ty(B" ",T&(B" ",Td(B" ",T?(B" ",Tv(B" ",T2(B" ",TL(B" ; 8 .. ? |
|---|
| 107 |
\"" ",Tk(B" ",TQ(B" ",T0(B" ",TS(B" ",Tf(B" ",T3(B" ",Tl(B" |
|---|
| 108 |
",TW(B" ",T+(B" ",T<(B" ",T*(B" ",Tb(B" ",TN(B" ",TH(B" ",T6(B" |
|---|
| 109 |
",T2(B" ",Tj(B" ",T-(B" ",T8(B" ",TI(B" ",T=(B" ",T@(B" ",TD(B" |
|---|
| 110 |
",T.(B" ",TV(B" ",T.(B" ",Tc(B" ",TZ(B" ",T2(B" ",TX(B" "-" |
|---|
| 111 |
",T#(B" ",Ti(B" ",TT(B" ",TE(B" ",T'(B" ",TB(B" ",T!(B" ",TQ(B" |
|---|
| 112 |
",TU(B" ",TA(B" ",TR(B" ",T9(B" ",T`(B" ",TJ(B" ",T$(B" ",TG(B" |
|---|
| 113 |
",Ta(B" ",Tg(B" ",TM(B" ",T7(B" ",TC(B" ",T4(B" ",TK(B" ",T5(B" |
|---|
| 114 |
",T;(B" ",Th(B" ",T:(B" ",TO(B" ",Tm(B" ",TF(B" ",T%(B" 0 |
|---|
| 115 |
])) |
|---|
| 116 |
|
|---|
| 117 |
|
|---|
| 118 |
|
|---|
| 119 |
|
|---|