掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6921|回复: 73

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

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

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑
    + W9 S1 x* ?, ^3 ^2 B
    5 W  ]: g. ]. M6 S我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。% R" z! Y$ c. m; G" a1 j, t0 E
    软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。
    / ?% Y1 Z- B6 y& \2 T! P二楼提供了词库开发接口。5 a2 {# g; m0 v$ W3 w0 G

    : k( j3 u# _# o% ?  G1 ]另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。
    9 a3 Q" i: K! w% a% v. ^2 l) v3 g最核心的数据包括:* X! G+ U* T: u) G- g
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。
      # t/ V4 N1 q; ^" k7 j$ u$ M9 x

    6 _" ]% j7 z" Z  W# x/ M3 t2 `9 y* k( D4 v* T$ P! g
    下载地址5 n9 ^; A+ O0 D+ @
    百度网盘下载1 Z5 e% H5 F: q/ O! k/ `

    本帖子中包含更多资源

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

    x
  • 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( \

    1. " U( u) z6 W! p2 A
    2. body& H& ?# p9 d" [5 L
    3. {
      + v2 {4 \2 q) A& y) r
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
      % O2 q( n, T( c, |
    5.         font-size:13px;" Q/ m" r; ~9 }& i9 U% t# k
    6.         color: #595857;' L) u& I/ m# Y4 ?+ Z1 L
    7.         margin: 0px;! ~" P- r+ W5 \7 b' s# }- d, D
    8.         padding: 4px 10px 4px 10px;
        G* U7 D4 o: r6 j4 L
    9.         background: #f3f0e9;
      ( G2 a8 J7 ?3 p& v; {, a4 W
    10. }  q* J% F7 {  D- K

    11. ) f( S! f+ O7 F- E
    12. /* 标题栏中的当前词条 */
      ; Z7 o( g! [4 e- b0 h6 l/ f
    13. #current_word# V* L2 ~) J; w3 i+ ~
    14. {0 m, j1 a1 L; L
    15.     color:#E58339;) F+ ~+ N7 }4 j" [( Q
    16.     font-weight:bold;
      ) I! ]  f7 z9 _1 y1 |
    17.     font-size:24px;7 ^, F4 ^3 {) ^# r& U2 N) [
    18. }
      ) o4 E4 e1 \3 U( p3 w. M

    19. 0 Q; H$ T1 }+ S
    20. /* 用于高亮例句中的当前词条 */
      & j6 a& {' `1 o, e' h( s& |( r
    21. .current_word9 }; R( t0 ?9 x  j
    22. {
      / ]2 [' f3 q7 @1 r
    23.     color:Green;( L. s" u$ p$ d( e
    24. }
      7 ~1 M, N3 F' {6 n9 u

    25. ) D$ v; F$ m9 c
    26. /* 词性 */+ V" k9 G  K4 n
    27. .pro
      - w7 C, T- J2 v6 ?% \0 D
    28. {. c) J9 j* f0 U+ O! d
    29.     color: White;0 t) s2 s0 }* _+ A" Y! y5 z
    30.     background-color: #999999;0 h9 c) c9 e* f( S! f, y
    31.     font-size: 14px;
      ) M5 [- I4 d2 V& k1 c2 x
    32.     min-width: 30px;9 z0 k' Q" ~1 J+ M
    33.     display: inline-block;4 I+ g" b4 \3 ^7 r) x
    34.     padding: 1px 2px 1px 2px;
      & l5 @. T; ~% v" o
    35.     text-align: center;
      & B3 V7 I3 A8 }/ k1 U
    36.     font-weight: bold;+ `4 t* l# K, J  A" t; C) P$ V/ c
    37. }/ _$ @$ `9 H5 {
    38. 1 M7 d2 w2 z# H( v) _( C
    39. /* 词意 */
      - `# W, d5 `2 ?. H% [# \7 N
    40. .dec$ E6 H+ M* Y0 m- R( e8 h$ o. L
    41. {& |" }9 X, B0 n7 _% x/ T
    42.     font-size: 15px;
      + x  }3 d( Y' \* r: M
    43.     font-weight: bold;
      3 M8 j4 |* r. w9 `, {
    44.     padding: 1px 2px 1px 2px;
      6 N9 b; f+ K+ [/ J( V
    45.     vertical-align: baseline;  j& @9 S/ t3 Q4 \
    46. }
      ! S( X2 I; A. f9 g
    47. ' i# q3 n7 @0 P9 m% j
    48. /* 例句原文 */
      ) V  ]5 |( ?  F# ^( E, x# U1 Z
    49. .sent
      & |* x. X( g. W$ x
    50. {
      1 L1 ]3 J4 C7 ]7 H" Z% H4 x$ J
    51. }$ [5 ]8 n1 Q# d$ G* F

    52. 3 C# K( T3 G8 X
    53. /* 例句译文 */- S# k! _4 L7 ?8 v/ ~; o% C* i
    54. .tran
      - G$ [- L6 D2 p" A$ w7 ^$ }
    55. {- l2 S3 d! h6 S. L
    56. }- s1 r! [# o5 g) h; v
    57. 3 I! E( A6 f3 @- z' x
    58. /* 高亮 */& R+ B) K. o- W
    59. .highlight
      6 }! \+ M5 H" z3 S1 }
    60. {" N" p% c. s0 S
    61.     color:#E58339 !important;
      . d% g6 w4 C: ]2 u: I
    62. }: 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

    1. : i2 r. y6 t% ~
    2. // 此函数将在切换词库时自动调用。
      2 {& h: c' j$ q1 ]+ N, X$ c
    3. // dict:词库信息;object类型;大体的格式如下:
      3 I% ]! r/ C* x+ Z( [+ K
    4. //    {
      % Y7 L+ l; }6 \& W) o6 n( W! h+ j
    5. //        "bookName":"锐特英汉词典",. ]; ^3 h& e: I; t( Z- x; B5 O2 V
    6. //        "date":"2013.06.17",
      - S0 f# H0 N3 G! ~
    7. //        "description":"Enjoy!",& G/ _1 ?; Q, ~* @+ F
    8. //        "wordCount":0,  ?2 a5 B1 m: n$ ~% k) o5 ?) ]
    9. //        "author":"锐特"
      $ O. d# f6 w, P0 X# s* d
    10. //        "dictSize":0,
      3 w9 D  k) v2 r9 y& P
    11. //        "dictVersion":"1"," \3 {9 E% W' `
    12. //        "dictVersionCode":0,1 c- p7 |, N# {8 u
    13. //        "type":"main"
      7 S" W8 b' D4 D8 }% H% }3 ~
    14. //    }
      ! l$ J/ b% o: _2 M" C# F
    15. // word: 当前要查的词;string类型;
      ; I$ r' P1 |2 a
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
      # O' `; o" `4 l/ G+ f3 e7 W; x
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。
      & U; H! P, l, k7 c9 }1 S. r
    18. function dictExecute(dict, word, response){
      . |+ X0 h" p9 |0 D- m8 y+ w- R
    19. }
      ! R+ V0 m9 a2 y7 O% w
    复制代码
    $ O1 ^4 u/ M- j8 r7 Q
    - 预置JS函数
    % _! ~4 I6 D: \6 B
    1. // 用cls类样式标记source中的word
      2 m+ z) Q- N5 X/ _2 d
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
      6 Z$ U- y0 w+ T: f
    3. function markWord(source, word, cls);
      7 ^7 X. o% q# A: l8 R
    4.   t1 D, U* d! f& l" F9 L
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。0 O( J3 J2 e- P, e9 T
    6. // source 句子
      ' o4 d$ b' O7 @; F8 |" `3 @  R/ B
    7. // 例如: 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& @
    8. 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
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->4 J$ h2 Q! E" `0 a
    2. <a href="entry://key">key</a>
      ; Y' b7 C( V% t2 N) o  {

    3. # F* e1 k" ^3 ^' ^6 c6 k* I5 j
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->
      : X: r! S7 V# s1 `' M+ M
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> ; v  }0 `5 O9 M$ J) l+ Z# x3 f+ v- R- l

    6. , @5 F! h3 m* M6 l* E  H9 \+ Z
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
      $ E) `, {# ^6 F2 t
    8. <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
    1. uk_pron.png 英式发音图标  S$ D* x. S0 Y' i2 e1 D- p
    2. us_pron.png 美式发音图标* B2 _) l3 h* H' g/ o) A8 E0 M
    3. 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
    - 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑
    ) ^" ^0 H5 [0 D/ O; s' Y1 [5 X1 e0 O
    还想要的关键(基本)功能:4 z7 E4 l- I5 @/ T6 B* o
    1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。
    6 E( \5 |! R7 d9 J, \; Y/ Y2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。
    " V6 g7 R3 G5 Y0 Z; r- a( d# W3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。4 r" B1 ]$ B0 [8 |+ A
    4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2.5 p; f4 h' q1 ?1 Z" `2 x
  • 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
    # z) M  ~3 B# I& }謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@
    + c7 X, n, G% O1 S' z2 u# s
    一会我放一个到百度网盘。

    点评

    謝謝~~  发表于 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
    5 L6 A, H' c; l0 D8 w2 @3 v73.5兆为什么这么大?

    7 @" s) D9 H! K3 P) |/ m' D: w包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:41- _% M% j3 v! V4 o
    安装后,打不开,闪退
    6 c  R" D3 C+ k! D
    可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:151 G" k$ ?* r% G6 d  U5 l$ S; ?
    哇感觉好棒!要是变成一个支持mdx的背单词软件就好了
    ( y1 P& U1 r6 }5 r' X
    想过以后写一个背单词的,慢慢来。
  • 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 O" v2 d7 R6 ]  P! x# v还是闪退 华为荣耀6p,安卓6.0
    2 D7 R$ U3 y8 t4 x, l7 B
    谢谢 我测试下
  • 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的每日心情
    奋斗
    2 分钟前
  • 签到天数: 1751 天

    [LV.Master]伴坛终老

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

    本版积分规则

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

    GMT+8, 2024-5-9 22:06 , Processed in 0.072160 second(s), 16 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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