掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6832|回复: 73

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

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

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑 ) U9 I! q4 Q- }2 O; Q5 u# ]2 j( ~
    1 Z5 N! s2 o9 U# b$ ?
    我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。
    4 J- d5 ]5 u, g. W: R0 O' ?- d软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。" W9 Z4 e5 d6 ^' p2 ?
    二楼提供了词库开发接口。
    ; X  j1 U0 m3 r8 `; z7 ^0 p; |! ~/ n- {6 ?. y) e
    另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。
    % x) M+ i9 L# t2 @最核心的数据包括:- E0 \. L) F& j( Y# p
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。, i) }/ v6 \& h2 D% N( K) ~6 L9 a
    % u. k. k/ o; [# n! f0 X

      o6 ?9 \2 q# E下载地址) q8 N0 E! G# i! T
    百度网盘下载
    / ~* O4 u- h+ p$ y6 o

    本帖子中包含更多资源

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

    x
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-1 12:04:30 | 显示全部楼层
    本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 ! p( Z* R' r5 M* S  w7 Q$ a' ^$ k
    * f5 Q/ q) m$ V2 K; r
    ## 文件结构
    , K$ j( n% j+ X) m- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。# h# W( A) H8 o4 m8 }; `
    - 一个词库目录中包含以下文件:
    , T" r. ?: V- B* F( }    - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。: v2 s7 R! ^/ n; s# r" J% {: H" Q; F
        - dict.png。词库图标,72*72像素大小的PGN图片。
    7 }$ l5 w3 B* i) @5 O) k    - dict.css。样式文件,必需以dict.css命名。* e, O  I# \" m
        - dict.js。脚本文件,必需以dict.js命名。
    0 x- F$ u: A4 H' D, n5 O3 Q1 |    - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。
    ' w: B3 g# w2 l9 I9 U9 B! v
    ) @- k* c% M* c) W& a# j2 O# L2 R## 样式
    6 ?% v/ v; j0 @8 D  o- 为了更好的用户体验,请尽量使用预置样式。; b, }) s+ {/ B$ R6 D' ]% M) d
    - 预置样式详细见预置样式源代码。
    5 V1 j- r4 @/ u& w7 o$ G$ W/ L
    1. & X# S, S3 V2 J7 s: \6 a: d
    2. body
      # Y0 ^6 q% l& Q& h% R1 D! e+ z
    3. {8 N) ?$ X3 B. _* y) B2 \. w  w
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
      . z5 R" ~7 e# s! |6 ?& h8 E
    5.         font-size:13px;8 G. \* T, q# ~. ]+ P
    6.         color: #595857;
      / J7 s' L2 ~3 f. @) M7 @; \9 i
    7.         margin: 0px;- |: v! U) |0 C' a( X
    8.         padding: 4px 10px 4px 10px;
      5 z  T* w- u7 x3 b$ q) e) }
    9.         background: #f3f0e9;" w0 I* M! ?- `+ g4 a) C
    10. }
      3 N5 k  ~7 m5 i& q& r8 G

    11. . Q# u& t$ X# h* |" T
    12. /* 标题栏中的当前词条 */' b  Y" h1 ], D5 H; ?
    13. #current_word
      % Q3 o4 t. I# j' Z. ]% q3 y3 x
    14. {9 Z4 Y2 ]8 u7 |
    15.     color:#E58339;
      9 S) |/ P; b; i# R
    16.     font-weight:bold;
      . o9 z% l* X4 A. K" r
    17.     font-size:24px;# ]  l6 d& i* C, O! h( ?
    18. }9 q1 `; _) W8 k& r' D0 w+ e

    19. 3 s* Q! e' n6 U9 |
    20. /* 用于高亮例句中的当前词条 */" a! \3 W. ^, W: o8 P1 b7 m/ ]- k
    21. .current_word$ c9 v, Q. H) E% V6 {& q
    22. {
      6 G" T' `- M3 g2 x0 s5 W3 I
    23.     color:Green;" y  T) }; u0 K. M
    24. }' ?# k& ]! f* V9 g
    25. + Q4 x; e/ r: ^  h
    26. /* 词性 */
      ' K5 a* ^$ Q' U" T( ?! T
    27. .pro
      6 ^) e4 V' I& G) u, Z% p0 Z, I
    28. {9 U, B5 s/ @5 L1 ]' p
    29.     color: White;" {& F( {0 J2 X8 Y# V2 y3 J
    30.     background-color: #999999;
      ) w/ X. u) P2 L* q; c7 j/ x5 X
    31.     font-size: 14px;7 F% v) r0 U5 O' B  ?! y
    32.     min-width: 30px;
      0 j$ l  |) Y! }( j! ~& g* E
    33.     display: inline-block;
      + ]) V6 W! u! v8 G7 l
    34.     padding: 1px 2px 1px 2px;
      - M5 ~; Q9 }9 W7 n- U
    35.     text-align: center;, a% ]  z  K2 @" S# ^8 W9 i
    36.     font-weight: bold;
      6 Y6 ^' `% _( l* |9 ~6 F
    37. }/ B5 L1 j$ e7 o6 w) |: W) f3 \

    38. ( B! S3 F2 W- y4 h8 }
    39. /* 词意 */
      " }1 x0 {, h0 V8 F" X1 h* h/ \
    40. .dec
      ) x" s- V! G7 O0 m
    41. {
      9 H" i/ ]% Z- z2 V* h
    42.     font-size: 15px;' _, C. A0 p( ?! c! q7 C$ F
    43.     font-weight: bold;% D7 p& w( u3 B( T) P: _
    44.     padding: 1px 2px 1px 2px;7 e) v0 B: O" R7 R
    45.     vertical-align: baseline;: l5 f+ |' P" R3 ~& B
    46. }# k! r- [9 S2 r6 e5 q8 O  y: q, r

    47. $ E( B2 k3 B; y8 F
    48. /* 例句原文 */6 `0 ~6 j9 h' M
    49. .sent
      3 a# ?$ b& G( e. J8 y% |4 v: H0 R
    50. {
      + H% B8 U4 h: q; Y
    51. }
      9 b% z: k$ B7 g! W# v
    52. 4 F* Q$ g' y+ F: n# X! p
    53. /* 例句译文 */
      " w5 b' t: ?8 A/ E* {
    54. .tran. S0 ^% }3 a+ c. x7 V4 Y9 p
    55. {
      # w& Y, |& z# @2 l+ y( T1 T9 t+ @; L
    56. }
      0 J9 p/ V6 q# L+ f
    57. % E2 ?+ }* d$ @* n. S
    58. /* 高亮 */6 ~. _4 c3 z3 v) |7 b0 f
    59. .highlight
      0 y: N( I# c2 S& Z
    60. {5 n( y- b0 ?$ p2 u) s
    61.     color:#E58339 !important;4 L4 o) t% ?9 T! ]% L% n# Z7 b
    62. }0 x+ D7 T1 k) n( F. i; ~' _
    复制代码

    # C, K( ^, t5 R" }+ o7 v8 {## 脚本4 d6 T* Q( C/ H6 r2 |( T
    - 默认已经引用了JQuery开发框架。
    5 Q) R" k) C2 M( E2 l7 o4 w; X; g- 自定义脚本时,需要编写dictExecute函数:
    , s2 c+ F* M" l# L+ q  {
    1. / ?+ e7 v  _0 _, N; T! l& r, a/ d
    2. // 此函数将在切换词库时自动调用。
      8 Y8 g- r9 f8 N7 T8 i! ]5 d# n8 r
    3. // dict:词库信息;object类型;大体的格式如下:
      5 [! E) e! g) i) o
    4. //    {
      5 a& s' u# L9 D0 d
    5. //        "bookName":"锐特英汉词典",5 O5 n! Z: q9 Z, Q. C$ {
    6. //        "date":"2013.06.17",
      9 g4 c& Y- O4 |
    7. //        "description":"Enjoy!",
      . \  T; T. y8 X9 l) R) _& k
    8. //        "wordCount":0,3 m* b# r+ U' u- J( x" k# |7 U
    9. //        "author":"锐特"% L5 B8 X( {( }/ ]9 ]; w' Y) ?5 I
    10. //        "dictSize":0,0 V2 ^  {/ c9 m( I% B
    11. //        "dictVersion":"1",( L# ]1 W( _/ C3 a, E- Q/ N5 Y0 e
    12. //        "dictVersionCode":0,
      ! `( N) t( ?: o7 o& }
    13. //        "type":"main"1 R8 U; Z. O3 z
    14. //    }# Q  M* ?* t. S5 p, S$ E
    15. // word: 当前要查的词;string类型;
      # R- I1 }+ f4 x
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
      ( h/ C7 N2 Y0 P
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。
      " e# L% b- ?- r( |. }, a
    18. function dictExecute(dict, word, response){
      ) N3 v8 p) q2 F
    19. }  h  G: ?( d0 v  l1 Y
    复制代码

    . E. E' ~/ w% g- 预置JS函数
    ' N. Q& ~" U& z! H" s
    1. // 用cls类样式标记source中的word% H& p; ^; x2 y( D
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
      ; K4 H' {+ E; o) S0 k* K8 ^
    3. function markWord(source, word, cls);
      ) K' e  F' M* p7 ^4 n
    4. / ]; y1 w9 F0 H1 r$ D( O* U( a
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
      & a% H4 p8 v: g5 I6 D( f
    6. // source 句子
      " {5 d% e6 n" u) Z
    7. // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."
      0 w/ i5 b) ~4 ^6 k2 }! ?# [& Q. E
    8. function splitWord(source);
      & r% z7 T, _9 p
    复制代码

      B' m* c  p+ V9 |" W2 D6 [4 F# q' D5 X
    ## 词条数据
      I* T% z+ t& x6 k- 词条数据,可以是HTML、文本、JSON、二进制。. L/ g. R- U% d1 D$ S
    - 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。7 M) e$ l/ U$ ^( l, R$ j6 V4 B
    - 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。
    ( f  [+ E' z& c- 预置HTML标签扩展:
    ! z8 g% R" |3 g/ S4 R9 n2 v9 A
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->) T2 h- h' U, d# Z3 E; [% g
    2. <a href="entry://key">key</a>
      7 @! y- A5 J, _6 ~5 [
    3.   ~+ d9 E( a9 m9 E; H' T+ R, H
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->' @" i1 j5 o% n3 g4 y; ?
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a>   y# g2 k" ^( L6 u1 e7 S, ?, K

    6. 5 f* A4 ^& k/ u# U+ l) N
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
      9 U( }8 Z6 [  i2 K6 Y
    8. <w>word</w>
    复制代码

    3 u4 e; g9 F2 x, x9 }. ?- L' q6 A5 J3 ?
    ## 资源
    ' {& G0 {/ i& a. n. f, t. B- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
    " U& [/ j5 W! Y& I- 资源路径中的分隔符使用\例如:\pic\test.png。
    # Q+ a$ b6 Z$ I& d+ |, d- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。
    0 U" q) z: T  S5 Z5 r( Z% i+ v- 软件已经包含了一些预置图标,可直接使用:3 b9 q! _- c6 m" p5 x. `/ J1 G& @
    1. uk_pron.png 英式发音图标
      * \& v  Z6 [9 b# r
    2. us_pron.png 美式发音图标
      ; }5 L! Q3 M+ j6 h% M( E; z
    3. voice.png 语音图标
    复制代码
    1 N- d0 I/ x" b( N$ ]( |5 D, l
    2 M, Z, W+ P* C8 o
    ## 注意事项
    ) K9 j7 Y2 f- Q- CSS, JS等文本文件如无特殊说明均使用UTF-8
    / Z( Z+ F. c$ p1 p1 [. P6 P
    ' I- D& I7 t5 r$ Q+ I## QA
    , x9 ]! h6 n5 w* n0 V( v- 目前支持哪些格式的词库格式?
    , T  Y9 ~( L& j目前支持StarDict和MDict的词库。
    ! g0 g/ F& Q4 n; @" bMDict词库目前暂不支持加密。
    8 ?5 P6 g. C( X8 _StarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。
    6 J0 _! c# R4 V+ C. \6 ^
    / d, _  J% N9 ~0 {% ~- 如何添加的词库?
    7 s8 R# m$ I# M" K; q- {+ L+ F6 ~$ p将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
      S4 n0 c) v, a' {+ X" M* C/ ?( c
    - 我制作词库时需要技术怎么办?8 ?2 R6 }  M' s+ d) \2 s9 F5 P3 o
    请在论坛发帖,我会全力技术。
    ' c; t) F+ W, P  T& X
    9 K* ^) S0 p. [9 X3 Q. q2 y- 自带的词库数据是否会开源?! x, [  E4 v1 _5 f: \( _# N
    会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。
    3 F) I/ T5 ^1 t- Q2 t; k: D# N
    & H/ i  `, }" `# t% X## 开发计划
    ; _$ X  G  x. E. j/ i# M2 X6 d& H- 单词发音( P( }$ I* n& V1 V4 Q
    - 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑 & W  M6 h  ^1 G: a
    6 \" v, O2 o5 G# D: v3 t2 `
    还想要的关键(基本)功能:
    5 h, V/ C+ ]3 _: o' F9 h1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。
    / T! S3 N! L7 i+ G: a& m& [8 j2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。
    ; p. c7 O; y4 y8 `4 f" }4 J3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。
    8 w4 N5 V6 W- _/ G* i# y4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2.
    + N- x9 s5 m6 d2 C6 e) I$ A
  • 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
    4 ?7 Y! w  I% x( f謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@

    1 q5 ?0 _7 b+ q  d' M9 S! B一会我放一个到百度网盘。

    点评

    謝謝~~  发表于 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
    4 {9 L, t( E- c/ T5 v$ O- M0 D73.5兆为什么这么大?

    , l  K$ T7 O5 T1 D包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:41
    4 b# i1 W" @, T2 Q+ ?% G安装后,打不开,闪退

    # W% X) M0 a" e. v( \+ _  Z' l/ h可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:15
    ) p) o  o+ j+ i. L$ R" k哇感觉好棒!要是变成一个支持mdx的背单词软件就好了
    / Q- e" P  _. E( N2 B1 }6 O
    想过以后写一个背单词的,慢慢来。
  • 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' B/ u! }- X6 t& ]% `
    还是闪退 华为荣耀6p,安卓6.0

    3 M$ v5 k4 M# K8 u4 k谢谢 我测试下
  • 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的每日心情
    奋斗
    前天 22:38
  • 签到天数: 1736 天

    [LV.Master]伴坛终老

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

    本版积分规则

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

    GMT+8, 2024-4-25 16:59 , Processed in 0.065366 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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