Mercurial > emacs
comparison lisp/language/chinese.el @ 17765:9c4845e8101d
Make functions setup-LANGUAGE-environment
interactive and add new functions describe-LANGUAGE-support for
all LANGUAGEs supported. Remove resisterations of input methods
which use the function encoded-kbd-select-terminal.
(pre-write-encode-hz): Make it work for the
case the arg FROM is a string.
(setup-chinese-cns-environemnt): Set default-input-method to
quail-quich-cns.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 12 May 1997 07:00:05 +0000 |
parents | 07f0a1e07d1e |
children | 084d922fcd78 |
comparison
equal
deleted
inserted
replaced
17764:561a8476368f | 17765:9c4845e8101d |
---|---|
44 nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil | 44 nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil |
45 init-bol)) | 45 init-bol)) |
46 | 46 |
47 (define-coding-system-alias 'iso-2022-cn 'iso-2022-cn-ext) | 47 (define-coding-system-alias 'iso-2022-cn 'iso-2022-cn-ext) |
48 | 48 |
49 (set-language-info | 49 (defun describe-chinese-support () |
50 "Chinese" 'documentation | 50 "Describe how Emacs supports Chinese." |
51 "Emacs provides three kinds of Chinese support: Chinese-GB, | 51 (interactive) |
52 Chinese-BIG5, and Chinese-CNS. Please specify one of them to get more | 52 (with-output-to-temp-buffer "*Help*" |
53 information.") | 53 (princ (get-language-info "Chinese" 'documentation)) |
54 (princ "\n"))) | |
55 | |
56 (set-language-info-alist | |
57 "Chinese" '((describe-function . describe-chinese-support) | |
58 (documentation . "\ | |
59 Emacs provides the following three kinds of Chinese support: | |
60 Chinese-GB: for users of the charset GB2312 | |
61 Chinese-BIG5: for users of the charset Big5 | |
62 Chinese-CNS: for users of the charset CNS11643 family | |
63 Please specify one of them to get more information.") | |
64 )) | |
54 | 65 |
55 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 66 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
56 ;;; Chinese GB2312 (simplified) | 67 ;;; Chinese GB2312 (simplified) |
57 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 68 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
58 | 69 |
79 | 90 |
80 (defun pre-write-encode-hz (from to) | 91 (defun pre-write-encode-hz (from to) |
81 (let ((buf (current-buffer)) | 92 (let ((buf (current-buffer)) |
82 (work (get-buffer-create " *pre-write-encoding-work*"))) | 93 (work (get-buffer-create " *pre-write-encoding-work*"))) |
83 (set-buffer work) | 94 (set-buffer work) |
84 (widen) | |
85 (erase-buffer) | 95 (erase-buffer) |
86 (insert-buffer-substring buf from to) | 96 (if (stringp from) |
97 (insert from) | |
98 (insert-buffer-substring buf from to)) | |
87 (encode-hz-region 1 (point-max)) | 99 (encode-hz-region 1 (point-max)) |
88 nil)) | 100 nil)) |
89 | 101 |
90 (register-input-method | 102 (register-input-method |
91 "Chinese-GB" '("cxterm-gb" encoded-kbd-select-terminal cn-gb-2312)) | |
92 (register-input-method | |
93 "Chinese-GB" '("quail-ccdospy" quail-use-package "quail/ccdospy")) | 103 "Chinese-GB" '("quail-ccdospy" quail-use-package "quail/ccdospy")) |
94 (register-input-method | 104 (register-input-method |
95 "Chinese-GB" '("quail-ctlau" quail-use-package "quail/ctlau")) | 105 "Chinese-GB" '("quail-ctlau" quail-use-package "quail/ctlau")) |
96 (register-input-method | 106 (register-input-method |
97 "Chinese-GB" '("quail-punct" quail-use-package "quail/punct")) | 107 "Chinese-GB" '("quail-punct" quail-use-package "quail/punct")) |
105 "Chinese-GB" '("quail-tonepy" quail-use-package "quail/tonepy")) | 115 "Chinese-GB" '("quail-tonepy" quail-use-package "quail/tonepy")) |
106 (register-input-method | 116 (register-input-method |
107 "Chinese-GB" '("quail-py" quail-use-package "quail/py")) | 117 "Chinese-GB" '("quail-py" quail-use-package "quail/py")) |
108 | 118 |
109 (defun setup-chinese-gb-environment () | 119 (defun setup-chinese-gb-environment () |
120 "Setup multilingual environment (MULE) for Chinese GB2312 users." | |
121 (interactive) | |
110 (setq primary-language "Chinese-GB") | 122 (setq primary-language "Chinese-GB") |
111 | 123 |
112 (setq coding-category-iso-8-2 'cn-gb-2312) | 124 (setq coding-category-iso-8-2 'cn-gb-2312) |
113 (setq coding-category-iso-else 'iso-2022-cn) | 125 (setq coding-category-iso-else 'iso-2022-cn) |
114 (setq coding-category-big5 'cn-big5) | 126 (setq coding-category-big5 'cn-big5) |
127 (set-keyboard-coding-system 'cn-gb-2312) | 139 (set-keyboard-coding-system 'cn-gb-2312) |
128 | 140 |
129 (setq default-input-method '("Chinese-GB" . "quail-py")) | 141 (setq default-input-method '("Chinese-GB" . "quail-py")) |
130 ) | 142 ) |
131 | 143 |
132 (set-language-info-alist | 144 (defun describe-chinese-gb-support () |
133 "Chinese-GB" '((documentation . t) | 145 "Describe how Emacs supports Chinese for GB2312 users." |
134 (setup-function . setup-chinese-gb-environment) | 146 (interactive) |
147 (describe-language-support-internal "Chinese-GB")) | |
148 | |
149 (set-language-info-alist | |
150 "Chinese-GB" '((setup-function . setup-chinese-gb-environment) | |
151 (describe-function . describe-chinese-gb-support) | |
135 (charset . (chinese-gb2312 chinese-sisheng)) | 152 (charset . (chinese-gb2312 chinese-sisheng)) |
136 (coding-system . (cn-gb-2312 hz-gb-2312 iso-2022-cn)) | 153 (coding-system . (cn-gb-2312 hz-gb-2312 iso-2022-cn)) |
137 (documentation . t) | 154 (sample-text . "Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B) $ADc:C(B") |
138 (sample-text . "Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B) $ADc:C(B"))) | 155 (documentation . nil))) |
139 | 156 |
140 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 157 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
141 ;; Chinese BIG5 (traditional) | 158 ;; Chinese BIG5 (traditional) |
142 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 159 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
143 | 160 |
164 | 181 |
165 (setq font-ccl-encoder-alist | 182 (setq font-ccl-encoder-alist |
166 (cons (cons "big5" ccl-encode-big5-font) font-ccl-encoder-alist)) | 183 (cons (cons "big5" ccl-encode-big5-font) font-ccl-encoder-alist)) |
167 | 184 |
168 (register-input-method | 185 (register-input-method |
169 "Chinese-BIG5" '("cxterm-big5" encoded-kbd-select-terminal big5)) | |
170 (register-input-method | |
171 "Chinese-BIG5" '("quail-qj-b5" quail-use-package "quail/qj-b5")) | 186 "Chinese-BIG5" '("quail-qj-b5" quail-use-package "quail/qj-b5")) |
172 (register-input-method | 187 (register-input-method |
173 "Chinese-BIG5" '("quail-zozy" quail-use-package "quail/zozy")) | 188 "Chinese-BIG5" '("quail-zozy" quail-use-package "quail/zozy")) |
174 (register-input-method | 189 (register-input-method |
175 "Chinese-BIG5" '("quail-tsangchi-b5" quail-use-package "quail/tsangchi-b5")) | 190 "Chinese-BIG5" '("quail-tsangchi-b5" quail-use-package "quail/tsangchi-b5")) |
187 "Chinese-BIG5" '("quail-array30" quail-use-package "quail/array30")) | 202 "Chinese-BIG5" '("quail-array30" quail-use-package "quail/array30")) |
188 (register-input-method | 203 (register-input-method |
189 "Chinese-BIG5" '("quail-4corner" quail-use-package "quail/4corner")) | 204 "Chinese-BIG5" '("quail-4corner" quail-use-package "quail/4corner")) |
190 | 205 |
191 (defun setup-chinese-big5-environment () | 206 (defun setup-chinese-big5-environment () |
207 "Setup multilingual environment (MULE) for Chinese Big5 users." | |
208 (interactive) | |
192 (setq primary-language "Chinese-BIG5") | 209 (setq primary-language "Chinese-BIG5") |
193 | 210 |
194 (setq coding-category-big5 'cn-big5) | 211 (setq coding-category-big5 'cn-big5) |
195 (setq coding-category-iso-else 'iso-2022-cn) | 212 (setq coding-category-iso-else 'iso-2022-cn) |
196 (setq coding-category-iso-8-2 'cn-gb-2312) | 213 (setq coding-category-iso-8-2 'cn-gb-2312) |
206 (set-keyboard-coding-system 'cn-big5) | 223 (set-keyboard-coding-system 'cn-big5) |
207 | 224 |
208 (setq default-input-method '("Chinese-BIG5" . "quail-py-b5")) | 225 (setq default-input-method '("Chinese-BIG5" . "quail-py-b5")) |
209 ) | 226 ) |
210 | 227 |
228 (defun describe-chinese-big5-support () | |
229 "Describe how Emacs supports Chinese for Big5 users." | |
230 (interactive) | |
231 (describe-language-support-internal "Chinese-BIG5")) | |
232 | |
211 (set-language-info-alist | 233 (set-language-info-alist |
212 "Chinese-BIG5" '((setup-function . setup-chinese-big5-environment) | 234 "Chinese-BIG5" '((setup-function . setup-chinese-big5-environment) |
235 (describe-function . describe-chinese-big5-support) | |
213 (charset . (chinese-big5-1 chinese-big5-2)) | 236 (charset . (chinese-big5-1 chinese-big5-2)) |
214 (coding-system . (cn-big5 iso-2022-cn)) | 237 (coding-system . (cn-big5 iso-2022-cn)) |
215 (documentation . t) | 238 (sample-text . "Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B") |
216 (sample-text . "Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B"))) | 239 (documentation . nil))) |
217 | 240 |
218 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 241 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
219 ;; Chinese CNS11643 (traditional) | 242 ;; Chinese CNS11643 (traditional) |
220 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 243 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
221 | 244 |
223 "Chinese-CNS" '("quail-quick-cns" quail-use-package "quail/quick-cns")) | 246 "Chinese-CNS" '("quail-quick-cns" quail-use-package "quail/quick-cns")) |
224 (register-input-method | 247 (register-input-method |
225 "Chinese-CNS" '("quail-tsangchi-cns" quail-use-package "quail/tsangchi-cns")) | 248 "Chinese-CNS" '("quail-tsangchi-cns" quail-use-package "quail/tsangchi-cns")) |
226 | 249 |
227 (defun setup-chinese-cns-environment () | 250 (defun setup-chinese-cns-environment () |
251 "Setup multilingual environment (MULE) for Chinese CNS11643 family users." | |
252 (interactive) | |
228 (setq primary-language "Chinese-CNS") | 253 (setq primary-language "Chinese-CNS") |
229 | 254 |
230 (setq coding-category-iso-else 'iso-2022-cn) | 255 (setq coding-category-iso-else 'iso-2022-cn) |
231 (setq coding-category-big5 'cn-big5) | 256 (setq coding-category-big5 'cn-big5) |
232 (setq coding-category-iso-8-2 'cn-gb-2312) | 257 (setq coding-category-iso-8-2 'cn-gb-2312) |
239 | 264 |
240 (setq-default buffer-file-coding-system 'iso-2022-cn) | 265 (setq-default buffer-file-coding-system 'iso-2022-cn) |
241 (set-terminal-coding-system 'iso-2022-cn) | 266 (set-terminal-coding-system 'iso-2022-cn) |
242 (set-keyboard-coding-system 'iso-2022-cn) | 267 (set-keyboard-coding-system 'iso-2022-cn) |
243 | 268 |
244 (setq default-input-method '("Chinese-CNS" . "quail-py-cns")) | 269 (setq default-input-method '("Chinese-CNS" . "quail-quick-cns")) |
245 ) | 270 ) |
246 | 271 |
272 (defun describe-chinese-cns-support () | |
273 "Describe how Emacs supports Chinese for CNS11643 family users." | |
274 (interactive) | |
275 (describe-language-support-internal "Chinese-CNS")) | |
276 | |
247 (set-language-info-alist | 277 (set-language-info-alist |
248 "Chinese-CNS" '((setup-function . setup-chinese-cns-environment) | 278 "Chinese-CNS" '((setup-function . setup-chinese-cns-environment) |
279 (describe-function . describe-chinese-cns-support) | |
249 (charset . (chinese-cns11643-1 chinese-cns11643-2 | 280 (charset . (chinese-cns11643-1 chinese-cns11643-2 |
250 chinese-cns11643-3 chinese-cns11643-4 | 281 chinese-cns11643-3 chinese-cns11643-4 |
251 chinese-cns11643-5 chinese-cns11643-6 | 282 chinese-cns11643-5 chinese-cns11643-6 |
252 chinese-cns11643-7)) | 283 chinese-cns11643-7)) |
253 (coding-system . (iso-2022-cn)) | 284 (coding-system . (iso-2022-cn)) |
254 (documentation . t))) | 285 (documentation . nil))) |
255 | 286 |
256 ;;; chinese.el ends here | 287 ;;; chinese.el ends here |