|
发表于 2014-5-10 21:44:12
|
显示全部楼层
Snowdax 发表于 2014-5-10 21:17
/ K- n4 T8 o; a# Ed、html2mdx + h( w# A/ A4 B4 e3 n1 x5 U( r
将html文件转换为MDict格式文件的程序!Wncable(Bowang)大侠的工具软件,可以将Html格式一 ... 5 c, ^6 i5 |8 T8 k+ @5 j
5 D) N, O9 N2 |% k4 p仔细看MdxBuilder的manual_Chn.txt。
7 }2 ^# U# |9 d2 R1 u% `; y, v5 D2 J在html中嵌入图片的方法:(PC版的MDict 1.0以上版本才支持图片)8 @3 S8 K/ }7 z+ i3 Z
<img src="file://abc.gif"> 或者 <img src="/abc.gif"> 其中src指向的文件名大小写不敏感: q9 `0 W" T* C; W, O) y
并将所有图片文件放在一个单独的目录中(不要与词典源文件放在同一目录中). 数据目录中可以) G1 t( z+ l/ ?& C9 B
带有子目录。在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
; C8 ~$ b+ i; f: k1 Z0 W2 q* |所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下。 4 M+ |8 z+ I. |- c# B* c! n( u
2 R& Z5 o6 S" ?$ g
% {% s! u [" T转换程序支持格式:! G. z. [7 P; u& X3 C3 L
6 c) V. c! r: g4 n( c
1) 扩展的SugarDict格式:. @0 {8 v( ?# Z$ ?: ?6 ?: K
; W, u% E6 |- T6 G. h
每个项目(词条)一行,缺省最大为32K. 格式为: 关键字0 m9 P$ {- }$ F
解释(就是关键字和解释之间用空格分开)- `2 v& a( I% l8 @/ S
' ?7 k& H" y7 B' k1 L P) g$ ?
关键字: 可以是大小写的组合, 每个单词的最大长度是255个字符。
% R; d4 g1 T2 n6 k9 D% D) L* I关键字和解释中的'_', '^'在转换后会被替换成空格和回车
7 i8 Z& Q% O" _2 K
3 x* w$ z: o& ]9 ~! ^( U例子:2 w: N" u& H( z9 _7 W: k& {
break_through /'bri:k_MQru:/ ^v. 突破^n. 突破, J" `0 m2 v7 k; ~7 o; w
good ^adj.好^adj.贼好^adj.好得不得了+ o8 f* I! a# q G$ q
; g k4 ~3 u5 V/ q+ S
2) KDict解码后的tab格式
1 q, _1 p& R% E+ H% e9 X每个条目一行,关键字和解释之间用"tab"分隔. 其中的"\n"会被转换成换行$ ^8 q/ b$ j+ h7 u- y, ]
# _6 b" c& L& y2 u+ i* b( f8 d9 W
例如:3 O- g) E, r$ k+ u9 H
good adj.好\nadj.贼好\nadj.好得不得了
& \; N% a) N! ?9 J }- T0 b9 p$ F
% |+ i$ n7 i8 S W2 n& T# D3) MDict的html格式9 d: |+ y/ @, ~0 g: x6 v3 ^
每个项目两行
0 {( U6 T( C1 `& _6 t1 r. B第一行是关键字
% e" J: d6 t+ J9 ^5 r第二行开始是正文, 这里的正文应该包括关键字。可以使用html的标记(不要包含<html>
' ] Z! M* D$ N6 L<body></body></html>, 这个程序会自动加上, 另注意在转换时要指明源数据为html). * Y0 l5 G( @( \0 Z
如果需要显示音标的话,可以利用html指定字体就可以显示了。(参见下面的例子)
. }, A* P, n$ O: p% i% N; n正文结束后必须用一行</>表示结束" m/ b4 c; w8 K
- I+ u2 g0 @! l4 z( D9 [+ G例子:; r9 ]3 p: ^1 ^- S
Whole, c! |) a Y9 u+ x ^ ~8 L, h, k
<font size=5>whole</font>
* t( q# C" ?4 X- F5 [# O( v2 z<br>9 s6 j9 A4 c6 _ Q
<font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>
3 ?% Q6 b. e' t0 c0 x! P% G</>
2 c+ r! C4 I7 a, S$ k K8 X
3 f4 x) H2 ]- h% Q z9 m(注意"</>"和下一个记录间不要有任何其他空行,请参考example.txt中的例子)) T. B7 V5 r" n" d0 z
7 h" x. o9 v6 C9 H/ u9 V
在html中连接到其它关键字的方法:$ Y6 R* q6 }, N% [; J3 z8 @9 b5 v3 M: y
<a href="entry://key#section">key</a>
" L: R: ~5 Z @0 o3 O& y其中key是关键字,section是对应关键字页面中的section名称.1 x8 H& N8 H0 P- F4 ^
& ^0 t8 f) Z; @3 s0 ^在html中嵌入图片的方法:(PC版的MDict 1.0以上版本才支持图片)
# A' A# M0 s/ f3 Q7 K/ J<img src="file://abc.gif"> 或者 <img src="/abc.gif"> 其中src指向的文件名大小写不敏感; w1 f0 J: ]6 I' h. x
并将所有图片文件放在一个单独的目录中(不要与词典源文件放在同一目录中). 数据目录中可以5 \& M% ]3 P; ^/ u- v, I
带有子目录。在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
$ ~4 v; t7 W! L7 u1 ?所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下。
, Y) y3 k6 H4 v' m( \, \0 s4 A) H$ G ]6 J8 M
在html中嵌入声音的方法:
% d3 o0 X* }6 k2 t使用链接<a href="sound://keyword.spx">keyword</a> 这样的形式,点击该链接的时候可以进行发音
) s' |8 D# c( d# A4 h2 r& e: \发音仅支持.wav和.spx格式的音频文件。
/ m+ i2 w# B3 H$ O' e
. D/ y2 v+ G, K2 c6 l9 ?9 `内部重定向(内容链接):9 Z7 C( Q6 K( c8 i% x
1) 当两个关键字所指向的内容是一样的时候,可以采取重定向的方式来达到"链接"的效果。内部重定向的格式为:4 Q6 }; e1 x' c% x* `4 }5 H
@@@LINK=关键字- e9 m) T* ^% O+ C% M& U
例如color 和 colour 都指向相同的内容,制作词典时可以正常编写color词条,但对于colour词条,可以写成:
0 N) ^' O0 x. I3 i) Y' |6 p6 N. X1 \7 K3 ^; \; L9 s; r2 Z
colour) A3 O/ r* y& I7 M, f3 n/ `" Q/ t' v, X
@@@LINK=color
8 _6 M! Z% i. O6 Y8 E5 B% t s</>
- Y! `$ y' @3 Y# s' r+ q. T6 C0 }
当显示colour条目的内容时,程序会自动找到color的内容进行显示,链接是可以多重嵌套的。: W2 x+ [& z0 N& F( c( j8 D
: q# }( l! s d, Y+ W/ O) |
2)当重复的内容是数据文件时,同样可以采用内部重定向的方式解决冗余问题,只是改为将链接文件的内容设置为:
% N2 m. z O% Z8 m- ~$ w: A9 f3 N- y@@@LINK=目标文件名全路径 (注意编码方式必须是UTF-16)6 Z2 d S2 R) a
例如abc.spx和123.spx的内容是一样的时候,123.spx的内容可以设置为:
' U+ }8 T* q! \$ Z$ L@@@LINK=\abc.spx8 v, W6 q7 z8 j! ~; A3 p6 E4 d
" y+ d$ B: z; V. _5 E. d6 d7 Q! r1 {) p2 R g
4) MDict的紧凑型html格式(Compat Html)! e K; h. c! ^0 C7 l
这个格式由两个文件组成,正文文件格式基本和2)一样,但在正文里可以使用记号。另外; m% O' a o* _- i8 r2 H0 i; x
一个是记号文件。
E: i& ]3 Q# i$ b. P2 m7 p u$ u, b( f$ P
记号文件的格式:$ ~9 D% u( z F3 e" Z* R
由多个记号定义组成,每个记号定义有3行$ S8 ^* F. `2 h# O# c0 k/ H
第一行: 记号的名称(只能用数字,必须大于0,最大不超过255)
$ O Z! Q. q. }% i5 ]. `第二行: 开始字符串(可以为空)& t1 F, U9 G- A
第三行: 结束字符串(可以为空) g% B7 i5 r" }! h( ]
使用时在正文里使用`记号`(键盘左上角的那个符号)就会将后续的文字直到下一个记号前的文# w- A! e7 w4 m4 u r
字用记号定义的开始字符串和结束字符串括起来。正文里如果需要显示` 则用"`"表示。内/ D- y5 c7 ^# N4 w v t4 r
码应该和正文的一样(例如正文如果是用Unicode的话,记号文件也应该用Unicode)# o3 p( M( y1 h6 t; | q
' N6 o( d; I# Q+ O# N# K: O例如:+ B/ O$ t8 [0 C( }2 F2 r
记号文件:$ {% |: f4 V4 N
1
; ~, ^: a* Z7 K+ P+ X<font size=5>
, [. @2 x9 V3 v6 S</font>3 c+ s: b$ b! H3 Z$ F
2
- {# k' m/ |+ R% p( C# A: ]<br>
% _' R% J# [# s' R+ b' G; U' O* J: B
36 W) J7 u+ Z |( \( O* w5 B
<font face="Kingsoft Phonetic Plain, Tahoma">
2 T! l' T% ?- v& Z8 P3 n0 n</font>- L0 b2 c4 g: |0 u+ Q% R
* `( ?. I# ]& t4 P
; J7 a$ a, @7 n& _' K1 [# _, P9 A3 l4 J6 _6 |
正文文件:! {8 D: T6 D9 n7 x$ ^
whole+ g& V) ~3 d* u+ }3 v
`1`whole`s`2`<p>`3`(hol,hJl; houl)
) u' j! e0 e0 e2 w$ g</>
9 \3 m( V( Y0 e' A0 Y5 }! d& `! s3 ?2 y+ `( _, d Y
最后在显示的时候就会被替换成. X9 M; ^( t$ S) H, N$ x0 I4 Q
<font size=5>whole&#%96;s</font><br><p><font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>
& ^' H1 g0 A6 E% [& u
( `4 Z0 K' J2 }9 }# h P" g
5 D0 {. @4 z! t! J. \: W/ T; I' _- ^/ x+ n备注:, N0 H* ~" I9 J: D$ F' K
如果你的数据里含有国际音标,建议使用Unicode格式
+ c2 x& Y5 t2 X; p; O @5 z; H(请参考http://www.phon.ucl.ac.uk/home/wells/ipa-unicode.htm)( B/ w) ]" x# V5 L r
将音标用对应的Unicode进行表示。这样只要用户装有支持IPA的字体文件就能够显示音标。
, Q5 l7 S) Y$ n( y1 a(Windows里的Lucida Console就包含有IPA对应的字体)
4 g4 C6 U) c/ C& F N
/ ]- U: d; m; z) G; n" C2 r
/ j% t: W( S- q7 X! _- V/ ^* I
# w/ m* P- E* ?( e: ?& P; V
& I3 e {0 G6 U' F' ~
' g0 C" Q6 W% v3 A/ ?' G' g' Y |
|