掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 12091|回复: 16

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

[复制链接]

该用户从未签到

发表于 2008-9-26 01:12:20 | 显示全部楼层 |阅读模式
精华文章啊!!实在忍不住从口袋转载了过来:)
4 p: H# g8 W- E. q6 b4 P" f
. |3 {( \- m! l/ W原作者:linld970447 e0 j( J  }( f
内容:
. z( N1 Q2 `/ f玩PDA多年,在坛子一向是潜水多贡献少,现在向坛子贡献下做mdict的方法。
( @0 Z# Q# I8 }8 p) M. L3 Z" K4 ^7 t, |' s) V
做专业字典首先的难题是字典源文件,经搜索,看来stardict是比较好的源文件,字典量多货足。可以在以下链接大量下载:5 Q) I) ]' e, R/ V4 r4 Q
1)http://www.vayn.cn/sundries/files/stardict-dict.htm
+ h" ]" V/ P4 Z. O9 T* t4 E# w2)http://reciteword.sourceforge.net/stardict/babylon.php
1 D* C: E4 e9 d# ]+ E0 W% A3)http://stardict.sourceforge.net/Dictionaries_zh_CN.php. g$ v: m; D" q* x

% G; d" O2 S* @+ F4 x本问题之前在http://bbs.pdafans.com/thread-608906-1-1.html(mdict自定义尝试-美国传统字典+湘雅医学词典+高级汉语词典3合1的mdict(附方法))中讨论过,现基本已解决,发帖总结下:
% T- m& ^. z; x1 N  R* o
3 C3 H( r6 d5 n$ N+ Y  S1、根据mdict作者邮件,比较旧的stardict可以用convstar命令转化成txt后用MDXBuilder 2.5 编成mdict的mdx文件。这一步比较简单,之前的帖子也详细说过了。7 {9 U2 X2 D( e* h
/ L# ^4 J6 [: t" b# d) |
2、第二种情况是stardict后期的词典,用了不同的编码格式,convstar直接转出现下面类似的错误:
- V7 y9 \0 t( t* Y0 D$ Y
" t. u+ Y* F" B) y/ r, a! E. i“Warning unknown mark: k (0x6b), following content will be ignored." @0 `8 w$ T( ^, r
Summary of ignored marks:
( O) _9 d5 L9 ]8 xk (0x6b) 96281 times" V: i( d) L0 |) U- P
Done!”
8 B0 g8 I3 Y+ t) T
5 _. V5 t" B! f( w8 }: B& S! @这种情况不能用http://www.octopus-studio.com里的convstar直接转。应做如下处理:
3 g2 j" {! y. l- J& f- u( R" C: Z8 u/ \; J+ x- z7 U
1)先要用aisnote编写的CvtStarDict2Txt.exe转成txt
7 `$ ]% V1 G7 d6 ?2)txt用ultraedit编辑成mdict标准格式! p( P$ G( H, r7 H
3)用MDXBuilder编成mdx文件。! u9 B. W2 c0 l4 f3 M

" R$ m' F! u3 y9 l以stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2为例给大家示范下stardict to mdict的全过程。
, W# t+ X) l4 B2 K) y7 p2 x0 S8 o3 h6 V# ~
一、下载文件包,得到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四个文件。4 i  f, I; d  ^0 c/ C

5 @4 c3 m- E( R) i" z注,用convstar,出现下列错误信息,说明convstar不能处理该文件:( |5 A! W& B/ W/ {; f
( b2 |* t4 a0 d2 [+ V0 N
”C:\>C:\download\MdxBuilder\ConvStar\ConvStar.exe C:\download\German\stardict-bab1 Z- A) K* y- t& o! k" k) m6 u
ylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dict, u, x# z0 {) |/ [' Z
ionary.ifo c:\g-e.txt
3 p+ n5 R! L( C7 ~4 }5 g8 }9 x; ibookname: Babylon German-English , wordcount 164638
) R& \. E6 l' lTotal entries:164638
7 c% U# G/ B1 W' uWarning unknown mark: h (0x68), following content will be ignored.( e! y  l" s. E0 B0 s
Summary of ignored marks:  K# k7 l0 m$ _8 D4 B
h (0x68) 164638 times
! R+ H- x, Y9 f, I+ L/ lDone!“
! a8 z# H; @  [" C0 Y8 Z& `0 V2 c+ ^
二、用7-zip继续解压NEW_Babylon_German_English_dictionary.dict.dz,得到NEW_Babylon_German_English_dictionary.dict,该.dict文件应该解压在和另外几个文件在同一目录。9 k' W3 G. N7 q' r) f
见图1
6 ?8 Q3 F1 d6 U/ m, G0 f* k
& u+ x5 g/ {6 f- ~& M三、启动CvtStarDict2Txt.exe,选择NEW_Babylon_German_English_dictionary.ifo,再点convert。成功后对话框出现:”Word Count=164638( ^7 o2 f: A! E6 h& M) e
=======; e, a8 n9 ]3 @6 m) ^% @' B5 F$ Z
C:\download\German\stardict-babylon-NEW_Babylon_German_English_dictionary-2.4.2\NEW_Babylon_German_English_dictionary.txt
: v; y7 o& H9 a1 t2 I" y  cConvert Success!!
( \# j7 N' \/ S( W======“说明转化成功!/ M3 P' l+ B. }& S( ^
见图27 H- w/ T: p. i

/ }' f7 E5 D( x, R! {/ {8 F四、由于要做德英英德双向字典,依样画葫芦下载源转换,得到Babylon_English_German.txt和NEW_Babylon_German_English_dictionary.txt两个文件。
: N$ ?" R% N( q3 Q" H& O+ `7 b, \2 b5 Y
五、这2个txt文件在ultraedit打开,提示”do you want to convert to DOS format“,选是。本来想用copy命令合并这2个txt,但copy命令不知为何只拷贝了部分文件,所以这里用ultraedit全选一个txt全部文本,粘帖在另一个后面(Ctrl+End)。得到一个313468行的文件。
4 c& W( n. j, v# g- ?  V
3 P2 |$ P; ?" j! q六、在ultraedit”Ctrl + R“把换行符”^p"替换成“^p</>^p”,如图,选replace All。就是在每一行加上换行及</>(mdict分节号)。
% J1 S& u* h2 D. K2 }4 Z2 C如:0 Q6 u( `  y* d$ s
“abhorrence    <font color="blue">n.</font> Abscheu
* o; ?' B) `3 e" B# u! R, jabhorrent    <font color="blue">adj.</font> abscheulich”
4 Q+ Y) ]- Q% W3 ~0 _; d
& N: A5 I) b. i; m  y, Q" a: O' X将转成:, _  ~! F. r$ {3 i1 R
"abhorrence    <font color="blue">n.</font> Abscheu1 D- P6 J+ Z9 j) Y, {4 s
</>, B; S! v, v7 J- S0 P( e1 C
abhorrent    <font color="blue">adj.</font> abscheulich
1 D) ?% @: `$ U/ |</>"
9 W6 c# `/ J. h4 H- _% J再用一次替换“Ctrl+R”把 “^t"(Tab)替换成”^p“,转换成:4 l) ]) \/ ~3 e/ K
”abhorrence& |  Q) C, L9 |
<font color="blue">n.</font> Abscheu
- S5 P& b/ k, d& U</>
, H% D0 q5 S% Tabhorrent9 D2 `  Q2 m; ~; }" Q2 \  e
<font color="blue">adj.</font> abscheulich
' T8 i8 ^9 v$ G+ `+ b</>“; s- M3 ~* Q. Q$ m1 i# k" T
得到mdx标准txt!存储为DOS Terminators-CR/LF ;UTF-8文件。
) J3 z0 }5 @' ?" r% o& j" Z' ^) y+ K5 P7 z* j4 v2 Z
见图3和图4
2 [- I2 r; `6 }, z- w5 O
" Q, B* ~- |  y8 W
七、mdxbuilder出动,注意source选txt源文件,target输入生成文件路径和名称,style应选example-style.txt,original format这里选Mdict(Compact HTML),Encoding选UTF-8.7 G* y- B9 y1 w/ v
见图5
5 u2 s3 y2 h# w8 X2 ^: C0 O$ [3 ?
八,完成了,就这么简单
$ V. D) l" s7 ?; [6 @7 g- \见图6( b9 d2 e/ j( r0 c9 I  R
0 G1 w! k5 G+ K! h, z
附上几个必须文件:
3 A9 W) j5 y: b" C5 L
" H1 G1 x: Y4 nCvtStarDict2Txt.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就出现错误报告:0 c% ~& p4 W; O  Y" ~4 i
内容如下:
" I$ X2 ]  X1 `$ X; w$ f% x<?xml version="1.0" encoding="UTF-16"?>( K+ _7 K7 }0 G0 [0 ]
<DATABASE>
/ \: Y1 [3 Y1 h: K& q<EXE NAME="CvtStarDict2Txt.exe" FILTER="GRABMI_FILTER_PRIVACY">% Y  K+ |4 u  [! O1 j! O- T
    <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" />
* H- A) U/ S9 a+ A& x    <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]" />
0 u0 Q- n6 O- H: q: F; C" L) 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]" />1 w) g! v- V4 D) b% M2 Y
    <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]" />
) V& s1 i- q7 h) m6 W, G    <MATCHING_FILE NAME="libgtk-win32-2.0.dll" SIZE="2373542" CHECKSUM="0xCDFB5A3B" />
7 u9 g6 g6 C6 c( c1 u; F3 ^; r    <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" />
% e4 c- t/ e9 Z3 |% Y    <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]" />1 j% n* l9 H- p8 q' T1 z2 q( K# T! z
</EXE>1 _; w) f6 Q) r* l7 U
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
$ P2 V9 |  ^& R4 L0 {/ ^+ y: q1 |    <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! Y" B) l0 e/ ~6 f  H* W
</EXE>8 k* m1 ]( q9 L; P
</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的每日心情
    开心
    昨天 07:41
  • 签到天数: 2873 天

    [LV.Master]伴坛终老

    发表于 2010-7-12 18:02:19 | 显示全部楼层
    来学习一下~~
    8 k+ G& a; x! {  R" [谢谢分享~~

    该用户从未签到

    发表于 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, 2026-11-3 00:08 , Processed in 0.023037 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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