掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6857|回复: 73

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

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

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑 3 i8 E' N: _% E: a) K; H
    ; X0 c5 x% g9 P, Y8 F% ]2 T
    我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。( J' O# L7 a4 b" p4 b) u( z
    软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。5 z+ }7 H, v- P/ O5 v
    二楼提供了词库开发接口。
    " `! d1 m" F3 Z) i3 h/ K
    / l6 W6 z$ p* B& M# l另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。
    $ |) F; K  I  k8 m/ P4 }9 Z5 I( N最核心的数据包括:
    7 C9 s. q( }7 v9 x8 |
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。
      6 c+ }6 ^% y5 r$ b
    / Y9 r' `+ G4 ]& Z8 V, j
    & t; o3 O; ~/ L/ G5 K0 S
    下载地址5 L, k% G6 X- a8 P% n
    百度网盘下载
    # P1 @0 P. Q9 \5 N) L

    本帖子中包含更多资源

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

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

    [LV.1]初来乍到

     楼主| 发表于 2016-7-1 12:04:30 | 显示全部楼层
    本帖最后由 东风解冻 于 2016-7-1 14:12 编辑
    " K6 e9 z; b9 n1 {/ Y+ L
    : Z- q7 P9 F1 h3 y8 P3 V## 文件结构% K! G7 f1 F5 E$ v; x( l' Q& S$ J8 u
    - 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
    7 U% F! [3 G: y# w* O& F- 一个词库目录中包含以下文件:
    : ~& O" a5 l5 z- J. k0 E+ C8 E3 P! h    - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。
    0 w" w0 N4 I. O* W# }, R  z3 F    - dict.png。词库图标,72*72像素大小的PGN图片。
    * v0 x2 {% S+ |( u& c7 ~, V5 O    - dict.css。样式文件,必需以dict.css命名。
    , E) Z- R6 n" F    - dict.js。脚本文件,必需以dict.js命名。
    - R/ G! s  O- Q' o+ Y: |    - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。
    9 [/ D' x3 J7 A! ^3 N8 Q7 Q
    2 W  W3 V! F% @## 样式
    / i# W$ C9 _) R4 w& {) [( A- 为了更好的用户体验,请尽量使用预置样式。7 ~5 h5 j  @8 w3 z
    - 预置样式详细见预置样式源代码。2 k9 D3 P. a+ ^4 }  S# j

    1. 1 c& w% I( z+ {7 S) ~( I
    2. body
      ' k1 P4 S8 I" s) i
    3. {8 E! d  w. g6 V
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;+ B5 K& H& y9 Q& t5 t8 z, [# Y
    5.         font-size:13px;) r5 Q; `" W, D
    6.         color: #595857;# u+ r6 ^0 U  e6 T0 {
    7.         margin: 0px;0 b1 T3 c% K3 i2 b4 r* H, ^
    8.         padding: 4px 10px 4px 10px;% [! O/ h* K$ Q, p- G* ~
    9.         background: #f3f0e9;0 O; H; i$ {& y! z3 P, a0 ^
    10. }1 l. {$ Q* g$ n5 t+ }* i
    11. 8 ], B& T2 M5 S9 H+ O9 v
    12. /* 标题栏中的当前词条 */
      . [0 c; Z5 j3 Y' e, i7 n- W. `
    13. #current_word
      ) K2 H! Y% q, ^; d% V5 d
    14. {3 z- y9 L# D4 H7 j+ `. O/ o4 u9 s$ X
    15.     color:#E58339;9 s0 U; g8 q0 X. O
    16.     font-weight:bold;
      ( T: R8 {2 d3 R: w
    17.     font-size:24px;5 H: [* y% C8 u  P- [- z$ T
    18. }+ }9 c$ [9 Z6 T* V; w3 y+ S3 |- d
    19. 2 e9 [0 s7 X# t# _
    20. /* 用于高亮例句中的当前词条 */
      $ u* V! Q# b0 {3 U' T6 |
    21. .current_word
      # i/ q- {1 p+ }! J. B
    22. {5 O3 Z& m( v& B8 R
    23.     color:Green;4 M( u; g8 y2 d! Q
    24. }8 u, ~$ c5 O% o- B/ e( l

    25. / ~; s5 U6 s0 c$ h- j5 l: a  s; g
    26. /* 词性 */: G1 h! J  _3 y& `: K
    27. .pro
      1 ^4 P/ Y2 g% Y: w. ~- l1 s' _
    28. {
        {" f$ n& E. J5 S9 S
    29.     color: White;
      + y5 t0 t( F( e  X7 \
    30.     background-color: #999999;* ]3 t& Z. j& _: ]
    31.     font-size: 14px;
      7 X& G8 V( U' U- |9 V9 @! A6 Z
    32.     min-width: 30px;
      " q' ~% q2 d9 E! p5 X
    33.     display: inline-block;
      0 E2 b; c! M. x
    34.     padding: 1px 2px 1px 2px;
      ' E/ Q( C" M; h$ t, \4 C; \8 c' ?1 o
    35.     text-align: center;
      ) @2 E0 M! [& r+ n6 S1 h
    36.     font-weight: bold;
      # F7 X- W5 r% f2 o2 ?$ {% y" C
    37. }) W% i  f8 {. b2 d& p0 v

    38. / J- p! M& j* {3 O0 r( E; N% U
    39. /* 词意 */8 G- t) y6 Y1 y
    40. .dec
      / s0 y' O) F) m- g
    41. {  _3 d4 h/ l  @4 `! u; p# F: u9 y
    42.     font-size: 15px;
      9 Y0 m$ b0 n& J) c! m3 ~
    43.     font-weight: bold;& \' g7 n6 ~3 e" @5 X3 T
    44.     padding: 1px 2px 1px 2px;
      . @% S: R( \0 Z, @7 @
    45.     vertical-align: baseline;
      ) b. L( l& g5 q
    46. }0 x- U$ e, J* k. K( G
    47. 8 x! d% n' Y* `2 A# i
    48. /* 例句原文 */6 D; O# g8 m/ m8 x2 R  g, F
    49. .sent* H$ Y' J: i$ m
    50. {
      8 ?! O# S8 K1 M1 a* i
    51. }
      9 b% g: ]" Q# B* N3 K- ?* o" o

    52. ) c) {8 i) k. u
    53. /* 例句译文 */* q9 g7 c! \# F7 E# Y- c) _% O  v& w% h
    54. .tran
      : @' N! A5 q# N( ]) s
    55. {
      + J/ _3 b6 D* F2 @
    56. }
      2 |5 e6 M7 i& z) Q' g. c6 o, i

    57. 7 N3 I2 s3 i# h  \7 q+ P7 C( Q
    58. /* 高亮 */: `6 D) R) i" e
    59. .highlight. _# I- C& Y! ?- d
    60. {
      " A& q; ^' K" {
    61.     color:#E58339 !important;* L4 Y: R: I3 s8 }: J
    62. }+ W. Y0 y( u6 j: n; a! }
    复制代码
    ; Y! H2 c5 D: C9 I& i7 `
    ## 脚本/ L, {) n" M- Q1 p4 m2 o
    - 默认已经引用了JQuery开发框架。
    : s3 W/ D, L# o" ]# ~- 自定义脚本时,需要编写dictExecute函数:
    $ h% {4 r; i- {2 B0 |( ~% E3 |- x+ I
    1. & h8 B, N/ m$ r- K
    2. // 此函数将在切换词库时自动调用。
      8 m2 W$ x( d6 s* k
    3. // dict:词库信息;object类型;大体的格式如下:
      - m5 W* E, M) l; p
    4. //    {1 H# B+ h' J. I  P
    5. //        "bookName":"锐特英汉词典",
      . x1 Q* B7 H1 c+ v' s# ]. `
    6. //        "date":"2013.06.17",. f$ x. G$ T. I8 z6 R% H
    7. //        "description":"Enjoy!",
      ( G# o- e: Y* |, ?
    8. //        "wordCount":0,9 Z/ W2 |7 C4 f6 e# _2 \! w2 r) a7 A
    9. //        "author":"锐特"3 \3 ?4 R4 e$ J% y
    10. //        "dictSize":0,
      & Q* k) ^! s$ n* w
    11. //        "dictVersion":"1",
      $ j, G: \5 t! g- A$ t# x, m
    12. //        "dictVersionCode":0,
      8 x) Z' l! `1 a1 o% d
    13. //        "type":"main"; ^7 }+ b' J9 ^1 h* E% Z
    14. //    }+ X% b1 D! U" z6 x& H  P# P
    15. // word: 当前要查的词;string类型;
      , {8 G3 J2 \7 G
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;4 {: a6 G5 H% [4 N
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。% y9 a  E: w" {
    18. function dictExecute(dict, word, response){
        V) x0 ]5 _0 z7 z
    19. }; f" T2 x  L  d" P! m# Z  h
    复制代码

    3 C# @  m6 X5 g3 `( x) l- 预置JS函数
    8 {  v, s% |: O0 ~2 a1 K! q. y/ S
    1. // 用cls类样式标记source中的word% F9 S' U, F, w- k2 a, I% |
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict.". n2 H8 `/ `( V2 q2 w' C
    3. function markWord(source, word, cls);; ?( {" |9 i2 `
    4. - {6 Q; ?- u+ q% C
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
      2 c* ]! Q' g$ T) B
    6. // source 句子
      - U# R# C$ s) s, I% I/ x! J
    7. // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."( p; ~9 h: X+ P
    8. function splitWord(source);+ a) V! Y; I. L! v- s
    复制代码

    / @7 r6 d% ]6 n
    ) t4 l0 c, Z  C## 词条数据' t5 q3 E0 L' S0 ~; s# p
    - 词条数据,可以是HTML、文本、JSON、二进制。
    , X0 K# L+ Y* j& i( D; L+ X- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。
    / y, q# r# e! q- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。9 {# c  d( X' v% H9 j
    - 预置HTML标签扩展:' ~; V4 H' M% n* p
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->! R+ t7 _$ R* d
    2. <a href="entry://key">key</a> 1 |5 u) d" |  R1 \: F% p- w! C
    3. - o3 b5 K8 E8 x, B
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->
      * {8 C% d4 ]$ @3 R1 a. V
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> * ^' ~# ?* R8 X+ ]4 x$ I  w" h

    6. + \% N4 B* V$ X, ?: m; {: Q$ y
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
      0 s* e4 d. l' q: X7 w/ o6 P4 n# l3 D
    8. <w>word</w>
    复制代码

    8 ]4 O1 w" @1 G0 j6 h% R4 k% e! i
    ## 资源, s$ C  L7 e# x" l
    - 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
    : P9 r* }: |+ d- 资源路径中的分隔符使用\例如:\pic\test.png。
    ' f' s  e- q5 M8 r- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。# q, O) Y$ I* E* F* X
    - 软件已经包含了一些预置图标,可直接使用:* X7 |, a" v: l: }
    1. uk_pron.png 英式发音图标( m- m- \0 {2 f# o8 ^1 b+ s
    2. us_pron.png 美式发音图标
      0 _6 U+ b- w( c( c  F
    3. voice.png 语音图标
    复制代码
    * J' R( t: m/ k$ _' B' @
    8 Y! y8 i/ V. `; Q! h2 G
    ## 注意事项3 v; [7 p4 x  S6 q  L) a
    - CSS, JS等文本文件如无特殊说明均使用UTF-8
    5 [2 _8 p+ j6 G  M. ~  ~, Y" j9 t  v7 C) E6 d$ P- h
    ## QA
    3 S% u7 p7 F, N  V" `; t- 目前支持哪些格式的词库格式?
    0 L( ^$ l, x) R# R+ ^: d- _目前支持StarDict和MDict的词库。
    3 |- F( f& ?5 G1 T1 _9 {MDict词库目前暂不支持加密。
    5 `6 S, @! ]2 B0 ]1 o2 WStarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。  z" ^) b& Y" G; Z/ @# W; ~

      w3 C8 v; m  H: a6 S- 如何添加的词库?$ Z  A. V7 p5 N& i8 F$ ]1 z
    将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
    6 h# S) i" _' ]) n) y6 d* M
    . R0 |% Y! Y7 D) ^- 我制作词库时需要技术怎么办?
    / D2 Z, M2 v$ |8 L0 T" s请在论坛发帖,我会全力技术。
    : ?1 Z  |8 l# K( z+ s2 i* r8 d  n& _% j9 v1 m  t
    - 自带的词库数据是否会开源?6 l$ f) K" B5 O8 M; T
    会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。% r% M% N0 s, b6 Z
    , q  H3 k$ Q+ Y: E' u8 S) m" {$ }
    ## 开发计划
    3 R6 F5 d8 p$ N& f  ~! S- 单词发音
    3 I0 H  k/ |& g" k6 ?! i+ R+ \5 @7 [- 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑
    1 |$ ]6 o) C2 b* C4 @
    ' @/ e! ~( A- x& O( ~% R) v还想要的关键(基本)功能:
    : e9 u: ~, W0 V: N: J$ b1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。. A1 L+ D9 D# j+ i) }0 J2 ]
    2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。# g* \9 [0 t: O
    3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。
    $ g+ b  ^: t( t) `3 F+ L. P3 C) u) S& L4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2.
    5 p+ n4 B+ S9 J; }* f& G
  • 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" s/ ^/ {! n" E5 c0 G
    謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@

    8 A* s# L! q* \8 C! ?一会我放一个到百度网盘。

    点评

    謝謝~~  发表于 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
    + R8 d: ^5 Z# Y( T/ p; @73.5兆为什么这么大?

    & J% ?2 g* R* J/ Q0 b) n包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:418 v* o$ _" \1 j
    安装后,打不开,闪退
    1 r; p) ?8 i0 z+ f/ \, a: \
    可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:155 E9 Z7 B+ z; t, P, \  |
    哇感觉好棒!要是变成一个支持mdx的背单词软件就好了
    $ g2 [; ~- n) T
    想过以后写一个背单词的,慢慢来。
  • 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+ ?3 g& ~( n, M/ U- [2 ]
    还是闪退 华为荣耀6p,安卓6.0

    0 V  R$ D* f% |) S. P0 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 04:26 , Processed in 0.063171 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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