掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 9289|回复: 16

[教程] 转载:【PDAFANS】stardict to mdict完全手册-做你自己的mdict

[复制链接]

该用户从未签到

发表于 2008-9-26 01:12:20 | 显示全部楼层 |阅读模式
精华文章啊!!实在忍不住从口袋转载了过来:)
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

本帖被以下淘专辑推荐:

该用户从未签到

发表于 2008-9-26 10:05:20 | 显示全部楼层

回复 1楼 Macli 的帖子

:loveliness:
lin_5151 该用户已被删除
发表于 2008-9-26 19:16:13 | 显示全部楼层
看不懂,可是要顶。
eugene 该用户已被删除
发表于 2008-10-11 10:41:13 | 显示全部楼层
好像做点什么,可是还不会。。。

该用户从未签到

发表于 2008-12-22 00:34:01 | 显示全部楼层
顶一个吧

该用户从未签到

发表于 2009-1-3 21:16:26 | 显示全部楼层
不行啊,我的电脑执行CvtStarDict2Txt.exe的时候,点击convert就出现错误报告:6 z- L9 b! k: M, L& F% c
内容如下:* C% u# ?$ R8 s- i* M. Q
<?xml version="1.0" encoding="UTF-16"?>* U7 E  H- z! I8 r: c' J. o
<DATABASE>$ s' |) s. |0 p  h& I7 M  b
<EXE NAME="CvtStarDict2Txt.exe" FILTER="GRABMI_FILTER_PRIVACY">
5 S7 k# f, n/ m    <MATCHING_FILE NAME="ConvStar.exe" SIZE="184320" CHECKSUM="0x3268197E" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3BD3C" LINKER_VERSION="0x0" LINK_DATE="05/05/2008 14:17:42" UPTO_LINK_DATE="05/05/2008 14:17:42" />  X8 W  |6 N  V" O$ g/ Q. I
    <MATCHING_FILE NAME="CvtStarDict2Txt.exe" SIZE="69632" CHECKSUM="0xC5993943" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1, 0, 0, 1" FILE_DESCRIPTION="CvtStarDict2Txt Module" COMPANY_NAME="" PRODUCT_NAME="CvtStarDict2Txt Module" FILE_VERSION="1, 0, 0, 1" ORIGINAL_FILENAME="CvtStarDict2Txt.exe" INTERNAL_NAME="CvtStarDict2Txt" LEGAL_COPYRIGHT="Copyright 2008" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="07/08/2008 13:06:04" UPTO_LINK_DATE="07/08/2008 13:06:04" VER_LANGUAGE="English (United States) [0x409]" />
5 X! ~, o4 W; C; s1 }2 h7 d5 F    <MATCHING_FILE NAME="intl.dll" SIZE="104861" CHECKSUM="0x707C047B" BIN_FILE_VERSION="0.17.0.0" BIN_PRODUCT_VERSION="0.17.0.0" PRODUCT_VERSION="0.17" FILE_DESCRIPTION="LGPLed libintl for Windows NT/2000/XP/Vista and Windows 95/98/ME" COMPANY_NAME="Free Software Foundation" PRODUCT_NAME="libintl: accessing NLS message catalogs" FILE_VERSION="0.17" ORIGINAL_FILENAME="intl.dll" INTERNAL_NAME="intl.dll" LEGAL_COPYRIGHT="Copyright (C) 1995-2007" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x10004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x28460" LINKER_VERSION="0x10000" UPTO_BIN_FILE_VERSION="0.17.0.0" UPTO_BIN_PRODUCT_VERSION="0.17.0.0" LINK_DATE="01/24/2008 22:54:47" UPTO_LINK_DATE="01/24/2008 22:54:47" VER_LANGUAGE="English (United States) [0x409]" />) s4 ~  B* J3 \/ N
    <MATCHING_FILE NAME="libglib-2.0-0.dll" SIZE="1001834" CHECKSUM="0x52944E10" BIN_FILE_VERSION="2.16.3.0" BIN_PRODUCT_VERSION="2.16.3.0" PRODUCT_VERSION="2.16.3" FILE_DESCRIPTION="GLib" COMPANY_NAME="The GLib developer community" PRODUCT_NAME="GLib" FILE_VERSION="2.16.3.0" ORIGINAL_FILENAME="libglib-2.0-0.dll" INTERNAL_NAME="libglib-2.0-0" LEGAL_COPYRIGHT="Copyright &copy; 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GLib Team and others 1997-2004." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xFB24A" LINKER_VERSION="0x10000" UPTO_BIN_FILE_VERSION="2.16.3.0" UPTO_BIN_PRODUCT_VERSION="2.16.3.0" LINK_DATE="04/17/2008 07:25:17" UPTO_LINK_DATE="04/17/2008 07:25:17" VER_LANGUAGE="English (United States) [0x409]" />/ P0 ^: q1 y2 F/ M, Y7 V; V
    <MATCHING_FILE NAME="libgtk-win32-2.0.dll" SIZE="2373542" CHECKSUM="0xCDFB5A3B" />% o7 A" p9 L' }4 u% a8 O# a
    <MATCHING_FILE NAME="MdxExport.exe" SIZE="303104" CHECKSUM="0xA46ED5F8" MODULE_TYPE="WIN32" PE_CHECKSUM="0x4C68B" LINKER_VERSION="0x0" LINK_DATE="10/18/2008 02:58:10" UPTO_LINK_DATE="10/18/2008 02:58:10" />
