掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 8431|回复: 16

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

[复制链接]

该用户从未签到

发表于 2008-9-26 01:12:20 | 显示全部楼层 |阅读模式
精华文章啊!!实在忍不住从口袋转载了过来:)
8 S; U' P* k0 x/ i# e9 @% }7 J) ?! |) Y) m! R/ S: ~/ T3 _
原作者:linld97044  J8 n( `% F; h: ~
内容:
* f+ A; B6 K: r2 y; g玩PDA多年,在坛子一向是潜水多贡献少,现在向坛子贡献下做mdict的方法。
$ q4 e) X- B- p! H& w; K0 ^0 A, o  X- k% H% ^, G8 p
做专业字典首先的难题是字典源文件,经搜索,看来stardict是比较好的源文件,字典量多货足。可以在以下链接大量下载:
$ y" o. f1 L% H2 r( U; |" S$ F0 X9 r1)http://www.vayn.cn/sundries/files/stardict-dict.htm& T! Z1 `4 Y9 F+ V. ^& |6 B4 J0 W4 i
2)http://reciteword.sourceforge.net/stardict/babylon.php4 |$ C2 ]0 i" Z3 ~, V
3)http://stardict.sourceforge.net/Dictionaries_zh_CN.php& K) N2 Z  `' p: |; T

7 M: t. y8 W' D本问题之前在http://bbs.pdafans.com/thread-608906-1-1.html(mdict自定义尝试-美国传统字典+湘雅医学词典+高级汉语词典3合1的mdict(附方法))中讨论过,现基本已解决,发帖总结下:
. o! j2 \! |7 o: f( Z+ x* X0 J$ ^" {0 {% J
1、根据mdict作者邮件,比较旧的stardict可以用convstar命令转化成txt后用MDXBuilder 2.5 编成mdict的mdx文件。这一步比较简单,之前的帖子也详细说过了。
0 z% i8 H* r, M7 ]1 e! r/ S3 d% P- f4 U4 L
2、第二种情况是stardict后期的词典,用了不同的编码格式,convstar直接转出现下面类似的错误:4 X$ g; n* [# x; A, W: E5 |3 C

* W& ^" _- q( p( q5 J“Warning unknown mark: k (0x6b), following content will be ignored.
' e$ D6 |" u8 J1 C6 CSummary of ignored marks:6 a! i2 Y6 g6 Q5 V: \- d
k (0x6b) 96281 times
7 p& s4 D7 m+ B1 `4 {5 [8 M6 m9 bDone!”
8 K2 N+ b; W6 R4 [* Q  C" F/ U
2 \. q! Y$ d& S: C( m9 P+ f这种情况不能用http://www.octopus-studio.com里的convstar直接转。应做如下处理:
: W# w4 d6 Y% @$ u
1 A3 q) l/ }/ i1 u# z4 r1)先要用aisnote编写的CvtStarDict2Txt.exe转成txt
4 x3 j( |- l% d8 ]1 \6 P  \# {2)txt用ultraedit编辑成mdict标准格式
# M, ^0 w7 E! [  D; V3)用MDXBuilder编成mdx文件。5 N& I- m6 {: R# P
6 R1 s# S' e8 a$ v
以stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2为例给大家示范下stardict to mdict的全过程。# b; r6 |$ A! j4 L! Z8 U
' v/ y/ c, ]" Y6 c
一、下载文件包,得到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四个文件。
& c& P9 V% E8 N; {) @0 g2 O9 H+ C: J$ {3 F1 e" X: J; @
注,用convstar,出现下列错误信息,说明convstar不能处理该文件:
0 v) @! L1 J7 {, N; P6 B% r, R& a, x5 t* E# \7 w4 ~  f
”C:\>C:\download\MdxBuilder\ConvStar\ConvStar.exe C:\download\German\stardict-bab6 v7 X9 o. L8 S* l0 K/ c# l
ylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dict* `+ r" Y) t' d) D6 c1 c: W9 m% S5 n
ionary.ifo c:\g-e.txt3 S- b5 p( C- \
bookname: Babylon German-English , wordcount 164638
  S! U6 Z5 m0 d/ oTotal entries:164638: F3 S( `0 _$ x. g
Warning unknown mark: h (0x68), following content will be ignored.
8 C# w  p0 |* h$ t, oSummary of ignored marks:
' _* r& `3 Z7 C( K$ U) Y$ S' th (0x68) 164638 times
6 v* N$ d) E% D% wDone!“
) e: Q2 J& ]" t4 P; z* I, q
* t4 i6 @1 n" Z4 G, }5 X二、用7-zip继续解压NEW_Babylon_German_English_dictionary.dict.dz,得到NEW_Babylon_German_English_dictionary.dict,该.dict文件应该解压在和另外几个文件在同一目录。
; P# k7 y4 {1 ?见图1
! |( N# K$ R' ]0 O% V6 g+ Y0 f2 {
三、启动CvtStarDict2Txt.exe,选择NEW_Babylon_German_English_dictionary.ifo,再点convert。成功后对话框出现:”Word Count=164638$ u) g" L! \5 \1 `3 ~% S' w9 l
=======
* Q( e" D* t) N" d0 \2 _9 YC:\download\German\stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dictionary.txt
2 q0 O! e+ m1 x/ rConvert Success!!
/ k9 C! L( @- R  y0 m) g0 J# H* ^======“说明转化成功!" @2 i4 E$ E6 F0 @0 Y, ?  x% k2 e  ]
见图2' b  y+ R  [( |! @+ L9 l. i

# Y0 o# @# Z' E: N7 O, I" z四、由于要做德英英德双向字典,依样画葫芦下载源转换,得到Babylon_English_German.txt和NEW_Babylon_German_English_dictionary.txt两个文件。
0 l& R6 e, D' e. v' t) w" {  s4 @; D; R4 X" a
五、这2个txt文件在ultraedit打开,提示”do you want to convert to DOS format“,选是。本来想用copy命令合并这2个txt,但copy命令不知为何只拷贝了部分文件,所以这里用ultraedit全选一个txt全部文本,粘帖在另一个后面(Ctrl+End)。得到一个313468行的文件。0 O+ ~, K9 A# D6 m" j& |

