TA的每日心情 | 开心 2023-8-28 17:59 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
楼主 |
发表于 2016-7-1 12:04:30
|
显示全部楼层
本帖最后由 东风解冻 于 2016-7-1 14:12 编辑
" K6 e9 z; b9 n1 {/ Y+ L
: Z- q7 P9 F1 h3 y8 P3 V## 文件结构% K! G7 f1 F5 E$ v; x( l' Q& S$ J8 u
- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
7 U% F! [3 G: y# w* O& F- 一个词库目录中包含以下文件:
: ~& O" a5 l5 z- J. k0 E+ C8 E3 P! h - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。
0 w" w0 N4 I. O* W# }, R z3 F - dict.png。词库图标,72*72像素大小的PGN图片。
* v0 x2 {% S+ |( u& c7 ~, V5 O - dict.css。样式文件,必需以dict.css命名。
, E) Z- R6 n" F - dict.js。脚本文件,必需以dict.js命名。
- R/ G! s O- Q' o+ Y: | - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。
9 [/ D' x3 J7 A! ^3 N8 Q7 Q
2 W W3 V! F% @## 样式
/ i# W$ C9 _) R4 w& {) [( A- 为了更好的用户体验,请尽量使用预置样式。7 ~5 h5 j @8 w3 z
- 预置样式详细见预置样式源代码。2 k9 D3 P. a+ ^4 } S# j
1 c& w% I( z+ {7 S) ~( I- body
' k1 P4 S8 I" s) i - {8 E! d w. g6 V
- font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;+ B5 K& H& y9 Q& t5 t8 z, [# Y
- font-size:13px;) r5 Q; `" W, D
- color: #595857;# u+ r6 ^0 U e6 T0 {
- margin: 0px;0 b1 T3 c% K3 i2 b4 r* H, ^
- padding: 4px 10px 4px 10px;% [! O/ h* K$ Q, p- G* ~
- background: #f3f0e9;0 O; H; i$ {& y! z3 P, a0 ^
- }1 l. {$ Q* g$ n5 t+ }* i
- 8 ], B& T2 M5 S9 H+ O9 v
- /* 标题栏中的当前词条 */
. [0 c; Z5 j3 Y' e, i7 n- W. ` - #current_word
) K2 H! Y% q, ^; d% V5 d - {3 z- y9 L# D4 H7 j+ `. O/ o4 u9 s$ X
- color:#E58339;9 s0 U; g8 q0 X. O
- font-weight:bold;
( T: R8 {2 d3 R: w - font-size:24px;5 H: [* y% C8 u P- [- z$ T
- }+ }9 c$ [9 Z6 T* V; w3 y+ S3 |- d
- 2 e9 [0 s7 X# t# _
- /* 用于高亮例句中的当前词条 */
$ u* V! Q# b0 {3 U' T6 | - .current_word
# i/ q- {1 p+ }! J. B - {5 O3 Z& m( v& B8 R
- color:Green;4 M( u; g8 y2 d! Q
- }8 u, ~$ c5 O% o- B/ e( l
/ ~; s5 U6 s0 c$ h- j5 l: a s; g- /* 词性 */: G1 h! J _3 y& `: K
- .pro
1 ^4 P/ Y2 g% Y: w. ~- l1 s' _ - {
{" f$ n& E. J5 S9 S - color: White;
+ y5 t0 t( F( e X7 \ - background-color: #999999;* ]3 t& Z. j& _: ]
- font-size: 14px;
7 X& G8 V( U' U- |9 V9 @! A6 Z - min-width: 30px;
" q' ~% q2 d9 E! p5 X - display: inline-block;
0 E2 b; c! M. x - padding: 1px 2px 1px 2px;
' E/ Q( C" M; h$ t, \4 C; \8 c' ?1 o - text-align: center;
) @2 E0 M! [& r+ n6 S1 h - font-weight: bold;
# F7 X- W5 r% f2 o2 ?$ {% y" C - }) W% i f8 {. b2 d& p0 v
/ J- p! M& j* {3 O0 r( E; N% U- /* 词意 */8 G- t) y6 Y1 y
- .dec
/ s0 y' O) F) m- g - { _3 d4 h/ l @4 `! u; p# F: u9 y
- font-size: 15px;
9 Y0 m$ b0 n& J) c! m3 ~ - font-weight: bold;& \' g7 n6 ~3 e" @5 X3 T
- padding: 1px 2px 1px 2px;
. @% S: R( \0 Z, @7 @ - vertical-align: baseline;
) b. L( l& g5 q - }0 x- U$ e, J* k. K( G
- 8 x! d% n' Y* `2 A# i
- /* 例句原文 */6 D; O# g8 m/ m8 x2 R g, F
- .sent* H$ Y' J: i$ m
- {
8 ?! O# S8 K1 M1 a* i - }
9 b% g: ]" Q# B* N3 K- ?* o" o
) c) {8 i) k. u- /* 例句译文 */* q9 g7 c! \# F7 E# Y- c) _% O v& w% h
- .tran
: @' N! A5 q# N( ]) s - {
+ J/ _3 b6 D* F2 @ - }
2 |5 e6 M7 i& z) Q' g. c6 o, i
7 N3 I2 s3 i# h \7 q+ P7 C( Q- /* 高亮 */: `6 D) R) i" e
- .highlight. _# I- C& Y! ?- d
- {
" A& q; ^' K" { - color:#E58339 !important;* L4 Y: R: I3 s8 }: J
- }+ W. Y0 y( u6 j: n; a! }
复制代码 ; Y! H2 c5 D: C9 I& i7 `
## 脚本/ L, {) n" M- Q1 p4 m2 o
- 默认已经引用了JQuery开发框架。
: s3 W/ D, L# o" ]# ~- 自定义脚本时,需要编写dictExecute函数:
$ h% {4 r; i- {2 B0 |( ~% E3 |- x+ I- & h8 B, N/ m$ r- K
- // 此函数将在切换词库时自动调用。
8 m2 W$ x( d6 s* k - // dict:词库信息;object类型;大体的格式如下:
- m5 W* E, M) l; p - // {1 H# B+ h' J. I P
- // "bookName":"锐特英汉词典",
. x1 Q* B7 H1 c+ v' s# ]. ` - // "date":"2013.06.17",. f$ x. G$ T. I8 z6 R% H
- // "description":"Enjoy!",
( G# o- e: Y* |, ? - // "wordCount":0,9 Z/ W2 |7 C4 f6 e# _2 \! w2 r) a7 A
- // "author":"锐特"3 \3 ?4 R4 e$ J% y
- // "dictSize":0,
& Q* k) ^! s$ n* w - // "dictVersion":"1",
$ j, G: \5 t! g- A$ t# x, m - // "dictVersionCode":0,
8 x) Z' l! `1 a1 o% d - // "type":"main"; ^7 }+ b' J9 ^1 h* E% Z
- // }+ X% b1 D! U" z6 x& H P# P
- // word: 当前要查的词;string类型;
, {8 G3 J2 \7 G - // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;4 {: a6 G5 H% [4 N
- // 在编写脚本的过程中,你可直接使用这些参数中的数据。% y9 a E: w" {
- function dictExecute(dict, word, response){
V) x0 ]5 _0 z7 z - }; f" T2 x L d" P! m# Z h
复制代码
3 C# @ m6 X5 g3 `( x) l- 预置JS函数
8 { v, s% |: O0 ~2 a1 K! q. y/ S- // 用cls类样式标记source中的word% F9 S' U, F, w- k2 a, I% |
- // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict.". n2 H8 `/ `( V2 q2 w' C
- function markWord(source, word, cls);; ?( {" |9 i2 `
- - {6 Q; ?- u+ q% C
- // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
2 c* ]! Q' g$ T) B - // source 句子
- U# R# C$ s) s, I% I/ x! J - // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."( p; ~9 h: X+ P
- function splitWord(source);+ a) V! Y; I. L! v- s
复制代码
/ @7 r6 d% ]6 n
) t4 l0 c, Z C## 词条数据' t5 q3 E0 L' S0 ~; s# p
- 词条数据,可以是HTML、文本、JSON、二进制。
, X0 K# L+ Y* j& i( D; L+ X- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。
/ y, q# r# e! q- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。9 {# c d( X' v% H9 j
- 预置HTML标签扩展:' ~; V4 H' M% n* p
- <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->! R+ t7 _$ R* d
- <a href="entry://key">key</a> 1 |5 u) d" | R1 \: F% p- w! C
- - o3 b5 K8 E8 x, B
- <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->
* {8 C% d4 ]$ @3 R1 a. V - <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> * ^' ~# ?* R8 X+ ]4 x$ I w" h
+ \% N4 B* V$ X, ?: m; {: Q$ y- <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
0 s* e4 d. l' q: X7 w/ o6 P4 n# l3 D - <w>word</w>
复制代码
8 ]4 O1 w" @1 G0 j6 h% R4 k% e! i
## 资源, s$ C L7 e# x" l
- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
: P9 r* }: |+ d- 资源路径中的分隔符使用\例如:\pic\test.png。
' f' s e- q5 M8 r- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。# q, O) Y$ I* E* F* X
- 软件已经包含了一些预置图标,可直接使用:* X7 |, a" v: l: }
- uk_pron.png 英式发音图标( m- m- \0 {2 f# o8 ^1 b+ s
- us_pron.png 美式发音图标
0 _6 U+ b- w( c( c F - voice.png 语音图标
复制代码 * J' R( t: m/ k$ _' B' @
8 Y! y8 i/ V. `; Q! h2 G
## 注意事项3 v; [7 p4 x S6 q L) a
- CSS, JS等文本文件如无特殊说明均使用UTF-8
5 [2 _8 p+ j6 G M. ~ ~, Y" j9 t v7 C) E6 d$ P- h
## QA
3 S% u7 p7 F, N V" `; t- 目前支持哪些格式的词库格式?
0 L( ^$ l, x) R# R+ ^: d- _目前支持StarDict和MDict的词库。
3 |- F( f& ?5 G1 T1 _9 {MDict词库目前暂不支持加密。
5 `6 S, @! ]2 B0 ]1 o2 WStarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。 z" ^) b& Y" G; Z/ @# W; ~
w3 C8 v; m H: a6 S- 如何添加的词库?$ Z A. V7 p5 N& i8 F$ ]1 z
将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
6 h# S) i" _' ]) n) y6 d* M
. R0 |% Y! Y7 D) ^- 我制作词库时需要技术怎么办?
/ D2 Z, M2 v$ |8 L0 T" s请在论坛发帖,我会全力技术。
: ?1 Z |8 l# K( z+ s2 i* r8 d n& _% j9 v1 m t
- 自带的词库数据是否会开源?6 l$ f) K" B5 O8 M; T
会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。% r% M% N0 s, b6 Z
, q H3 k$ Q+ Y: E' u8 S) m" {$ }
## 开发计划
3 R6 F5 d8 p$ N& f ~! S- 单词发音
3 I0 H k/ |& g" k6 ?! i+ R+ \5 @7 [- 支持多语言词库的索引 |
|