TA的每日心情 | 开心 2023-8-28 17:59 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
楼主 |
发表于 2016-7-1 12:04:30
|
显示全部楼层
本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 + j* O1 h8 \& M+ q; {4 ]4 B
9 Z2 _4 |) y* f" } B, @
## 文件结构3 e% P8 A/ _; R% x L
- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。7 y5 t) W. `) z% Q z j
- 一个词库目录中包含以下文件:
) F" U V' ^% d( Q; c! P - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。
+ H+ H4 @3 B+ E4 v# F8 V - dict.png。词库图标,72*72像素大小的PGN图片。% e! Y/ {, o9 ^
- dict.css。样式文件,必需以dict.css命名。: h: \) Q, D, t3 U: H7 f% o2 |
- dict.js。脚本文件,必需以dict.js命名。; H4 L" \. C1 ]' C' c' @+ V1 l
- 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。7 ]# q! f5 Y; d. V
4 L6 i8 q8 f2 b4 M' X# ^
## 样式
+ n0 b% Z0 c0 N- 为了更好的用户体验,请尽量使用预置样式。0 f! i6 M6 b7 S* t" K* N( t7 ?
- 预置样式详细见预置样式源代码。1 A. L: Q" T* a( Q( \
" U( u) z6 W! p2 A- body& H& ?# p9 d" [5 L
- {
+ v2 {4 \2 q) A& y) r - font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
% O2 q( n, T( c, | - font-size:13px;" Q/ m" r; ~9 }& i9 U% t# k
- color: #595857;' L) u& I/ m# Y4 ?+ Z1 L
- margin: 0px;! ~" P- r+ W5 \7 b' s# }- d, D
- padding: 4px 10px 4px 10px;
G* U7 D4 o: r6 j4 L - background: #f3f0e9;
( G2 a8 J7 ?3 p& v; {, a4 W - } q* J% F7 { D- K
) f( S! f+ O7 F- E- /* 标题栏中的当前词条 */
; Z7 o( g! [4 e- b0 h6 l/ f - #current_word# V* L2 ~) J; w3 i+ ~
- {0 m, j1 a1 L; L
- color:#E58339;) F+ ~+ N7 }4 j" [( Q
- font-weight:bold;
) I! ] f7 z9 _1 y1 | - font-size:24px;7 ^, F4 ^3 {) ^# r& U2 N) [
- }
) o4 E4 e1 \3 U( p3 w. M
0 Q; H$ T1 }+ S- /* 用于高亮例句中的当前词条 */
& j6 a& {' `1 o, e' h( s& |( r - .current_word9 }; R( t0 ?9 x j
- {
/ ]2 [' f3 q7 @1 r - color:Green;( L. s" u$ p$ d( e
- }
7 ~1 M, N3 F' {6 n9 u
) D$ v; F$ m9 c- /* 词性 */+ V" k9 G K4 n
- .pro
- w7 C, T- J2 v6 ?% \0 D - {. c) J9 j* f0 U+ O! d
- color: White;0 t) s2 s0 }* _+ A" Y! y5 z
- background-color: #999999;0 h9 c) c9 e* f( S! f, y
- font-size: 14px;
) M5 [- I4 d2 V& k1 c2 x - min-width: 30px;9 z0 k' Q" ~1 J+ M
- display: inline-block;4 I+ g" b4 \3 ^7 r) x
- padding: 1px 2px 1px 2px;
& l5 @. T; ~% v" o - text-align: center;
& B3 V7 I3 A8 }/ k1 U - font-weight: bold;+ `4 t* l# K, J A" t; C) P$ V/ c
- }/ _$ @$ `9 H5 {
- 1 M7 d2 w2 z# H( v) _( C
- /* 词意 */
- `# W, d5 `2 ?. H% [# \7 N - .dec$ E6 H+ M* Y0 m- R( e8 h$ o. L
- {& |" }9 X, B0 n7 _% x/ T
- font-size: 15px;
+ x }3 d( Y' \* r: M - font-weight: bold;
3 M8 j4 |* r. w9 `, { - padding: 1px 2px 1px 2px;
6 N9 b; f+ K+ [/ J( V - vertical-align: baseline; j& @9 S/ t3 Q4 \
- }
! S( X2 I; A. f9 g - ' i# q3 n7 @0 P9 m% j
- /* 例句原文 */
) V ]5 |( ? F# ^( E, x# U1 Z - .sent
& |* x. X( g. W$ x - {
1 L1 ]3 J4 C7 ]7 H" Z% H4 x$ J - }$ [5 ]8 n1 Q# d$ G* F
3 C# K( T3 G8 X- /* 例句译文 */- S# k! _4 L7 ?8 v/ ~; o% C* i
- .tran
- G$ [- L6 D2 p" A$ w7 ^$ } - {- l2 S3 d! h6 S. L
- }- s1 r! [# o5 g) h; v
- 3 I! E( A6 f3 @- z' x
- /* 高亮 */& R+ B) K. o- W
- .highlight
6 }! \+ M5 H" z3 S1 } - {" N" p% c. s0 S
- color:#E58339 !important;
. d% g6 w4 C: ]2 u: I - }: Y2 }/ l, _8 v+ H/ s+ j
复制代码 & f& t1 K8 y: g; D, B
## 脚本
( V) a! \2 ~8 |+ i; ^4 I( y- 默认已经引用了JQuery开发框架。
0 e# Z! b9 D2 J' N( J- 自定义脚本时,需要编写dictExecute函数:1 q ?5 c# V$ C/ `2 T2 L4 B
: i2 r. y6 t% ~- // 此函数将在切换词库时自动调用。
2 {& h: c' j$ q1 ]+ N, X$ c - // dict:词库信息;object类型;大体的格式如下:
3 I% ]! r/ C* x+ Z( [+ K - // {
% Y7 L+ l; }6 \& W) o6 n( W! h+ j - // "bookName":"锐特英汉词典",. ]; ^3 h& e: I; t( Z- x; B5 O2 V
- // "date":"2013.06.17",
- S0 f# H0 N3 G! ~ - // "description":"Enjoy!",& G/ _1 ?; Q, ~* @+ F
- // "wordCount":0, ?2 a5 B1 m: n$ ~% k) o5 ?) ]
- // "author":"锐特"
$ O. d# f6 w, P0 X# s* d - // "dictSize":0,
3 w9 D k) v2 r9 y& P - // "dictVersion":"1"," \3 {9 E% W' `
- // "dictVersionCode":0,1 c- p7 |, N# {8 u
- // "type":"main"
7 S" W8 b' D4 D8 }% H% }3 ~ - // }
! l$ J/ b% o: _2 M" C# F - // word: 当前要查的词;string类型;
; I$ r' P1 |2 a - // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
# O' `; o" `4 l/ G+ f3 e7 W; x - // 在编写脚本的过程中,你可直接使用这些参数中的数据。
& U; H! P, l, k7 c9 }1 S. r - function dictExecute(dict, word, response){
. |+ X0 h" p9 |0 D- m8 y+ w- R - }
! R+ V0 m9 a2 y7 O% w
复制代码 $ O1 ^4 u/ M- j8 r7 Q
- 预置JS函数
% _! ~4 I6 D: \6 B- // 用cls类样式标记source中的word
2 m+ z) Q- N5 X/ _2 d - // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
6 Z$ U- y0 w+ T: f - function markWord(source, word, cls);
7 ^7 X. o% q# A: l8 R - t1 D, U* d! f& l" F9 L
- // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。0 O( J3 J2 e- P, e9 T
- // source 句子
' o4 d$ b' O7 @; F8 |" `3 @ R/ B - // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."
% o6 b+ C8 ?' A, H4 e& @ - function splitWord(source);
C1 z, n; q$ E$ @3 ]5 q7 C* Q
复制代码 2 d$ c! b/ A8 o% c* _5 F. f1 W) M
* K3 e( q. L' N( }8 C
## 词条数据8 X. z! t( Z! a9 E+ H' d5 g
- 词条数据,可以是HTML、文本、JSON、二进制。
- _* |9 p$ R6 N( W! }- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。, x4 M/ m$ c: F0 m9 e. \% q) v( J
- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。
/ v6 D" v4 r; j- H% _; ]/ z- 预置HTML标签扩展:
7 l+ u) P1 y' F- <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->4 J$ h2 Q! E" `0 a
- <a href="entry://key">key</a>
; Y' b7 C( V% t2 N) o {
# F* e1 k" ^3 ^' ^6 c6 k* I5 j- <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->
: X: r! S7 V# s1 `' M+ M - <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> ; v }0 `5 O9 M$ J) l+ Z# x3 f+ v- R- l
, @5 F! h3 m* M6 l* E H9 \+ Z- <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
$ E) `, {# ^6 F2 t - <w>word</w>
复制代码
- Z' {) a! b! _$ ~) X5 j5 C. C. J
; e$ B! e2 I7 B2 m% u## 资源
9 V, e7 q. o& y6 r5 m' c3 `% O: H- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
- `' V$ m; y! v2 y, \- 资源路径中的分隔符使用\例如:\pic\test.png。5 u/ W$ ^( c) @; Q, M! S; a# Z
- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。
) O/ r( i7 S- M. P/ U, k- 软件已经包含了一些预置图标,可直接使用:
; J; |9 R8 q. A9 j a# P' z- uk_pron.png 英式发音图标 S$ D* x. S0 Y' i2 e1 D- p
- us_pron.png 美式发音图标* B2 _) l3 h* H' g/ o) A8 E0 M
- voice.png 语音图标
复制代码
: y9 [' G. V, @2 K7 z" V) h7 p( j% O& H1 \8 Q! w( M! _' W
## 注意事项8 ^# [2 p% T) [, `" P7 M
- CSS, JS等文本文件如无特殊说明均使用UTF-85 r" |. a. h. g5 y- R5 _; q
' y+ {, y7 P7 w9 Q- ~" v* D: G
## QA. P) |: f. E. x5 I: p# b+ g4 c/ }
- 目前支持哪些格式的词库格式?
. ]6 F2 n" J$ @/ x目前支持StarDict和MDict的词库。
) S& ^# h: N9 G& v0 ^' CMDict词库目前暂不支持加密。: o( ^( r& t* ? ^4 G v, m
StarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。
; l8 ?2 d# A2 q1 L
+ ?$ {- s6 q \ Z6 ~+ c% k' V- 如何添加的词库? x' j1 n) f7 k" o- K h) A
将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。, ?! Q& P1 K5 X% u/ Y' t
- D# B5 p0 f$ k, l3 s. m/ o' O- 我制作词库时需要技术怎么办?
$ M7 x" u" N4 h请在论坛发帖,我会全力技术。1 M" J+ U. u! \9 ~8 d
/ h# B+ w- i/ N- 自带的词库数据是否会开源?6 q( T5 `3 [9 k% P) r
会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。5 ]8 u& C, ]# C8 B7 V
1 d$ a+ x5 X& ^! `' D& ?* k
## 开发计划: ?+ K) f4 D5 J; o
- 单词发音. \! n) h7 i+ Z) R
- 支持多语言词库的索引 |
|