|
精华文章啊!!实在忍不住从口袋转载了过来:)
0 u% ^' P5 g) \6 V5 s2 I
! r' Z& j6 z2 P7 E原作者:linld97044
X- R, F! y) g+ O8 j内容:; j. b- `: g, x# ^* L6 O) g% z' e
玩PDA多年,在坛子一向是潜水多贡献少,现在向坛子贡献下做mdict的方法。4 [2 q( N" | a6 x
V) b. I* F4 F" m) g! {/ B. P做专业字典首先的难题是字典源文件,经搜索,看来stardict是比较好的源文件,字典量多货足。可以在以下链接大量下载:
# Q! g; D! B+ u7 O. J! J+ g1)http://www.vayn.cn/sundries/files/stardict-dict.htm+ o0 N3 u) G0 `' V1 y7 O- q
2)http://reciteword.sourceforge.net/stardict/babylon.php& D% m6 N7 t0 E0 u0 k! F! G
3)http://stardict.sourceforge.net/Dictionaries_zh_CN.php6 l: m8 \' O$ M/ E
2 P X) m1 y5 E# Z本问题之前在http://bbs.pdafans.com/thread-608906-1-1.html(mdict自定义尝试-美国传统字典+湘雅医学词典+高级汉语词典3合1的mdict(附方法))中讨论过,现基本已解决,发帖总结下:; c1 H- |5 i4 d! z* J
2 V. E3 @2 w- q" f: |' X1、根据mdict作者邮件,比较旧的stardict可以用convstar命令转化成txt后用MDXBuilder 2.5 编成mdict的mdx文件。这一步比较简单,之前的帖子也详细说过了。9 R' f' ~! r5 U- n; K; }6 c
/ U }' @1 p" O+ f% r2、第二种情况是stardict后期的词典,用了不同的编码格式,convstar直接转出现下面类似的错误:
! z3 ?9 J( |6 X1 s6 Q
/ z# n u7 W* {9 m3 f' O“Warning unknown mark: k (0x6b), following content will be ignored., U5 v" L, L7 k0 e* A6 g' h
Summary of ignored marks:
7 Y a& z, @0 V0 `& f5 u/ B- Yk (0x6b) 96281 times. K8 @/ G, X' O2 g* e" [+ M
Done!”1 V8 q# [7 d c& H- y, h3 M
# h! T* [6 S# z3 w: b: G) R
这种情况不能用http://www.octopus-studio.com里的convstar直接转。应做如下处理:5 r' r+ [! J3 n- l9 R, A7 {- c$ K) Y8 C
9 z1 a+ {4 n' z: N+ z7 n% W
1)先要用aisnote编写的CvtStarDict2Txt.exe转成txt
8 w% Y t- |2 T" |7 f2)txt用ultraedit编辑成mdict标准格式& F% C1 e$ ^% J( k9 g1 P" X
3)用MDXBuilder编成mdx文件。( `+ L r* s3 [
p$ K9 t9 b0 m1 a6 ~8 v* \
以stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2为例给大家示范下stardict to mdict的全过程。& r/ X& s" i& ^; c4 f& z3 e1 V: e
9 M2 T3 o7 A% |5 t
一、下载文件包,得到stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2.tar.bz2,该文件可以用winrar解压,得到NEW_Babylon_German_English_dictionary.dict.dz;NEW_Babylon_German_English_dictionary.idx;NEW_Babylon_German_English_dictionary.ifo;NEW_Babylon_German_English_dictionary.syn四个文件。
2 K7 M* s: {3 ]7 @8 U' L2 [* E" M# t& p4 |
注,用convstar,出现下列错误信息,说明convstar不能处理该文件:
/ m1 E. ~9 U+ Q- t2 l a
( t2 `6 u# g$ t8 x X! a8 V”C:\>C:\download\MdxBuilder\ConvStar\ConvStar.exe C:\download\German\stardict-bab
9 F& u8 S6 r' k, |; G% ^, Tylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dict7 ~0 Y6 x1 V7 a! H1 C: r% l: [
ionary.ifo c:\g-e.txt
: O+ e3 f0 l4 C2 x. i1 h2 Fbookname: Babylon German-English , wordcount 164638
( H2 D' [/ C2 i, YTotal entries:164638
* H% {' ]5 D$ y9 J" K; y) l6 VWarning unknown mark: h (0x68), following content will be ignored.4 a$ |0 M; m/ |3 M9 n
Summary of ignored marks:
' Y! d' ~4 C% O- ~8 a& T; F8 Eh (0x68) 164638 times% q I2 O7 ~) F5 x0 g; T; M
Done!“
& l6 V. @: J* d* ]1 }8 X6 _! e1 e4 o1 Y1 W
二、用7-zip继续解压NEW_Babylon_German_English_dictionary.dict.dz,得到NEW_Babylon_German_English_dictionary.dict,该.dict文件应该解压在和另外几个文件在同一目录。
9 E; W# W \$ ?见图1* R" R$ L( \! K% _8 d$ u8 `6 G
8 n# ~8 Q! S& O _" n8 y, |7 @
三、启动CvtStarDict2Txt.exe,选择NEW_Babylon_German_English_dictionary.ifo,再点convert。成功后对话框出现:”Word Count=164638
! G/ l9 C; a" s; ?! e; Y% u, h( e=======7 q9 Q0 B6 y k
C:\download\German\stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dictionary.txt
5 J5 C( ?2 r" X; mConvert Success!!4 V6 J2 Q+ E* _, ~; B1 j
======“说明转化成功!
9 T0 D( ]* Q& b1 A0 Z* F) r见图2
% y: ~1 x- {8 `( C& r4 |( \( i9 L& U/ {) `) Q" B
四、由于要做德英英德双向字典,依样画葫芦下载源转换,得到Babylon_English_German.txt和NEW_Babylon_German_English_dictionary.txt两个文件。
) d x) U2 @$ o2 V! V4 c
2 s9 o& |# I6 U五、这2个txt文件在ultraedit打开,提示”do you want to convert to DOS format“,选是。本来想用copy命令合并这2个txt,但copy命令不知为何只拷贝了部分文件,所以这里用ultraedit全选一个txt全部文本,粘帖在另一个后面(Ctrl+End)。得到一个313468行的文件。8 s- D7 V* k) S5 i; x4 O7 b
Z& \! j! e' ~- n2 o
六、在ultraedit”Ctrl + R“把换行符”^p"替换成“^p</>^p”,如图,选replace All。就是在每一行加上换行及</>(mdict分节号)。
8 R0 p# n0 M# O# f+ j如:% `# Q. i% N6 t! E3 F. b( ]
“abhorrence <font color="blue">n.</font> Abscheu
; Z' b% T0 p& cabhorrent <font color="blue">adj.</font> abscheulich”
* q; X% P4 O9 E, Y' h
3 i- c8 A O' T, \8 @ [& u- N# a( g M将转成:5 Z, I+ h0 \3 } d5 |4 u$ o: Y+ _
"abhorrence <font color="blue">n.</font> Abscheu
4 T- r: Z* _+ u" q; Q5 L# k</>9 K! Z" d7 K5 _5 z5 H
abhorrent <font color="blue">adj.</font> abscheulich
# [3 ^% r* m( B8 X }# J& c</>", l2 [. I- k5 l' k3 w0 H9 q
再用一次替换“Ctrl+R”把 “^t"(Tab)替换成”^p“,转换成:9 ~" p& ? f* ^6 I
”abhorrence
3 X) c' ]9 N( _5 V. m0 Y<font color="blue">n.</font> Abscheu, |4 k. P+ {* E" U0 V' E
</>
& I* `. C6 ]* l$ a- V# Kabhorrent
; k1 t+ N/ I' }6 s* ~. n5 { Y<font color="blue">adj.</font> abscheulich
7 B- K" K+ T0 Z% A0 o5 ~% W! G</>“
2 I$ F1 x2 B, A! `9 F, _得到mdx标准txt!存储为DOS Terminators-CR/LF ;UTF-8文件。
# v. K7 n( d! ]; ~' @. g) l Z" R) h+ ^7 f
见图3和图4
8 ? a3 N3 {, e0 \6 r, j0 i8 }& y9 e0 K1 x; S
七、mdxbuilder出动,注意source选txt源文件,target输入生成文件路径和名称,style应选example-style.txt,original format这里选Mdict(Compact HTML),Encoding选UTF-8., O( m4 g% t: B2 R/ C
见图5
3 H9 ~+ \- b9 r2 S: R; I" I- G, U. B9 M4 q8 n) F6 h3 g4 _# ~
八,完成了,就这么简单
/ G! V& X1 O& X见图6- ~8 C( ~% V! K
- P3 I4 p% D6 y附上几个必须文件:$ s/ o$ P" h3 D$ t; P! F0 P( U x
4 a( `1 V' d$ Q. D
CvtStarDict2Txt.exe |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
|