|
发表于 2014-5-10 21:44:12
|
显示全部楼层
Snowdax 发表于 2014-5-10 21:17
( P+ ]. J3 M0 Y, ?1 T; c6 Fd、html2mdx 5 W( I5 f6 a0 o1 ]8 J
将html文件转换为MDict格式文件的程序!Wncable(Bowang)大侠的工具软件,可以将Html格式一 ... 0 H% y, P' {& {) @1 e6 ~- ]
( _3 R3 A6 H e2 L: _仔细看MdxBuilder的manual_Chn.txt。* ?6 |; C2 M' d' b7 N& l
在html中嵌入图片的方法:(PC版的MDict 1.0以上版本才支持图片)
. u K% m/ ^- Q. C4 P: q<img src="file://abc.gif"> 或者 <img src="/abc.gif"> 其中src指向的文件名大小写不敏感/ C1 t. P$ e7 X# s2 Q% E- H! q
并将所有图片文件放在一个单独的目录中(不要与词典源文件放在同一目录中). 数据目录中可以
3 @: _" k- _4 L0 c1 |. Y带有子目录。在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的& t. j% |9 F; j4 a- F
所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下。 4 B+ g* A/ o! v- W/ ?( i# S* d
* H# ]1 v9 T* v& {0 N+ P
0 n9 F: C' s7 x4 P, Y8 J8 l$ k转换程序支持格式:1 w! e( S( u1 R$ |* c/ K
0 z1 _7 k7 X+ J; a3 q3 F8 S
1) 扩展的SugarDict格式:& _2 `8 ~% g& u1 z
0 C3 |- x2 _& f% u7 H6 J3 [每个项目(词条)一行,缺省最大为32K. 格式为: 关键字3 [4 a8 f5 v. i. p2 [
解释(就是关键字和解释之间用空格分开)# `/ b' B J5 g) N: J, F) R2 h7 K/ X0 Q
% C$ i( ]" |* ~4 c. ]! y关键字: 可以是大小写的组合, 每个单词的最大长度是255个字符。
/ K Y5 }% x/ n0 Y, m1 q# u关键字和解释中的'_', '^'在转换后会被替换成空格和回车
8 _9 |, j* c+ M
% ~7 T. c& o* d4 X) ~例子:7 F* S g/ }" W+ q. C, Y- X
break_through /'bri:k_MQru:/ ^v. 突破^n. 突破
. k7 A. t6 ]8 o4 `! Dgood ^adj.好^adj.贼好^adj.好得不得了
, D4 t m( x( u- E* E5 b N ?. \6 `- I; \; u% h* H
2) KDict解码后的tab格式. s- Y+ C) p. l! i. v
每个条目一行,关键字和解释之间用"tab"分隔. 其中的"\n"会被转换成换行
6 ?9 y6 c% a/ U" B7 s6 F2 R% _: r: u+ M/ O( b
例如:
1 \2 y/ H, q, s" l6 Y+ fgood adj.好\nadj.贼好\nadj.好得不得了
+ q; C. @8 i- B% ?3 b, @- @3 c, y( n# p3 j
* v* u- K- M1 {9 n, w$ x j' I
3) MDict的html格式
7 L- J; F( ^# t8 Z+ @: v每个项目两行6 x: Q, W, {% O, z
第一行是关键字
6 S0 O3 y/ `! T9 _; v% @# s第二行开始是正文, 这里的正文应该包括关键字。可以使用html的标记(不要包含<html>
; i7 {7 I* ?9 s# g2 s8 r; ?4 O<body></body></html>, 这个程序会自动加上, 另注意在转换时要指明源数据为html). , M, v, g! D( h6 K+ G9 w
如果需要显示音标的话,可以利用html指定字体就可以显示了。(参见下面的例子)" x. k# z( M: C$ {) u% R
正文结束后必须用一行</>表示结束8 D& m' Z. x1 f* E! T
2 c* w* C7 \- T8 B- W
例子:
* M" y: E% P9 Q# K6 h( ~. s6 mWhole8 {( K& g& f5 V! l
<font size=5>whole</font>9 G6 {- B8 r( j3 Z, ^0 o
<br>5 C% y; w# d* D F' N8 m3 p$ s
<font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>) n" V3 S, G6 \4 W
</>
8 e$ t% j9 k# B- R$ M& Z7 h5 Z) `2 K5 t
(注意"</>"和下一个记录间不要有任何其他空行,请参考example.txt中的例子)
- }# ]2 `, t+ s7 \0 |/ Y0 @7 l, @! S( d
在html中连接到其它关键字的方法:( A, i! s/ _' s/ ?- \, I
<a href="entry://key#section">key</a>
4 F8 ^1 f3 m$ t7 l8 J1 Z: c8 M' ^, z其中key是关键字,section是对应关键字页面中的section名称.9 l# F3 M2 X; V: L i
( I( L" q# c+ c( K在html中嵌入图片的方法:(PC版的MDict 1.0以上版本才支持图片)
* G1 X* m+ q8 R5 T! j. ]: i/ n% f, w<img src="file://abc.gif"> 或者 <img src="/abc.gif"> 其中src指向的文件名大小写不敏感
" C0 C( ?$ k& ~' t并将所有图片文件放在一个单独的目录中(不要与词典源文件放在同一目录中). 数据目录中可以8 c9 o) r! c9 k0 F! m& Q
带有子目录。在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的' G% z9 U; {- r% N
所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下。) n+ d( z) `9 E( J4 ]# W
8 n* ~& F$ f6 [0 n在html中嵌入声音的方法:
( Z9 _4 g) U# i# F使用链接<a href="sound://keyword.spx">keyword</a> 这样的形式,点击该链接的时候可以进行发音# v3 S% ?. W: ^: w. X. U
发音仅支持.wav和.spx格式的音频文件。9 p3 ]" s) |7 ~* e$ K- W! v
8 S! W& h& u |, Z7 L- P7 R
内部重定向(内容链接):3 w2 U3 J+ {' E: l0 R+ D, {, M
1) 当两个关键字所指向的内容是一样的时候,可以采取重定向的方式来达到"链接"的效果。内部重定向的格式为:
3 L9 i4 Y a( T9 U@@@LINK=关键字/ H/ l6 L! T* Z" f
例如color 和 colour 都指向相同的内容,制作词典时可以正常编写color词条,但对于colour词条,可以写成:- F! P2 h n3 F( t4 W
& Z( B c7 E% X- f; }& k
colour5 c; ~7 r% l$ V4 Q/ X' W9 m# f
@@@LINK=color! P1 Q) f( Q8 `6 l
</>) z# A- ~/ {1 d* H5 g, ^$ i
5 v+ M c; q0 d( P
当显示colour条目的内容时,程序会自动找到color的内容进行显示,链接是可以多重嵌套的。. w* @+ J& T. O: ]+ V1 i6 O
# o I! F( @% Q, c/ q2)当重复的内容是数据文件时,同样可以采用内部重定向的方式解决冗余问题,只是改为将链接文件的内容设置为:
4 B% `2 m. u/ M N@@@LINK=目标文件名全路径 (注意编码方式必须是UTF-16)
2 i5 V4 S- L8 ^% b# d3 ^, h. X8 z例如abc.spx和123.spx的内容是一样的时候,123.spx的内容可以设置为:; C5 Q. p& e& N: ~- `; b f, T1 A* o
@@@LINK=\abc.spx- B9 B0 [- t( q$ R2 [! s: N
- C6 {3 `/ u0 b% L- ]- t0 h1 f2 x! J$ \0 ~7 Q
4) MDict的紧凑型html格式(Compat Html)
7 u4 }3 e) h/ Q1 p这个格式由两个文件组成,正文文件格式基本和2)一样,但在正文里可以使用记号。另外4 t6 r0 A$ C. @; `: E5 Z
一个是记号文件。
8 W! J! g/ O9 {9 d, ~8 g# w# z& y: U% g8 y$ [0 {6 A! A0 V
记号文件的格式:
% y: |1 c) W2 L; e0 I+ ]5 i由多个记号定义组成,每个记号定义有3行2 ?7 `1 a$ O3 N: m; r( v) J
第一行: 记号的名称(只能用数字,必须大于0,最大不超过255)' l% a' `, g1 Q1 g4 j
第二行: 开始字符串(可以为空)
- C' u. }0 F5 ]% Z- p. ^第三行: 结束字符串(可以为空)
) h5 r. {% s7 d, F使用时在正文里使用`记号`(键盘左上角的那个符号)就会将后续的文字直到下一个记号前的文
/ i( J" X, N- v1 ?6 Z% J字用记号定义的开始字符串和结束字符串括起来。正文里如果需要显示` 则用"`"表示。内- w5 A; ^2 ~- y( M0 \3 Z, y. V. r" R
码应该和正文的一样(例如正文如果是用Unicode的话,记号文件也应该用Unicode)
/ ^$ K" E& n% O* c; \7 I+ Q/ U9 k
t5 M* k1 z+ l2 {0 T. B+ R* l例如:5 O3 K: ]# ?+ B- R4 a5 S
记号文件:* O$ Q2 j2 p1 M# U2 A+ ^
1- m% x' v* _& d0 k- k3 q8 b
<font size=5>
% ^1 l9 c% X, o# X& b</font>
! D9 L* j1 t. \( Z- e& [$ y25 U5 ~& d. Z1 s7 U3 ]
<br>; q9 M- Y% i1 r! E/ Z. \
* {7 b% q- f% _& G3 u/ p& a R
34 X6 Y0 i4 ^8 R* y
<font face="Kingsoft Phonetic Plain, Tahoma">
+ z# z4 w6 _) c# n</font>
8 l0 o! s2 g _/ d& u4 }# S7 |5 I/ o
& E$ j3 R# P' |* H; T; f+ @2 _% u. ^+ a0 T( `4 t
# O# y% e" Q5 o. ^正文文件:& V6 J, f! ?$ `# X6 U
whole& N+ R: _7 A/ y; U# A$ j* n
`1`whole`s`2`<p>`3`(hol,hJl; houl)& f$ t, `, I% ^" p
</>- j9 x# f" g9 G4 K
; r( G) F2 q- P0 e6 B
最后在显示的时候就会被替换成4 P( R5 p, r. f2 h
<font size=5>whole&#%96;s</font><br><p><font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>
$ m) Z5 J6 S0 I4 @2 J5 y4 q4 @, Q! G2 S; F8 T
G2 } f! {7 p. m# u: C, b' v
备注:5 z" s8 q0 C- v& z
如果你的数据里含有国际音标,建议使用Unicode格式4 t/ E" D- e' q/ [( k
(请参考http://www.phon.ucl.ac.uk/home/wells/ipa-unicode.htm)- G/ g2 c4 [* y' U8 @
将音标用对应的Unicode进行表示。这样只要用户装有支持IPA的字体文件就能够显示音标。
1 T6 S) n. M0 U. [2 u3 a(Windows里的Lucida Console就包含有IPA对应的字体)
- o- T6 c0 V, O' U4 X, h2 [, E" T6 S& m) a: I. X) n1 V% `
4 p8 i/ L& X8 F
, X& K7 E" I {; ]! _. S! W1 ^5 l; Z8 f
1 }* E) c- \, Z) {, w8 ^0 l' E: j
' X* K( m( r9 B |
|