|
发表于 2014-5-10 21:44:12
|
显示全部楼层
Snowdax 发表于 2014-5-10 21:17 
$ a/ t9 z' j5 j, r: n* kd、html2mdx
( ?9 p7 r1 r& i- W* l将html文件转换为MDict格式文件的程序!Wncable(Bowang)大侠的工具软件,可以将Html格式一 ...
- _4 o; C( J/ E3 e2 M0 D, S8 ]& @$ @8 ~+ ^, K- U, Q9 S* \
仔细看MdxBuilder的manual_Chn.txt。
5 L0 s7 m. o+ \: d! P$ h- x: H在html中嵌入图片的方法:(PC版的MDict 1.0以上版本才支持图片)) A" l$ g, p4 t; f# V/ _& T
<img src="file://abc.gif"> 或者 <img src="/abc.gif"> 其中src指向的文件名大小写不敏感$ r& c- S" \" m
并将所有图片文件放在一个单独的目录中(不要与词典源文件放在同一目录中). 数据目录中可以
0 _( K6 J1 i$ R% t带有子目录。在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的# B }6 F7 P% M
所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下。 4 T' j& _+ R; B+ W
7 G4 J3 ^/ P+ ~( Y5 q
4 v# N* l, [- g8 e转换程序支持格式:
& }& Q! }0 h6 j6 r1 X- p' G) B
f I0 H! y( s, t8 X1) 扩展的SugarDict格式:
8 Y# A0 Y* |6 h' r G4 T8 D$ d
# u7 R1 C: W9 ~4 z" }每个项目(词条)一行,缺省最大为32K. 格式为: 关键字8 ]8 C c3 c* x" ]
解释(就是关键字和解释之间用空格分开)
|) F6 m B3 l2 X- P$ k) e# N
. p p/ e( B6 C关键字: 可以是大小写的组合, 每个单词的最大长度是255个字符。
6 d5 |! d- ~+ s4 x w关键字和解释中的'_', '^'在转换后会被替换成空格和回车5 P- c$ n% K X6 \6 b- X
& P& D" c* L3 b5 V5 n
例子:$ n8 ?9 Q" O; w8 i ]0 s U
break_through /'bri:k_MQru:/ ^v. 突破^n. 突破 [' X8 B( j3 W
good ^adj.好^adj.贼好^adj.好得不得了$ T/ V+ W9 |3 }8 g* |- w, m9 S" [
& y& j! p, t; F4 a) O- V
2) KDict解码后的tab格式
& H) C* z6 |. N0 M) n9 C每个条目一行,关键字和解释之间用"tab"分隔. 其中的"\n"会被转换成换行7 o" J: `0 _8 i
/ b/ l# A! {- j1 F0 ~0 D例如:& G$ g2 ]* s0 n4 b% n7 N
good adj.好\nadj.贼好\nadj.好得不得了
) e- o% z) o- \, s3 f- Q* w
6 r" y _, K' N1 V3 J" Z/ W' e7 W: b
- I# g1 O9 D3 A+ q* f0 ~3) MDict的html格式
1 P( r6 y4 V( j) V8 b! U每个项目两行5 ~4 T9 z+ l% K @* m- f. m
第一行是关键字1 k0 [7 {6 x& h4 e
第二行开始是正文, 这里的正文应该包括关键字。可以使用html的标记(不要包含<html>4 F0 p' ?: w/ k' V" n( v; S" N1 V
<body></body></html>, 这个程序会自动加上, 另注意在转换时要指明源数据为html).
- I$ k" T5 ?7 S! i* L t& k* F如果需要显示音标的话,可以利用html指定字体就可以显示了。(参见下面的例子)
- p5 i* K+ l+ @! y2 |" |正文结束后必须用一行</>表示结束
8 K+ X$ M9 }: l( I( B+ s
! r3 {8 [, G' y, G例子:
5 b" P+ m0 J9 N* P5 q3 x4 k- b# Y% hWhole( S E, k3 f6 ~3 o# n
<font size=5>whole</font>
+ ?' N0 X5 z2 F9 e0 j/ w<br>
; z# ?% K& p& G<font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>
; c6 i. M1 ?8 g</>: @/ i! G4 Z# Q# H: q4 t% M
0 q3 }; f* Z9 q- P$ J
(注意"</>"和下一个记录间不要有任何其他空行,请参考example.txt中的例子)( Q/ _' A: {: y
* f% z2 Z0 |: S9 n7 g在html中连接到其它关键字的方法:
( `, i9 k' |/ Z2 Q- O& p<a href="entry://key#section">key</a>" ~' R. O; c- W+ ?8 k
其中key是关键字,section是对应关键字页面中的section名称.
. A/ p$ [1 \9 n6 n. G
! M4 G# f: m( }- l3 S0 |在html中嵌入图片的方法:(PC版的MDict 1.0以上版本才支持图片)0 q6 |6 q0 t4 Z
<img src="file://abc.gif"> 或者 <img src="/abc.gif"> 其中src指向的文件名大小写不敏感
/ H# @+ g6 ?& l8 i; J2 v并将所有图片文件放在一个单独的目录中(不要与词典源文件放在同一目录中). 数据目录中可以
) X3 c1 K; G8 h- M, {, t带有子目录。在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
, d3 \) v4 d, _! r) T5 w& [% I+ C所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下。( F! E, i" C; D9 w; e: R
) B$ d6 V, z$ P2 Y& d& @在html中嵌入声音的方法:# \6 d) X& |: W4 k
使用链接<a href="sound://keyword.spx">keyword</a> 这样的形式,点击该链接的时候可以进行发音2 O2 e, @" ^% S: w- r9 k
发音仅支持.wav和.spx格式的音频文件。
9 z$ q5 a9 a# J% r9 D ]+ v# C
8 Y: U8 L# A$ @ B$ d& d9 W' B/ Q1 a8 I内部重定向(内容链接):, @9 P, o- V# H# w) t% n; h& Y
1) 当两个关键字所指向的内容是一样的时候,可以采取重定向的方式来达到"链接"的效果。内部重定向的格式为:0 o5 M7 u2 I; P1 G9 F' g
@@@LINK=关键字2 N; H; t$ ~0 M( U
例如color 和 colour 都指向相同的内容,制作词典时可以正常编写color词条,但对于colour词条,可以写成:3 r4 l1 ~, O$ j( O6 D+ o& P
$ t6 T2 J# c4 L) qcolour
, K% J, c$ ^$ x5 e@@@LINK=color
: i, X: o, G& D/ h</>
$ X5 o/ l0 c5 k' a4 n) V2 J/ C" R! R6 k8 M9 f2 {9 ?, \7 O
当显示colour条目的内容时,程序会自动找到color的内容进行显示,链接是可以多重嵌套的。
8 u$ {# G* b# `; u2 D
7 b1 z. @) ^. ~* a# X) \. l2)当重复的内容是数据文件时,同样可以采用内部重定向的方式解决冗余问题,只是改为将链接文件的内容设置为:
: p' M6 }9 s/ E. b$ s0 I@@@LINK=目标文件名全路径 (注意编码方式必须是UTF-16)
6 S8 C5 R8 s! U6 ~3 {: S例如abc.spx和123.spx的内容是一样的时候,123.spx的内容可以设置为:
/ f f+ j* o2 [& ~( l@@@LINK=\abc.spx
* O3 M1 \+ F0 F: A8 g1 k
0 `0 S1 t. }4 g6 h; W0 v' s5 {. @* U1 m) T* }9 m* E1 T
4) MDict的紧凑型html格式(Compat Html)9 o6 \ u2 t# m
这个格式由两个文件组成,正文文件格式基本和2)一样,但在正文里可以使用记号。另外5 ^8 y7 i5 i1 a1 J9 U/ s
一个是记号文件。" m) K& ?' S N$ G) B
, K2 G4 {, d8 M+ l: h6 r
记号文件的格式:" n- Y5 c8 e g$ n- L2 w; q# A
由多个记号定义组成,每个记号定义有3行/ ?) R2 _) W2 _+ U( l1 y/ A
第一行: 记号的名称(只能用数字,必须大于0,最大不超过255)* O: a) g P( |, }! F; B& |. h
第二行: 开始字符串(可以为空)
9 ?) u! y9 G3 G C" S第三行: 结束字符串(可以为空)
. u% K/ V+ g& N1 _使用时在正文里使用`记号`(键盘左上角的那个符号)就会将后续的文字直到下一个记号前的文" f$ O2 V% m2 p
字用记号定义的开始字符串和结束字符串括起来。正文里如果需要显示` 则用"`"表示。内
" M( f* r. S5 C* d f' {! ^码应该和正文的一样(例如正文如果是用Unicode的话,记号文件也应该用Unicode)8 X) Z! N4 o. S! s4 ^+ o# B
. Q# {4 Q' N/ J9 v
例如: {# c7 M- x) Q3 E* g1 L! |
记号文件:
7 }5 U( s& ?: `; X' ?1
/ b$ w3 A0 U3 s, ? K: N' C<font size=5>- ~. d- P" u. o4 g& R) ~
</font>' P& d: i& a( k
2
: R7 L( b) ~% X9 V" N, H<br>
/ z1 C3 g: f' P
6 W" D7 a& F7 g% L3) y, Q4 |; O- E0 D& m
<font face="Kingsoft Phonetic Plain, Tahoma">
$ X1 ~. _: V/ T; j: s</font>
$ H, J4 e; V: [. v4 }7 @' Q+ C/ C) D9 v& v2 {, Q4 b, o6 k. k$ g
+ Y( v9 e! Z0 Z# K
7 j7 g# u# n4 g正文文件:7 }! i% S2 A/ H: p6 \% w
whole
) j9 J0 ~$ c4 U) S. ~`1`whole`s`2`<p>`3`(hol,hJl; houl)
' f8 C& ^/ U3 J</>
z3 h9 m1 A8 O( G5 V& `# A, Y# `9 b6 W! o) O' J* @ @) M }
最后在显示的时候就会被替换成
# `; R, d6 S% T2 P5 P<font size=5>whole&#%96;s</font><br><p><font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>
7 s2 @$ _# \) D* P
) n* y* t+ D4 G4 s7 N* D7 E) |+ T+ b0 y- S) b% l
备注:
$ o/ q3 a: h! [0 c9 l4 h. h如果你的数据里含有国际音标,建议使用Unicode格式* d; n4 O" G: j7 s9 I1 d
(请参考http://www.phon.ucl.ac.uk/home/wells/ipa-unicode.htm)5 {0 a" L( m; @" Y# Z3 g
将音标用对应的Unicode进行表示。这样只要用户装有支持IPA的字体文件就能够显示音标。
% \% |) y$ ?. a; F5 `% s7 K/ D, W(Windows里的Lucida Console就包含有IPA对应的字体) ; V- ]6 Q3 \, x8 b4 o: ^
, r5 d, p# P! \4 \* B' |* H" ^4 u1 R& b( W! {
6 u# c9 C2 T$ s5 x% y ^3 g& h! U, h8 K' Z( M5 H/ H
; U# d& t3 y r/ ] |
|