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