TA的每日心情 | 开心 2023-8-28 17:59 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
楼主 |
发表于 2016-7-1 12:04:30
|
显示全部楼层
本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 % l( t$ F0 |0 C( q. F3 `1 I
9 D4 z. f7 H# H; K2 f; n; c. O6 S## 文件结构
: c9 b% k; D$ P0 H2 N; |6 Q! l+ j- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
3 \4 a' W: D! s3 A0 v% X0 A" F- 一个词库目录中包含以下文件:" B. N7 u) _" `. U
- 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。) {5 Y/ i- U; n4 S
- dict.png。词库图标,72*72像素大小的PGN图片。9 ]5 ~6 h9 I# M' W+ ^4 n! ^
- dict.css。样式文件,必需以dict.css命名。
# ], Y/ q( m" D' a* \1 _' k - dict.js。脚本文件,必需以dict.js命名。
; g+ a6 s+ H. B6 J* O - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。! m `. _" l$ p
! Q4 x; `8 x; m2 e" o0 D/ t& v
## 样式8 C2 K8 V- n, w0 B8 e
- 为了更好的用户体验,请尽量使用预置样式。
) Z- j, P, |& z- h. S* G3 Y- 预置样式详细见预置样式源代码。
2 W. G' I# A$ ]1 S/ ?& \- 6 V( [* b6 H$ e4 @; p& c% h$ B
- body" b4 X3 Z [6 x/ \
- {! [6 T0 i: v* f9 B* H# v
- font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
1 @" F& b* a* d5 i) G( Z( H - font-size:13px; @1 b6 T2 n2 j- a+ K( N5 N) C
- color: #595857;
1 b1 q4 q9 C; t7 ?$ |3 d9 i - margin: 0px;
8 R5 e2 @2 Q. F; o" | - padding: 4px 10px 4px 10px;. k9 W6 V5 c/ e. N
- background: #f3f0e9;
4 Q$ k2 A/ ^7 \0 G( p+ h" \ - }( S& g' S' f+ p# R# `1 _
- 1 F% v4 B3 W K+ E
- /* 标题栏中的当前词条 */1 ]+ h: I" A/ [: w* B6 P" v# ?/ f2 Z
- #current_word3 E5 ~( y' e* Y1 P8 {3 z' q* r
- {% }9 F) F4 L3 D
- color:#E58339;
" b" {1 b* D9 \) `! ?8 x( L - font-weight:bold;. u2 h0 L# K# P) x
- font-size:24px;
8 x8 Z: o x5 T# b+ d6 C - }/ f1 T1 a9 X" t- v* ?4 \) a
- 5 J8 {% ^4 N& H. s7 U1 }% M0 s1 h# B
- /* 用于高亮例句中的当前词条 */
2 |$ y* x5 ^' ?' {- G4 W - .current_word
3 c+ M4 y# a) |0 | - {* W p, o! i6 }' v- R7 Y
- color:Green;& C3 h3 S, C" L5 o6 M3 y8 A
- }. d4 F" B# D9 o% m4 A+ W
- A, E$ ~* ~9 [- q8 Z- /* 词性 */. Z; p- [9 ?( i3 z- b! x: \ i
- .pro
A5 I# a8 H, S" y+ \ - {8 H2 t9 ^" |9 H7 P7 k2 u' r3 D0 H
- color: White;
4 n y2 p0 B! R0 P - background-color: #999999;
! y* f! E4 W; r; c4 |( J - font-size: 14px;
6 t/ {- Y9 S K% o# b6 D$ _% }& h - min-width: 30px;
% G" M: ?& G4 s9 n; H( ?, ~ - display: inline-block;
! d. z: p/ V5 G! Q8 ]! S& L - padding: 1px 2px 1px 2px;) K' b+ a3 {' A8 s- Y. [
- text-align: center;+ F i3 j' s! q% M3 {! S
- font-weight: bold;
% x: ^1 r1 Y9 q. {: x6 U+ c& T& V; `( n' i - }
% ^/ D6 D- ~; l5 I5 Z5 ]; M
L- e" |) { w- /* 词意 */! Y+ g( B9 ]2 Y6 i4 ^
- .dec: O6 @, S1 h* n, X2 i8 w( E: _) x
- {7 r& R" }# n4 G7 \
- font-size: 15px;. s9 V' L) v0 O' g7 e
- font-weight: bold; Y, R, n) }% p" g' Q4 G9 Y* H1 x
- padding: 1px 2px 1px 2px;$ F; F9 ~6 G9 d$ }
- vertical-align: baseline;
0 i1 W; s( o3 u8 ? - }* V4 c- \ F3 B) q2 L! ~; }* r( g+ f
- u4 y! a9 W3 v8 [; J& h: Y- /* 例句原文 */& n+ ^0 D+ ?, V! v* L+ o; b
- .sent
3 Z8 q) y/ U5 F4 f - {
5 e; g: ^& e6 p' X* w5 e5 Z - }/ C$ K# i) ^6 R6 T# X; G
1 H! t( ~. ^3 O( h: l# z6 l* m$ d) w- /* 例句译文 */
- A' i6 ?8 a% r; R r& l5 | - .tran4 X3 B: ~( `8 X
- {
# O7 M2 I& P0 `4 ~ - }* |2 A3 S4 X& E/ e, k* \
0 k) N6 z5 F1 T! M1 t# o% J- /* 高亮 */
7 T4 A* b1 z. n) u - .highlight* O1 z# q6 S1 M0 g: x/ ^( f' @! b2 X+ K
- {
, J+ A: l$ C5 h' O0 z; W - color:#E58339 !important;
- G( E5 M4 k3 B9 O E; V - }
) ]5 F4 y/ e: A& \. z
复制代码 + Q! n( q, b+ G. E3 m4 y6 `8 j% q
## 脚本3 k2 ?1 t1 y% ]8 a$ C
- 默认已经引用了JQuery开发框架。
' m* I- a( ~: {- z- 自定义脚本时,需要编写dictExecute函数:* }) i Z* N( a) _' w, K$ ?8 \
3 H. Q$ p) F" f' `0 m p3 L2 y- // 此函数将在切换词库时自动调用。
+ r2 z$ s) ]4 }- J - // dict:词库信息;object类型;大体的格式如下:% C% B/ [0 H) {* C% D
- // {
5 s0 S! m* M5 Y' C. @2 }, U( D& G( W - // "bookName":"锐特英汉词典",. \9 ]$ I; s4 L) A
- // "date":"2013.06.17",% j# E% u0 S9 s# R6 X+ r
- // "description":"Enjoy!",# c# M6 z) d! F
- // "wordCount":0,
2 y! \8 n+ s) H" `0 H6 `) Z# L$ M' \ - // "author":"锐特"
% `9 K4 n, @4 M0 y$ m1 U - // "dictSize":0,& u6 X* K: Q' F& p
- // "dictVersion":"1",% K+ k! b3 `' T) S
- // "dictVersionCode":0,& r* F- c3 U# v0 E
- // "type":"main"* N6 t: J+ v; X$ m6 m% q+ n. B/ z1 O
- // }, O$ w' X) Z% s/ E' f
- // word: 当前要查的词;string类型;
1 b/ \& Z+ c! B% B - // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
2 N R- @6 d' ^1 K" w9 B- y - // 在编写脚本的过程中,你可直接使用这些参数中的数据。" ]% E5 {" o6 s+ o; ~, _ w
- function dictExecute(dict, word, response){
7 ]1 P5 R. D0 M3 d% Q5 o* u - }) C/ H8 e8 |, L# k
复制代码 0 Q7 E" J& Y/ q5 V
- 预置JS函数! z6 e0 w$ I& A3 ~, B$ Z y4 a$ W! |
- // 用cls类样式标记source中的word1 \) V+ C$ s, J3 `6 Z, _
- // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
' K; f$ b* Z y2 {3 Z5 T$ O* r& s - function markWord(source, word, cls);1 D! d% p, ^3 S. ~7 m/ _ }6 Q* I4 @
" f; {4 ~ r/ a- // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
2 r& W) N0 W* V( a" h. G3 I! M# h - // source 句子
( y' b/ ?# y& N; k - // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."& Y7 ~ R' e8 X% M( s) L2 V
- function splitWord(source);1 n2 V' s4 I2 h& v
复制代码 # [+ d( m! U' ~' v3 n
% f6 b, j5 v1 U* i
## 词条数据
+ S h3 B- b+ u s- 词条数据,可以是HTML、文本、JSON、二进制。- _' m. i7 X5 F) X$ i: l6 X
- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。
( h# {8 @0 N+ ]+ K( [* C- r& r0 |: }- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。
. d' Q A& u8 r% \7 V0 o- 预置HTML标签扩展:9 G* W0 P5 I/ n8 }* [9 `1 [
- <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->& z" |. }' G" P" Q
- <a href="entry://key">key</a> 1 ~ b( K# b( b5 R8 o% X/ B# X
- k: q, {7 r6 ]% X* u
- <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->; \" t7 v' O- }/ ^# {# a
- <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> 4 y0 @7 C! }- W M
4 n2 W# `% j/ D2 D) M7 }2 S- <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
, p- I; n5 u6 W - <w>word</w>
复制代码 0 r9 L+ Z. K% c4 ]1 ~, _7 | a
& P9 a4 i7 N1 m+ a+ e n## 资源
/ \: f4 u' k$ n- \. d- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。. [5 H. i- t4 Z g+ F
- 资源路径中的分隔符使用\例如:\pic\test.png。
) f$ H0 H) I q# ?- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。7 W. F& F0 j" t5 l8 U6 p
- 软件已经包含了一些预置图标,可直接使用:% F' y, a+ f+ l
- uk_pron.png 英式发音图标7 Q# a9 C; f/ y1 O; C4 a
- us_pron.png 美式发音图标$ G; I1 \4 v- b( M$ n9 @
- voice.png 语音图标
复制代码 4 V" e C0 {2 h' k: @$ |7 z" C
- q& d8 f) M0 b## 注意事项
. p9 t2 f6 j! } f& ]4 t, B( Y/ ]- CSS, JS等文本文件如无特殊说明均使用UTF-8, r6 r3 j" n3 g& N R& U
6 c4 {$ {6 U1 I/ l- ~## QA
3 u1 R* {! }8 }5 @* z! [- u$ O" ~( E) j- 目前支持哪些格式的词库格式?2 d$ ?" p7 N, w- g& X5 _9 q
目前支持StarDict和MDict的词库。
* r: B. B5 J& X2 ]# A0 dMDict词库目前暂不支持加密。- r1 `+ D7 }" O" \* z4 q1 h
StarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。: W u& e: m3 V- N
3 B4 q% b5 c- ]' q/ P/ t
- 如何添加的词库?
3 V$ ~* @, J P. v8 ?# }/ o% q将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。( y6 M+ c3 E$ C: S
4 s5 c$ W$ K9 Y6 G6 x
- 我制作词库时需要技术怎么办?: u+ D5 f, m7 \. p$ x
请在论坛发帖,我会全力技术。
* z9 l3 [0 g1 v3 t; H/ Y. d. u8 o- o0 ~- L& S
- 自带的词库数据是否会开源?* b( V2 n4 A& P0 O* W0 q
会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。6 l, e2 C$ K6 r7 f
8 j' L+ z6 ]& G8 X4 Y& u& ]## 开发计划! z( d$ y' O- i- H* E" g
- 单词发音
3 b$ A+ p2 Y7 x, `$ Y- 支持多语言词库的索引 |
|