掌上百科 - PDAWIKI

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 9306|回复: 16

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

[复制链接]

该用户从未签到

发表于 2008-9-26 01:12:20 | 显示全部楼层 |阅读模式
精华文章啊!!实在忍不住从口袋转载了过来:) ) B- B% F: b  e" x
, L/ G" B; S9 B# S' z( Z- p
原作者:linld97044, f/ h/ [( O, F- \; k  n( ?; H
内容:+ }* ~7 y# }6 g7 H. N, n
玩PDA多年,在坛子一向是潜水多贡献少,现在向坛子贡献下做mdict的方法。
1 z4 B; q1 N5 f
% [, x+ s+ z- d! f% \0 E/ H: U做专业字典首先的难题是字典源文件,经搜索,看来stardict是比较好的源文件,字典量多货足。可以在以下链接大量下载:
( g4 ~" k1 ~$ Y, ~0 `! }% K% O. N1)http://www.vayn.cn/sundries/files/stardict-dict.htm2 T% t3 R+ t, ]' a2 D
2)http://reciteword.sourceforge.net/stardict/babylon.php
, h4 A( x! V' Z$ z3)http://stardict.sourceforge.net/Dictionaries_zh_CN.php
$ @. g( i; U& ]4 \$ h
+ p+ S% a9 `- K0 ^本问题之前在http://bbs.pdafans.com/thread-608906-1-1.html(mdict自定义尝试-美国传统字典+湘雅医学词典+高级汉语词典3合1的mdict(附方法))中讨论过,现基本已解决,发帖总结下:' `8 j4 N' G! y& d

+ H* q) y6 R- x3 Q$ i! l. w: u. {+ `1、根据mdict作者邮件,比较旧的stardict可以用convstar命令转化成txt后用MDXBuilder 2.5 编成mdict的mdx文件。这一步比较简单,之前的帖子也详细说过了。
! e" w9 K' i2 f) T( n0 L) m1 w. l2 n" U1 R& L
2、第二种情况是stardict后期的词典,用了不同的编码格式,convstar直接转出现下面类似的错误:: x; y  C3 e$ ?' y

9 \0 W3 z% w! g# Q8 F“Warning unknown mark: k (0x6b), following content will be ignored.; Z# W: d; }' Y: H2 v) U
Summary of ignored marks:
1 }  P0 V0 G9 s/ Y7 o; P6 U) Zk (0x6b) 96281 times
$ d2 \: Q! O9 W5 I$ q) D6 {  zDone!”
6 p) E8 {5 x6 R$ Z) s
% c9 a& C+ `( `1 k8 T3 `这种情况不能用http://www.octopus-studio.com里的convstar直接转。应做如下处理:, u6 X* v$ @/ f. N- R. G4 B3 |

2 q1 [( d% {! q- E( I. z. Z6 w1)先要用aisnote编写的CvtStarDict2Txt.exe转成txt0 n! x- t2 r" ]" A5 C: p
2)txt用ultraedit编辑成mdict标准格式
. p' A+ N8 Z, C, i3)用MDXBuilder编成mdx文件。
4 I3 X- k) _; d8 Q# ?, \) @$ V' g- Z) Q5 @" F( |( A6 e/ n
以stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2为例给大家示范下stardict to mdict的全过程。: B% p) y' `0 F  `- J
& I9 B; }+ W! O0 x3 a8 `: ]- S& D
一、下载文件包,得到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四个文件。+ J* W8 O% J7 ]% T% N4 Z

/ i" k: L% V! X1 P) M* P, Q( W注,用convstar,出现下列错误信息,说明convstar不能处理该文件:* V2 r- K) d  M' X

0 b" E% X3 T3 m& R. `( s”C:\>C:\download\MdxBuilder\ConvStar\ConvStar.exe C:\download\German\stardict-bab& I4 g4 y# K, M% ?' w5 l: y" F8 U  |
ylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dict6 C- _0 O6 O& ^  m6 v
ionary.ifo c:\g-e.txt7 N/ |- x) s5 |# x- `
bookname: Babylon German-English , wordcount 164638
$ N) d! D7 p& A. e' g, STotal entries:164638
+ `% h% Y5 y/ Y4 k% x4 MWarning unknown mark: h (0x68), following content will be ignored.
8 C1 s9 p/ L/ Y+ x8 vSummary of ignored marks:
' N' U1 l: I0 ]! n0 Ph (0x68) 164638 times; C, |# ^( t5 v3 [  e' t
Done!“
2 N5 v9 Y2 k6 g# C5 A- R# {- Z3 n: v  ?& [& I( X7 e4 Q4 p
二、用7-zip继续解压NEW_Babylon_German_English_dictionary.dict.dz,得到NEW_Babylon_German_English_dictionary.dict,该.dict文件应该解压在和另外几个文件在同一目录。
# a" z0 B) @* D7 q+ g1 \见图1
; T# ?, X& u" e$ o$ D9 l; R: }- _3 H9 Q3 ?
三、启动CvtStarDict2Txt.exe,选择NEW_Babylon_German_English_dictionary.ifo,再点convert。成功后对话框出现:”Word Count=164638! g( u. W/ B8 ~4 a5 x
=======. D$ P( b6 `* a( n5 J' h0 o# f
C:\download\German\stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dictionary.txt 1 k, c( N# O, G3 o* n" Y
Convert Success!!
2 s( c3 }" h- h======“说明转化成功!6 B6 @6 W, u( o- y* v3 z
见图2
" d7 l1 b& O1 E$ R& ^% l- \7 R

3 f# M, u1 @$ a: i) n, Q四、由于要做德英英德双向字典,依样画葫芦下载源转换,得到Babylon_English_German.txt和NEW_Babylon_German_English_dictionary.txt两个文件。9 R6 _: h2 C0 Z
) k4 g1 v! m6 _" c. y9 t$ f8 s9 s
五、这2个txt文件在ultraedit打开,提示”do you want to convert to DOS format“,选是。本来想用copy命令合并这2个txt,但copy命令不知为何只拷贝了部分文件,所以这里用ultraedit全选一个txt全部文本,粘帖在另一个后面(Ctrl+End)。得到一个313468行的文件。4 @2 U, j0 l+ e8 R1 X
" F* `, w5 k. N# d  A
六、在ultraedit”Ctrl + R“把换行符”^p"替换成“^p</>^p”,如图,选replace All。就是在每一行加上换行及</>(mdict分节号)。
% S3 [* u6 Q+ F$ |" h1 I: u" C2 y如:
4 o' A  L& A/ O& s“abhorrence    <font color="blue">n.</font> Abscheu1 J+ g- r/ n" h6 _( u6 G
abhorrent    <font color="blue">adj.</font> abscheulich”
2 m* h! Q# W% k; L
' I+ j9 `1 Z; _; k将转成:7 a- R/ S; i; j. n" d7 K. [( l
"abhorrence    <font color="blue">n.</font> Abscheu
7 l( M0 \" Q: U) a" o& J</>
6 g: z: d/ |# W' Habhorrent    <font color="blue">adj.</font> abscheulich6 K. d# b/ ]( i
</>"
5 i1 ?8 o3 ~8 z5 _9 d再用一次替换“Ctrl+R”把 “^t"(Tab)替换成”^p“,转换成:- u0 s8 c- C9 _2 _( i
”abhorrence0 ]  h4 s0 p2 F
<font color="blue">n.</font> Abscheu2 S8 c$ N6 i% ?. R
</>+ ~' w  }( g2 ]5 ^$ I
abhorrent+ U7 R6 l4 E3 d. F$ t
<font color="blue">adj.</font> abscheulich" C  I9 ]% p4 U' F9 R
</>“
4 C; ^6 y" n) T/ E得到mdx标准txt!存储为DOS Terminators-CR/LF ;UTF-8文件。
  m! D8 h4 O6 ^! F+ n- z5 U8 T0 M8 n. V
见图3和图47 [- x9 C, G+ n+ C9 g
! x  Y7 _: P0 A: v1 m
七、mdxbuilder出动,注意source选txt源文件,target输入生成文件路径和名称,style应选example-style.txt,original format这里选Mdict(Compact HTML),Encoding选UTF-8.# R8 d, D9 p) T2 Y' o: X
见图59 r+ H, C$ e/ K; h8 K; Z2 I2 T5 \

# k# E! Z/ Q* [7 [% u八,完成了,就这么简单% u$ Y# E/ w2 {1 ?4 S
见图6( y; r& X8 u3 \2 K% r" |0 A
! |# _/ K5 |1 V" x
附上几个必须文件:& h4 q* v# O% A+ O# b! L

3 k2 K$ O3 \8 b( J  }9 K* M7 ]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就出现错误报告:. |; Z, g' Q. X) J9 j
内容如下:' L# q+ u2 ?+ R# ?
<?xml version="1.0" encoding="UTF-16"?>2 |! R' m. J& j/ e+ I; e: @+ Y
<DATABASE>* g) r6 Z- _& R2 q. W5 v9 X" M
<EXE NAME="CvtStarDict2Txt.exe" FILTER="GRABMI_FILTER_PRIVACY">
8 K3 @! x% w9 [+ C, x    <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" />
# D2 e# a; }% L) z% p+ g0 A    <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]" />% |! ~1 T5 o( ?1 @8 S
    <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]" />6 @0 c+ I- [: u( d# J2 r: X
    <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]" />, s1 X1 C. u" u% w1 B: t" c' O/ f. I
    <MATCHING_FILE NAME="libgtk-win32-2.0.dll" SIZE="2373542" CHECKSUM="0xCDFB5A3B" />
9 C8 ]' J4 P) D+ T6 ]/ P    <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" />
9 I) X8 y: t3 F% r; v' l, d: r: A    <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]" />
( h" Q: e; I- g+ r  f</EXE>+ i( ^4 K" f. T; e4 \  n# N5 Y+ D
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">4 Z9 m/ j& o! K7 B
    <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]" />
/ B* T4 a3 l" v6 b  _+ n7 q6 t" q</EXE>
4 Q. Z+ {. |+ Z' ~8 z</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 小时前
  • 签到天数: 2328 天

    [LV.Master]伴坛终老

    发表于 2010-7-12 18:02:19 | 显示全部楼层
    来学习一下~~
    . r' Q- o! J% A3 Z. n谢谢分享~~

    该用户从未签到

    发表于 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-5-1 23:23 , Processed in 0.032490 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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