TA的每日心情 | 开心 2023-8-28 17:59 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
楼主 |
发表于 2016-7-1 12:04:30
|
显示全部楼层
本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 3 H" m6 \- D, w) Z4 Q6 f' C9 d
. p. \: Q7 }! @" Z0 x
## 文件结构
" \1 M+ K7 j0 b; w5 s7 Z- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
6 m$ w3 A; t( e0 z3 s. h; I- 一个词库目录中包含以下文件:2 S4 Z8 k- ~2 S5 U
- 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。. d9 P2 f* i: D0 n
- dict.png。词库图标,72*72像素大小的PGN图片。
/ x! m. Q& ]1 m2 p - dict.css。样式文件,必需以dict.css命名。0 U) a' E8 @8 K
- dict.js。脚本文件,必需以dict.js命名。
$ f2 W" Q* o4 } - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。/ L! N, `: ]' D( M! A
) ]' P. w* P( z
## 样式
" R# z4 F6 _, g1 J! D$ ]. e( w H- 为了更好的用户体验,请尽量使用预置样式。
, c: Q4 d# A: r/ }, H- 预置样式详细见预置样式源代码。
+ r% v& H9 k; _
' w' c; k# \% j! M' M; Z- body$ C" F; P& r$ O: j& j5 }
- {
5 u4 {, Q, z3 O - font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;* j$ v0 R4 R1 J1 X- ?6 ] ]1 p3 C
- font-size:13px;9 B# d$ O2 y$ a9 U
- color: #595857;1 q3 `+ P( J# e* T( n( b" w
- margin: 0px;; S& D! g; L$ s3 H( g8 _
- padding: 4px 10px 4px 10px;
% d. j8 W7 G+ F9 L) U1 D - background: #f3f0e9;$ U1 \8 ^- F# n9 W8 d3 b$ n
- }
+ u: s" q! F) o - $ U) R" ~, a! [( a5 _& M
- /* 标题栏中的当前词条 */1 b+ S+ w3 @6 V7 f! {; m
- #current_word
* I5 p8 o, F" f+ E& e( I# R - {# ^$ @& |# F8 x) b' T
- color:#E58339;
V/ {. s. [; M7 l7 B - font-weight:bold;; h0 f, H- W5 E% @) I; ^
- font-size:24px;
% M3 N0 q, u2 I8 t$ S: [. R* a. X' } - }& p$ u4 ~( k$ u6 o/ a, K% C
- 8 M# l, L0 U p' \2 b. v: k% s
- /* 用于高亮例句中的当前词条 */* M" [( z' S! J0 I/ C7 S
- .current_word$ b* k) c' k7 L+ E0 Q# U
- {
3 e( s4 c# n( e+ k$ f. y - color:Green;8 F% E$ [0 y4 l
- }& J G( D# C, M) |# h
- , ]! \$ e0 ]7 e( \; L
- /* 词性 */$ {$ [: I* x: p% F! A6 s0 Q
- .pro* e- i! ]$ N$ H$ |
- {
' o6 Z6 a9 G; M - color: White;
8 |8 j; K a2 V$ R1 J8 b, e( | - background-color: #999999;
5 K7 t3 d1 R) q ` ~: E9 m - font-size: 14px;
+ c0 w! ]( h* l6 K - min-width: 30px;
8 r* `- R: K" y# q+ o* x0 W - display: inline-block;
1 z) {6 j4 D) | - padding: 1px 2px 1px 2px;
' p4 f o- ^) r/ u! V L" o - text-align: center;9 Q' a" @# r) }6 B1 t7 i# L# d" [+ k
- font-weight: bold;
& L l1 {7 ?* j, W - }: ?* k* h+ [, `6 I2 R
- 3 l8 K$ f# H8 _2 N" }9 c5 h
- /* 词意 */
0 b4 i5 m7 X# A - .dec2 C, \/ Z! ^ y9 X5 z: \
- {2 j( g/ s9 p( s% v* `+ D
- font-size: 15px;
+ v" K1 J' C5 c2 ]( }: A, Y4 }* x - font-weight: bold;
. q" T% V. x. {. I7 I& d% S% Y - padding: 1px 2px 1px 2px;5 z9 ]* W# ]1 Z. A% e2 n$ X7 N
- vertical-align: baseline;
' s" T# o5 d' l' J% [" o) x - }1 G6 L0 `! c& t9 Y' P9 F: W
- $ c C! L4 g! F7 F
- /* 例句原文 */
' I2 C/ f7 \5 d/ \+ A - .sent
9 z* k2 K. z; U, e; H! I% ? - {
2 g/ h/ x; }" t: l+ D% _3 e9 X - }
. `1 b( h! d1 _! I9 e' F
# t, ~1 Y8 a9 T" h7 i5 F- /* 例句译文 */0 {' F7 \8 _: e4 X
- .tran
3 ?5 @9 h2 q! h- C - {
. x! [# {9 F6 Q" `" ]1 M - }
8 K' S: a) q' g* G; y& t1 R
) [8 X" n) b. `2 n _2 Z- /* 高亮 */0 B) M( F' D# T5 U1 X
- .highlight
, t& Y% `& Q' k9 @+ v2 W, k - {
9 L- c$ I3 w* n) k$ x - color:#E58339 !important;4 }9 k! T( n8 k+ p) w$ @: z
- }0 I/ g: p2 u. @# w
复制代码
; f/ f4 M; a# H## 脚本
; C- |6 W# y2 x: Z8 h& Y- 默认已经引用了JQuery开发框架。8 E' |0 Z) g' m0 F F4 K
- 自定义脚本时,需要编写dictExecute函数:
* {% T! `+ G& f+ U7 K7 } f2 b- - @) ?! ?# V8 T* {: g' Z
- // 此函数将在切换词库时自动调用。
$ W" o% k0 l0 U' Q7 e, B9 Q - // dict:词库信息;object类型;大体的格式如下:1 K5 i) ^8 p" @1 q
- // {) c% \& s8 J( L' P9 P$ R$ I; g/ g1 W, z
- // "bookName":"锐特英汉词典",
2 ?! [( E. n& t! \ - // "date":"2013.06.17",3 z. I. }9 \$ F8 Q' D& W" e, f. }
- // "description":"Enjoy!", w: o4 A. b2 ^' n. y1 e
- // "wordCount":0,2 x/ ]% N" Q" S6 x$ t7 z2 K( N
- // "author":"锐特"
+ K& _9 V# X' E9 Q- E; R$ N7 w V5 D - // "dictSize":0,* ?/ R$ V' n _, G0 J
- // "dictVersion":"1",/ M7 O) _) z; O) ~8 i) ~
- // "dictVersionCode":0,
* {" U' h! z! C- k' E - // "type":"main"
6 L9 f, N% F+ S5 r - // }
3 A0 u, s/ Q; z$ C# A - // word: 当前要查的词;string类型;8 J3 d3 i, u& K
- // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;+ r$ @5 {1 @6 b+ m/ s
- // 在编写脚本的过程中,你可直接使用这些参数中的数据。* g3 l8 `. a- l* d
- function dictExecute(dict, word, response){
+ ]2 }0 z/ G* W- ?$ d ] - }5 B- t( F) m* E- O) R
复制代码 3 y; [) t9 @& ~! R3 T% T8 i9 i
- 预置JS函数
; T) p8 c& B( d4 i: y. h- // 用cls类样式标记source中的word
+ C N% Q N) Y2 B' E, w - // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
; t H$ ]% c, F6 F. q. y& ] - function markWord(source, word, cls);
! q: D& X0 ^* e8 k7 Q+ o8 \) b
7 H$ ~5 W1 _! T5 E. A$ I. N- // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
5 a3 i7 b8 M/ i% Q; P - // source 句子
' K/ U1 y" e; J3 K - // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."
* X" ^2 ^ _& C- i - function splitWord(source);
3 z1 ]. r9 @! T" m, V3 u4 g
复制代码 $ b6 q: {9 H5 J% W2 `- J, B
- W$ l( ^& e4 g* _6 y0 j: E
## 词条数据
' b3 ?0 `: G- V# b8 ]- 词条数据,可以是HTML、文本、JSON、二进制。4 b" T: L4 y5 ? ~! } s6 ^4 A
- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。* L% m. d: ~( _+ Q$ b X8 c& }8 ^
- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。 N& E- C( D: F- ~, \) L' N
- 预置HTML标签扩展:, ^5 Q' \ e0 ?4 [( l$ t
- <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->% E! C7 g" B+ |% f$ @$ p
- <a href="entry://key">key</a> $ L" _/ e2 b( |0 g* `6 g
& }( s: p. A- t7 J. _- <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->
. r( J0 T% _3 p% m. L- E' j - <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> " K. T" _( }$ @3 O! K5 ?
- . P; ` D: S) P5 T7 l0 z0 G6 B
- <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
) y* w* Q$ Y) B% C- b4 {/ n - <w>word</w>
复制代码 2 T7 M" [ H5 z# }! t, K, W
; g+ ?# K3 T# B9 {
## 资源
6 i4 q+ n5 N) M$ C* D/ T* \, j- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。& E1 p: v2 H- t- h8 z7 s
- 资源路径中的分隔符使用\例如:\pic\test.png。
) `% o0 `# t) j+ T' V- x/ B3 f- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。- |8 a; l" D( I, u1 ?% n
- 软件已经包含了一些预置图标,可直接使用:" s7 s2 @! V" z
- uk_pron.png 英式发音图标$ D# A6 D( [. e! M; \: J* z
- us_pron.png 美式发音图标
$ }+ d7 d: v/ X9 _, D; Y - voice.png 语音图标
复制代码 8 h- p ]# G! d. F; D' @0 {
( j' ]* `$ J* i- E: J# t8 D/ C
## 注意事项
3 T! w5 C* J/ i0 q+ f$ R: S9 M( m/ L- CSS, JS等文本文件如无特殊说明均使用UTF-8
9 d1 h' R# m! Y
; o5 `$ {6 t0 J, ]9 p## QA( ?4 k, U" e8 F
- 目前支持哪些格式的词库格式?
+ @1 b& m. |; S/ U& o% q目前支持StarDict和MDict的词库。
( e$ O) h$ O4 J1 Z" }& X0 B2 IMDict词库目前暂不支持加密。
5 U" D+ ? _4 i% |: MStarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。- u0 O" {9 A" i+ ~9 ?# p3 i( o4 r
& w) Y5 _2 ~2 I# D. ~2 g
- 如何添加的词库?/ u* n0 t6 `8 j- J; t5 b8 l
将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
( ~9 q" G' N9 d: @! k8 ~: K3 A2 j- U6 A
- 我制作词库时需要技术怎么办?
% @% ^# T! k" H. x0 ]请在论坛发帖,我会全力技术。
; T8 w$ o1 `# B4 z" f( z- x7 ~" T" c# ?7 x0 l' M
- 自带的词库数据是否会开源?
- t2 `: n* y, D0 {1 a: W- @会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。
$ ?) S( j% A* P; i" R. z& @' @# F9 v( N: m" X/ ^6 I
## 开发计划* `8 ?4 a, c* M$ Z/ {- a* {5 o
- 单词发音
7 a) b2 K! C4 L6 p- }; ~- 支持多语言词库的索引 |
|