TA的每日心情 | 开心 2023-8-28 17:59 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
楼主 |
发表于 2016-7-1 12:04:30
|
显示全部楼层
本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 - N( d8 W P9 }/ X5 W. h
( O; [$ m3 |& ?# \$ ?+ A+ P! X
## 文件结构
* x0 x& r9 }( S3 r) N- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
7 ?9 K1 f: f# d; x; I- 一个词库目录中包含以下文件:* H* B1 h! h; K2 k1 l3 |" i
- 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。8 k; y7 \% ?( y: k; @2 B
- dict.png。词库图标,72*72像素大小的PGN图片。+ b4 F4 W% J( s: V; {% o# k1 S
- dict.css。样式文件,必需以dict.css命名。
& g7 N6 C! Q; o: {/ f, O - dict.js。脚本文件,必需以dict.js命名。
, G) s* C/ W* P# }2 y. C - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。/ [) I3 R/ m: s, [' ^
) w2 Y0 h/ w M4 n## 样式
0 A$ y. _* w4 D( ?- 为了更好的用户体验,请尽量使用预置样式。+ ~+ X3 k5 _+ K# O. K
- 预置样式详细见预置样式源代码。2 f% h" _8 t) u7 ]5 C
- ) P" D7 O& E8 H6 `" P4 a
- body3 ]/ v4 A, V8 p
- {3 g& Q9 Y- c( `: g( a% b
- font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
% J6 j; U9 h0 ]5 h; Y4 D - font-size:13px;
' O- W, ~0 W& ~8 t* \$ \ - color: #595857;
- w' k/ G% I" S - margin: 0px;& b+ B$ f1 y4 S( ]9 k( U+ N
- padding: 4px 10px 4px 10px;
) N2 c) T- `+ `! @: X - background: #f3f0e9;
+ V4 \% ~/ A: Z; {- C E - }
& o0 M6 L8 q4 K" r) k - . {. @# }/ I. N. |& ^2 V
- /* 标题栏中的当前词条 */
& T4 r# S6 y+ z8 A - #current_word. d. G% c3 B) F" L" n
- {0 m _+ \. o5 |* |/ n V, z
- color:#E58339;
& D. R- I8 p+ Q) o4 j& p# R, m - font-weight:bold;
- X( b- R1 z- U; y3 h - font-size:24px;
, S$ C; J+ c* n2 x9 _ - }4 P3 L) s7 `, `- w. G) s
- 9 e: x, S2 ?- z4 ~7 P- @
- /* 用于高亮例句中的当前词条 */
( G7 ^- d j; i0 H - .current_word
. g0 G8 o4 ^, j0 L1 P2 q4 M - {
. A+ W* l. g1 i - color:Green;
8 k( ]: K( X7 }! l - }
J$ n% [5 O8 l- o ]0 O - 8 p' Y# j. y8 g9 [( N
- /* 词性 */
9 c) d3 z- ?5 W2 m& l* O - .pro
# i, ^. x9 P' u - {
1 g" { i! d6 ?1 N4 h: k - color: White;- D* e# u, m6 i
- background-color: #999999;5 H* P X6 P' v+ k5 O% L; v
- font-size: 14px;5 Q/ z8 r0 r( _9 S( {
- min-width: 30px;
. w: X5 V0 q M. G2 k1 ^ - display: inline-block;
* n+ L$ o) n) v# M. U* M" ^ Z7 f - padding: 1px 2px 1px 2px;; ^/ _& V) O( D( u
- text-align: center;
* I' N8 D. i8 G/ E8 B2 S - font-weight: bold;. j1 x3 r/ H6 _
- }
8 X3 j* f- }4 o; r$ L
# b5 H2 O% A( T5 ~- /* 词意 */. H, u7 ~, c7 p, Y* |1 @: t
- .dec) L& D2 \% R( s( M2 _
- {' F, q$ W1 u% ^* R, v, u* z
- font-size: 15px;
# N, B4 L0 A# e. I- v6 ~ - font-weight: bold;
9 l6 B0 {5 \. G3 A# c' K - padding: 1px 2px 1px 2px;4 h% ]% ~' Y, O" P. m7 d b
- vertical-align: baseline;" s. c/ G# h5 [
- }
9 O4 O$ f% t5 \( }& X% L# p" R - I1 l* T2 a# f( T* u" p
- /* 例句原文 */
0 p- r6 d, C$ l - .sent
1 T$ C3 k' r# w9 {: i" |" G! H - {
, Y/ V" ]) I' S3 B; B* _7 j, F - }% X: k9 Q1 Z5 i. ]7 g& v
2 w- O1 I I1 Y- /* 例句译文 */
) X* B. S: \7 t, Z8 M - .tran) L) m$ @. ^6 \. g! E
- {
V p6 D6 r/ Q: q! N - }- G% f/ A3 Z+ M2 t% g" {# p
- 1 q- @8 }1 P+ Z3 e# [, u3 p+ Z9 _
- /* 高亮 */
8 \" ^# t9 Y V - .highlight
4 M) P: n' H; L0 Q - {
" v$ g% @$ p0 y8 Z& C/ [7 s - color:#E58339 !important;9 ~' k _0 K4 ^3 r( d
- }. w T( i( f) L. U$ F
复制代码
; w; y" t- v6 R4 _0 \- T. P* a## 脚本
, e# Z, B) Z! N, P# K( O; `: Y1 C. g- 默认已经引用了JQuery开发框架。
: G6 q6 o5 L" I7 E' M- 自定义脚本时,需要编写dictExecute函数:
! d, s% }3 t6 f( V4 b/ h8 R7 I
V; P" R6 _, d c U; @+ _- // 此函数将在切换词库时自动调用。
3 E) J3 X2 D' Z$ i" e7 f' t3 f - // dict:词库信息;object类型;大体的格式如下:
2 b/ E! O5 X9 i2 A3 G - // {
3 L; G- q: \ T+ y - // "bookName":"锐特英汉词典",
; y9 a/ n# q$ u% [ - // "date":"2013.06.17",
2 _6 M. D5 N2 _0 x& m s - // "description":"Enjoy!",# h# Y7 U2 ^+ _8 O% @7 \( U8 r8 c$ f
- // "wordCount":0,
, |4 P/ P( z; _% G: M: Z - // "author":"锐特"8 _6 D: ^2 u7 t( Q, c. B! q/ K+ j
- // "dictSize":0,: J7 u$ L" T1 G& r
- // "dictVersion":"1",/ q9 W, K/ v& i( k$ }* x7 z
- // "dictVersionCode":0,
' e7 c$ I! q" L$ M6 @ `% c9 e7 }" Y - // "type":"main" g4 Y: [. H7 e8 X& W$ e
- // }
1 u3 y% `2 w% k" B5 D/ x - // word: 当前要查的词;string类型;
8 o* d7 y3 q1 r( O - // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
/ x9 y& [5 u$ O+ m+ o2 F0 q l - // 在编写脚本的过程中,你可直接使用这些参数中的数据。" w- a# {+ g0 ~
- function dictExecute(dict, word, response){
( g' x" K5 L' @2 A% j - }
6 \5 t; }& r8 L4 t, m$ S/ y5 z) G
复制代码
7 {7 F7 V7 ?8 p' g% t* A- 预置JS函数! J/ C" r$ T9 w7 ]* @" n+ _4 X
- // 用cls类样式标记source中的word
2 t" L4 s6 w& r; I0 X' U M! z7 y - // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
. {5 @: P) _; Y" b6 L8 g - function markWord(source, word, cls);
3 ]8 _$ U/ i! D( R6 y, k - : ?0 \, _ D6 v3 ]9 o$ k
- // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
3 w4 l$ K3 H) {8 n; L - // source 句子4 m9 ^8 z" B; x# _3 s
- // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."& f9 L$ s+ o+ `6 _+ M- y
- function splitWord(source);
" X& P) v+ ^6 {; j: x6 s5 ?- b
复制代码 * A. b& q+ r/ N0 r
z+ T- x( _+ e( s* b& M. c- T
## 词条数据
' G U t. T L# e* Z0 \# r" V: T- 词条数据,可以是HTML、文本、JSON、二进制。
5 [5 H, i6 A; ]2 c- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。
- j% g, r' W! }( \- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。
; ^. {+ n$ F0 K! M- 预置HTML标签扩展:2 P* f- [" m+ i; k
- <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->+ z9 i, n8 l* x- r2 B) v
- <a href="entry://key">key</a> - @2 \' Z2 ]( M; C9 i! A6 D# `& J' e5 ]
- - i6 ~: w4 _/ K4 f2 r% y
- <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->0 C! L1 c5 l( ]7 h4 @( A
- <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> ' b0 [, w9 I3 | ] G" T% P
/ ^ x+ L3 A7 ?& Y( h7 n- <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->) u$ _6 q3 A0 Z6 _! N
- <w>word</w>
复制代码
9 w$ }- u0 z6 C0 S$ L/ v; G$ a5 x$ V
## 资源6 m# T$ A4 s9 Y2 B1 k j5 \
- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
+ z- z% a" D8 |4 t0 A* E c- 资源路径中的分隔符使用\例如:\pic\test.png。
+ w* g4 Y7 o9 \) S: j) H2 [; l# d1 |- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。% {/ w$ N/ U# ^" [# m
- 软件已经包含了一些预置图标,可直接使用:
9 J" X' E8 L- ]- uk_pron.png 英式发音图标6 \8 o |: |3 ?6 Z5 N) s
- us_pron.png 美式发音图标
) G/ V; R% e0 N9 l0 i) G - voice.png 语音图标
复制代码
Q+ Y" E; {, y' D! o5 A% y; E
) [/ _" a, g# N2 U## 注意事项* j- T/ c! v6 p& w, P. t" m
- CSS, JS等文本文件如无特殊说明均使用UTF-89 V# M$ ] z, u, p; q: _9 l
; u6 D& g6 V+ i
## QA
5 R, y: g! n) e5 e; T# f- 目前支持哪些格式的词库格式?- U0 J e; O; r6 b' p( q+ q
目前支持StarDict和MDict的词库。+ q- B' I0 {8 N, g3 D) N9 q3 O
MDict词库目前暂不支持加密。
' f" y p$ K& M* DStarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。
# P3 q0 F0 [" j# d4 ? i: g. u, t+ O0 s& R0 e) _) G& ^
- 如何添加的词库?5 z5 ]' X/ t _
将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。1 z2 x7 c$ A4 X! f8 @" v
* l g: G" D! F& |! x+ N4 k9 H
- 我制作词库时需要技术怎么办?
. B* d( r a+ l) A" f请在论坛发帖,我会全力技术。) {' x9 [! F" [- u/ v( Y/ U6 o
% |7 u) U, ~% U1 W) F
- 自带的词库数据是否会开源?
/ M. B d" }3 B/ g会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。& ~' Q/ r1 C* S3 C
5 ?" Z8 G* O1 D# c1 O## 开发计划- w2 v) S* x. x( x- O9 w
- 单词发音
, R( o( q! w) f- 支持多语言词库的索引 |
|