掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6853|回复: 73

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

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

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑 8 x9 s% A! A# V/ x  O1 X0 j; \

    5 ]9 q* h# m9 L4 ?4 ]! j/ V我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。0 n2 F" N; K8 [( @
    软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。
    3 T, ]  T# a! y二楼提供了词库开发接口。
    8 h9 Z" Y& D$ z$ k1 l+ L1 a
    6 h# v+ }8 x1 |8 v) _# [8 N另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。
    * ?8 v  |" b) |7 P, Q" f最核心的数据包括:
    # |5 i( h+ z4 w$ g
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。
      ( b, }5 y( R1 c
    2 m" s0 H/ x7 ^0 N- V3 X; L
    4 x1 r; m- d/ ], F
    下载地址1 @( Y7 x8 I. `9 M8 @& w$ r  L
    百度网盘下载7 _- G. ~. R0 @

    本帖子中包含更多资源

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

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

    [LV.1]初来乍到

     楼主| 发表于 2016-7-1 12:04:30 | 显示全部楼层
    本帖最后由 东风解冻 于 2016-7-1 14:12 编辑
    % A( b- e  C) y( U/ b
    ( m+ x9 w; ]) Z' I' j## 文件结构% E0 }4 P, Y/ M4 w' I+ V3 E- S6 E" [
    - 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
    8 s& G$ Z/ c; Z! M- 一个词库目录中包含以下文件:
    ; K( D7 i' F8 T4 A3 j% F5 E- {    - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。' X2 |1 X5 C* m9 Q7 n
        - dict.png。词库图标,72*72像素大小的PGN图片。
    4 Z$ b- G! a4 j: V    - dict.css。样式文件,必需以dict.css命名。4 X$ ]1 d' _4 _8 W$ ]( l
        - dict.js。脚本文件,必需以dict.js命名。3 N% |. v- v7 v/ A$ w
        - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。' N) |7 \) v7 Y/ y" f3 S3 d6 W: i
    & l: n- p0 b7 {
    ## 样式
    . E& r! q7 U, I# }; e2 Y- 为了更好的用户体验,请尽量使用预置样式。- I" y( W* I- ~9 }, R
    - 预置样式详细见预置样式源代码。+ D' q, N" o; l( e

    1. ' b% R0 }0 f& j: d+ I. [! b; N
    2. body. q8 |% G! ~' }8 E
    3. {7 H4 a; Y. B" k* r" _4 j3 P6 Y  t0 j
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;% h$ Q: \& T& n3 u( l% C; L9 \0 C/ O
    5.         font-size:13px;) i8 u% ^' A) D6 V* |9 [% E
    6.         color: #595857;3 r5 u, o3 W8 Z2 H( |* @
    7.         margin: 0px;
      9 h1 i2 T5 d# @& j% c4 x- |
    8.         padding: 4px 10px 4px 10px;# X& E0 G4 K6 J3 H* l$ Y3 M
    9.         background: #f3f0e9;) O% z* E9 k: C9 m7 u; w
    10. }
      ; V5 Q/ q5 b4 k4 w9 E) Q. I& |, o
    11. 4 d, E7 l8 ~7 I% u9 r3 W
    12. /* 标题栏中的当前词条 */6 I; W* i9 n. \$ y, y1 C; g% x
    13. #current_word
      ! [: F0 s0 i/ V7 ?' J
    14. {: e  }& Q  ]$ V2 J) Z
    15.     color:#E58339;
      " J5 c' ^& l9 |4 i8 Q$ U" u' o
    16.     font-weight:bold;
      4 L9 W- F& t; K# K) x
    17.     font-size:24px;  W7 P! X5 z  j  F3 r
    18. }, D% t8 u7 }1 x, H- g+ O7 P& s

    19. # l) Y9 g3 _5 p: E
    20. /* 用于高亮例句中的当前词条 */9 W, H3 e& i/ c* a9 R1 Q
    21. .current_word
      6 b+ h- t' g! w' [) m3 ~5 Y6 o
    22. {
      7 I4 |" i# i( Q) f0 M! {) }0 q$ Y
    23.     color:Green;5 ?& Z3 c/ b5 r
    24. }
      5 q- M/ m. [* q7 r" o6 G1 m
    25. * g! |/ U6 V( ~/ A/ F
    26. /* 词性 */
      - Q; A  Z- Z) B! q/ L# T; V' X+ D1 U
    27. .pro: B/ I' ^  G- w# _. s
    28. {
      . N% c) k' y- I& T
    29.     color: White;
      1 F& q" t$ a5 V8 P! {# i( J
    30.     background-color: #999999;
      ' e- e$ O7 w4 K3 y' P) I
    31.     font-size: 14px;
        G+ @8 F& _7 R" n- _  z7 X* W0 t
    32.     min-width: 30px;
      1 e& q. W. z8 o+ c, Y
    33.     display: inline-block;
      $ |- z/ @, [$ a% x
    34.     padding: 1px 2px 1px 2px;
      ) e; Q( W& i( U* b+ ]/ @4 l6 _* Y
    35.     text-align: center;
      # E" ?3 K. P+ R- _  r! B$ e
    36.     font-weight: bold;1 C! s, m$ `6 }# m; m$ Y
    37. }# Z+ d2 O1 t3 ^. [% |1 X( _

    38. ' E3 R" w" \) Y# L4 l6 R
    39. /* 词意 */
      $ i% q- o5 ?3 T* i( [0 A+ d+ I/ J# H
    40. .dec
      $ Z" D3 V* d" e
    41. {
      : r5 ~4 A8 U8 n2 k2 N
    42.     font-size: 15px;
      ) r1 h" F* v* r# \/ i
    43.     font-weight: bold;
      7 V0 t: V# w( L2 v7 i+ _
    44.     padding: 1px 2px 1px 2px;. @# R+ w6 S' c1 Y* e
    45.     vertical-align: baseline;. g/ u; ]: [/ v% H3 T
    46. }
      3 }1 a& A$ G+ ~5 \  w) q

    47. 7 {# d3 q: H0 b4 H7 J  _' S
    48. /* 例句原文 */
      0 _6 G% }6 Z+ S$ t
    49. .sent8 F# i6 R0 C' I" G- E
    50. {7 W9 m% a9 R1 `
    51. }
      & A( H, J7 Q5 C6 @* I

    52. , V9 z0 S1 ?) E+ ~* a6 p) `
    53. /* 例句译文 */
      " I+ P3 ~& |+ B( S; i  Z  W
    54. .tran0 e8 X5 M$ L% d
    55. {
      2 t$ E( ~' N7 v
    56. }
      1 s; }/ B% f$ g( U2 K" g& C
    57. : e1 F. w  B: [4 e' y5 r
    58. /* 高亮 */1 x- r$ X$ R+ F8 c+ V
    59. .highlight
      / z! g: |  E1 }/ J
    60. {+ y6 y" ^$ ~( Z$ K, ]4 A( f
    61.     color:#E58339 !important;  R. U. Q( k" q9 T5 M
    62. }
      * h9 z) u: r; V0 `, Z
    复制代码
    ! l& Q8 }8 ?+ |/ s
    ## 脚本. W2 p& l. t! J$ M/ \3 g/ o
    - 默认已经引用了JQuery开发框架。( y* G, B1 ]( _& v
    - 自定义脚本时,需要编写dictExecute函数:
    1 a$ H! s! f7 L/ \3 C3 E' k/ _

    1. : T* @5 W; n5 [
    2. // 此函数将在切换词库时自动调用。# Q5 u+ d" Q9 ?
    3. // dict:词库信息;object类型;大体的格式如下:
      ' Q( ~  R+ ^$ e9 w8 ]- ~
    4. //    {5 o; l. _% [! r- e% M8 n
    5. //        "bookName":"锐特英汉词典",
      7 p# M, y" r  T- B& R
    6. //        "date":"2013.06.17",
      ! I. |& P3 n' ~9 c1 e
    7. //        "description":"Enjoy!",
      ; |% `1 y  ]2 g2 H8 [
    8. //        "wordCount":0,
      # f! k7 E2 Q; [6 @
    9. //        "author":"锐特", w0 [" k( S6 i/ J- u( A* G2 F
    10. //        "dictSize":0,7 q4 a  D, Z$ l
    11. //        "dictVersion":"1",
      ; L; i4 c* u7 m. f- F. K+ X7 ]
    12. //        "dictVersionCode":0,- o+ @& L5 x* f0 `. Q6 u
    13. //        "type":"main"- @; a! h. i6 _+ E+ M; S0 k
    14. //    }$ K8 U6 t, r: T1 Z: U# L8 g
    15. // word: 当前要查的词;string类型;2 f- N$ J7 w3 l' p6 g
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
      ! `  S, u6 O( `
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。
      * J1 q9 ^0 }% G5 l' m
    18. function dictExecute(dict, word, response){$ `8 ~& B! ~$ r! t! r7 r0 B1 ?0 C
    19. }+ P5 Z% U1 Z7 B; `
    复制代码
    - y+ O' e- E! X8 s9 L6 n
    - 预置JS函数
    5 ~9 N, k3 e  d$ D% O+ `4 x
    1. // 用cls类样式标记source中的word0 [% N: J9 o1 R& ~9 B" @# C- A
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
      6 S/ e& A$ g' q) I8 T
    3. function markWord(source, word, cls);
      9 W- i6 G: l5 h" h& f  Y' o

    4. 2 y1 j0 x, Z4 _/ c7 Z/ I$ [: _3 [+ h4 @
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。6 ?' r. D+ G# U, x  y8 `$ H( h" ?: D
    6. // source 句子* d/ y. D) s" t' Y
    7. // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."
      . U5 T& ]; \6 Z0 ?+ f" M
    8. function splitWord(source);! n) o* y# o" y8 X3 W! Y7 Z. v0 @3 Q
    复制代码
    9 m0 l' J0 @: a. t8 n

    2 q+ ?1 e- }) Q& t' j) T7 Y## 词条数据
    " ]$ H% o/ _% }8 f+ ?8 {- 词条数据,可以是HTML、文本、JSON、二进制。
    # `0 e. l# p6 }. C. j- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。% `6 V/ `# ]3 H) B3 {
    - 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。, n$ I4 |8 n% o: \2 `$ z( d
    - 预置HTML标签扩展:
    ! U6 B' u9 V6 S: u5 Z! K! G! Y& N
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->" S. M+ w% b6 e9 h
    2. <a href="entry://key">key</a> : m8 Q% r1 E; F# I

    3. / P0 `$ Q0 w3 E5 A
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->) K1 Z8 q+ X) y& d, p
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> 7 A6 P5 N; [3 p) K( Z
    6. 4 J, h. m3 o9 H6 `! q
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
      1 ^2 N/ X8 }/ n, O% m- b) R( ?, x
    8. <w>word</w>
    复制代码
    # t4 Q+ R; [: U7 g1 a

    1 O/ y4 {( ^9 r8 c& C## 资源
    $ {3 u% @: h) P/ F  F# }- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
    $ V( ^* B7 W; q" B2 M$ I1 y- 资源路径中的分隔符使用\例如:\pic\test.png。! @% Y+ ?1 B1 T# h3 d: `# d: ~
    - 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。
    ' n4 Z4 m, F( |  F- 软件已经包含了一些预置图标,可直接使用:0 s" N; m. ]$ T1 Y
    1. uk_pron.png 英式发音图标
      ; }  A/ u# n$ M* ?- S7 K
    2. us_pron.png 美式发音图标
      . O% X0 _& c& K2 Y
    3. voice.png 语音图标
    复制代码

    % ~! ]6 s/ i) s1 M+ Y' ~# ?4 @/ H. _, E, ]9 ^8 d
    ## 注意事项: e- |  H, s, @
    - CSS, JS等文本文件如无特殊说明均使用UTF-8
    4 V( N! ?+ Y1 K( D4 t! p4 X( c
    8 q2 w5 W0 f. ^4 o1 @6 o## QA
    ) c8 B7 u; }3 }7 C- 目前支持哪些格式的词库格式?+ D% B7 L5 q4 `; d* S5 [7 Z* J# i" A
    目前支持StarDict和MDict的词库。% A9 u$ _2 ^% R, e
    MDict词库目前暂不支持加密。
    , {0 s! g4 V8 A/ ^StarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。  p. [7 z5 ~/ a/ S- t
    ( a1 i, z) \$ }
    - 如何添加的词库?
    ' c6 M. ?% @+ J将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
      J( M3 C5 s: n( E' v/ ^0 Q/ \; g0 H" K+ C$ q) ^+ m/ |
    - 我制作词库时需要技术怎么办?
    ; Z* B# e+ ~/ @1 Y7 M请在论坛发帖,我会全力技术。
    4 u$ C. T9 o0 \. L
    - ]# a! T; l9 k9 [! b* y+ H* p* U- 自带的词库数据是否会开源?
    & p, h5 o# f& J: R% }会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。
    . N* \$ B" i8 ?. @* V4 Z5 A0 j5 f- |) f% N" K' C
    ## 开发计划: g* c- V- X: j; J" n: Y
    - 单词发音
    ; [; Z1 E1 G" g5 I; T- 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑
    6 }# B" x) K  p0 o; o$ K, b3 J& }" y/ {% n9 `; H4 Z; i7 `
    还想要的关键(基本)功能:7 [' o$ h* ^! Q, X2 Y
    1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。
    . w9 X, ~& F- Y0 E# q- j6 P5 b" m2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。! Y1 ^6 o% r9 C0 l, L1 F
    3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。5 E+ i" \1 V( c3 a/ M$ ^
    4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2.
    % k% ^* K8 M2 Z' m! L$ M( l- O
  • 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
    3 I' m& W& w5 z! z& ?謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@

    ' d% t% @7 v' ]" |) K1 K  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) ?7 L" r* S" ~! k
    73.5兆为什么这么大?
    7 O0 y% \2 I, }9 T- e: |) P; j1 y
    包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:41
    ( K! r6 @2 B0 y0 S$ q; \安装后,打不开,闪退

    # f" N" v- d; j& s可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:15# x6 o" J3 V# U  p, o6 M) y" i+ z
    哇感觉好棒!要是变成一个支持mdx的背单词软件就好了

    1 }& v- R: `( d9 q! R, r  G4 F想过以后写一个背单词的,慢慢来。
  • 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
    ; J7 t* h9 l$ n* Z$ J" {( I7 I还是闪退 华为荣耀6p,安卓6.0

    . z' l+ L% q8 ~9 j& \谢谢 我测试下
  • 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 02:40 , Processed in 0.064753 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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