|
精华文章啊!!实在忍不住从口袋转载了过来:)
7 E1 F* m( C3 D6 o# S2 n
0 X: I9 |( H& |4 X# m原作者:linld97044: n( E; u# q* i
内容:# ]& u. {" `% B5 t( n& s6 p/ `
玩PDA多年,在坛子一向是潜水多贡献少,现在向坛子贡献下做mdict的方法。7 i2 z& J0 v* q C
9 d( I$ b9 n! c! d/ X做专业字典首先的难题是字典源文件,经搜索,看来stardict是比较好的源文件,字典量多货足。可以在以下链接大量下载:
' y3 Y$ y6 `( Q! D# v: m. [. e/ Z( A+ t1)http://www.vayn.cn/sundries/files/stardict-dict.htm' E2 o2 B" Q, s1 n5 t
2)http://reciteword.sourceforge.net/stardict/babylon.php
8 P* F6 j' r- J3)http://stardict.sourceforge.net/Dictionaries_zh_CN.php
1 s4 w; V2 q% v" ^0 t" U, Z! P( `$ P' q, V2 ~, p' c
本问题之前在http://bbs.pdafans.com/thread-608906-1-1.html(mdict自定义尝试-美国传统字典+湘雅医学词典+高级汉语词典3合1的mdict(附方法))中讨论过,现基本已解决,发帖总结下:' U4 G0 ? ?7 q0 @# f
; t$ M" s! g2 E8 R1、根据mdict作者邮件,比较旧的stardict可以用convstar命令转化成txt后用MDXBuilder 2.5 编成mdict的mdx文件。这一步比较简单,之前的帖子也详细说过了。
5 w& p0 J' P% z \) H* K
$ Y, b E- U% o8 f2、第二种情况是stardict后期的词典,用了不同的编码格式,convstar直接转出现下面类似的错误:; A4 R6 K. L$ H3 t8 [
, e+ [: ? U' \, F1 N u
“Warning unknown mark: k (0x6b), following content will be ignored.
- \1 d8 ?) W4 \8 F! J& eSummary of ignored marks:
- T6 z9 i2 K: P- k3 @$ K3 Lk (0x6b) 96281 times$ K& `" P. m& F6 t' B
Done!”7 d R$ I# A' R# ?& z: g
+ [9 r. {7 P2 O% P5 Y7 o: a这种情况不能用http://www.octopus-studio.com里的convstar直接转。应做如下处理:
' y7 K" q1 I a5 v( j, `7 w7 {" r% L0 \; e7 J# M t0 ]6 x
1)先要用aisnote编写的CvtStarDict2Txt.exe转成txt U! A5 n+ I- V5 i
2)txt用ultraedit编辑成mdict标准格式6 [) d. a' ` V) ]4 c( S* B$ f! C
3)用MDXBuilder编成mdx文件。5 ^" x. G; Q$ t. e5 ^8 ~- o8 J
7 U$ T6 {1 }7 \- i( u5 ]
以stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2为例给大家示范下stardict to mdict的全过程。, o0 T( |0 |6 U' Y( g- Y N) a
9 p2 G( I" F+ E2 s9 O* m" h% _# N
一、下载文件包,得到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四个文件。* ] }1 E6 H# o! @: F; ?) ] b+ X
" I# `5 w+ M& b& H4 Y注,用convstar,出现下列错误信息,说明convstar不能处理该文件:* l( k3 T w$ p% z" F
; |: l9 u' e. b H5 e" U; F- M/ S”C:\>C:\download\MdxBuilder\ConvStar\ConvStar.exe C:\download\German\stardict-bab
" O) [$ F* h' y$ G% q, i% N" ~2 wylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dict3 X- L( z2 X$ ]9 N
ionary.ifo c:\g-e.txt. x1 g& D% ~: {% m! D6 S
bookname: Babylon German-English , wordcount 164638
# f8 A: i4 W" R' wTotal entries:164638
3 d" u* M5 O+ j2 Z! B: p9 f& k+ lWarning unknown mark: h (0x68), following content will be ignored.
; e& l8 X& t2 ]6 r# V5 I. ISummary of ignored marks:4 Z8 K+ K' ^6 r/ r, g, E
h (0x68) 164638 times
/ H9 ?/ d$ T% D7 S1 |Done!“
" a. b5 F* h7 [2 I% W
* G3 P9 S- i# y二、用7-zip继续解压NEW_Babylon_German_English_dictionary.dict.dz,得到NEW_Babylon_German_English_dictionary.dict,该.dict文件应该解压在和另外几个文件在同一目录。! }3 T. Z) I! j$ o" `( M J5 {
见图1
; z. N0 `* d+ M5 n# D2 |& M6 i7 Y6 Q5 E" \; i5 i
三、启动CvtStarDict2Txt.exe,选择NEW_Babylon_German_English_dictionary.ifo,再点convert。成功后对话框出现:”Word Count=164638
* r- K+ `$ @8 Z, T2 ^: I) S! {=======2 D: \! y" E: F$ s5 o, o
C:\download\German\stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dictionary.txt 2 ^2 e! a9 C: ^( i. @
Convert Success!!
0 U: P' m' G7 I# r, M h6 O======“说明转化成功!
0 Z3 X, b/ `& @. d( e见图27 m G0 W4 ~$ N/ A1 h4 S2 A
& ]" @, @& y6 ^7 K- o" t" P* A: @四、由于要做德英英德双向字典,依样画葫芦下载源转换,得到Babylon_English_German.txt和NEW_Babylon_German_English_dictionary.txt两个文件。
6 D5 m. g4 F+ p( f1 S! |
5 Z4 ]3 A. S: w, w- Y6 M五、这2个txt文件在ultraedit打开,提示”do you want to convert to DOS format“,选是。本来想用copy命令合并这2个txt,但copy命令不知为何只拷贝了部分文件,所以这里用ultraedit全选一个txt全部文本,粘帖在另一个后面(Ctrl+End)。得到一个313468行的文件。* b) c. X) u+ I( ? F8 }
) ?0 M, ]$ J; c( b7 o3 O- F六、在ultraedit”Ctrl + R“把换行符”^p"替换成“^p</>^p”,如图,选replace All。就是在每一行加上换行及</>(mdict分节号)。4 [6 b" q4 D; Z: K9 Q% Y+ Z
如:9 Q7 t7 W1 Y9 O- B* \
“abhorrence <font color="blue">n.</font> Abscheu
5 g# Q; @+ m; \! Yabhorrent <font color="blue">adj.</font> abscheulich”$ Z' J' H6 ]7 j$ G! P. T+ s: v
. `, y1 r! O% _$ d8 @将转成:
) q. p4 v O5 F; e"abhorrence <font color="blue">n.</font> Abscheu2 D& N8 c( I8 E, z9 [
</>% O9 O/ B: G, [0 N5 m3 \' W. }: b1 B
abhorrent <font color="blue">adj.</font> abscheulich5 ?1 k! `$ U$ F* Y0 o
</>"( p2 K- V1 N0 k7 w- k
再用一次替换“Ctrl+R”把 “^t"(Tab)替换成”^p“,转换成:: h) s/ g6 a; t. P# x- Q( O$ X. w+ g4 @. i
”abhorrence l$ t/ R7 S% z \9 C
<font color="blue">n.</font> Abscheu
@. s0 h1 @2 v9 {. ~</>
' S- A* s8 W4 i' F/ Sabhorrent+ s S/ F. F% g1 A- B
<font color="blue">adj.</font> abscheulich L# z; Y! @3 I9 L: V
</>“( v' t6 p& N' J o
得到mdx标准txt!存储为DOS Terminators-CR/LF ;UTF-8文件。
6 j3 ]0 \ n- s; Z3 S9 J1 Y, x* H/ H# w
见图3和图4' g7 @& H5 m8 @! p
3 ^! ~4 I2 |! I! D七、mdxbuilder出动,注意source选txt源文件,target输入生成文件路径和名称,style应选example-style.txt,original format这里选Mdict(Compact HTML),Encoding选UTF-8.! z+ s9 g* C6 L; O1 _/ N1 l8 e
见图5
8 ~; @! P! W" `4 D. l
7 n: o/ m$ n6 f- y5 y$ \3 P% J3 u9 B八,完成了,就这么简单, y! A% a0 ]: b, ?8 e. f
见图6+ ?' u1 _* d& U* s8 Y! b5 X, ^( H
* F& Q/ E7 X B" @. I附上几个必须文件: Z7 j/ }4 v/ v6 N( N
?; T: m. i. Q+ Z) {; S# P! L
CvtStarDict2Txt.exe |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
|