summaryrefslogtreecommitdiff
path: root/includes/zhtable
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2006-10-11 18:12:39 +0000
committerPierre Schmitz <pierre@archlinux.de>2006-10-11 18:12:39 +0000
commit183851b06bd6c52f3cae5375f433da720d410447 (patch)
treea477257decbf3360127f6739c2f9d0ec57a03d39 /includes/zhtable
MediaWiki 1.7.1 wiederhergestellt
Diffstat (limited to 'includes/zhtable')
-rw-r--r--includes/zhtable/Makefile268
-rw-r--r--includes/zhtable/README16
-rw-r--r--includes/zhtable/printutf8.c99
-rw-r--r--includes/zhtable/simp2trad.manual178
-rw-r--r--includes/zhtable/toCN.manual331
-rw-r--r--includes/zhtable/toHK.manual211
-rw-r--r--includes/zhtable/toSG.manual15
-rw-r--r--includes/zhtable/toTW.manual309
-rw-r--r--includes/zhtable/trad2simp.manual15
-rw-r--r--includes/zhtable/tradphrases.manual149
10 files changed, 1591 insertions, 0 deletions
diff --git a/includes/zhtable/Makefile b/includes/zhtable/Makefile
new file mode 100644
index 00000000..30679fbb
--- /dev/null
+++ b/includes/zhtable/Makefile
@@ -0,0 +1,268 @@
+#
+# Creating the file ZhConversion.php used for Simplified/Traditional
+# Chinese conversion. It gets the basic conversion table from the Unihan
+# database, and construct the phrase tables using phrase libraries in
+# the SCIM packages and the libtabe package. There are also special
+# tables used to for adjustment.
+#
+
+GREP = LANG=zh_CN.UTF8 grep
+SED = LANG=zh_CN.UTF8 sed
+DIFF = LANG=zh_CN.UTF8 diff
+CC ?= gcc
+
+#installation directory
+INSTDIR = /usr/local/share/zhdaemons/
+
+all: ZhConversion.php tradphrases.notsure simpphrases.notsure wordlist toCN.dict toTW.dict toHK.dict toSG.dict
+
+Unihan.txt:
+ wget -nc ftp://ftp.unicode.org/Public/UNIDATA/Unihan.zip
+ unzip -q Unihan.zip
+
+EZ.txt.in:
+ wget -nc http://easynews.dl.sourceforge.net/sourceforge/scim/scim-tables-0.5.1.tar.gz
+ tar -xzf scim-tables-0.5.1.tar.gz -O scim-tables-0.5.1/zh/EZ.txt.in > EZ.txt.in
+
+phrase_lib.txt:
+ wget -nc http://easynews.dl.sourceforge.net/sourceforge/scim/scim-pinyin-0.5.0.tar.gz
+ tar -xzf scim-pinyin-0.5.0.tar.gz -O scim-pinyin-0.5.0/data/phrase_lib.txt > phrase_lib.txt
+
+tsi.src:
+ wget -nc http://unc.dl.sourceforge.net/sourceforge/libtabe/libtabe-0.2.3.tgz
+ tar -xzf libtabe-0.2.3.tgz -O libtabe/tsi-src/tsi.src > tsi.src
+
+wordlist: phrase_lib.txt EZ.txt.in tsi.src
+ iconv -c -f big5 -t utf8 tsi.src | $(SED) 's/# //g' | $(SED) 's/[ ][0-9].*//' > wordlist
+ $(SED) 's/\(.*\)\t[0-9][0-9]*.*/\1/' phrase_lib.txt | $(SED) '1,5d' >>wordlist
+ $(SED) '1,/BEGIN_TABLE/d' EZ.txt.in | colrm 1 8 | $(SED) 's/\t.*//' | $(GREP) "^...*" >> wordlist
+ sort wordlist | uniq | $(SED) 's/ //g' > t
+ mv t wordlist
+
+printutf8: printutf8.c
+ $(CC) -o printutf8 printutf8.c
+
+unihan.t2s.t: Unihan.txt printutf8
+ $(GREP) kSimplifiedVariant Unihan.txt | $(SED) '/#/d' | $(SED) 's/kSimplifiedVariant//' | ./printutf8 > unihan.t2s.t
+
+trad2simp.t: trad2simp.manual unihan.t2s.t
+ cp unihan.t2s.t tmp1
+ for I in `colrm 11 < trad2simp.manual` ; do $(SED) "/^$$I/d" tmp1 > tmp2; mv tmp2 tmp1; done
+ cat trad2simp.manual tmp1 > trad2simp.t
+
+unihan.s2t.t: Unihan.txt printutf8
+ $(GREP) kTraditionalVariant Unihan.txt | $(SED) '/#/d' | $(SED) 's/kTraditionalVariant//' | ./printutf8 > unihan.s2t.t
+
+simp2trad.t: unihan.s2t.t simp2trad.manual
+ cp unihan.s2t.t tmp1
+ for I in `colrm 11 < simp2trad.manual` ; do $(SED) "/^$$I/d" tmp1 > tmp2; mv tmp2 tmp1; done
+ cat simp2trad.manual tmp1 > simp2trad.t
+
+t2s_1tomany.t: trad2simp.t
+ $(GREP) -s ".\{19,\}" trad2simp.t | $(SED) 's/U+...../"/' | $(SED) 's/|U+...../"=>"/' | $(SED) 's/|U+.....//g' | $(SED) 's/|/",/' > t2s_1tomany.t
+
+t2s_1to1.t: trad2simp.t s2t_1tomany.t
+ $(SED) "/.*|.*|.*|.*/d" trad2simp.t | $(SED) 's/U+[0-9a-z][0-9a-z]*/"/' | $(SED) 's/|U+[0-9a-z][0-9a-z]*/"=>"/' | $(SED) 's/|/",/' > t2s_1to1.t
+ $(GREP) '"."=>"..",' s2t_1tomany.t | $(SED) 's/\("."\)=>".\(.\)",/"\2"=>\1,/' >> t2s_1to1.t
+ $(GREP) '"."=>"...",' s2t_1tomany.t | $(SED) 's/\("."\)=>".\(.\).",/"\2"=>\1,/' >> t2s_1to1.t
+ $(GREP) '"."=>"...",' s2t_1tomany.t | $(SED) 's/\("."\)=>"..\(.\)",/"\2"=>\1,/' >> t2s_1to1.t
+ $(GREP) '"."=>"....",' s2t_1tomany.t | $(SED) 's/\("."\)=>".\(.\)..",/"\2"=>\1,/' >> t2s_1to1.t
+ $(GREP) '"."=>"....",' s2t_1tomany.t | $(SED) 's/\("."\)=>"..\(.\).",/"\2"=>\1,/' >> t2s_1to1.t
+ $(GREP) '"."=>"....",' s2t_1tomany.t | $(SED) 's/\("."\)=>"...\(.\)",/"\2"=>\1,/' >> t2s_1to1.t
+ sort t2s_1to1.t | uniq > t
+ mv t t2s_1to1.t
+
+
+s2t_1tomany.t: simp2trad.t
+ $(GREP) -s ".\{19,\}" simp2trad.t | $(SED) 's/U+...../"/' | $(SED) 's/|U+...../"=>"/' | $(SED) 's/|U+.....//g' | $(SED) 's/|/",/' > s2t_1tomany.t
+
+s2t_1to1.t: simp2trad.t t2s_1tomany.t
+ $(SED) "/.*|.*|.*|.*/d" simp2trad.t | $(SED) 's/U+[0-9a-z][0-9a-z]*/"/' | $(SED) 's/|U+[0-9a-z][0-9a-z]*/"=>"/' | $(SED) 's/|/",/' > s2t_1to1.t
+ $(GREP) '"."=>"..",' t2s_1tomany.t | $(SED) 's/\("."\)=>".\(.\)",/"\2"=>\1,/' >> s2t_1to1.t
+ $(GREP) '"."=>"...",' t2s_1tomany.t | $(SED) 's/\("."\)=>".\(.\).",/"\2"=>\1,/' >> s2t_1to1.t
+ $(GREP) '"."=>"...",' t2s_1tomany.t | $(SED) 's/\("."\)=>"..\(.\)",/"\2"=>\1,/' >> s2t_1to1.t
+ $(GREP) '"."=>"....",' t2s_1tomany.t | $(SED) 's/\("."\)=>".\(.\)..",/"\2"=>\1,/' >> s2t_1to1.t
+ $(GREP) '"."=>"....",' t2s_1tomany.t | $(SED) 's/\("."\)=>"..\(.\).",/"\2"=>\1,/' >> s2t_1to1.t
+ $(GREP) '"."=>"....",' t2s_1tomany.t | $(SED) 's/\("."\)=>"...\(.\)",/"\2"=>\1,/' >> s2t_1to1.t
+ sort s2t_1to1.t | uniq > t
+ mv t s2t_1to1.t
+
+tphrase.t: EZ.txt.in tsi.src
+ colrm 1 8 < EZ.txt.in | $(SED) 's/\t//g' | $(GREP) "^.\{2,4\}[0-9]" | $(SED) 's/[0-9]//g' > t
+ iconv -c -f big5 -t utf8 tsi.src | $(SED) 's/ [0-9].*//g' | $(SED) 's/[# ]//g'| $(GREP) "^.\{2,4\}" >> t
+ sort t | uniq > tphrase.t
+
+alltradphrases.t: tphrase.t s2t_1tomany.t
+ for i in `cat s2t_1tomany.t | $(SED) 's/.*=>".//' | $(SED) 's/"//g' |$(SED) 's/,/\n/' | $(SED) 's/\(.\)/\1\n/g' |sort | uniq`; do $(GREP) -s $$i tphrase.t ; done > alltradphrases.t || true
+
+
+tradphrases_2.t: alltradphrases.t
+ cat alltradphrases.t | $(GREP) "^..$$" | sort | uniq > tradphrases_2.t
+
+tradphrases_3.t: alltradphrases.t
+ cat alltradphrases.t | $(GREP) "^...$$" | sort | uniq > tradphrases_3.t
+ for i in `cat tradphrases_2.t`; do $(GREP) $$i tradphrases_3.t ; done | sort | uniq > t3 || true
+ $(DIFF) t3 tradphrases_3.t | $(GREP) ">" | $(SED) 's/> //' > t
+ mv t tradphrases_3.t
+
+
+tradphrases_4.t: alltradphrases.t
+ cat alltradphrases.t | $(GREP) "^....$$" | sort | uniq > tradphrases_4.t
+ for i in `cat tradphrases_2.t`; do $(GREP) $$i tradphrases_4.t ; done | sort | uniq > t3 || true
+ $(DIFF) t3 tradphrases_4.t | $(GREP) ">" | $(SED) 's/> //' > t
+ mv t tradphrases_4.t
+ for i in `cat tradphrases_3.t`; do $(GREP) $$i tradphrases_4.t ; done | sort | uniq > t3 || true
+ $(DIFF) t3 tradphrases_4.t | $(GREP) ">" | $(SED) 's/> //' > t
+ mv t tradphrases_4.t
+
+tradphrases.t: tradphrases.manual tradphrases_2.t tradphrases_3.t tradphrases_4.t t2s_1tomany.t
+ cat tradphrases.manual tradphrases_2.t tradphrases_3.t tradphrases_4.t |sort | uniq > tradphrases.t
+ for i in `$(SED) 's/"\(.\).*/\1/' t2s_1tomany.t ` ; do $(GREP) $$i tradphrases.t ; done | $(DIFF) tradphrases.t - | $(GREP) '<' | $(SED) 's/< //' > t
+ mv t tradphrases.t
+
+tradphrases.notsure: tradphrases_2.t tradphrases_3.t tradphrases_4.t t2s_1tomany.t
+ cat tradphrases_2.t tradphrases_3.t tradphrases_4.t |sort | uniq > t
+ for i in `$(SED) 's/"\(.\).*/\1/' t2s_1tomany.t ` ; do $(GREP) $$i t; done | $(DIFF) t - | $(GREP) '>' | $(SED) 's/> //' > tradphrases.notsure
+
+
+ph.t: phrase_lib.txt
+ $(SED) 's/[\t0-9a-zA-Z]//g' phrase_lib.txt | $(GREP) "^.\{2,4\}$$" > ph.t
+
+allsimpphrases.t: ph.t
+ rm -f allsimpphrases.t
+ for i in `cat t2s_1tomany.t | $(SED) 's/.*=>".//' | $(SED) 's/"//g' | $(SED) 's/,/\n/' | $(SED) 's/\(.\)/\1\n/g' | sort | uniq `; do $(GREP) $$i ph.t >> allsimpphrases.t; done
+
+simpphrases_2.t: allsimpphrases.t
+ cat allsimpphrases.t | $(GREP) "^..$$" | sort | uniq > simpphrases_2.t
+
+simpphrases_3.t: allsimpphrases.t
+ cat allsimpphrases.t | $(GREP) "^...$$" | sort | uniq > simpphrases_3.t
+ for i in `cat simpphrases_2.t`; do $(GREP) $$i simpphrases_3.t ; done | sort | uniq > t3 || true
+ $(DIFF) t3 simpphrases_3.t | $(GREP) ">" | $(SED) 's/> //' > t
+ mv t simpphrases_3.t
+
+simpphrases_4.t: allsimpphrases.t
+ cat allsimpphrases.t | $(GREP) "^....$$" | sort | uniq > simpphrases_4.t
+ rm -f t
+ for i in `cat simpphrases_2.t`; do $(GREP) $$i simpphrases_4.t >> t; done || true
+ sort t | uniq > t3
+ $(DIFF) t3 simpphrases_4.t | $(GREP) ">" | $(SED) 's/> //' > t
+ mv t simpphrases_4.t
+ for i in `cat simpphrases_3.t`; do $(GREP) $$i simpphrases_4.t; done | sort | uniq > t3 || true
+ $(DIFF) t3 simpphrases_4.t | $(GREP) ">" | $(SED) 's/> //' > t
+ mv t simpphrases_4.t
+
+simpphrases.t:simpphrases_2.t simpphrases_3.t simpphrases_4.t t2s_1tomany.t
+ cat simpphrases_2.t simpphrases_3.t simpphrases_4.t > simpphrases.t
+ for i in `$(SED) 's/"\(.\).*/\1/' t2s_1tomany.t ` ; do $(GREP) $$i simpphrases.t ; done | $(DIFF) simpphrases.t - | $(GREP) '<' | $(SED) 's/< //' > t
+ mv t simpphrases.t
+
+
+simpphrases.notsure:simpphrases_2.t simpphrases_3.t simpphrases_4.t t2s_1tomany.t
+ cat simpphrases_2.t simpphrases_3.t simpphrases_4.t > t
+ for i in `$(SED) 's/"\(.\).*/\1/' t2s_1tomany.t ` ; do $(GREP) $$i t ; done | $(DIFF) t - | $(GREP) '>' | $(SED) 's/> //' > simpphrases.notsure
+
+trad2simp1to1.t: t2s_1tomany.t t2s_1to1.t
+ $(SED) 's/\(.......\).*/\1",/' t2s_1tomany.t > trad2simp1to1.t
+ cat t2s_1to1.t >> trad2simp1to1.t
+
+simp2trad1to1.t: s2t_1tomany.t s2t_1to1.t
+ $(SED) 's/\(.......\).*/\1",/' s2t_1tomany.t > simp2trad1to1.t
+ cat s2t_1to1.t >> simp2trad1to1.t
+
+trad2simp.php: trad2simp1to1.t tradphrases.t
+ printf '<?php\n$$trad2simp=array(' > trad2simp.php
+ cat trad2simp1to1.t >> trad2simp.php
+ printf ');\n$$str=\n"' >> trad2simp.php
+ cat tradphrases.t >> trad2simp.php
+ printf '";\n$$t=strtr($$str, $$trad2simp);\necho $$t;\n?>' >> trad2simp.php
+
+simp2trad.php: simp2trad1to1.t simpphrases.t
+ printf '<?php\n$$simp2trad=array(' > simp2trad.php
+ cat simp2trad1to1.t >> simp2trad.php
+ printf ');\n$$str=\n"' >> simp2trad.php
+ cat simpphrases.t >> simp2trad.php
+ printf '";\n$$t=strtr($$str, $$simp2trad);\necho $$t;\n?>' >> simp2trad.php
+
+simp2trad.phrases.t: trad2simp.php tradphrases.t toTW.manual
+ php -f trad2simp.php | $(SED) 's/\(.*\)/"\1" => /' > tmp1
+ cat tradphrases.t | $(SED) 's/\(.*\)/"\1",/' > tmp2
+ paste tmp1 tmp2 > simp2trad.phrases.t
+ $(SED) 's/\(.*\)\t\(.*\)/"\1"=>"\2",/' toTW.manual >> simp2trad.phrases.t
+
+trad2simp.phrases.t: simp2trad.php simpphrases.t toCN.manual
+ php -f simp2trad.php | $(SED) 's/\(.*\)/"\1" => /' > tmp1
+ cat simpphrases.t | $(SED) 's/\(.*\)/"\1",/' > tmp2
+ paste tmp1 tmp2 > trad2simp.phrases.t
+ $(SED) 's/\(.*\)\t\(.*\)/"\1"=>"\2",/' toCN.manual >> trad2simp.phrases.t
+
+toCN.dict: trad2simp1to1.t trad2simp.phrases.t
+ cat trad2simp1to1.t | $(SED) 's/[, \t]//g' | $(SED) 's/=>/\t/' > toCN.dict
+ cat trad2simp.phrases.t | $(SED) 's/[, \t]//g' | $(SED) 's/=>/\t/' >> toCN.dict
+
+toTW.dict: simp2trad1to1.t simp2trad.phrases.t
+ cat simp2trad1to1.t | $(SED) 's/[, \t]//g' | $(SED) 's/=>/\t/' > toTW.dict
+ cat simp2trad.phrases.t | $(SED) 's/[, \t]//g' | $(SED) 's/=>/\t/' >> toTW.dict
+
+toHK.dict: toHK.manual
+ cat toHK.manual | $(SED) 's/ //g' | $(SED) 's/\(^.*\)\t\(.*\)/"\1"\t"\2"/' > toHK.dict
+
+toSG.dict: toSG.manual
+ cat toSG.manual | $(SED) 's/ //g' | $(SED) 's/\(^.*\)\t\(.*\)/"\1"\t"\2"/' > toSG.dict
+
+
+
+ZhConversion.php: simp2trad1to1.t simp2trad.phrases.t trad2simp1to1.t trad2simp.phrases.t toHK.manual toSG.manual
+ printf '<?php\n/**\n * Simplified/Traditional Chinese conversion tables\n' > ZhConversion.php
+ printf ' *\n * Automatically generated using code and data in includes/zhtable/\n' >> ZhConversion.php
+ printf ' * Do not modify directly! \n *\n * @package MediaWiki\n*/\n\n' >> ZhConversion.php
+ printf '$$zh2TW=array(\n' >> ZhConversion.php
+ cat simp2trad1to1.t >> ZhConversion.php
+ echo >> ZhConversion.php
+ cat simp2trad.phrases.t >> ZhConversion.php
+ echo >> ZhConversion.php
+ echo ');' >> ZhConversion.php
+ echo >> ZhConversion.php
+ echo >> ZhConversion.php
+ printf '$$zh2CN=array(\n' >> ZhConversion.php
+ cat trad2simp1to1.t >> ZhConversion.php
+ echo >> ZhConversion.php
+ cat trad2simp.phrases.t >> ZhConversion.php
+ echo >> ZhConversion.php
+ printf ');' >> ZhConversion.php
+ echo >> ZhConversion.php
+ echo >> ZhConversion.php
+ printf '$$zh2HK=array(\n' >> ZhConversion.php
+ $(SED) 's/\(.*\)\t\(.*\)/"\1" => "\2",/' toHK.manual >> ZhConversion.php
+ echo >> ZhConversion.php
+ printf ');' >> ZhConversion.php
+ echo >> ZhConversion.php
+ echo >> ZhConversion.php
+ printf '$$zh2SG=array(\n' >> ZhConversion.php
+ $(SED) 's/\(.*\)\t\(.*\)/"\1" => "\2",/' toSG.manual >> ZhConversion.php
+ echo >> ZhConversion.php
+ printf ');' >> ZhConversion.php
+ echo >> ZhConversion.php
+ printf '?>' >> ZhConversion.php
+
+
+clean: cleantmp cleandl
+
+cleantmp:
+ # Stuff unpacked from the files fetched by wget
+ rm -f \
+ Unihan.txt \
+ EZ.txt.in \
+ phrase_lib.txt \
+ tsi.src
+ # Temporary files and other trash
+ rm -f ZhConversion.php tmp1 tmp2 tmp3 t3 *.t trad2simp.php simp2trad.php *.dict printutf8 *~ \
+ simpphrases.notsure tradphrases.notsure wordlist
+
+cleandl:
+ rm -f \
+ Unihan.zip \
+ scim-tables-0.5.1.tar.gz \
+ scim-pinyin-0.5.0.tar.gz \
+ libtabe-0.2.3.tgz
+
diff --git a/includes/zhtable/README b/includes/zhtable/README
new file mode 100644
index 00000000..94dd341d
--- /dev/null
+++ b/includes/zhtable/README
@@ -0,0 +1,16 @@
+The various .manual files contains special mappings not included in the
+unihan database, and phrases not included in the SCIM package.
+
+- simp2trad.manual: Simplified to Traditional character mapping. Most
+ data adapted from
+
+ 冯寿忠,“非对称繁简字”对照表, 《语文建设通讯》1997-9第53期.
+ /http://www.yywzw.com/jt/feng/fengb01.htm
+
+- tradphrases.manual: Phrases in Traditional Chinese. A portition is obtained
+ from the TongWen package (http://tongwen.mozdev.org/)
+
+- toTW.manual, toCN.manual, toSG.manual and toHK.manual: special phrase
+ mappings.
+
+zhengzhu at gmail.com \ No newline at end of file
diff --git a/includes/zhtable/printutf8.c b/includes/zhtable/printutf8.c
new file mode 100644
index 00000000..b6ccf17c
--- /dev/null
+++ b/includes/zhtable/printutf8.c
@@ -0,0 +1,99 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+/*
+ Unicode UTF8
+0x00000000 - 0x0000007F: 0xxxxxxx
+0x00000080 - 0x000007FF: 110xxx xx 10xx xxxx
+0x00000800 - 0x0000FFFF: 1110xxxx 10xxxx xx 10xx xxxx
+0x00010000 - 0x001FFFFF: 11110x xx 10xx xxxx 10xxxx xx 10xx xxxx
+0x00200000 - 0x03FFFFFF: 111110xx 10xxxx xx 10xx xxxx 10xxxx xx 10xx xxxx
+0x04000000 - 0x7FFFFFFF: 1111110x 10xx xxxx 10xxxx xx 10xx xxxx 10xxxx xx 10xx xxxx
+
+0000 0 1001 9
+0001 1 1010 A
+0010 2 1011 B
+0011 3 1100 C
+0100 4 1101 D
+0101 5 1110 E
+0110 6 1111 F
+0111 7
+1000 8
+*/
+void printUTF8(long long u) {
+ long long m;
+ if(u<0x80) {
+ printf("%c", (unsigned char)u);
+ }
+ else if(u<0x800) {
+ m = ((u&0x7c0)>>6) | 0xc0;
+ printf("%c", (unsigned char)m);
+ m = (u&0x3f) | 0x80;
+ printf("%c", (unsigned char)m);
+ }
+ else if(u<0x10000) {
+ m = ((u&0xf000)>>12) | 0xe0;
+ printf("%c",(unsigned char)m);
+ m = ((u&0xfc0)>>6) | 0x80;
+ printf("%c",(unsigned char)m);
+ m = (u & 0x3f) | 0x80;
+ printf("%c",(unsigned char)m);
+ }
+ else if(u<0x200000) {
+ m = ((u&0x1c0000)>>18) | 0xf0;
+ printf("%c", (unsigned char)m);
+ m = ((u& 0x3f000)>>12) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = ((u& 0xfc0)>>6) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = (u&0x3f) | 0x80;
+ printf("%c", (unsigned char)m);
+ }
+ else if(u<0x4000000){
+ m = ((u&0x3000000)>>24) | 0xf8;
+ printf("%c", (unsigned char)m);
+ m = ((u&0xfc0000)>>18) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = ((u&0x3f000)>>12) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = ((u&0xfc00)>>6) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = (u&0x3f) | 0x80;
+ printf("%c", (unsigned char)m);
+ }
+ else {
+ m = ((u&0x40000000)>>30) | 0xfc;
+ printf("%c", (unsigned char)m);
+ m = ((u&0x3f000000)>>24) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = ((u&0xfc0000)>>18) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = ((u&0x3f000)>>12) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = ((u&0xfc0)>>6) | 0x80;
+ printf("%c", (unsigned char)m);
+ m = (u&0x3f)| 0x80;
+ printf("%c", (unsigned char)m);
+ }
+}
+
+int main() {
+ int i,j;
+ long long n1, n2;
+ unsigned char b1[15], b2[15];
+ unsigned char buf[1024];
+ i=0;
+ while(fgets(buf, 1024, stdin)) {
+ // printf("read %s\n", buf);
+ for(i=0;i<strlen(buf); i++)
+ if(buf[i]=='U') {
+ if(buf[i+1] == '+') {
+ n1 = strtoll(buf+i+2,0,16);
+ printf("U+%05x", n1);
+ printUTF8(n1);printf("|");
+ }
+ }
+ printf("\n");
+ }
+}
+
diff --git a/includes/zhtable/simp2trad.manual b/includes/zhtable/simp2trad.manual
new file mode 100644
index 00000000..b5e1c3ae
--- /dev/null
+++ b/includes/zhtable/simp2trad.manual
@@ -0,0 +1,178 @@
+U+0753b画|U+0756b畫|U+07575畵|
+U+0677f板|U+0677f板|U+095c6闆|
+U+08868表|U+08868表|U+09336錶|
+U+0624d才|U+0624d才|U+07e94纔|
+U+04e11丑|U+0919c醜|U+04e11丑|
+U+051fa出|U+051fa出|U+09f63齣|
+U+06dc0淀|U+06fb1澱|U+06dc0淀|
+U+051ac冬|U+051ac冬|U+09f15鼕|
+U+08303范|U+07bc4範|U+08303范|
+U+04e30丰|U+08c50豐|U+04e30丰|
+U+0522e刮|U+0522e刮|U+098b3颳|
+U+0540e后|U+05f8c後|U+0540e后|
+U+080e1胡|U+080e1胡|U+09b0d鬍|U+0885a衚|
+U+056de回|U+056de回|U+08ff4迴|
+U+04f19伙|U+05925夥|U+04f19伙|
+U+059dc姜|U+08591薑|U+059dc姜|
+U+0501f借|U+0501f借|U+085c9藉|
+U+0514b克|U+0514b克|U+0524b剋|
+U+056f0困|U+056f0困|U+0774f睏|
+U+06f13漓|U+06f13漓|U+07055灕|
+U+091cc里|U+091cc里|U+088e1裡|U+088cf裏|
+U+05e18帘|U+07c3e簾|U+05e18帘|
+U+09709霉|U+09709霉|U+09ef4黴|
+U+09762面|U+09762面|U+09eb5麵|
+U+08511蔑|U+08511蔑|U+0884a衊|
+U+05343千|U+05343千|U+097c6韆|
+U+079cb秋|U+079cb秋|U+097a6鞦|
+U+0677e松|U+0677e松|U+09b06鬆|
+U+054b8咸|U+054b8咸|U+09e79鹹|
+U+05411向|U+05411向|U+056ae嚮|U+066cf曏|
+U+04f59余|U+09918餘|U+04f59余|
+U+090c1郁|U+09b31鬱|U+090c1郁|
+U+05fa1御|U+05fa1御|U+079a6禦|
+U+0613f愿|U+09858願|U+0613f愿|
+U+04e91云|U+096f2雲|U+04e91云|
+U+082b8芸|U+082b8芸|U+08553蕓|
+U+06c84沄|U+06c84沄|U+06f90澐|
+U+081f4致|U+081f4致|U+07dfb緻|
+U+05236制|U+05236制|U+088fd製|
+U+06731朱|U+06731朱|U+07843硃|
+U+07b51筑|U+07bc9築|U+07b51筑|
+U+051c6准|U+06e96準|U+051c6准|
+U+05382厂|U+05ee0廠|U+05382厂|
+U+05e7f广|U+05ee3廣|U+05e7f广|
+U+08f9f辟|U+095e2闢|U+08f9f辟|
+U+0522b别|U+05225別|U+05f46彆|
+U+0535c卜|U+0535c卜|U+08514蔔|
+U+06c88沈|U+06c88沈|U+0700b瀋|
+U+051b2冲|U+06c96沖|U+0885d衝|
+U+079cd种|U+07a2e種|U+079cd种|
+U+0866b虫|U+087f2蟲|U+0866b虫|
+U+062c5担|U+064d4擔|U+062c5担|
+U+0515a党|U+09ee8黨|U+0515a党|
+U+06597斗|U+09b25鬥|U+06597斗|
+U+0513f儿|U+05152兒|U+0513f儿|
+U+05e72干|U+04e7e乾|U+05e79幹|U+05e72干|U+069a6%G榦%@|
+U+08c37谷|U+08c37谷|U+07a40穀|
+U+067dc柜|U+06ac3櫃|U+067dc柜|
+U+05408合|U+05408合|U+095a4閤|
+U+05212划|U+05283劃|U+05212划|
+U+0574f坏|U+058de壞|U+0574f坏|
+U+051e0几|U+05e7e幾|U+051e0几|
+U+07cfb系|U+07cfb系|U+07e6b繫|U+04fc2係|
+U+05bb6家|U+05bb6家|U+050a2傢|
+U+04ef7价|U+050f9價|U+04ef7价|
+U+0636e据|U+064da據|U+0636e据|
+U+05377卷|U+06372捲|U+05377卷|
+U+09002适|U+09069適|U+09002适|
+U+08721蜡|U+0881f蠟|U+08721蜡|
+U+0814a腊|U+081d8臘|U+0814a腊|
+U+04e86了|U+04e86了|U+077ad瞭|
+U+07d2f累|U+07d2f累|U+07e8d纍|
+U+04e48么|U+09ebd麽|U+04e48么|U+05e7a幺|U+09ebc麼|
+U+08499蒙|U+08499蒙|U+077c7矇|U+06fdb濛|U+061de懞|
+U+04e07万|U+0842c萬|U+04e07万|
+U+05b81宁|U+05be7寧|U+05b81宁|
+U+06734朴|U+06a38樸|U+06734朴|
+U+082f9苹|U+0860b蘋|U+082f9苹|
+U+04ec6仆|U+050d5僕|U+04ec6仆|
+U+066f2曲|U+066f2曲|U+09eaf麯|
+U+0786e确|U+078ba確|U+0786e确|
+U+0820d舍|U+0820d舍|U+06368捨|
+U+080dc胜|U+052dd勝|U+080dc胜|
+U+0672f术|U+08853術|U+0672f术|U+0672e朮|
+U+053f0台|U+053f0台|U+081fa臺|U+06aaf檯|U+098b1颱|
+U+04f53体|U+09ad4體|U+04f53体|
+U+06d82涂|U+05857塗|U+06d82涂|
+U+053f6叶|U+08449葉|U+053f6叶|
+U+05401吁|U+05401吁|U+07c72籲|
+U+065cb旋|U+065cb旋|U+0955f镟|
+U+04f63佣|U+050ad傭|U+04f63佣|
+U+04e0e与|U+08207與|U+04e0e与|
+U+06298折|U+06298折|U+0647a摺|
+U+05f81征|U+05fb5徵|U+05f81征|
+U+075c7症|U+075c7症|U+07665癥|
+U+06076恶|U+060e1惡|U+05641噁|
+U+053d1发|U+0767c發|U+09aee髮|
+U+0590d复|U+05fa9復|U+08907複|U+08986覆|
+U+06c47汇|U+0532f匯|U+05f59彙|
+U+083b7获|U+07372獲|U+07a6b穫|
+U+09965饥|U+098e2飢|U+09951饑|
+U+05c3d尽|U+076e1盡|U+05118儘|
+U+05386历|U+06b77歷|U+066c6曆|
+U+05364卤|U+06ef7滷|U+09e75鹵|
+U+05f25弥|U+05f4c彌|U+07030瀰|
+U+07b7e签|U+07c3d簽|U+07c56籖|
+U+07ea4纤|U+07e96纖|U+07e34縴|
+U+082cf苏|U+08607蘇|U+056cc囌|
+U+0575b坛|U+058c7壇|U+07f48罈|
+U+056e2团|U+05718團|U+07cf0糰|
+U+0987b须|U+09808須|U+09b1a鬚|
+U+0810f脏|U+081df臟|U+09ad2髒|
+U+053ea只|U+053ea只|U+096bb隻|
+U+0949f钟|U+09418鐘|U+0937e鍾|
+U+0836f药|U+085e5藥|U+0846f葯|
+U+0540c同|U+0540c同|U+08855衕|
+U+05fd7志|U+05fd7志|U+08a8c誌|
+U+0676f杯|U+0676f杯|U+076c3盃|
+U+05cb3岳|U+05cb3岳|U+05dbd嶽|
+U+05e03布|U+05e03布|U+04f48佈|
+U+05f53当|U+07576當|U+05679噹|
+U+0540a吊|U+05f14弔|U+0540a吊|
+U+04ec7仇|U+04ec7仇|U+08b8e讎|
+U+08574蕴|U+0860a蘊|U+085f4藴|
+U+07ebf线|U+07dda線|U+07dab綫|
+U+04e3a为|U+070ba為|U+07232爲|
+U+04ea7产|U+07522產|U+07523産|
+U+04f17众|U+0773e眾|U+08846衆|
+U+04f2a伪|U+0507d偽|U+050de僞|
+U+051eb凫|U+09ce7鳧|U+09cec鳬|
+U+05395厕|U+05ec1廁|U+053a0厠|
+U+0542f启|U+0555f啟|U+05553啓|
+U+05899墙|U+07246牆|U+058bb墻|
+U+058f3壳|U+06bbc殼|U+06bbb殻|
+U+05956奖|U+0734e獎|U+0596c奬|
+U+059ab妫|U+05aaf媯|U+05b00嬀|
+U+05e76并|U+04e26並|U+04f75併|
+U+05f55录|U+09304錄|U+09332録|
+U+060ab悫|U+06128愨|U+06164慤|
+U+06781极|U+06975極|U+06781极|
+U+06ca9沩|U+06e88溈|U+06f59潙|
+U+07618瘘|U+0763a瘺|U+0763b瘻|
+U+07877硷|U+09e7c鹼|U+07906礆|
+U+07ad6竖|U+08c4e豎|U+07aea竪|
+U+07edd绝|U+07d55絕|U+07d76絶|
+U+07ee3绣|U+07e61繡|U+07d89綉|
+U+07ee6绦|U+07d5b絛|U+07e27縧|
+U+07ef1绱|U+07dd4緔|U+0979d鞝|
+U+07ef7绷|U+07db3綳|U+07e43繃|
+U+07eff绿|U+07da0綠|U+07dd1緑|
+U+07f30缰|U+097c1韁|U+07e6e繮|
+U+082e7苧|U+082ce苎|U+085b4薴|
+U+083bc莼|U+08493蒓|U+084f4蓴|
+U+08bf4说|U+08aaa說|U+08aac説|
+U+08c23谣|U+08b20謠|U+08b21謡|
+U+08c2b谫|U+08b7e譾|U+08b2d謭|
+U+08d43赃|U+08d13贓|U+08d1c贜|
+U+08d4d赍|U+09f4e齎|U+08ceb賫|
+U+08d5d赝|U+08d17贗|U+08d0b贋|
+U+0915d酝|U+0919e醞|U+09196醖|
+U+091c7采|U+063a1採|U+091c7采|U+057f0埰|
+U+094a9钩|U+09264鉤|U+0920e鈎|
+U+094b5钵|U+07f3d缽|U+09262鉢|
+U+09508锈|U+092b9銹|U+093fd鏽|
+U+09510锐|U+092b3銳|U+092ed鋭|
+U+09528锨|U+06774杴|U+09341鍁|
+U+0954c镌|U+0942b鐫|U+093b8鎸|
+U+09562镢|U+09481钁|U+0941d鐝|
+U+09605阅|U+095b1閱|U+095b2閲|
+U+09893颓|U+09839頹|U+0983d頽|
+U+0989c颜|U+0984f顏|U+09854顔|
+U+09980馀|U+09918餘|
+U+09a82骂|U+07f75罵|U+099e1駡|
+U+09c87鲇|U+09bf0鯰|U+09b8e鮎|
+U+09c9e鲞|U+09bd7鯗|U+09b9d鮝|
+U+09cc4鳄|U+09c77鱷|U+09c10鰐|
+U+09e21鸡|U+096de雞|U+09dc4鷄|
+U+09e5a鹚|U+09dbf鶿|U+09dc0鷀|
diff --git a/includes/zhtable/toCN.manual b/includes/zhtable/toCN.manual
new file mode 100644
index 00000000..caff9c14
--- /dev/null
+++ b/includes/zhtable/toCN.manual
@@ -0,0 +1,331 @@
+記憶體 内存
+預設 默认
+預設 缺省
+串列 串行
+乙太網 以太网
+點陣圖 位图
+常式 例程
+通道 信道
+游標 光标
+光碟 光盘
+光碟機 光驱
+全形 全角
+共用 共享
+相容 兼容
+首碼 前缀
+尾碼 后缀
+載入 加载
+半形 半角
+變數 变量
+雜訊 噪声
+因數 因子
+線上 在线
+離線 脱机
+功能變數名稱 域名
+音效卡 声卡
+字型大小 字号
+字型檔 字库
+欄位 字段
+字元 字符
+存檔 存盘
+定址 寻址
+章節附註 尾注
+非同步 异步
+匯流排 总线
+括弧 括号
+介面 接口
+控制項 控件
+許可權 权限
+碟片 盘片
+矽片 硅片
+矽谷 硅谷
+硬碟 硬盘
+磁碟 磁盘
+磁軌 磁道
+程式控制 程控
+埠 端口
+運算元 算子
+演算法 算法
+晶片 芯片
+晶元 芯片
+片語 词组
+解碼 译码
+軟碟機 软驱
+快閃記憶體 闪存
+滑鼠 鼠标
+進位 进制
+互動式 交互式
+模擬 仿真
+優先順序 优先级
+感測 传感
+攜帶型 便携式
+資訊理論 信息论
+迴圈 循环
+防寫 写保护
+分散式 分布式
+解析度 分辨率
+程式 程序
+伺服器 服务器
+等於 等于
+區域網 局域网
+上傳 上载
+電腦 计算机
+巨集 宏
+掃瞄器 扫瞄仪
+寬頻 宽带
+視窗 窗口
+資料庫 数据库
+西曆 公历
+乳酪 奶酪
+鉅賈 巨商
+手電筒 手电
+萬曆 万历
+永曆 永历
+辭彙 词汇
+保全 保安
+慣用 习用
+母音 元音
+自由球 任意球
+頭槌 头球
+進球 入球
+顆進球 粒入球
+射門 打门
+蓋火鍋 火锅盖帽
+印表機 打印机
+打印機 打印机
+位元組 字节
+字節 字节
+列印 打印
+打印 打印
+硬體 硬件
+二極體 二极管
+二極管 二极管
+三極體 三极管
+三極管 三极管
+數位 数码
+數碼 数码
+軟體 软件
+軟件 软件
+網路 网络
+網絡 网络
+人工智慧 人工智能
+太空梭 航天飞机
+穿梭機 航天飞机
+網際網路 因特网
+互聯網 因特网
+機械人 机器人
+機器人 机器人
+行動電話 移动电话
+流動電話 移动电话
+調制解調器 调制解调器
+數據機 调制解调器
+短訊 短信
+簡訊 短信
+烏茲別克 乌兹别克斯坦
+查德 乍得
+乍得 乍得
+也門
+葉門 也门
+伯利茲 伯利兹
+貝里斯 伯利兹
+維德角 佛得角
+佛得角 佛得角
+克羅地亞 克罗地亚
+克羅埃西亞 克罗地亚
+岡比亞 冈比亚
+甘比亞 冈比亚
+幾內亞比紹 几内亚比绍
+幾內亞比索 几内亚比绍
+列支敦斯登 列支敦士登
+列支敦士登 列支敦士登
+利比里亞 利比里亚
+賴比瑞亞 利比里亚
+加納 加纳
+迦納 加纳
+加彭 加蓬
+加蓬 加蓬
+博茨瓦納 博茨瓦纳
+波札那 博茨瓦纳
+卡塔爾 卡塔尔
+卡達 卡塔尔
+盧旺達 卢旺达
+盧安達 卢旺达
+危地馬拉 危地马拉
+瓜地馬拉 危地马拉
+厄瓜多爾 厄瓜多尔
+厄瓜多 厄瓜多尔
+厄立特里亞 厄立特里亚
+厄利垂亞 厄立特里亚
+吉布堤 吉布提
+吉布地 吉布提
+哈薩克 哈萨克斯坦
+哥斯達黎加 哥斯达黎加
+哥斯大黎加 哥斯达黎加
+圖瓦盧 图瓦卢
+吐瓦魯 图瓦卢
+土庫曼 土库曼斯坦
+聖盧西亞 圣卢西亚
+聖露西亞 圣卢西亚
+聖吉斯納域斯 圣基茨和尼维斯
+聖克里斯多福及尼維斯 圣基茨和尼维斯
+聖文森特和格林納丁斯 圣文森特和格林纳丁斯
+聖文森及格瑞那丁 圣文森特和格林纳丁斯
+聖馬力諾 圣马力诺
+聖馬利諾 圣马力诺
+圭亞那 圭亚那
+蓋亞那 圭亚那
+坦桑尼亞 坦桑尼亚
+坦尚尼亞 坦桑尼亚
+埃塞俄比亞 埃塞俄比亚
+衣索比亞 埃塞俄比亚
+吉里巴斯 基里巴斯
+基里巴斯 基里巴斯
+塔吉克 塔吉克斯坦
+獅子山 塞拉利昂
+塞拉利昂 塞拉利昂
+塞普勒斯 塞浦路斯
+塞浦路斯 塞浦路斯
+塞舌爾 塞舌尔
+塞席爾 塞舌尔
+多明尼加共和國 多米尼加
+多明尼加 多米尼加
+多明尼加聯邦 多米尼加联邦
+多米尼克 多米尼加联邦
+安提瓜和巴布達 安提瓜和巴布达
+安地卡及巴布達 安提瓜和巴布达
+尼日利亞 尼日利亚
+奈及利亞 尼日利亚
+尼日爾 尼日尔
+尼日 尼日尔
+巴貝多 巴巴多斯
+巴巴多斯 巴巴多斯
+巴布亞新畿內亞 巴布亚新几内亚
+巴布亞紐幾內亞 巴布亚新几内亚
+布基納法索 布基纳法索
+布吉納法索 布基纳法索
+蒲隆地 布隆迪
+布隆迪 布隆迪
+希臘 希腊
+帛琉 帕劳
+義大利 意大利
+意大利 意大利
+所羅門群島 所罗门群岛
+索羅門群島 所罗门群岛
+汶萊 文莱
+斯威士蘭 斯威士兰
+史瓦濟蘭 斯威士兰
+斯洛文尼亞 斯洛文尼亚
+斯洛維尼亞 斯洛文尼亚
+新西蘭 新西兰
+紐西蘭 新西兰
+北韓 朝鲜
+格林納達 格林纳达
+格瑞那達 格林纳达
+格魯吉亞 格鲁吉亚
+喬治亞 格鲁吉亚
+梵蒂岡 梵蒂冈
+教廷 梵蒂冈
+毛里塔尼亞 毛里塔尼亚
+茅利塔尼亞 毛里塔尼亚
+毛里裘斯 毛里求斯
+模里西斯 毛里求斯
+沙地阿拉伯 沙特阿拉伯
+沙烏地阿拉伯 沙特阿拉伯
+波斯尼亞黑塞哥維那 波斯尼亚和黑塞哥维那
+波士尼亞赫塞哥維納 波斯尼亚和黑塞哥维那
+津巴布韋 津巴布韦
+辛巴威 津巴布韦
+宏都拉斯 洪都拉斯
+洪都拉斯 洪都拉斯
+特立尼達和多巴哥 特立尼达和托巴哥
+千里達托貝哥 特立尼达和托巴哥
+瑙魯 瑙鲁
+諾魯 瑙鲁
+瓦努阿圖 瓦努阿图
+萬那杜 瓦努阿图
+溫納圖 瓦努阿图
+科摩羅 科摩罗
+葛摩 科摩罗
+象牙海岸 科特迪瓦
+突尼西亞 突尼斯
+索馬里 索马里
+索馬利亞 索马里
+老撾 老挝
+寮國 老挝
+肯雅 肯尼亚
+肯亞 肯尼亚
+蘇利南 苏里南
+莫三比克 莫桑比克
+莫桑比克 莫桑比克
+萊索托 莱索托
+賴索托 莱索托
+貝寧 贝宁
+貝南 贝宁
+贊比亞 赞比亚
+尚比亞 赞比亚
+亞塞拜然 阿塞拜疆
+阿塞拜疆 阿塞拜疆
+阿拉伯聯合酋長國 阿拉伯联合酋长国
+阿拉伯聯合大公國 阿拉伯联合酋长国
+南韓 韩国
+馬爾代夫 马尔代夫
+馬爾地夫 马尔代夫
+馬爾他 马耳他
+馬里 马里
+馬利 马里
+即食麵 方便面
+快速面 方便面
+速食麵 方便面
+泡麵 方便面
+笨豬跳 蹦极跳
+绑紧跳 蹦极跳
+冷盤   凉菜
+冷菜 凉菜
+散钱 零钱
+谐星 笑星    
+夜学 夜校
+华乐 民乐
+中樂 民乐
+住屋 住房
+屋价 房价
+的士 出租车
+計程車 出租车
+巴士 公共汽车
+公車 公共汽车
+單車 自行车
+節慶 节日
+芝士 乾酪
+狗隻 犬只
+士多啤梨 草莓
+忌廉 奶油
+桌球 台球
+撞球 台球
+雪糕 冰淇淋
+衞生 卫生
+衛生 卫生
+賓士 奔驰
+平治 奔驰
+捷豹 美洲虎
+積架 美洲虎
+福斯 大众
+福士 大众
+雪鐵龍 雪铁龙
+萬事得 马自达
+馬自達 马自达
+寶獅 标志
+布殊 布什
+布希 布什
+柯林頓 克林顿
+克林頓 克林顿
+薩達姆 萨达姆
+海珊 萨达姆
+梵谷 凡高
+大衛碧咸 大卫·贝克汉姆
+米高奧雲 迈克尔·欧文
+卡佩雅蒂 珍妮弗·卡普里亚蒂
+沙芬 马拉特·萨芬
+舒麥加 迈克尔·舒马赫
+希特拉 希特勒
+戴安娜 狄安娜
+黛安娜 狄安娜
+希拉 赫拉 \ No newline at end of file
diff --git a/includes/zhtable/toHK.manual b/includes/zhtable/toHK.manual
new file mode 100644
index 00000000..ab623455
--- /dev/null
+++ b/includes/zhtable/toHK.manual
@@ -0,0 +1,211 @@
+打印机 打印機
+印表機 打印機
+字节 字節
+位元組 字節
+打印 打印
+列印 打印
+硬件 硬件
+硬體 硬件
+二极管 二極管
+二極體 二極管
+三极管 三極管
+三極體 三極管
+数码 數碼
+數位 數碼
+软件 軟件
+軟體 軟件
+网络 網絡
+網路 網絡
+人工智能 人工智能
+人工智慧 人工智能
+航天飞机 穿梭機
+太空梭 穿梭機
+因特网 互聯網
+網際網路 互聯網
+机器人 機械人
+機器人 機械人
+移动电话 流動電話
+行動電話 流動電話
+调制解调器 調制解調器
+數據機 調制解調器
+短信 短訊
+簡訊 短訊
+乍得 乍得
+查德 乍得
+也门 也門
+葉門 也門
+伯利兹 伯利茲
+貝里斯 伯利茲
+佛得角 佛得角
+維德角 佛得角
+克罗地亚 克羅地亞
+克羅埃西亞 克羅地亞
+冈比亚 岡比亞
+甘比亞 岡比亞
+几内亚比绍 幾內亞比紹
+幾內亞比索 幾內亞比紹
+列支敦士登 列支敦士登
+列支敦斯登 列支敦士登
+利比里亚 利比里亞
+賴比瑞亞 利比里亞
+加纳 加納
+迦納 加納
+加蓬 加蓬
+加彭 加蓬
+博茨瓦纳 博茨瓦納
+波札那 博茨瓦納
+卡塔尔 卡塔爾
+卡達 卡塔爾
+卢旺达 盧旺達
+盧安達 盧旺達
+危地马拉 危地馬拉
+瓜地馬拉 危地馬拉
+厄瓜多尔 厄瓜多爾
+厄瓜多 厄瓜多爾
+厄立特里亚 厄立特里亞
+厄利垂亞 厄立特里亞
+吉布提 吉布堤
+吉布地 吉布堤
+哥斯达黎加 哥斯達黎加
+哥斯大黎加 哥斯達黎加
+图瓦卢 圖瓦盧
+吐瓦魯 圖瓦盧
+圣卢西亚 聖盧西亞
+聖露西亞 聖盧西亞
+圣基茨和尼维斯 聖吉斯納域斯
+聖克里斯多福及尼維斯 聖吉斯納域斯
+圣文森特和格林纳丁斯 聖文森特和格林納丁斯
+聖文森及格瑞那丁 聖文森特和格林納丁斯
+圣马力诺 聖馬力諾
+聖馬利諾 聖馬力諾
+圭亚那 圭亞那
+蓋亞那 圭亞那
+坦桑尼亚 坦桑尼亞
+坦尚尼亞 坦桑尼亞
+埃塞俄比亚 埃塞俄比亞
+衣索比亞 埃塞俄比亞
+基里巴斯 基里巴斯
+吉里巴斯 基里巴斯
+獅子山 塞拉利昂
+塞普勒斯 塞浦路斯
+塞舌尔 塞舌爾
+塞席爾 塞舌爾
+多米尼加 多明尼加共和國
+多明尼加 多明尼加共和國
+多米尼加联邦 多明尼加聯邦
+多米尼克 多明尼加聯邦
+安提瓜和巴布达 安提瓜和巴布達
+安地卡及巴布達 安提瓜和巴布達
+尼日利亚 尼日利亞
+奈及利亞 尼日利亞
+尼日尔 尼日爾
+尼日 尼日爾
+巴巴多斯 巴巴多斯
+巴貝多 巴巴多斯
+巴布亚新几内亚 巴布亞新畿內亞
+巴布亞紐幾內亞 巴布亞新畿內亞
+布基纳法索 布基納法索
+布吉納法索 布基納法索
+布隆迪 布隆迪
+蒲隆地 布隆迪
+義大利 意大利
+所罗门群岛 所羅門群島
+索羅門群島 所羅門群島
+斯威士兰 斯威士蘭
+史瓦濟蘭 斯威士蘭
+斯洛文尼亚 斯洛文尼亞
+斯洛維尼亞 斯洛文尼亞
+新西兰 新西蘭
+紐西蘭 新西蘭
+格林纳达 格林納達
+格瑞那達 格林納達
+格鲁吉亚 格魯吉亞
+喬治亞 格魯吉亞
+梵蒂冈 梵蒂岡
+教廷 梵蒂岡
+毛里塔尼亚 毛里塔尼亞
+茅利塔尼亞 毛里塔尼亞
+毛里求斯 毛里裘斯
+模里西斯 毛里裘斯
+沙特阿拉伯 沙地阿拉伯
+沙烏地阿拉伯 沙地阿拉伯
+波斯尼亚和黑塞哥维那 波斯尼亞黑塞哥維那
+波士尼亞赫塞哥維納 波斯尼亞黑塞哥維那
+津巴布韦 津巴布韋
+辛巴威 津巴布韋
+洪都拉斯 洪都拉斯
+宏都拉斯 洪都拉斯
+特立尼达和托巴哥 特立尼達和多巴哥
+千里達托貝哥 特立尼達和多巴哥
+瑙鲁 瑙魯
+諾魯 瑙魯
+瓦努阿图 瓦努阿圖
+萬那杜 瓦努阿圖
+科摩罗 科摩羅
+葛摩 科摩羅
+索马里 索馬里
+索馬利亞 索馬里
+老挝 老撾
+寮國 老撾
+肯尼亚 肯雅
+肯亞 肯雅
+莫桑比克 莫桑比克
+莫三比克 莫桑比克
+莱索托 萊索托
+賴索托 萊索托
+贝宁 貝寧
+貝南 貝寧
+赞比亚 贊比亞
+尚比亞 贊比亞
+阿塞拜疆 阿塞拜疆
+亞塞拜然 阿塞拜疆
+阿拉伯联合酋长国 阿拉伯聯合酋長國
+阿拉伯聯合大公國 阿拉伯聯合酋長國
+马尔代夫 馬爾代夫
+馬爾地夫 馬爾代夫
+马里 馬里
+馬利 馬里
+方便面 即食麵
+快速面 即食麵
+速食麵 即食麵
+泡麵 即食麵
+土豆 薯仔
+华乐 中樂
+民乐 中樂
+計程車 的士
+出租车 的士
+公車 巴士
+公共汽车 巴士
+自行车 單車
+节日 節慶
+犬只 狗隻
+台球 桌球
+撞球 桌球
+冰淇淋 雪糕
+冰淇淋 雪糕
+卫生 衞生
+衛生 衞生
+老人 長者
+賓士 平治
+捷豹 積架
+福斯 福士
+雪铁龙 先進
+雪鐵龍 先進
+沃尓沃 富豪
+马自达 萬事得
+馬自達 萬事得
+寶獅 標致
+布什 布殊
+布希 布殊
+克林顿 克林頓
+柯林頓 克林頓
+萨达姆 薩達姆
+海珊 薩達姆
+大卫·贝克汉姆 大衛碧咸
+迈克尔·欧文 米高奧雲
+珍妮弗·卡普里亚蒂 卡佩雅蒂
+马拉特·萨芬 沙芬
+迈克尔·舒马赫 舒麥加
+希特勒 希特拉
+狄安娜 戴安娜
+黛安娜 戴安娜 \ No newline at end of file
diff --git a/includes/zhtable/toSG.manual b/includes/zhtable/toSG.manual
new file mode 100644
index 00000000..9a399bc8
--- /dev/null
+++ b/includes/zhtable/toSG.manual
@@ -0,0 +1,15 @@
+方便面 快速面
+速食麵 快速面
+即食麵 快速面
+蹦极跳 绑紧跳
+笨豬跳 绑紧跳
+凉菜 冷菜
+冷盤 冷菜
+零钱 散钱
+散紙 散钱
+笑星 谐星
+夜校 夜学
+民乐 华乐
+住房 住屋
+房价 屋价
+泡麵 快速面 \ No newline at end of file
diff --git a/includes/zhtable/toTW.manual b/includes/zhtable/toTW.manual
new file mode 100644
index 00000000..5c90dbe3
--- /dev/null
+++ b/includes/zhtable/toTW.manual
@@ -0,0 +1,309 @@
+内存 記憶體
+默认 預設
+缺省 預設
+串行 串列
+以太网 乙太網
+位图 點陣圖
+例程 常式
+信道 通道
+光标 游標
+光盘 光碟
+光驱 光碟機
+全角 全形
+共享 共用
+兼容 相容
+前缀 首碼
+后缀 尾碼
+加载 載入
+半角 半形
+变量 變數
+噪声 雜訊
+因子 因數
+在线 線上
+脱机 離線
+域名 功能變數名稱
+声卡 音效卡
+字号 字型大小
+字库 字型檔
+字段 欄位
+字符 字元
+存盘 存檔
+寻址 定址
+尾注 章節附註
+异步 非同步
+总线 匯流排
+括号 括弧
+接口 介面
+控件 控制項
+权限 許可權
+盘片 碟片
+硅片 矽片
+硅谷 矽谷
+硬盘 硬碟
+磁盘 磁碟
+磁道 磁軌
+程控 程式控制
+端口 埠
+算子 運算元
+算法 演算法
+芯片 晶片
+芯片 晶元
+词组 片語
+译码 解碼
+软驱 軟碟機
+闪存 快閃記憶體
+鼠标 滑鼠
+进制 進位
+交互式 互動式
+仿真 模擬
+优先级 優先順序
+传感 感測
+便携式 攜帶型
+信息论 資訊理論
+循环 迴圈
+写保护 防寫
+分布式 分散式
+分辨率 解析度
+程序 程式
+服务器 伺服器
+等于 等於
+局域网 區域網
+上载 上傳
+计算机 電腦
+宏 巨集
+扫瞄仪 掃瞄器
+宽带 寬頻
+窗口 視窗
+数据库 資料庫
+公历 西曆
+奶酪 乳酪
+巨商 鉅賈
+手电 手電筒
+万历 萬曆
+永历 永曆
+词汇 辭彙
+保安 保全
+习用 慣用
+元音 母音
+任意球 自由球
+头球 頭槌
+入球 進球
+粒入球 顆進球
+打门 射門
+火锅盖帽 蓋火鍋
+打印机 印表機
+打印機 印表機
+字节 位元組
+字節 位元組
+打印 列印
+打印 列印
+硬件 硬體
+硬件 硬體
+二极管 二極體
+二極管 二極體
+三极管 三極體
+三極管 三極體
+数码 數位
+數碼 數位
+软件 軟體
+軟件 軟體
+网络 網路
+網絡 網路
+人工智能 人工智慧
+航天飞机 太空梭
+穿梭機 太空梭
+因特网 網際網路
+互聯網 網際網路
+机器人 機器人
+機械人 機器人
+移动电话 行動電話
+流動電話 行動電話
+调制解调器 數據機
+調制解調器 數據機
+短信 簡訊
+短訊 簡訊
+乌兹别克斯坦 烏茲別克
+乍得 查德
+乍得 查德
+也门 葉門
+也門 葉門
+伯利兹 貝里斯
+伯利茲 貝里斯
+佛得角 維德角
+佛得角 維德角
+克罗地亚 克羅埃西亞
+克羅地亞 克羅埃西亞
+冈比亚 甘比亞
+岡比亞 甘比亞
+几内亚比绍 幾內亞比索
+幾內亞比紹 幾內亞比索
+列支敦士登 列支敦斯登
+列支敦士登 列支敦斯登
+利比里亚 賴比瑞亞
+利比里亞 賴比瑞亞
+加纳 迦納
+加納 迦納
+加蓬 加彭
+加蓬 加彭
+博茨瓦纳 波札那
+博茨瓦納 波札那
+卡塔尔 卡達
+卡塔爾 卡達
+卢旺达 盧安達
+盧旺達 盧安達
+危地马拉 瓜地馬拉
+危地馬拉 瓜地馬拉
+厄瓜多尔 厄瓜多
+厄瓜多爾 厄瓜多
+厄立特里亚 厄利垂亞
+厄立特里亞 厄利垂亞
+吉布提 吉布地
+吉布堤 吉布地
+哈萨克斯坦 哈薩克
+哥斯达黎加 哥斯大黎加
+哥斯達黎加 哥斯大黎加
+图瓦卢 吐瓦魯
+圖瓦盧 吐瓦魯
+土库曼斯坦 土庫曼
+圣卢西亚 聖露西亞
+聖盧西亞 聖露西亞
+圣基茨和尼维斯 聖克里斯多福及尼維斯
+聖吉斯納域斯 聖克里斯多福及尼維斯
+圣文森特和格林纳丁斯 聖文森及格瑞那丁
+聖文森特和格林納丁斯 聖文森及格瑞那丁
+圣马力诺 聖馬利諾
+聖馬力諾 聖馬利諾
+圭亚那 蓋亞那
+圭亞那 蓋亞那
+坦桑尼亚 坦尚尼亞
+坦桑尼亞 坦尚尼亞
+埃塞俄比亚 衣索比亞
+埃塞俄比亞 衣索比亞
+基里巴斯 吉里巴斯
+基里巴斯 吉里巴斯
+塔吉克斯坦 塔吉克
+塞拉利昂 獅子山
+塞拉利昂 獅子山
+塞浦路斯 塞普勒斯
+塞浦路斯 塞普勒斯
+塞舌尔 塞席爾
+塞舌爾 塞席爾
+多米尼加 多明尼加
+多明尼加共和國 多明尼加
+多米尼加联邦 多米尼克
+多明尼加聯邦 多米尼克
+安提瓜和巴布达 安地卡及巴布達
+安提瓜和巴布達 安地卡及巴布達
+尼日利亚 奈及利亞
+尼日利亞 奈及利亞
+尼日尔 尼日
+尼日爾 尼日
+巴巴多斯 巴貝多
+巴巴多斯 巴貝多
+巴布亚新几内亚 巴布亞紐幾內亞
+巴布亞新畿內亞 巴布亞紐幾內亞
+布基纳法索 布吉納法索
+布基納法索 布吉納法索
+布隆迪 蒲隆地
+布隆迪 蒲隆地
+希腊 希臘
+帕劳 帛琉
+意大利 義大利
+意大利 義大利
+所罗门群岛 索羅門群島
+所羅門群島 索羅門群島
+文莱 汶萊
+斯威士兰 史瓦濟蘭
+斯威士蘭 史瓦濟蘭
+斯洛文尼亚 斯洛維尼亞
+斯洛文尼亞 斯洛維尼亞
+新西兰 紐西蘭
+新西蘭 紐西蘭
+朝鲜 北韓
+格林纳达 格瑞那達
+格林納達 格瑞那達
+格鲁吉亚 喬治亞
+格魯吉亞 喬治亞
+梵蒂冈 教廷
+梵蒂岡 教廷
+毛里塔尼亚 茅利塔尼亞
+毛里塔尼亞 茅利塔尼亞
+毛里求斯 模里西斯
+毛里裘斯 模里西斯
+沙特阿拉伯 沙烏地阿拉伯
+沙地阿拉伯 沙烏地阿拉伯
+波斯尼亚和黑塞哥维那 波士尼亞赫塞哥維納
+波斯尼亞黑塞哥維那 波士尼亞赫塞哥維納
+津巴布韦 辛巴威
+津巴布韋 辛巴威
+洪都拉斯 宏都拉斯
+洪都拉斯 宏都拉斯
+特立尼达和托巴哥 千里達托貝哥
+特立尼達和多巴哥 千里達托貝哥
+瑙鲁 諾魯
+瑙魯 諾魯
+瓦努阿图 萬那杜
+瓦努阿圖 萬那杜
+溫納圖萬 那杜
+科摩罗 葛摩
+科摩羅 葛摩
+科特迪瓦 象牙海岸
+突尼斯 突尼西亞
+索马里 索馬利亞
+索馬里 索馬利亞
+老挝 寮國
+老撾 寮國
+肯尼亚 肯亞
+肯雅 肯亞
+苏里南 蘇利南
+莫桑比克 莫三比克
+莱索托 賴索托
+萊索托 賴索托
+贝宁 貝南
+貝寧 貝南
+赞比亚 尚比亞
+贊比亞 尚比亞
+阿塞拜疆 亞塞拜然
+阿塞拜疆 亞塞拜然
+阿拉伯联合酋长国 阿拉伯聯合大公國
+阿拉伯聯合酋長國 阿拉伯聯合大公國
+韩国 南韓
+马尔代夫 馬爾地夫
+馬爾代夫 馬爾地夫
+马耳他 馬爾他
+马里 馬利
+馬里 馬利
+方便面 速食麵
+快速面 速食麵
+即食麵 速食麵
+薯仔 土豆
+蹦极跳 笨豬跳
+绑紧跳 笨豬跳
+冷菜 冷盤
+凉菜 冷盤
+的士 計程車
+出租车 計程車
+巴士 公車
+公共汽车 公車
+台球 撞球
+桌球 撞球
+雪糕 冰淇淋
+卫生 衛生
+衞生 衛生
+平治 賓士
+奔驰 賓士
+積架 捷豹
+福士 福斯
+雪铁龙 雪鐵龍
+马自达 馬自達
+萬事得 馬自達
+布什 布希
+布殊 布希
+克林顿 柯林頓
+克林頓 柯林頓
+萨达姆 海珊
+薩達姆 海珊
+凡高 梵谷
+狄安娜 黛安娜
+戴安娜 黛安娜
+赫拉 希拉 \ No newline at end of file
diff --git a/includes/zhtable/trad2simp.manual b/includes/zhtable/trad2simp.manual
new file mode 100644
index 00000000..da069310
--- /dev/null
+++ b/includes/zhtable/trad2simp.manual
@@ -0,0 +1,15 @@
+U+056a5嚥|U+054bd咽|
+U+0585a塚|U+051a2冢|
+U+05dbd嶽|U+05cb3岳|
+U+04e99亙|U+04e98亘|
+U+081e5臥|U+05367卧|
+U+04f48佈|U+05e03布|
+U+06dd2淒|U+051c4凄|
+U+06de8淨|U+051c0净|
+U+05147兇|U+051f6凶|
+U+04f48佈|U+05e03布|
+U+06c59汙|U+06c61污|
+U+056ae嚮|U+05411向|
+U+09031週|U+05468周|
+U+0904a遊|U+06e38游|
+U+06de9淩|U+051cc凌|
diff --git a/includes/zhtable/tradphrases.manual b/includes/zhtable/tradphrases.manual
new file mode 100644
index 00000000..b2fec815
--- /dev/null
+++ b/includes/zhtable/tradphrases.manual
@@ -0,0 +1,149 @@
+一隻
+三隻
+四隻
+五隻
+六隻
+七隻
+八隻
+九隻
+十隻
+百隻
+千隻
+萬隻
+億隻
+並存著
+乾絲
+乾著急
+体育鍛鍊
+借著
+偷雞不著
+几絲
+划著
+划著走
+別著
+刮著
+千絲萬縷
+參与
+參与者
+參合
+參考價值
+參與
+參與人員
+參與制
+參與感
+參與者
+參觀團
+參觀團體
+參閱
+吃著不盡
+合著
+合著者
+吊帶褲
+吊掛著
+吊著
+吊褲
+吊褲帶
+向著
+嚴絲合縫
+回絲
+回著
+塗著
+壟斷價格
+壟斷資產
+壟斷集團
+姜絲
+帶團參加
+干著急
+幾絲
+彆著
+怎麼著
+憑藉著
+接著說
+擔著
+擔負著
+敘說著
+斗轉參橫
+旋繞著
+板著臉
+標志著
+正當著
+沈著
+沖著
+派團參加
+涂著
+湊合著
+瀰漫著
+為著
+煙斗絲
+率團參加
+畫著
+當著
+發著
+直接參与
+睡著了
+秋褲
+積极參与
+積极參加
+簽著
+系著
+絕對參照
+絲來線去
+絲布
+絲板
+絲瓜布
+絲絨布
+絲線
+絲織廠
+絲蟲
+緊繃著
+繃著
+繃著臉
+繃著臉兒
+繫著
+罵著
+肉絲麵
+背向著
+菌絲体
+菌絲體
+著兒
+著書立說
+著色軟體
+著重指出
+著錄
+著錄規則
+薑絲
+藉著
+蘊含著
+蘊涵著
+衝著
+被覆著
+覆著
+覆蓋著
+訴說著
+說著
+請參閱
+謝絕參觀
+豎著
+豐濱
+豐濱鄉
+象徵著
+這么著
+這麼著
+那麼著
+配合著
+醞釀著
+錄著
+鍛鍊出
+鍛鍊身体
+關係著
+雞絲
+雞絲麵
+面朝著
+面臨著
+顯著標志
+颳著
+髮絲
+鬥著
+鬧著玩儿
+鬧著玩兒
+鯰魚