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