掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6863|回复: 73

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

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

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑
    2 ~1 M; P: b7 }) }5 q# b& K; ]8 U8 v3 S# y* Y
    我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。. r: N( c9 j: V% L# ]- V* K
    软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。; w; c8 ^3 h4 b
    二楼提供了词库开发接口。
    % ~  H7 a2 a1 l, @8 [8 x- Z( m8 D; ]* U/ ~% K
    另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。- r8 S* j; U- Y# v  d
    最核心的数据包括:
    . x5 h5 y5 K# F$ P# D, s
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。
      & V8 x/ k0 j* y" a) `" Q' v& u
    ) N- N" ?' @0 w3 n7 m. n
    / U. V: r! E; [# V( X, G% n
    下载地址/ {9 F/ X. c3 V& \
    百度网盘下载
    - T0 O2 y" Q0 i, e, {

    本帖子中包含更多资源

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

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

    [LV.1]初来乍到

     楼主| 发表于 2016-7-1 12:04:30 | 显示全部楼层
    本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 3 H" m6 \- D, w) Z4 Q6 f' C9 d
    . p. \: Q7 }! @" Z0 x
    ## 文件结构
    " \1 M+ K7 j0 b; w5 s7 Z- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
    6 m$ w3 A; t( e0 z3 s. h; I- 一个词库目录中包含以下文件:2 S4 Z8 k- ~2 S5 U
        - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。. d9 P2 f* i: D0 n
        - dict.png。词库图标,72*72像素大小的PGN图片。
    / x! m. Q& ]1 m2 p    - dict.css。样式文件,必需以dict.css命名。0 U) a' E8 @8 K
        - dict.js。脚本文件,必需以dict.js命名。
    $ f2 W" Q* o4 }    - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。/ L! N, `: ]' D( M! A
    ) ]' P. w* P( z
    ## 样式
    " R# z4 F6 _, g1 J! D$ ]. e( w  H- 为了更好的用户体验,请尽量使用预置样式。
    , c: Q4 d# A: r/ }, H- 预置样式详细见预置样式源代码。
    + r% v& H9 k; _

    1. ' w' c; k# \% j! M' M; Z
    2. body$ C" F; P& r$ O: j& j5 }
    3. {
      5 u4 {, Q, z3 O
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;* j$ v0 R4 R1 J1 X- ?6 ]  ]1 p3 C
    5.         font-size:13px;9 B# d$ O2 y$ a9 U
    6.         color: #595857;1 q3 `+ P( J# e* T( n( b" w
    7.         margin: 0px;; S& D! g; L$ s3 H( g8 _
    8.         padding: 4px 10px 4px 10px;
      % d. j8 W7 G+ F9 L) U1 D
    9.         background: #f3f0e9;$ U1 \8 ^- F# n9 W8 d3 b$ n
    10. }
      + u: s" q! F) o
    11. $ U) R" ~, a! [( a5 _& M
    12. /* 标题栏中的当前词条 */1 b+ S+ w3 @6 V7 f! {; m
    13. #current_word
      * I5 p8 o, F" f+ E& e( I# R
    14. {# ^$ @& |# F8 x) b' T
    15.     color:#E58339;
        V/ {. s. [; M7 l7 B
    16.     font-weight:bold;; h0 f, H- W5 E% @) I; ^
    17.     font-size:24px;
      % M3 N0 q, u2 I8 t$ S: [. R* a. X' }
    18. }& p$ u4 ~( k$ u6 o/ a, K% C
    19. 8 M# l, L0 U  p' \2 b. v: k% s
    20. /* 用于高亮例句中的当前词条 */* M" [( z' S! J0 I/ C7 S
    21. .current_word$ b* k) c' k7 L+ E0 Q# U
    22. {
      3 e( s4 c# n( e+ k$ f. y
    23.     color:Green;8 F% E$ [0 y4 l
    24. }& J  G( D# C, M) |# h
    25. , ]! \$ e0 ]7 e( \; L
    26. /* 词性 */$ {$ [: I* x: p% F! A6 s0 Q
    27. .pro* e- i! ]$ N$ H$ |
    28. {
      ' o6 Z6 a9 G; M
    29.     color: White;
      8 |8 j; K  a2 V$ R1 J8 b, e( |
    30.     background-color: #999999;
      5 K7 t3 d1 R) q  `  ~: E9 m
    31.     font-size: 14px;
      + c0 w! ]( h* l6 K
    32.     min-width: 30px;
      8 r* `- R: K" y# q+ o* x0 W
    33.     display: inline-block;
      1 z) {6 j4 D) |
    34.     padding: 1px 2px 1px 2px;
      ' p4 f  o- ^) r/ u! V  L" o
    35.     text-align: center;9 Q' a" @# r) }6 B1 t7 i# L# d" [+ k
    36.     font-weight: bold;
      & L  l1 {7 ?* j, W
    37. }: ?* k* h+ [, `6 I2 R
    38. 3 l8 K$ f# H8 _2 N" }9 c5 h
    39. /* 词意 */
      0 b4 i5 m7 X# A
    40. .dec2 C, \/ Z! ^  y9 X5 z: \
    41. {2 j( g/ s9 p( s% v* `+ D
    42.     font-size: 15px;
      + v" K1 J' C5 c2 ]( }: A, Y4 }* x
    43.     font-weight: bold;
      . q" T% V. x. {. I7 I& d% S% Y
    44.     padding: 1px 2px 1px 2px;5 z9 ]* W# ]1 Z. A% e2 n$ X7 N
    45.     vertical-align: baseline;
      ' s" T# o5 d' l' J% [" o) x
    46. }1 G6 L0 `! c& t9 Y' P9 F: W
    47. $ c  C! L4 g! F7 F
    48. /* 例句原文 */
      ' I2 C/ f7 \5 d/ \+ A
    49. .sent
      9 z* k2 K. z; U, e; H! I% ?
    50. {
      2 g/ h/ x; }" t: l+ D% _3 e9 X
    51. }
      . `1 b( h! d1 _! I9 e' F

    52. # t, ~1 Y8 a9 T" h7 i5 F
    53. /* 例句译文 */0 {' F7 \8 _: e4 X
    54. .tran
      3 ?5 @9 h2 q! h- C
    55. {
      . x! [# {9 F6 Q" `" ]1 M
    56. }
      8 K' S: a) q' g* G; y& t1 R

    57. ) [8 X" n) b. `2 n  _2 Z
    58. /* 高亮 */0 B) M( F' D# T5 U1 X
    59. .highlight
      , t& Y% `& Q' k9 @+ v2 W, k
    60. {
      9 L- c$ I3 w* n) k$ x
    61.     color:#E58339 !important;4 }9 k! T( n8 k+ p) w$ @: z
    62. }0 I/ g: p2 u. @# w
    复制代码

    ; f/ f4 M; a# H## 脚本
    ; C- |6 W# y2 x: Z8 h& Y- 默认已经引用了JQuery开发框架。8 E' |0 Z) g' m0 F  F4 K
    - 自定义脚本时,需要编写dictExecute函数:
    * {% T! `+ G& f+ U7 K7 }  f2 b
    1. - @) ?! ?# V8 T* {: g' Z
    2. // 此函数将在切换词库时自动调用。
      $ W" o% k0 l0 U' Q7 e, B9 Q
    3. // dict:词库信息;object类型;大体的格式如下:1 K5 i) ^8 p" @1 q
    4. //    {) c% \& s8 J( L' P9 P$ R$ I; g/ g1 W, z
    5. //        "bookName":"锐特英汉词典",
      2 ?! [( E. n& t! \
    6. //        "date":"2013.06.17",3 z. I. }9 \$ F8 Q' D& W" e, f. }
    7. //        "description":"Enjoy!",  w: o4 A. b2 ^' n. y1 e
    8. //        "wordCount":0,2 x/ ]% N" Q" S6 x$ t7 z2 K( N
    9. //        "author":"锐特"
      + K& _9 V# X' E9 Q- E; R$ N7 w  V5 D
    10. //        "dictSize":0,* ?/ R$ V' n  _, G0 J
    11. //        "dictVersion":"1",/ M7 O) _) z; O) ~8 i) ~
    12. //        "dictVersionCode":0,
      * {" U' h! z! C- k' E
    13. //        "type":"main"
      6 L9 f, N% F+ S5 r
    14. //    }
      3 A0 u, s/ Q; z$ C# A
    15. // word: 当前要查的词;string类型;8 J3 d3 i, u& K
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;+ r$ @5 {1 @6 b+ m/ s
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。* g3 l8 `. a- l* d
    18. function dictExecute(dict, word, response){
      + ]2 }0 z/ G* W- ?$ d  ]
    19. }5 B- t( F) m* E- O) R
    复制代码
    3 y; [) t9 @& ~! R3 T% T8 i9 i
    - 预置JS函数
    ; T) p8 c& B( d4 i: y. h
    1. // 用cls类样式标记source中的word
      + C  N% Q  N) Y2 B' E, w
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
      ; t  H$ ]% c, F6 F. q. y& ]
    3. function markWord(source, word, cls);
      ! q: D& X0 ^* e8 k7 Q+ o8 \) b

    4. 7 H$ ~5 W1 _! T5 E. A$ I. N
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
      5 a3 i7 b8 M/ i% Q; P
    6. // source 句子
      ' K/ U1 y" e; J3 K
    7. // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."
      * X" ^2 ^  _& C- i
    8. function splitWord(source);
      3 z1 ]. r9 @! T" m, V3 u4 g
    复制代码
    $ b6 q: {9 H5 J% W2 `- J, B
    - W$ l( ^& e4 g* _6 y0 j: E
    ## 词条数据
    ' b3 ?0 `: G- V# b8 ]- 词条数据,可以是HTML、文本、JSON、二进制。4 b" T: L4 y5 ?  ~! }  s6 ^4 A
    - 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。* L% m. d: ~( _+ Q$ b  X8 c& }8 ^
    - 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。  N& E- C( D: F- ~, \) L' N
    - 预置HTML标签扩展:, ^5 Q' \  e0 ?4 [( l$ t
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->% E! C7 g" B+ |% f$ @$ p
    2. <a href="entry://key">key</a> $ L" _/ e2 b( |0 g* `6 g

    3. & }( s: p. A- t7 J. _
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->
      . r( J0 T% _3 p% m. L- E' j
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> " K. T" _( }$ @3 O! K5 ?
    6. . P; `  D: S) P5 T7 l0 z0 G6 B
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
      ) y* w* Q$ Y) B% C- b4 {/ n
    8. <w>word</w>
    复制代码
    2 T7 M" [  H5 z# }! t, K, W
    ; g+ ?# K3 T# B9 {
    ## 资源
    6 i4 q+ n5 N) M$ C* D/ T* \, j- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。& E1 p: v2 H- t- h8 z7 s
    - 资源路径中的分隔符使用\例如:\pic\test.png。
    ) `% o0 `# t) j+ T' V- x/ B3 f- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。- |8 a; l" D( I, u1 ?% n
    - 软件已经包含了一些预置图标,可直接使用:" s7 s2 @! V" z
    1. uk_pron.png 英式发音图标$ D# A6 D( [. e! M; \: J* z
    2. us_pron.png 美式发音图标
      $ }+ d7 d: v/ X9 _, D; Y
    3. voice.png 语音图标
    复制代码
    8 h- p  ]# G! d. F; D' @0 {
    ( j' ]* `$ J* i- E: J# t8 D/ C
    ## 注意事项
    3 T! w5 C* J/ i0 q+ f$ R: S9 M( m/ L- CSS, JS等文本文件如无特殊说明均使用UTF-8
    9 d1 h' R# m! Y
    ; o5 `$ {6 t0 J, ]9 p## QA( ?4 k, U" e8 F
    - 目前支持哪些格式的词库格式?
    + @1 b& m. |; S/ U& o% q目前支持StarDict和MDict的词库。
    ( e$ O) h$ O4 J1 Z" }& X0 B2 IMDict词库目前暂不支持加密。
    5 U" D+ ?  _4 i% |: MStarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。- u0 O" {9 A" i+ ~9 ?# p3 i( o4 r
    & w) Y5 _2 ~2 I# D. ~2 g
    - 如何添加的词库?/ u* n0 t6 `8 j- J; t5 b8 l
    将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
    ( ~9 q" G' N9 d: @! k8 ~: K3 A2 j- U6 A
    - 我制作词库时需要技术怎么办?
    % @% ^# T! k" H. x0 ]请在论坛发帖,我会全力技术。
    ; T8 w$ o1 `# B4 z" f( z- x7 ~" T" c# ?7 x0 l' M
    - 自带的词库数据是否会开源?
    - t2 `: n* y, D0 {1 a: W- @会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。
    $ ?) S( j% A* P; i" R. z& @' @# F9 v( N: m" X/ ^6 I
    ## 开发计划* `8 ?4 a, c* M$ Z/ {- a* {5 o
    - 单词发音
    7 a) b2 K! C4 L6 p- }; ~- 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑 4 m- N! g, V% w1 M" j6 _, s0 H

    + }  F! T! E" S# `; V- n还想要的关键(基本)功能:/ j/ f2 K9 x) D& W1 \$ v
    1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。
    ' Y, y2 v, E* [* E/ C) u1 _2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。- P, O4 m% p0 k
    3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。1 P1 Q6 X. ]# b- A7 C( |' Y
    4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2.
    # m0 _7 J% p& [' }" {
  • 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
      y- b! n( Q0 G# W- b謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@
    , ^2 }- \* W; B$ o4 S) j
    一会我放一个到百度网盘。

    点评

    謝謝~~  发表于 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
    # W7 e4 L" X6 `* b$ O& d. a73.5兆为什么这么大?

    ' A" p5 b0 H; E0 T" E包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:41
    . y+ y. g$ p" o# w" Z, R. v# ~安装后,打不开,闪退

    ; i! B  @; k$ ?; ^0 e/ Z! X3 W' B可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:15
    ' Q4 v3 ^. ~5 N$ Y哇感觉好棒!要是变成一个支持mdx的背单词软件就好了
    . Q$ T- B9 y' O* X' w* L
    想过以后写一个背单词的,慢慢来。
  • 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:218 g" W$ O$ f, n: }
    还是闪退 华为荣耀6p,安卓6.0

    : a0 B& E4 @) h) L3 T' 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 20:47 , Processed in 0.087133 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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