* t5 |6 L( J: Y$ L6 G% x# s, g% R  Z    <MATCHING_FILE NAME="zlib1.dll" SIZE="59904" CHECKSUM="0x7697A3DC" BIN_FILE_VERSION="1.2.3.0" BIN_PRODUCT_VERSION="1.2.3.0" PRODUCT_VERSION="1.2.3" FILE_DESCRIPTION="zlib data compression library" PRODUCT_NAME="zlib" FILE_VERSION="1.2.3" ORIGINAL_FILENAME="zlib1.dll" INTERNAL_NAME="zlib1.dll" LEGAL_COPYRIGHT="(C) 1995-2004 Jean-loup Gailly &amp; Mark Adler" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x10004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xF587" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.2.3.0" UPTO_BIN_PRODUCT_VERSION="1.2.3.0" LINK_DATE="07/20/2005 09:48:10" UPTO_LINK_DATE="07/20/2005 09:48:10" VER_LANGUAGE="English (United States) [0x409]" />
  i# k0 }5 u$ D. [# F: u) N. o! }6 H</EXE>/ q" G4 P# S8 @; `! b% z+ m+ v' E. a
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
& i  ^6 i' I1 C& [( E1 G    <MATCHING_FILE NAME="kernel32.dll" SIZE="984576" CHECKSUM="0xF0B331F6" BIN_FILE_VERSION="5.1.2600.3119" BIN_PRODUCT_VERSION="5.1.2600.3119" PRODUCT_VERSION="5.1.2600.3119" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft&reg; Windows&reg; Operating System" FILE_VERSION="5.1.2600.3119 (xpsp_sp2_gdr.070416-1301)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="&copy; Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xF9293" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.3119" UPTO_BIN_PRODUCT_VERSION="5.1.2600.3119" LINK_DATE="04/16/2007 15:52:53" UPTO_LINK_DATE="04/16/2007 15:52:53" VER_LANGUAGE="English (United States) [0x409]" />- q, R9 P" S% `
</EXE>  X+ _* G/ _/ |1 `+ K0 ]: @. Y
</DATABASE>

该用户从未签到

发表于 2009-7-28 22:06:59 | 显示全部楼层
这是要找的工具,准备试用。

该用户从未签到

发表于 2009-7-30 19:24:53 | 显示全部楼层
向老师们学习一下同,谢谢!!

该用户从未签到

发表于 2010-2-21 22:12:18 | 显示全部楼层
thank you very much
至尊笨 该用户已被删除
发表于 2010-2-25 17:07:09 | 显示全部楼层
需要一条一条的做吗?
  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 2325 天

    [LV.Master]伴坛终老

    发表于 2010-7-12 18:02:19 | 显示全部楼层
    来学习一下~~( u7 n  C' {: H) ?1 \
    谢谢分享~~

    该用户从未签到

    发表于 2010-7-15 18:40:30 | 显示全部楼层
    非常好的教材. 不过还是看不懂. 要得自己一点点做做试验, 一点点摸索.

    该用户从未签到

    发表于 2012-1-20 17:19:31 | 显示全部楼层
    收藏了,顶好帖

    该用户从未签到

    发表于 2012-3-5 22:10:10 | 显示全部楼层
    看不懂,可是要顶。

    该用户从未签到

    发表于 2013-10-16 14:09:59 | 显示全部楼层
    xiexie

    该用户从未签到

    发表于 2016-11-16 04:21:28 | 显示全部楼层
    Thank you for the information provided

    该用户从未签到

    发表于 2022-6-19 10:36:46 | 显示全部楼层
    好东西!感谢!!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2025-4-28 19:39 , Processed in 0.025017 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表