/ N/ i; @) ]: \+ I# o) Y" q六、在ultraedit”Ctrl + R“把换行符”^p"替换成“^p</>^p”,如图,选replace All。就是在每一行加上换行及</>(mdict分节号)。
! T7 F. Z" L( R" L8 X2 [& L, i; i如:
- ?- Y5 N' U) e9 B0 H$ k' o- F“abhorrence    <font color="blue">n.</font> Abscheu
( o% a5 w2 z0 u6 E/ H% aabhorrent    <font color="blue">adj.</font> abscheulich”
9 j9 J" c2 h. ]$ G' W
  r' S8 f: I: R" o将转成:
5 w1 r$ j1 `0 }( q4 i, t* U9 Q"abhorrence    <font color="blue">n.</font> Abscheu" X6 h' w' C/ n
</>5 W! Y: b* X- w$ b. e
abhorrent    <font color="blue">adj.</font> abscheulich: O$ H9 e3 f' z
</>"% v1 O" Q, @6 v% G
再用一次替换“Ctrl+R”把 “^t"(Tab)替换成”^p“,转换成:: y5 f4 [4 Z0 P) e
”abhorrence
; T+ t4 _6 ]8 |<font color="blue">n.</font> Abscheu! u5 R7 P9 m: D& \
</>
, o, I2 q( X& B+ o& zabhorrent
' E0 x% @! s8 X; e; B  j<font color="blue">adj.</font> abscheulich% l2 o& X  s% d6 e  V1 N! n' E* x
</>“  k; R/ b' P6 }6 o3 Z
得到mdx标准txt!存储为DOS Terminators-CR/LF ;UTF-8文件。) y, j% I# h9 _% l% N# e
* o' N! e# O* w" e3 s3 p
见图3和图4
2 c, U2 J% Z: Z5 d4 ^5 h  _, H5 ]
% I! ]* W5 M; u: @( g
七、mdxbuilder出动,注意source选txt源文件,target输入生成文件路径和名称,style应选example-style.txt,original format这里选Mdict(Compact HTML),Encoding选UTF-8.
6 {8 b) T2 \5 I* O3 _) q见图57 X5 L7 H, ~( M7 e0 T
. G5 C8 ~  u9 j$ z  X" k
八,完成了,就这么简单
1 X1 X  w, Y* z' s+ k0 c见图6' V! t' s% Z+ c- E

& a& H/ R* I$ c* w  G3 g% L附上几个必须文件:) |/ I7 P) E1 q' L
' C+ F& g1 M. s2 \* t) Y& A* x4 S
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就出现错误报告:, D+ k- i( x3 W
内容如下:1 D: D4 U7 x4 e! n0 [& q9 k, [1 p' _
<?xml version="1.0" encoding="UTF-16"?>9 u4 P/ h# \1 f$ L
<DATABASE>1 K1 g7 o9 C1 @* H* x
<EXE NAME="CvtStarDict2Txt.exe" FILTER="GRABMI_FILTER_PRIVACY">- H! _; D7 r# _! }3 u  A
    <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" />& d& b( l5 [0 J" i9 Y
    <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]" />
9 _  T: e6 H. v9 r9 e5 h    <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]" />
) B+ O0 A' j* A& B    <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]" />
# m$ p* V( Y( A3 n1 L! |    <MATCHING_FILE NAME="libgtk-win32-2.0.dll" SIZE="2373542" CHECKSUM="0xCDFB5A3B" />
/ B8 k+ Z' g& B    <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" />
& N# k5 a/ b( c' l. Q    <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]" /># b1 t. d& b1 F1 [3 {( s5 C
</EXE>) [; B- u1 }! c/ _$ ~9 ?
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">7 p; `' X5 X5 m3 f" l8 P0 d
    <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]" />
* p9 L' m8 Z7 N# ~3 v</EXE>
$ Y- m; Y7 Y8 z$ x: n</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的每日心情
    开心
    22 小时前
  • 签到天数: 1976 天

    [LV.Master]伴坛终老

    发表于 2010-7-12 18:02:19 | 显示全部楼层
    来学习一下~~
    + v' g$ H! P% u, l8 j3 V谢谢分享~~

    该用户从未签到

    发表于 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, 2024-5-4 22:08 , Processed in 0.064054 second(s), 15 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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