TA的每日心情 | 开心 2023-8-28 17:59 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
楼主 |
发表于 2016-7-1 12:04:30
|
显示全部楼层
本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 ! p( Z* R' r5 M* S w7 Q$ a' ^$ k
* f5 Q/ q) m$ V2 K; r
## 文件结构
, K$ j( n% j+ X) m- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。# h# W( A) H8 o4 m8 }; `
- 一个词库目录中包含以下文件:
, T" r. ?: V- B* F( } - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。: v2 s7 R! ^/ n; s# r" J% {: H" Q; F
- dict.png。词库图标,72*72像素大小的PGN图片。
7 }$ l5 w3 B* i) @5 O) k - dict.css。样式文件,必需以dict.css命名。* e, O I# \" m
- dict.js。脚本文件,必需以dict.js命名。
0 x- F$ u: A4 H' D, n5 O3 Q1 | - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。
' w: B3 g# w2 l9 I9 U9 B! v
) @- k* c% M* c) W& a# j2 O# L2 R## 样式
6 ?% v/ v; j0 @8 D o- 为了更好的用户体验,请尽量使用预置样式。; b, }) s+ {/ B$ R6 D' ]% M) d
- 预置样式详细见预置样式源代码。
5 V1 j- r4 @/ u& w7 o$ G$ W/ L- & X# S, S3 V2 J7 s: \6 a: d
- body
# Y0 ^6 q% l& Q& h% R1 D! e+ z - {8 N) ?$ X3 B. _* y) B2 \. w w
- font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
. z5 R" ~7 e# s! |6 ?& h8 E - font-size:13px;8 G. \* T, q# ~. ]+ P
- color: #595857;
/ J7 s' L2 ~3 f. @) M7 @; \9 i - margin: 0px;- |: v! U) |0 C' a( X
- padding: 4px 10px 4px 10px;
5 z T* w- u7 x3 b$ q) e) } - background: #f3f0e9;" w0 I* M! ?- `+ g4 a) C
- }
3 N5 k ~7 m5 i& q& r8 G
. Q# u& t$ X# h* |" T- /* 标题栏中的当前词条 */' b Y" h1 ], D5 H; ?
- #current_word
% Q3 o4 t. I# j' Z. ]% q3 y3 x - {9 Z4 Y2 ]8 u7 |
- color:#E58339;
9 S) |/ P; b; i# R - font-weight:bold;
. o9 z% l* X4 A. K" r - font-size:24px;# ] l6 d& i* C, O! h( ?
- }9 q1 `; _) W8 k& r' D0 w+ e
3 s* Q! e' n6 U9 |- /* 用于高亮例句中的当前词条 */" a! \3 W. ^, W: o8 P1 b7 m/ ]- k
- .current_word$ c9 v, Q. H) E% V6 {& q
- {
6 G" T' `- M3 g2 x0 s5 W3 I - color:Green;" y T) }; u0 K. M
- }' ?# k& ]! f* V9 g
- + Q4 x; e/ r: ^ h
- /* 词性 */
' K5 a* ^$ Q' U" T( ?! T - .pro
6 ^) e4 V' I& G) u, Z% p0 Z, I - {9 U, B5 s/ @5 L1 ]' p
- color: White;" {& F( {0 J2 X8 Y# V2 y3 J
- background-color: #999999;
) w/ X. u) P2 L* q; c7 j/ x5 X - font-size: 14px;7 F% v) r0 U5 O' B ?! y
- min-width: 30px;
0 j$ l |) Y! }( j! ~& g* E - display: inline-block;
+ ]) V6 W! u! v8 G7 l - padding: 1px 2px 1px 2px;
- M5 ~; Q9 }9 W7 n- U - text-align: center;, a% ] z K2 @" S# ^8 W9 i
- font-weight: bold;
6 Y6 ^' `% _( l* |9 ~6 F - }/ B5 L1 j$ e7 o6 w) |: W) f3 \
( B! S3 F2 W- y4 h8 }- /* 词意 */
" }1 x0 {, h0 V8 F" X1 h* h/ \ - .dec
) x" s- V! G7 O0 m - {
9 H" i/ ]% Z- z2 V* h - font-size: 15px;' _, C. A0 p( ?! c! q7 C$ F
- font-weight: bold;% D7 p& w( u3 B( T) P: _
- padding: 1px 2px 1px 2px;7 e) v0 B: O" R7 R
- vertical-align: baseline;: l5 f+ |' P" R3 ~& B
- }# k! r- [9 S2 r6 e5 q8 O y: q, r
$ E( B2 k3 B; y8 F- /* 例句原文 */6 `0 ~6 j9 h' M
- .sent
3 a# ?$ b& G( e. J8 y% |4 v: H0 R - {
+ H% B8 U4 h: q; Y - }
9 b% z: k$ B7 g! W# v - 4 F* Q$ g' y+ F: n# X! p
- /* 例句译文 */
" w5 b' t: ?8 A/ E* { - .tran. S0 ^% }3 a+ c. x7 V4 Y9 p
- {
# w& Y, |& z# @2 l+ y( T1 T9 t+ @; L - }
0 J9 p/ V6 q# L+ f - % E2 ?+ }* d$ @* n. S
- /* 高亮 */6 ~. _4 c3 z3 v) |7 b0 f
- .highlight
0 y: N( I# c2 S& Z - {5 n( y- b0 ?$ p2 u) s
- color:#E58339 !important;4 L4 o) t% ?9 T! ]% L% n# Z7 b
- }0 x+ D7 T1 k) n( F. i; ~' _
复制代码
# C, K( ^, t5 R" }+ o7 v8 {## 脚本4 d6 T* Q( C/ H6 r2 |( T
- 默认已经引用了JQuery开发框架。
5 Q) R" k) C2 M( E2 l7 o4 w; X; g- 自定义脚本时,需要编写dictExecute函数:
, s2 c+ F* M" l# L+ q {- / ?+ e7 v _0 _, N; T! l& r, a/ d
- // 此函数将在切换词库时自动调用。
8 Y8 g- r9 f8 N7 T8 i! ]5 d# n8 r - // dict:词库信息;object类型;大体的格式如下:
5 [! E) e! g) i) o - // {
5 a& s' u# L9 D0 d - // "bookName":"锐特英汉词典",5 O5 n! Z: q9 Z, Q. C$ {
- // "date":"2013.06.17",
9 g4 c& Y- O4 | - // "description":"Enjoy!",
. \ T; T. y8 X9 l) R) _& k - // "wordCount":0,3 m* b# r+ U' u- J( x" k# |7 U
- // "author":"锐特"% L5 B8 X( {( }/ ]9 ]; w' Y) ?5 I
- // "dictSize":0,0 V2 ^ {/ c9 m( I% B
- // "dictVersion":"1",( L# ]1 W( _/ C3 a, E- Q/ N5 Y0 e
- // "dictVersionCode":0,
! `( N) t( ?: o7 o& } - // "type":"main"1 R8 U; Z. O3 z
- // }# Q M* ?* t. S5 p, S$ E
- // word: 当前要查的词;string类型;
# R- I1 }+ f4 x - // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
( h/ C7 N2 Y0 P - // 在编写脚本的过程中,你可直接使用这些参数中的数据。
" e# L% b- ?- r( |. }, a - function dictExecute(dict, word, response){
) N3 v8 p) q2 F - } h G: ?( d0 v l1 Y
复制代码
. E. E' ~/ w% g- 预置JS函数
' N. Q& ~" U& z! H" s- // 用cls类样式标记source中的word% H& p; ^; x2 y( D
- // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
; K4 H' {+ E; o) S0 k* K8 ^ - function markWord(source, word, cls);
) K' e F' M* p7 ^4 n - / ]; y1 w9 F0 H1 r$ D( O* U( a
- // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
& a% H4 p8 v: g5 I6 D( f - // source 句子
" {5 d% e6 n" u) Z - // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."
0 w/ i5 b) ~4 ^6 k2 }! ?# [& Q. E - function splitWord(source);
& r% z7 T, _9 p
复制代码
B' m* c p+ V9 |" W2 D6 [4 F# q' D5 X
## 词条数据
I* T% z+ t& x6 k- 词条数据,可以是HTML、文本、JSON、二进制。. L/ g. R- U% d1 D$ S
- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。7 M) e$ l/ U$ ^( l, R$ j6 V4 B
- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。
( f [+ E' z& c- 预置HTML标签扩展:
! z8 g% R" |3 g/ S4 R9 n2 v9 A- <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->) T2 h- h' U, d# Z3 E; [% g
- <a href="entry://key">key</a>
7 @! y- A5 J, _6 ~5 [ - ~+ d9 E( a9 m9 E; H' T+ R, H
- <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->' @" i1 j5 o% n3 g4 y; ?
- <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> y# g2 k" ^( L6 u1 e7 S, ?, K
5 f* A4 ^& k/ u# U+ l) N- <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
9 U( }8 Z6 [ i2 K6 Y - <w>word</w>
复制代码
3 u4 e; g9 F2 x, x9 }. ?- L' q6 A5 J3 ?
## 资源
' {& G0 {/ i& a. n. f, t. B- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
" U& [/ j5 W! Y& I- 资源路径中的分隔符使用\例如:\pic\test.png。
# Q+ a$ b6 Z$ I& d+ |, d- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。
0 U" q) z: T S5 Z5 r( Z% i+ v- 软件已经包含了一些预置图标,可直接使用:3 b9 q! _- c6 m" p5 x. `/ J1 G& @
- uk_pron.png 英式发音图标
* \& v Z6 [9 b# r - us_pron.png 美式发音图标
; }5 L! Q3 M+ j6 h% M( E; z - voice.png 语音图标
复制代码 1 N- d0 I/ x" b( N$ ]( |5 D, l
2 M, Z, W+ P* C8 o
## 注意事项
) K9 j7 Y2 f- Q- CSS, JS等文本文件如无特殊说明均使用UTF-8
/ Z( Z+ F. c$ p1 p1 [. P6 P
' I- D& I7 t5 r$ Q+ I## QA
, x9 ]! h6 n5 w* n0 V( v- 目前支持哪些格式的词库格式?
, T Y9 ~( L& j目前支持StarDict和MDict的词库。
! g0 g/ F& Q4 n; @" bMDict词库目前暂不支持加密。
8 ?5 P6 g. C( X8 _StarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。
6 J0 _! c# R4 V+ C. \6 ^
/ d, _ J% N9 ~0 {% ~- 如何添加的词库?
7 s8 R# m$ I# M" K; q- {+ L+ F6 ~$ p将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
S4 n0 c) v, a' {+ X" M* C/ ?( c
- 我制作词库时需要技术怎么办?8 ?2 R6 } M' s+ d) \2 s9 F5 P3 o
请在论坛发帖,我会全力技术。
' c; t) F+ W, P T& X
9 K* ^) S0 p. [9 X3 Q. q2 y- 自带的词库数据是否会开源?! x, [ E4 v1 _5 f: \( _# N
会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。
3 F) I/ T5 ^1 t- Q2 t; k: D# N
& H/ i `, }" `# t% X## 开发计划
; _$ X G x. E. j/ i# M2 X6 d& H- 单词发音( P( }$ I* n& V1 V4 Q
- 支持多语言词库的索引 |
|