掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6862|回复: 73

[工具] 我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。

[复制链接]
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑 2 A5 j" `3 n$ K* @  G6 n

    / t# ^, x  i/ z7 P我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。
    4 y1 F3 v7 N3 l' O- @5 I3 }0 A软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。
    9 _: t, M5 `6 m$ ^( i! q7 [9 [% s二楼提供了词库开发接口。
    1 D# A- F* q, A. l& V, `  F/ k: W( M, o" K( v. ^
    另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。% p. C7 O& J: L6 h* M0 J
    最核心的数据包括:( _* U7 I1 ?  n3 M  G
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。: l  v8 ?2 M7 p4 H% A
      @3 U8 M$ z# h4 A  d
    0 S2 I. b; [4 q8 }! R
    下载地址1 B  X8 \5 Z+ H7 L2 N5 H5 n
    百度网盘下载1 Z8 t3 p7 ]7 C! S3 B3 s9 Q! d

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x
  • 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
    1. ) P" D7 O& E8 H6 `" P4 a
    2. body3 ]/ v4 A, V8 p
    3. {3 g& Q9 Y- c( `: g( a% b
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
      % J6 j; U9 h0 ]5 h; Y4 D
    5.         font-size:13px;
      ' O- W, ~0 W& ~8 t* \$ \
    6.         color: #595857;
      - w' k/ G% I" S
    7.         margin: 0px;& b+ B$ f1 y4 S( ]9 k( U+ N
    8.         padding: 4px 10px 4px 10px;
      ) N2 c) T- `+ `! @: X
    9.         background: #f3f0e9;
      + V4 \% ~/ A: Z; {- C  E
    10. }
      & o0 M6 L8 q4 K" r) k
    11. . {. @# }/ I. N. |& ^2 V
    12. /* 标题栏中的当前词条 */
      & T4 r# S6 y+ z8 A
    13. #current_word. d. G% c3 B) F" L" n
    14. {0 m  _+ \. o5 |* |/ n  V, z
    15.     color:#E58339;
      & D. R- I8 p+ Q) o4 j& p# R, m
    16.     font-weight:bold;
      - X( b- R1 z- U; y3 h
    17.     font-size:24px;
      , S$ C; J+ c* n2 x9 _
    18. }4 P3 L) s7 `, `- w. G) s
    19. 9 e: x, S2 ?- z4 ~7 P- @
    20. /* 用于高亮例句中的当前词条 */
      ( G7 ^- d  j; i0 H
    21. .current_word
      . g0 G8 o4 ^, j0 L1 P2 q4 M
    22. {
      . A+ W* l. g1 i
    23.     color:Green;
      8 k( ]: K( X7 }! l
    24. }
        J$ n% [5 O8 l- o  ]0 O
    25. 8 p' Y# j. y8 g9 [( N
    26. /* 词性 */
      9 c) d3 z- ?5 W2 m& l* O
    27. .pro
      # i, ^. x9 P' u
    28. {
      1 g" {  i! d6 ?1 N4 h: k
    29.     color: White;- D* e# u, m6 i
    30.     background-color: #999999;5 H* P  X6 P' v+ k5 O% L; v
    31.     font-size: 14px;5 Q/ z8 r0 r( _9 S( {
    32.     min-width: 30px;
      . w: X5 V0 q  M. G2 k1 ^
    33.     display: inline-block;
      * n+ L$ o) n) v# M. U* M" ^  Z7 f
    34.     padding: 1px 2px 1px 2px;; ^/ _& V) O( D( u
    35.     text-align: center;
      * I' N8 D. i8 G/ E8 B2 S
    36.     font-weight: bold;. j1 x3 r/ H6 _
    37. }
      8 X3 j* f- }4 o; r$ L

    38. # b5 H2 O% A( T5 ~
    39. /* 词意 */. H, u7 ~, c7 p, Y* |1 @: t
    40. .dec) L& D2 \% R( s( M2 _
    41. {' F, q$ W1 u% ^* R, v, u* z
    42.     font-size: 15px;
      # N, B4 L0 A# e. I- v6 ~
    43.     font-weight: bold;
      9 l6 B0 {5 \. G3 A# c' K
    44.     padding: 1px 2px 1px 2px;4 h% ]% ~' Y, O" P. m7 d  b
    45.     vertical-align: baseline;" s. c/ G# h5 [
    46. }
      9 O4 O$ f% t5 \( }& X% L# p" R
    47.   I1 l* T2 a# f( T* u" p
    48. /* 例句原文 */
      0 p- r6 d, C$ l
    49. .sent
      1 T$ C3 k' r# w9 {: i" |" G! H
    50. {
      , Y/ V" ]) I' S3 B; B* _7 j, F
    51. }% X: k9 Q1 Z5 i. ]7 g& v

    52. 2 w- O1 I  I1 Y
    53. /* 例句译文 */
      ) X* B. S: \7 t, Z8 M
    54. .tran) L) m$ @. ^6 \. g! E
    55. {
        V  p6 D6 r/ Q: q! N
    56. }- G% f/ A3 Z+ M2 t% g" {# p
    57. 1 q- @8 }1 P+ Z3 e# [, u3 p+ Z9 _
    58. /* 高亮 */
      8 \" ^# t9 Y  V
    59. .highlight
      4 M) P: n' H; L0 Q
    60. {
      " v$ g% @$ p0 y8 Z& C/ [7 s
    61.     color:#E58339 !important;9 ~' k  _0 K4 ^3 r( d
    62. }. 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

    1.   V; P" R6 _, d  c  U; @+ _
    2. // 此函数将在切换词库时自动调用。
      3 E) J3 X2 D' Z$ i" e7 f' t3 f
    3. // dict:词库信息;object类型;大体的格式如下:
      2 b/ E! O5 X9 i2 A3 G
    4. //    {
      3 L; G- q: \  T+ y
    5. //        "bookName":"锐特英汉词典",
      ; y9 a/ n# q$ u% [
    6. //        "date":"2013.06.17",
      2 _6 M. D5 N2 _0 x& m  s
    7. //        "description":"Enjoy!",# h# Y7 U2 ^+ _8 O% @7 \( U8 r8 c$ f
    8. //        "wordCount":0,
      , |4 P/ P( z; _% G: M: Z
    9. //        "author":"锐特"8 _6 D: ^2 u7 t( Q, c. B! q/ K+ j
    10. //        "dictSize":0,: J7 u$ L" T1 G& r
    11. //        "dictVersion":"1",/ q9 W, K/ v& i( k$ }* x7 z
    12. //        "dictVersionCode":0,
      ' e7 c$ I! q" L$ M6 @  `% c9 e7 }" Y
    13. //        "type":"main"  g4 Y: [. H7 e8 X& W$ e
    14. //    }
      1 u3 y% `2 w% k" B5 D/ x
    15. // word: 当前要查的词;string类型;
      8 o* d7 y3 q1 r( O
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
      / x9 y& [5 u$ O+ m+ o2 F0 q  l
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。" w- a# {+ g0 ~
    18. function dictExecute(dict, word, response){
      ( g' x" K5 L' @2 A% j
    19. }
      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
    1. // 用cls类样式标记source中的word
      2 t" L4 s6 w& r; I0 X' U  M! z7 y
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
      . {5 @: P) _; Y" b6 L8 g
    3. function markWord(source, word, cls);
      3 ]8 _$ U/ i! D( R6 y, k
    4. : ?0 \, _  D6 v3 ]9 o$ k
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
      3 w4 l$ K3 H) {8 n; L
    6. // source 句子4 m9 ^8 z" B; x# _3 s
    7. // 例如: 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
    8. 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
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->+ z9 i, n8 l* x- r2 B) v
    2. <a href="entry://key">key</a> - @2 \' Z2 ]( M; C9 i! A6 D# `& J' e5 ]
    3. - i6 ~: w4 _/ K4 f2 r% y
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->0 C! L1 c5 l( ]7 h4 @( A
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> ' b0 [, w9 I3 |  ]  G" T% P

    6. / ^  x+ L3 A7 ?& Y( h7 n
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->) u$ _6 q3 A0 Z6 _! N
    8. <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- ]
    1. uk_pron.png 英式发音图标6 \8 o  |: |3 ?6 Z5 N) s
    2. us_pron.png 美式发音图标
      ) G/ V; R% e0 N9 l0 i) G
    3. 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- 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑
    + @  H& }! F  {% `5 ~* b% s' ^" F  J' A/ d! j, f* p
    还想要的关键(基本)功能:9 ]/ {9 I* ]# t
    1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。  \2 x" \. Z7 q' F
    2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。
    ; s+ R9 [' A& G0 J* \3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。
    * p* p. M% ^: s5 Q4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2.  p1 ^# w/ O; j6 U. h9 Q, [. {
  • TA的每日心情
    开心
    2020-3-25 07:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2016-7-1 12:06:04 | 显示全部楼层
    支持,但是我只用PC版,希望将来有。
  • TA的每日心情

    2020-5-4 18:04
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2016-7-1 12:19:13 | 显示全部楼层
    支持,准备试试

    该用户从未签到

    发表于 2016-7-1 15:58:11 来自手机 | 显示全部楼层
    支持开发,感谢分享。
  • TA的每日心情
    开心
    2019-6-28 11:53
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    发表于 2016-7-1 16:34:57 | 显示全部楼层
    謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-1 17:04:02 | 显示全部楼层
    group1234 发表于 2016-7-1 16:34% |9 }) z4 I2 I! Y0 l* s0 E
    謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@
    & o5 k2 ^/ Y0 R+ f* A0 D0 n( W
    一会我放一个到百度网盘。

    点评

    謝謝~~  发表于 2016-7-2 11:04

    该用户从未签到

    发表于 2016-7-1 20:15:12 | 显示全部楼层
    哇感觉好棒!要是变成一个支持mdx的背单词软件就好了
  • TA的每日心情
    慵懒
    2023-2-4 11:26
  • 签到天数: 579 天

    [LV.9]以坛为家II

    发表于 2016-7-1 23:41:25 | 显示全部楼层
    安装后,打不开,闪退

    该用户从未签到

    发表于 2016-7-2 14:25:29 | 显示全部楼层
    73.5兆为什么这么大?
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:03 | 显示全部楼层
    尤泽毅 发表于 2016-7-2 14:25
    1 L, T' }1 o2 _5 b73.5兆为什么这么大?

    % S2 _1 W8 D5 g* H. ?. l" j包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:41( B8 w+ E  G' ]3 B3 S7 |- k
    安装后,打不开,闪退

    ' B: q3 L4 H4 }' r/ H' A可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:15
    9 ~* G4 S7 Q2 C0 Y哇感觉好棒!要是变成一个支持mdx的背单词软件就好了

    $ y, C5 U- n6 I1 j! e想过以后写一个背单词的,慢慢来。
  • TA的每日心情
    慵懒
    2023-2-4 11:26
  • 签到天数: 579 天

    [LV.9]以坛为家II

    发表于 2016-7-3 11:21:07 | 显示全部楼层
    还是闪退 华为荣耀6p,安卓6.0
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-3 11:29:01 | 显示全部楼层
    865052004 发表于 2016-7-3 11:21
    8 E" H  L1 e( `: Z! H3 C还是闪退 华为荣耀6p,安卓6.0
    4 s, s( e/ ^: ~  D& i# A
    谢谢 我测试下
  • TA的每日心情
    开心
    2023-1-25 21:22
  • 签到天数: 1144 天

    [LV.10]以坛为家III

    发表于 2016-7-4 04:33:55 来自手机 | 显示全部楼层
    谢谢,我感觉非常好
  • TA的每日心情
    开心
    2018-9-16 07:45
  • 签到天数: 77 天

    [LV.6]常住居民II

    发表于 2016-7-5 14:18:32 | 显示全部楼层
    只有安卓的吗?亲

    该用户从未签到

    发表于 2016-7-5 14:54:14 来自手机 | 显示全部楼层
    建议可以把自带的词典去掉
  • TA的每日心情
    开心
    2023-7-5 21:21
  • 签到天数: 399 天

    [LV.9]以坛为家II

    发表于 2016-7-5 21:50:55 来自手机 | 显示全部楼层
    支持楼主,谢谢楼主分享
  • TA的每日心情
    开心
    2020-9-24 15:44
  • 签到天数: 293 天

    [LV.8]以坛为家I

    发表于 2016-7-6 16:42:53 | 显示全部楼层
    強大!這一定要試試看,謝謝
  • TA的每日心情
    开心
    2019-9-3 09:48
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2016-7-6 18:48:31 | 显示全部楼层
    安卓6.0,闪退!
  • TA的每日心情
    奋斗
    昨天 23:02
  • 签到天数: 1739 天

    [LV.Master]伴坛终老

    发表于 2016-7-7 09:33:53 来自手机 | 显示全部楼层
    荣耀3c 安卓4.0 查词无反应
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-28 16:52 , Processed in 0.162963 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表