|
发表于 2016-3-10 00:15:26
|
显示全部楼层
1 v E5 [, c, W ?& H7 Y
-
7 a3 S2 @0 I6 N' t我决定可以先试试把您已有的 StarDict 词典文件直接转换为 mdx 格式。# N/ T7 g4 o; \) K$ [3 \5 o& P' P
或者再看看
8 Z" \! |" P0 T! n6 h内部重定向(内容链接):1 x2 L ? Q5 ` `1 {
1) 当两个关键字所指向的内容是一样的时候,可以采取重定向的方式来达到"链接"的效果。内部重定向的格式为:
4 ^) P9 a4 g4 D) q3 z@@@LINK=关键字
# u& b2 P0 i$ e3 j例如color 和 colour 都指向相同的内容,制作词典时可以正常编写color词条,但对于colour词条,可以写成:
Z# H" R) O- A8 a# K. x- V: i' T
4 a; Z" U0 O$ z/ ?' R3 wcolour
, L- g4 j: C$ X; _; y, h" m@@@LINK=color
; e, @7 Q" ^6 ]6 n</>
% z1 |) d! x6 Q6 j) O* m( G: |4 G- Z1 S* E
当显示colour条目的内容时,程序会自动找到color的内容进行显示,链接是可以多重嵌套的。
! K# Q" q% _4 \" b* ~4 N- o. m-
" U' Q) T G1 P7 `" E试试阅读 http://www.octopus-studio.com/download/MdxBuilder.zip 里的文件。8 o) J+ x7 e: p! D; ~6 q$ i
\MdxBuilder\ConvStar\ReadMe_Chn.txt/ A6 j7 t1 N) o4 v/ c' b' \
转换Star Dict文件到mdx格式的步骤:
9 V) j) N* H* s& \1) 从http://stardict.sourceforge.net/Dictionaries.php下载tarball格式的辞典文件3 @% M; r0 O( s( O5 Z
下面的步骤以http://stardict.sourceforge.net/Dictionaries_ja.php内的辞典为示范
. f! |3 S4 j7 V2 U6 D. {9 T' k7 c& b9 u: `! o L' H: K- G* H8 J* ~" B1 L7 N
2) 下载 "JMDict-en-ja dictionary" 和 "JMDict-ja-en dictionary"
+ `/ Q) O0 O5 Z: R r2 e% d: Y通常一个辞典一个文件, 下面会示范如何合并两个辞典文件所有要下载两个辞典9 ~: ]7 X% A) q4 |6 a/ h6 O' c
6 U& t `1 t) D# E3) 将文件解压到c:\temp
1 ?( E* g# N' y' F5 Tc:\temp目录下应该有4个文件:" j3 |( Q* Y" J/ S
2003-07-04 01:47 1,414,385 jmdict-en-ja.dict.dz
" t2 J; f& @8 X( s, z2003-11-12 19:38 2,392,521 jmdict-en-ja.idx
- P$ T' B5 G( C e5 i; T& o0 g" G2003-11-12 19:38 351 jmdict-en-ja.ifo& C) w" V' l4 j/ `
2003-07-04 01:47 2,702,509 jmdict-ja-en.dict.dz& k/ K- F5 S, o0 [0 O f
2003-11-12 19:38 3,732,514 jmdict-ja-en.idx
+ F, z' I3 Q8 o: x( g' z; Y/ m0 R" U5 x y2003-11-12 19:38 352 jmdict-ja-en.ifo5 f" ]$ r7 v; u
2 I6 m1 M: X! G4) 将"convstar.exe" 和 "star_style.txt" 也copy到 c:\temp 目录下
: m5 h/ R7 @$ n ]- [7 X: g( ]( j% k. C* f
5) 运行:
7 h5 o+ j! q g! Q n4 g4 G: }2 Ta) convstar jmdict-en-ja.ifo e2j.txt' z) m1 ~4 G; ~4 E2 A W- u
b) convstar jmdict-ja-en.ifo j2e.txt
: @( F% H) k: _- O9 D/ `) Xc) copy e2j.txt+j2e.txt all.txt /b( Q% |; g+ s9 {3 @6 L" O
如果你不想合并辞典,可以省略b) 和 c)7 X$ L$ Y9 D0 b G
5 d, H, V8 _+ t# K* l7 A1 S6) 运行 MdxConvert, 填入以下参数& x8 a# d9 h$ ?. O! S
Source: C:\temp\all.txt
) }- Q. r2 y0 N1 hTarget: C:\temp\JMDict.mdx0 A- ~* N; Z3 r
Format: C:\temp\star_style.txt
4 F: ^! W; F- |6 s. a; V% H2 N$ c6 cOriginal Format: MDict(Compact HTML)5 i, M( P- y+ \! B; p7 m+ p
Encoding: UTF-8(Unicode) <---Must use UTF-8 for all stardict dictionaries
( j2 ]4 l; N9 L/ l& q" uTitle: JMDict English-Japnanese Dictionary
/ e1 A- f5 |, a+ t2 R" BDescription: <font size=5 color=red>JMDict English-Japnanese Dictionary</font>
9 u6 `- x% O/ S9 b9 Y% ~& `+ \* f& C; Q& n; e& }) Q
7) Click Start( V3 j1 u+ e' A4 [$ c+ I+ L) `! Z
" x1 [9 m2 j5 k% z. Q
8) Done. ! g+ t# t. \ X) e& L
$ [+ K u1 i$ x" n* ]注意: 部分辞典含有国际音标(International phonetic alphabets(IPA) symbols), 如果需要正常显示音标的话, 需要在PDA中安装支持IPA的TrueType字体, 例如win98/2000/XP 中的"Lucida Sans Unicode" ( 将windows\fonts\l_10646.ttf copy到PDAs的\windows\ or \windows\fonts\, 可能需要软启动你的Pocket PC) / q# X. |8 m' q8 e8 K0 F( c
MdxBuilder.zip 里有个 manual_Chn.txt 文件,内容如下,注意加粗加红部分:+ }- d7 m- O9 f
2 X7 A R4 x- w转换程序支持格式:
$ f0 k- K7 ^" G# _% S7 C* t1 ]( ^5 s; W8 m; H; d
1) 扩展的SugarDict格式:5 T0 j" h. \1 q* m( p
! M5 P. G$ h! [( ^+ F* p每个项目(词条)一行,缺省最大为32K. 格式为: 关键字
, X4 t! u) M4 o/ c4 o5 \. d/ c解释(就是关键字和解释之间用空格分开); M( X+ {2 }( o/ C, u7 U
9 X& b" P% b$ R( O5 \, n关键字: 可以是大小写的组合, 每个单词的最大长度是255个字符。
0 _) w& a r* d: \# T7 k6 l0 [关键字和解释中的'_', '^'在转换后会被替换成空格和回车
' E. l5 T$ ^* H; e# G1 L- }
, E; N# h" h: I8 z0 s2 n, Z& M9 a例子:
2 W' \( [ X: u6 w: A0 [break_through /'bri:k_MQru:/ ^v. 突破^n. 突破
5 d/ N/ ~- `0 f* ygood ^adj.好^adj.贼好^adj.好得不得了
* ^3 W5 K# [6 @9 I5 B, W0 t
7 h6 c* y" m. ^( D- J2) KDict解码后的tab格式
2 m% F" o$ \+ s; a& e% [每个条目一行,关键字和解释之间用"tab"分隔. 其中的"\n"会被转换成换行2 ?$ Q: d# x$ C
7 N6 g" J( q5 l
例如:
$ C2 k/ H1 C7 H2 J' Mgood adj.好\nadj.贼好\nadj.好得不得了, q$ `& n( U2 M
: l' L: b0 i6 g" [$ H: W# a7 h3 J
5 {- F8 U6 T2 c: C$ A6 ?# u" p3) MDict的html格式
+ J4 s. J; ?: v. j每个项目两行
& j, y+ U+ e) N6 C* q- ^9 r1 z8 B第一行是关键字: E* ~: L1 [7 P1 J/ w. j
第二行开始是正文, 这里的正文应该包括关键字。可以使用html的标记(不要包含<html>
, A% y M1 B% z1 Y<body></body></html>, 这个程序会自动加上, 另注意在转换时要指明源数据为html). x4 T8 E D) S# l* k8 n$ A
如果需要显示音标的话,可以利用html指定字体就可以显示了。(参见下面的例子)8 P4 Q5 L, V$ Y9 Z: u
正文结束后必须用一行</>表示结束* w- C5 z" U/ Y: s" i
- s% n, b/ j. J2 c% A% L' m
例子:
+ {$ f2 T O8 u) O! ~Whole [4 d" V% B5 G4 k% R
<font size=5>whole</font>8 V# `5 r, ^# @
<br>
) W) d% W5 O- i* j/ N0 r<font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>9 X1 O6 v w3 j
</>
8 n+ v" T3 G+ T0 j7 G4 P6 p' C& K7 {$ V4 A4 }7 l M# H
(注意"</>"和下一个记录间不要有任何其他空行,请参考example.txt中的例子)5 a* ?. P7 R) K1 X7 c" u" M
* ]0 Z9 n7 M- s0 d3 |3 W4 w* C在html中连接到其它关键字的方法:3 V; a7 T: n+ a9 ~) I& x* y
<a href="entry://key#section">key</a>0 M7 O! V- M2 j0 `# h# p' s: F
其中key是关键字,section是对应关键字页面中的section名称.
: `6 X5 H+ R5 X
, \& \/ g7 c) I3 c在html中嵌入图片的方法:(PC版的MDict 1.0以上版本才支持图片) l0 l# j5 t9 C& y
<img src="file://abc.gif"> 或者 <img src="/abc.gif"> 其中src指向的文件名大小写不敏感) x1 l" g+ q( [6 E7 o
并将所有图片文件放在一个单独的目录中(不要与词典源文件放在同一目录中). 数据目录中可以4 N& E! g1 \# j; o1 g; }) @
带有子目录。在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
/ y2 Y% O S# s9 m所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下。
! t# v8 `* H, b( S1 ?* x0 s. M" a$ ^: L* I6 S" M0 ?
在html中嵌入声音的方法:5 @0 U+ C r( ]1 r2 w5 Z/ \- a' z& f1 W
使用链接<a href="sound://keyword.spx">keyword</a> 这样的形式,点击该链接的时候可以进行发音4 Z' M& n: ~5 ?! v/ `9 A r8 ~0 m
发音仅支持.wav和.spx格式的音频文件。
( T/ q+ |6 i: P* I, |, p# I {; j4 k9 p, T6 s0 f ~
内部重定向(内容链接):
% r0 f k; J/ n: U1) 当两个关键字所指向的内容是一样的时候,可以采取重定向的方式来达到"链接"的效果。内部重定向的格式为:
& b* Y2 Z6 C. j+ O0 L; P3 }3 I@@@LINK=关键字
; u6 u9 h& `& V; h* R例如color 和 colour 都指向相同的内容,制作词典时可以正常编写color词条,但对于colour词条,可以写成:
# P- u: v- y: ?2 e
+ S1 O6 \8 y1 U/ n m- ecolour: l+ a) ]! y; o: D
@@@LINK=color6 o! M# R+ N8 T, b
</>* d$ y- g4 G. v, N6 g
. _6 q' \5 U4 o& f1 T2 Z9 r
当显示colour条目的内容时,程序会自动找到color的内容进行显示,链接是可以多重嵌套的。& k2 X! q7 Z, Q: V! E. T' G( G
; k1 w6 s2 Z) G% U2)当重复的内容是数据文件时,同样可以采用内部重定向的方式解决冗余问题,只是改为将链接文件的内容设置为:
0 _- W7 W( y( L. j9 t0 K+ U8 }7 K@@@LINK=目标文件名全路径 (注意编码方式必须是UTF-16); K4 Q7 C. Z1 r+ Q# G. q
例如abc.spx和123.spx的内容是一样的时候,123.spx的内容可以设置为:
; Z+ S1 h" R# x+ e@@@LINK=\abc.spx
7 O9 m. m9 t% I2 A7 a" Y
8 n3 ^/ P+ s7 z) q% \ d8 X9 k2 y( a9 K" a; Y8 b! Q& t% W3 E
4) MDict的紧凑型html格式(Compat Html)
. v G1 e+ n: C! O这个格式由两个文件组成,正文文件格式基本和2)一样,但在正文里可以使用记号。另外! o9 X+ m. r7 X& o H# v
一个是记号文件。
2 x$ i- ~6 h( n3 n$ V+ Z6 i( |+ N1 A& f: r; K- z0 V- D
记号文件的格式:
. l/ r" U2 E- ?$ N s! k7 e由多个记号定义组成,每个记号定义有3行! u! t. R/ d% x, K
第一行: 记号的名称(只能用数字,必须大于0,最大不超过255)
6 l$ ~. T/ r- I% \8 l+ I! j2 y( s4 \% m第二行: 开始字符串(可以为空)! {) t$ g; V. a$ O$ N* x7 I% u) ^
第三行: 结束字符串(可以为空)1 Z, a6 e7 `8 f0 Q8 @& A
使用时在正文里使用`记号`(键盘左上角的那个符号)就会将后续的文字直到下一个记号前的文
8 Q9 j8 x% f' E- {/ m# `9 R字用记号定义的开始字符串和结束字符串括起来。正文里如果需要显示` 则用"`"表示。内
i+ t* [' n+ f% w码应该和正文的一样(例如正文如果是用Unicode的话,记号文件也应该用Unicode)
1 Z8 S- i. C A. L: M
]/ i" i" `5 B/ A例如:6 r. c" l7 g1 i) z
记号文件:6 \4 O4 R* V) d3 M$ G2 B
1; e# V0 L9 ~- L
<font size=5>. Q' a \+ f3 b7 ]: v, B
</font>: N5 ?! g" Y6 ^8 ?
2; Z6 g9 k6 F% i+ ~' J& ]8 X* I
<br>
5 n6 ~ ^$ R" J( e# t# G
: F9 w! k7 y* N( M3
! g8 {% {* W6 L N<font face="Kingsoft Phonetic Plain, Tahoma">
3 e3 k( `- z3 B; Y( E</font>7 X6 R% D' ~% u4 k
3 |* ?! g3 @3 b7 R. P
5 R: @+ |3 N1 E; [7 i2 T
% n b: s( c- c1 y) f+ N n9 A正文文件:9 x }6 ]9 x$ i2 c
whole q6 Z: H; o, u( q# V1 i
`1`whole`s`2`<p>`3`(hol,hJl; houl)& J7 H. Y$ U6 C' E ~& e
</>
# w W x: z9 |$ e2 U h. b9 C+ K6 |! Y, b$ N
最后在显示的时候就会被替换成
2 ~. u3 S- g, N, k- G' w8 i<font size=5>whole&#%96;s</font><br><p><font face="Kingsoft Phonetic Plain, Tahoma">(hol,hJl; houl)</font>
% d' W d+ l' f+ c; _9 M3 \
5 w) D F5 k% A' t6 c: s& x
8 v b- O% }8 W0 n) i' I备注:# m4 U) V& p4 L* o! m/ }2 H
如果你的数据里含有国际音标,建议使用Unicode格式
1 N& B6 T4 B4 [/ v+ T, f6 d8 E: j(请参考http://www.phon.ucl.ac.uk/home/wells/ipa-unicode.htm)
/ [ f8 T% C: Q. R! z! @将音标用对应的Unicode进行表示。这样只要用户装有支持IPA的字体文件就能够显示音标。 l1 }$ Y. d) ^+ v' ]: l+ ~) f" C6 X6 r
(Windows里的Lucida Console就包含有IPA对应的字体) |
|