Commit | Line | Data |
---|---|---|
60370d40 | 1 | ;;; chinese.el --- support for Chinese -*- coding: iso-2022-7bit; -*- |
4ed46869 | 2 | |
38141d20 | 3 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 |
d4877ac1 | 4 | ;; Free Software Foundation, Inc. |
7976eda0 | 5 | ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
38141d20 | 6 | ;; 2005, 2006, 2007, 2008 |
eaa61218 KH |
7 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
8 | ;; Registration Number H14PRO021 | |
8f924df7 KH |
9 | ;; Copyright (C) 2003 |
10 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | |
11 | ;; Registration Number H13PRO009 | |
4ed46869 KH |
12 | |
13 | ;; Keywords: multilingual, Chinese | |
14 | ||
15 | ;; This file is part of GNU Emacs. | |
16 | ||
17 | ;; GNU Emacs is free software; you can redistribute it and/or modify | |
18 | ;; it under the terms of the GNU General Public License as published by | |
d7142f3e | 19 | ;; the Free Software Foundation; either version 3, or (at your option) |
4ed46869 KH |
20 | ;; any later version. |
21 | ||
22 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
23 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
24 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
25 | ;; GNU General Public License for more details. | |
26 | ||
27 | ;; You should have received a copy of the GNU General Public License | |
369314dc | 28 | ;; along with GNU Emacs; see the file COPYING. If not, write to the |
3a35cf56 LK |
29 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
30 | ;; Boston, MA 02110-1301, USA. | |
4ed46869 KH |
31 | |
32 | ;;; Commentary: | |
33 | ||
34 | ;; For Chinese, three character sets GB2312, BIG5, and CNS11643 are | |
35 | ;; supported. | |
36 | ||
37 | ;;; Code: | |
38 | ||
39 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
40 | ;;; Chinese (general) | |
41 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
42 | ||
8f924df7 | 43 | |
e1915ab3 | 44 | (define-coding-system 'iso-2022-cn |
8f924df7 KH |
45 | "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)." |
46 | :coding-type 'iso-2022 | |
47 | :mnemonic ?C | |
48 | :charset-list '(ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2) | |
49 | :designation [ascii | |
50 | (nil chinese-gb2312 chinese-cns11643-1) | |
51 | (nil chinese-cns11643-2) | |
52 | nil] | |
53 | :flags '(ascii-at-eol ascii-at-cntl 7-bit | |
54 | designation locking-shift single-shift init-at-bol) | |
6c7c9d23 KH |
55 | :mime-charset 'iso-2022-cn |
56 | :suitable-for-keyboard t) | |
4138c943 KH |
57 | |
58 | (define-coding-system-alias 'chinese-iso-7bit 'iso-2022-cn) | |
59 | ||
e1915ab3 KH |
60 | (define-coding-system 'iso-2022-cn-ext |
61 | "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN-EXT)." | |
62 | :coding-type 'iso-2022 | |
63 | :mnemonic ?C | |
64 | :charset-list '(ascii | |
65 | chinese-gb2312 chinese-cns11643-1 | |
66 | chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4 | |
67 | chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7) | |
68 | :designation '[ascii | |
69 | (nil chinese-gb2312 chinese-cns11643-1) | |
70 | (nil chinese-cns11643-2) | |
71 | (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 | |
72 | chinese-cns11643-6 chinese-cns11643-7)] | |
73 | :flags '(ascii-at-eol ascii-at-cntl 7-bit | |
74 | designation locking-shift single-shift init-at-bol) | |
6c7c9d23 KH |
75 | :mime-charset 'iso-2022-cn-ext |
76 | :suitable-for-keyboard t) | |
4138c943 | 77 | |
335a7ad7 | 78 | \f |
4ed46869 | 79 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
a1506d29 | 80 | ;;; Chinese GB2312 (simplified) |
4ed46869 KH |
81 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
82 | ||
e1915ab3 | 83 | (define-coding-system 'chinese-iso-8bit |
3f885231 | 84 | "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:GB2312)." |
e1915ab3 KH |
85 | :coding-type 'iso-2022 |
86 | :mnemonic ?c | |
87 | :charset-list '(ascii chinese-gb2312) | |
88 | :designation [ascii chinese-gb2312 nil nil] | |
3f885231 | 89 | :mime-charset 'gb2312) |
4ed46869 | 90 | |
71eabd24 RS |
91 | (define-coding-system-alias 'cn-gb-2312 'chinese-iso-8bit) |
92 | (define-coding-system-alias 'euc-china 'chinese-iso-8bit) | |
a18aa841 | 93 | (define-coding-system-alias 'euc-cn 'chinese-iso-8bit) |
4f35555a KH |
94 | (define-coding-system-alias 'cn-gb 'chinese-iso-8bit) |
95 | (define-coding-system-alias 'gb2312 'chinese-iso-8bit) | |
f3f18123 | 96 | |
e1915ab3 | 97 | (define-coding-system 'chinese-hz |
8f924df7 KH |
98 | "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)." |
99 | :coding-type 'utf-8 | |
100 | :mnemonic ?z | |
101 | :charset-list '(ascii chinese-gb2312) | |
102 | :mime-charset 'hz-gb-2312 | |
103 | :post-read-conversion 'post-read-decode-hz | |
104 | :pre-write-conversion 'pre-write-encode-hz) | |
f3f18123 | 105 | |
71eabd24 RS |
106 | (define-coding-system-alias 'hz-gb-2312 'chinese-hz) |
107 | (define-coding-system-alias 'hz 'chinese-hz) | |
4ed46869 | 108 | |
4ed46869 | 109 | (set-language-info-alist |
a564ccf9 | 110 | "Chinese-GB" '((charset chinese-gb2312 chinese-sisheng) |
4138c943 KH |
111 | (coding-system chinese-iso-8bit iso-2022-cn chinese-hz) |
112 | (coding-priority chinese-iso-8bit chinese-big5 iso-2022-cn) | |
a564ccf9 KH |
113 | (input-method . "chinese-py-punct") |
114 | (features china-util) | |
fab8252e | 115 | (sample-text . "Chinese (\e$AVPND\e(B,\e$AFUM(;0\e(B,\e$A::So\e(B) \e$ADc:C\e(B") |
6b61353c KH |
116 | (documentation . "Support for Chinese GB2312 character set.") |
117 | (tutorial . "TUTORIAL.cn")) | |
4138c943 | 118 | '("Chinese")) |
4ed46869 KH |
119 | |
120 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
121 | ;; Chinese BIG5 (traditional) | |
122 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
123 | ||
e1915ab3 KH |
124 | (define-coding-system 'chinese-big5 |
125 | "BIG5 8-bit encoding for Chinese (MIME:Big5)" | |
51574791 | 126 | :coding-type 'charset |
e1915ab3 KH |
127 | :mnemonic ?B |
128 | :charset-list '(ascii big5) | |
d21363d3 | 129 | :mime-charset 'big5) |
4ed46869 | 130 | |
71eabd24 RS |
131 | (define-coding-system-alias 'big5 'chinese-big5) |
132 | (define-coding-system-alias 'cn-big5 'chinese-big5) | |
6eac8f52 | 133 | (define-coding-system-alias 'cp950 'chinese-big5) |
f3f18123 | 134 | |
4ed46869 | 135 | (set-language-info-alist |
a564ccf9 | 136 | "Chinese-BIG5" '((charset chinese-big5-1 chinese-big5-2) |
4138c943 KH |
137 | (coding-system chinese-big5 chinese-iso-7bit) |
138 | (coding-priority chinese-big5 iso-2022-cn chinese-iso-8bit) | |
a564ccf9 | 139 | (input-method . "chinese-py-punct-b5") |
ae144b39 | 140 | (ctext-non-standard-encodings "big5-0") |
a564ccf9 | 141 | (features china-util) |
1e21ea76 | 142 | (sample-text . "Cantonese (\e$(Gemk#\e(B,\e$(Gl]N)fc\e(B) \e$ATg3?\e(B, \e$ADc:C\e(B") |
6b61353c KH |
143 | (documentation . "Support for Chinese Big5 character set.") |
144 | (tutorial . "TUTORIAL.zh")) | |
4138c943 | 145 | '("Chinese")) |
4ed46869 | 146 | |
d69d2591 DL |
147 | (define-coding-system 'chinese-big5-hkscs |
148 | "BIG5-HKSCS 8-bit encoding for Chinese, Hong Kong supplement (MIME:Big5-HKSCS)" | |
149 | :coding-type 'charset | |
150 | :mnemonic ?B | |
151 | :charset-list '(ascii big5-hkscs) | |
152 | :mime-charset 'big5-hkscs) | |
153 | (define-coding-system-alias 'big5-hkscs 'chinese-big5-hkscs) | |
154 | (define-coding-system-alias 'cn-big5-hkscs 'chinese-big5-hkscs) | |
155 | ||
4ed46869 KH |
156 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
157 | ;; Chinese CNS11643 (traditional) | |
158 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
159 | ||
e1915ab3 KH |
160 | (define-coding-system 'euc-tw |
161 | "ISO 2022 based EUC encoding for Chinese CNS11643." | |
162 | :coding-type 'iso-2022 | |
163 | :mnemonic ?Z | |
164 | :charset-list '(ascii | |
165 | chinese-cns11643-1 | |
166 | chinese-cns11643-2 | |
167 | chinese-cns11643-3 | |
168 | chinese-cns11643-4 | |
169 | chinese-cns11643-5 | |
170 | chinese-cns11643-6 | |
171 | chinese-cns11643-7) | |
172 | :designation [ascii chinese-cns11643-1 (chinese-cns11643-1 | |
173 | chinese-cns11643-2 | |
174 | chinese-cns11643-3 | |
175 | chinese-cns11643-4 | |
176 | chinese-cns11643-5 | |
177 | chinese-cns11643-6 | |
178 | chinese-cns11643-7) nil] | |
d21363d3 | 179 | :mime-charset 'euc-tw) |
285aac85 WL |
180 | |
181 | (define-coding-system-alias 'euc-taiwan 'euc-tw) | |
182 | ||
4ed46869 | 183 | (set-language-info-alist |
a564ccf9 | 184 | "Chinese-CNS" '((charset chinese-cns11643-1 chinese-cns11643-2 |
4138c943 KH |
185 | chinese-cns11643-3 chinese-cns11643-4 |
186 | chinese-cns11643-5 chinese-cns11643-6 | |
187 | chinese-cns11643-7) | |
285aac85 WL |
188 | (coding-system iso-2022-cn euc-tw) |
189 | (coding-priority iso-2022-cn euc-tw chinese-big5 | |
190 | chinese-iso-8bit) | |
a564ccf9 KH |
191 | (features china-util) |
192 | (input-method . "chinese-cns-quick") | |
3fc58305 | 193 | ;; Fixme: presumably it won't accept big5 now. |
285aac85 | 194 | (documentation . "\ |
9da20928 | 195 | Support for Chinese CNS character sets. Note that the EUC-TW coding system |
285aac85 | 196 | accepts Big5 for input also (which is then converted to CNS).")) |
4138c943 | 197 | '("Chinese")) |
4ed46869 | 198 | |
9da20928 DL |
199 | (set-language-info-alist |
200 | "Chinese-EUC-TW" '((charset chinese-cns11643-1 chinese-cns11643-2 | |
201 | chinese-cns11643-3 chinese-cns11643-4 | |
202 | chinese-cns11643-5 chinese-cns11643-6 | |
203 | chinese-cns11643-7 chinese-big5-1 chinese-big5-2) | |
204 | (coding-system euc-tw iso-2022-cn) | |
205 | (coding-priority euc-tw chinese-big5 iso-2022-cn | |
206 | chinese-iso-8bit) | |
207 | (features china-util) | |
208 | (input-method . "chinese-cns-quick") | |
209 | (documentation . "\ | |
210 | Support for Chinese, prefering the EUC-TW character set. Note that | |
211 | the EUC-TW coding system accepts Big5 for input also (which is then | |
212 | converted to CNS).")) | |
213 | '("Chinese")) | |
214 | ||
8f924df7 | 215 | |
aee13d0b DL |
216 | ;;; Chinese GBK |
217 | ||
218 | (define-coding-system 'chinese-gbk | |
219 | "GBK encoding for Chinese (MIME:GBK)." | |
220 | :coding-type 'charset | |
221 | :mnemonic ?c | |
1e21ea76 | 222 | :charset-list '(ascii chinese-gbk) |
aee13d0b DL |
223 | :mime-charset 'gbk) |
224 | (define-coding-system-alias 'gbk 'chinese-gbk) | |
225 | (define-coding-system-alias 'cp936 'chinese-gbk) | |
226 | (define-coding-system-alias 'windows-936 'chinese-gbk) | |
227 | ||
228 | (set-language-info-alist | |
229 | "Chinese-GBK" '((charset chinese-gbk) | |
8be04b05 DL |
230 | (coding-system chinese-gbk) |
231 | (coding-priority gbk iso-2022-cn chinese-big5 | |
232 | chinese-iso-8bit) ; fixme? | |
ae144b39 | 233 | (ctext-non-standard-encodings "gbk-0") |
8be04b05 | 234 | (input-method . "chinese-py-punct") ; fixme? |
ae144b39 | 235 | (sample-text . "Chinese (\e$BCfJ8\e(B,\e$BIaDL\e$A;0\e(B,\e$A::So\e(B) \e$(D95\e$B9%\e(B") |
8be04b05 | 236 | (features china-util) |
b1e21c64 KH |
237 | (documentation . "Support for Chinese GBK character set.") |
238 | (tutorial . "TUTORIAL.cn")) | |
8be04b05 DL |
239 | '("Chinese")) |
240 | ||
241 | ;;; Chinese GB18030 | |
242 | ||
243 | (define-coding-system 'chinese-gb18030 | |
244 | "GB18030 encoding for Chinese (MIME:GB18030)." | |
245 | :coding-type 'charset | |
246 | :mnemonic ?c | |
1b1314e0 KH |
247 | :charset-list '(ascii gb18030-2-byte |
248 | gb18030-4-byte-bmp gb18030-4-byte-smp | |
249 | gb18030-4-byte-ext-1 gb18030-4-byte-ext-2) | |
8f924df7 KH |
250 | :mime-charset 'gb18030) |
251 | ||
8be04b05 DL |
252 | (define-coding-system-alias 'gb18030 'chinese-gb18030) |
253 | ||
254 | (set-language-info-alist | |
3d9a29e0 | 255 | "Chinese-GB18030" '((charset gb18030) |
8be04b05 DL |
256 | (coding-system chinese-gb18030) |
257 | (coding-priority gb18030 gbk iso-2022-cn chinese-big5 | |
258 | chinese-iso-8bit) ; fixme? | |
259 | (input-method . "chinese-py-punct") ; fixme? | |
b1e21c64 | 260 | (sample-text . "Chinese (\e$BCfJ8\e(B,\e$BIaDL\e$A;0\e(B,\e$A::So\e(B) \e$(D0_\e$B9%\e(B") |
8be04b05 DL |
261 | (features china-util) |
262 | (documentation | |
b1e21c64 KH |
263 | . "Support for Chinese GB18030 character set.") |
264 | (tutorial . "TUTORIAL.cn")) | |
aee13d0b DL |
265 | '("Chinese")) |
266 | ||
8be04b05 | 267 | ;; Fixme: add HKSCS |
afb2e008 | 268 | |
41da80b1 DL |
269 | (provide 'chinese) |
270 | ||
cbee283d | 271 | ;; arch-tag: b82fcf7a-84f6-4e0b-b38c-1742dac0e09f |
4ed46869 | 272 | ;;; chinese.el ends here |