掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 8483|回复: 16

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

[复制链接]

该用户从未签到

发表于 2008-9-26 01:12:20 | 显示全部楼层 |阅读模式
精华文章啊!!实在忍不住从口袋转载了过来:)
9 M8 H& p3 f  c) j9 G
5 o* j# r  Q. {! f原作者:linld97044
  X7 _0 Y/ S9 |7 L" _6 s2 a内容:
* B" c8 {8 M8 ~6 |$ M. v1 D玩PDA多年,在坛子一向是潜水多贡献少,现在向坛子贡献下做mdict的方法。9 T0 ]* {# x4 r( U& S
, V; E$ J% Y" h
做专业字典首先的难题是字典源文件,经搜索,看来stardict是比较好的源文件,字典量多货足。可以在以下链接大量下载:
7 t% T8 s  n$ d8 K1)http://www.vayn.cn/sundries/files/stardict-dict.htm
' h7 v8 W  |1 a; _2)http://reciteword.sourceforge.net/stardict/babylon.php
9 d. T7 ]/ B6 W' L; y" `2 U# f3)http://stardict.sourceforge.net/Dictionaries_zh_CN.php
; l; }% J' I% i: f  c3 e
, u7 P" L, K8 H! }( a( f2 g本问题之前在http://bbs.pdafans.com/thread-608906-1-1.html(mdict自定义尝试-美国传统字典+湘雅医学词典+高级汉语词典3合1的mdict(附方法))中讨论过,现基本已解决,发帖总结下:; M" }, u9 q' J( V" \1 O
! \6 U) U, r) `0 y7 E+ _, @& W# S. K! ]% E
1、根据mdict作者邮件,比较旧的stardict可以用convstar命令转化成txt后用MDXBuilder 2.5 编成mdict的mdx文件。这一步比较简单,之前的帖子也详细说过了。# i+ C2 z5 T8 ]  U4 \
/ O4 l: k3 ^" v, f1 Q' W
2、第二种情况是stardict后期的词典,用了不同的编码格式,convstar直接转出现下面类似的错误:3 k8 A$ }' n; T; v* @1 ^. x

$ ?' l. t1 F2 s4 |“Warning unknown mark: k (0x6b), following content will be ignored.$ |8 M& E6 s7 O/ x) J7 n4 q9 M
Summary of ignored marks:
9 w9 t7 ~, X$ L: Ek (0x6b) 96281 times
8 S4 ?2 j# J8 `. D3 D/ [Done!”
0 Z: i" c) A/ E- `" H8 y/ e4 T
这种情况不能用http://www.octopus-studio.com里的convstar直接转。应做如下处理:& \6 p! f9 t! X; k  m

& T. u; @8 A& S# r5 m3 u! }4 w. Z1)先要用aisnote编写的CvtStarDict2Txt.exe转成txt
: I% u% g2 X8 ~* ^5 Q- E( H2)txt用ultraedit编辑成mdict标准格式( z" ]8 b0 ~& v
3)用MDXBuilder编成mdx文件。
- u; G- M( @5 u4 d% p3 Q) Q, X
5 o% d6 s. r$ e1 A) l" F' p! _. k以stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2为例给大家示范下stardict to mdict的全过程。7 o5 V' u' X- f9 V9 x3 F) N
# B4 ~9 B+ e: L) m9 T( L7 B6 q" 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四个文件。. q, W* F9 H8 Z* i! i+ @
; b& P6 o" t2 }' x  S
注,用convstar,出现下列错误信息,说明convstar不能处理该文件:
" G# P+ c! ~+ p; J( I! X
* b  ?/ c, Y2 ~$ P”C:\>C:\download\MdxBuilder\ConvStar\ConvStar.exe C:\download\German\stardict-bab
+ p5 P6 W$ l6 c! q6 `1 Dylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dict" l2 n0 w" k( a% K
ionary.ifo c:\g-e.txt) ?. h+ P! H& G& [2 d  o- g' o# O
bookname: Babylon German-English , wordcount 164638
' C9 g7 b9 O% _8 N4 D6 STotal entries:164638: B* c: i' v0 X$ Z$ @
Warning unknown mark: h (0x68), following content will be ignored.
- ?- v, R. }3 t1 g, |Summary of ignored marks:
. C, \6 [% @/ O( Xh (0x68) 164638 times* q5 k* t: J/ j! ^1 [
Done!“
  Y0 c' c# _2 r, R  z* `7 Q1 o% }; k( Y3 {  b+ d$ P. g2 D  {
二、用7-zip继续解压NEW_Babylon_German_English_dictionary.dict.dz,得到NEW_Babylon_German_English_dictionary.dict,该.dict文件应该解压在和另外几个文件在同一目录。+ u% ^+ k& ^# ?5 ~) l
见图1
* U$ M& p& q  T9 l7 {# \7 k
3 ?" d+ i; D! A* q) B$ `$ T/ n& w5 ?三、启动CvtStarDict2Txt.exe,选择NEW_Babylon_German_English_dictionary.ifo,再点convert。成功后对话框出现:”Word Count=1646387 x( k" U- p* h4 Q7 L( l* x# n
=======0 A4 [/ e8 B+ d" l2 {! p
C:\download\German\stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dictionary.txt
- P: B5 T5 `: q4 g- _* {Convert Success!!5 m* G1 h3 o: F
======“说明转化成功!/ X& K, w/ O# G+ x! c
见图2
5 `  c" `# I9 s# F# i' x% Q9 {
$ K5 y/ R! u3 m: k" i! j! W7 b
四、由于要做德英英德双向字典,依样画葫芦下载源转换,得到Babylon_English_German.txt和NEW_Babylon_German_English_dictionary.txt两个文件。
* D- H$ b" f/ y9 c
* q7 s5 z) e) b+ P: ~2 D  K五、这2个txt文件在ultraedit打开,提示”do you want to convert to DOS format“,选是。本来想用copy命令合并这2个txt,但copy命令不知为何只拷贝了部分文件,所以这里用ultraedit全选一个txt全部文本,粘帖在另一个后面(Ctrl+End)。得到一个313468行的文件。
2 g2 Q9 U. X! u* d/ h
0 w, F- I5 i# v0 d六、在ultraedit”Ctrl + R“把换行符”^p"替换成“^p</>^p”,如图,选replace All。就是在每一行加上换行及</>(mdict分节号)。
3 S% y9 u2 P  z: z% k' F  ]& k如:& o6 A1 |1 v& W3 l0 _% E! ~
“abhorrence    <font color="blue">n.</font> Abscheu
0 W( q2 [# X! k  l! e  m! `8 S+ |: iabhorrent    <font color="blue">adj.</font> abscheulich”. ^) a5 [4 I% ?, D: i# P9 k; v

+ V) V7 z0 h$ L) @: ^& ^1 T将转成:7 m8 D( c" y' T0 x! K
"abhorrence    <font color="blue">n.</font> Abscheu0 S- Q0 u6 L" o4 e. A- M+ Q- K
</>
+ J  G0 [0 O4 ^: N0 ]0 ]abhorrent    <font color="blue">adj.</font> abscheulich. \2 K( X, c4 b8 s
</>"+ s8 p* K3 t; d- B' x( E
再用一次替换“Ctrl+R”把 “^t"(Tab)替换成”^p“,转换成:
- x  {: `* J- p4 g+ Y, n, F# X$ i”abhorrence
' ]1 |: x/ r1 o5 |" y2 K<font color="blue">n.</font> Abscheu
1 W* s+ ?: m7 ^, Z+ y8 f. D</>
' G$ D: G3 B: z9 h5 J$ W. l" Yabhorrent
- Q( c' T% s/ J6 ~* b<font color="blue">adj.</font> abscheulich
- x' M5 n$ X* S</>“  p& T; w* x2 [3 N& p
得到mdx标准txt!存储为DOS Terminators-CR/LF ;UTF-8文件。
6 k  n: f9 p* N+ n/ {  h
; m" i9 u$ y% ^" G6 d见图3和图4& \2 O. P. S' v& n' M: X6 p

, K0 w5 ?( Q$ v' D七、mdxbuilder出动,注意source选txt源文件,target输入生成文件路径和名称,style应选example-style.txt,original format这里选Mdict(Compact HTML),Encoding选UTF-8.3 w+ A2 {8 t( O5 y# O: k/ x9 a9 z8 Z
见图5
: I  |* V1 J. B+ }/ Q2 g. q; |2 y+ B! E
八,完成了,就这么简单( A: |$ I; @; `- m! m& U6 o9 g: s
见图6
, l, |4 R; n) J7 x- s# C2 b4 ^- C% A/ J, p
附上几个必须文件:
$ _* ?% j9 }1 L0 s9 p& Q0 b
3 r6 [+ f! F8 ?' R' tCvtStarDict2Txt.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就出现错误报告:
& C+ Z, b! H* y# l0 R$ K内容如下:# I1 [: r3 \; }7 O
<?xml version="1.0" encoding="UTF-16"?>& @, B+ Y2 i4 ~& S! E0 g
<DATABASE>7 F. t1 ]4 \* Y7 m/ S% I4 m3 F
<EXE NAME="CvtStarDict2Txt.exe" FILTER="GRABMI_FILTER_PRIVACY">9 O8 s  v' n" g6 P  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" />
7 ^$ C! O2 R0 s1 K    <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]" />
6 y; `2 C5 V$ @) @; H- \; C    <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]" />) s) n. {( M9 N; U( u
    <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]" />
# x; o# m5 I% D$ j- t$ q    <MATCHING_FILE NAME="libgtk-win32-2.0.dll" SIZE="2373542" CHECKSUM="0xCDFB5A3B" />
1 U* u& N. x# J    <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" />: d1 g# g. H) l8 U- n: 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]" />
- v% x( `# @0 {9 M( t; L( O. V1 r</EXE>' W0 y! h6 l) j0 `8 N4 c" W- _
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">9 c1 ]# U$ @! U& }# N1 m) 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]" />
  h( Y* h* x- a! h4 ~</EXE>4 v3 c- ^8 f0 B' a. H) \/ x
</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的每日心情
    擦汗
    21 小时前
  • 签到天数: 1998 天

    [LV.Master]伴坛终老

    发表于 2010-7-12 18:02:19 | 显示全部楼层
    来学习一下~~
    8 F0 B) s$ o$ w! x) [+ V! ~8 H谢谢分享~~

    该用户从未签到

    发表于 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-26 21:34 , Processed in 0.124611 second(s), 15 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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