掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6861|回复: 73

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

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

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑 6 _$ f4 ]9 D+ {! `( k& \( J6 f- G

    5 c# V4 K% a2 ~/ G' l  I* ^- }我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。& }- u+ X: F# G  p
    软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。' z# E* a) y( N( _; U" x$ r1 ?
    二楼提供了词库开发接口。0 `  X  C2 k7 K
    ) \! ?  w% n' O. u
    另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。
    8 t- i: X4 h% C( z; ^, F最核心的数据包括:
    : S, m" k5 Z- \; V' K
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。5 G' o4 q3 K! H
    ' v% c# ^5 y5 L) W8 p

    4 o: e$ @( B6 p, H4 v, l下载地址& y9 z* N! ^* o- c/ X8 z) u
    百度网盘下载
    3 @* q- f9 U- x% T

    本帖子中包含更多资源

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

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

    [LV.1]初来乍到

     楼主| 发表于 2016-7-1 12:04:30 | 显示全部楼层
    本帖最后由 东风解冻 于 2016-7-1 14:12 编辑 % l( t$ F0 |0 C( q. F3 `1 I

    9 D4 z. f7 H# H; K2 f; n; c. O6 S## 文件结构
    : c9 b% k; D$ P0 H2 N; |6 Q! l+ j- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
    3 \4 a' W: D! s3 A0 v% X0 A" F- 一个词库目录中包含以下文件:" B. N7 u) _" `. U
        - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。) {5 Y/ i- U; n4 S
        - dict.png。词库图标,72*72像素大小的PGN图片。9 ]5 ~6 h9 I# M' W+ ^4 n! ^
        - dict.css。样式文件,必需以dict.css命名。
    # ], Y/ q( m" D' a* \1 _' k    - dict.js。脚本文件,必需以dict.js命名。
    ; g+ a6 s+ H. B6 J* O    - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。! m  `. _" l$ p
    ! Q4 x; `8 x; m2 e" o0 D/ t& v
    ## 样式8 C2 K8 V- n, w0 B8 e
    - 为了更好的用户体验,请尽量使用预置样式。
    ) Z- j, P, |& z- h. S* G3 Y- 预置样式详细见预置样式源代码。
    2 W. G' I# A$ ]1 S/ ?& \
    1. 6 V( [* b6 H$ e4 @; p& c% h$ B
    2. body" b4 X3 Z  [6 x/ \
    3. {! [6 T0 i: v* f9 B* H# v
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
      1 @" F& b* a* d5 i) G( Z( H
    5.         font-size:13px;  @1 b6 T2 n2 j- a+ K( N5 N) C
    6.         color: #595857;
      1 b1 q4 q9 C; t7 ?$ |3 d9 i
    7.         margin: 0px;
      8 R5 e2 @2 Q. F; o" |
    8.         padding: 4px 10px 4px 10px;. k9 W6 V5 c/ e. N
    9.         background: #f3f0e9;
      4 Q$ k2 A/ ^7 \0 G( p+ h" \
    10. }( S& g' S' f+ p# R# `1 _
    11. 1 F% v4 B3 W  K+ E
    12. /* 标题栏中的当前词条 */1 ]+ h: I" A/ [: w* B6 P" v# ?/ f2 Z
    13. #current_word3 E5 ~( y' e* Y1 P8 {3 z' q* r
    14. {% }9 F) F4 L3 D
    15.     color:#E58339;
      " b" {1 b* D9 \) `! ?8 x( L
    16.     font-weight:bold;. u2 h0 L# K# P) x
    17.     font-size:24px;
      8 x8 Z: o  x5 T# b+ d6 C
    18. }/ f1 T1 a9 X" t- v* ?4 \) a
    19. 5 J8 {% ^4 N& H. s7 U1 }% M0 s1 h# B
    20. /* 用于高亮例句中的当前词条 */
      2 |$ y* x5 ^' ?' {- G4 W
    21. .current_word
      3 c+ M4 y# a) |0 |
    22. {* W  p, o! i6 }' v- R7 Y
    23.     color:Green;& C3 h3 S, C" L5 o6 M3 y8 A
    24. }. d4 F" B# D9 o% m4 A+ W

    25. - A, E$ ~* ~9 [- q8 Z
    26. /* 词性 */. Z; p- [9 ?( i3 z- b! x: \  i
    27. .pro
        A5 I# a8 H, S" y+ \
    28. {8 H2 t9 ^" |9 H7 P7 k2 u' r3 D0 H
    29.     color: White;
      4 n  y2 p0 B! R0 P
    30.     background-color: #999999;
      ! y* f! E4 W; r; c4 |( J
    31.     font-size: 14px;
      6 t/ {- Y9 S  K% o# b6 D$ _% }& h
    32.     min-width: 30px;
      % G" M: ?& G4 s9 n; H( ?, ~
    33.     display: inline-block;
      ! d. z: p/ V5 G! Q8 ]! S& L
    34.     padding: 1px 2px 1px 2px;) K' b+ a3 {' A8 s- Y. [
    35.     text-align: center;+ F  i3 j' s! q% M3 {! S
    36.     font-weight: bold;
      % x: ^1 r1 Y9 q. {: x6 U+ c& T& V; `( n' i
    37. }
      % ^/ D6 D- ~; l5 I5 Z5 ]; M

    38.   L- e" |) {  w
    39. /* 词意 */! Y+ g( B9 ]2 Y6 i4 ^
    40. .dec: O6 @, S1 h* n, X2 i8 w( E: _) x
    41. {7 r& R" }# n4 G7 \
    42.     font-size: 15px;. s9 V' L) v0 O' g7 e
    43.     font-weight: bold;  Y, R, n) }% p" g' Q4 G9 Y* H1 x
    44.     padding: 1px 2px 1px 2px;$ F; F9 ~6 G9 d$ }
    45.     vertical-align: baseline;
      0 i1 W; s( o3 u8 ?
    46. }* V4 c- \  F3 B) q2 L! ~; }* r( g+ f

    47. - u4 y! a9 W3 v8 [; J& h: Y
    48. /* 例句原文 */& n+ ^0 D+ ?, V! v* L+ o; b
    49. .sent
      3 Z8 q) y/ U5 F4 f
    50. {
      5 e; g: ^& e6 p' X* w5 e5 Z
    51. }/ C$ K# i) ^6 R6 T# X; G

    52. 1 H! t( ~. ^3 O( h: l# z6 l* m$ d) w
    53. /* 例句译文 */
      - A' i6 ?8 a% r; R  r& l5 |
    54. .tran4 X3 B: ~( `8 X
    55. {
      # O7 M2 I& P0 `4 ~
    56. }* |2 A3 S4 X& E/ e, k* \

    57. 0 k) N6 z5 F1 T! M1 t# o% J
    58. /* 高亮 */
      7 T4 A* b1 z. n) u
    59. .highlight* O1 z# q6 S1 M0 g: x/ ^( f' @! b2 X+ K
    60. {
      , J+ A: l$ C5 h' O0 z; W
    61.     color:#E58339 !important;
      - G( E5 M4 k3 B9 O  E; V
    62. }
      ) ]5 F4 y/ e: A& \. z
    复制代码
    + Q! n( q, b+ G. E3 m4 y6 `8 j% q
    ## 脚本3 k2 ?1 t1 y% ]8 a$ C
    - 默认已经引用了JQuery开发框架。
    ' m* I- a( ~: {- z- 自定义脚本时,需要编写dictExecute函数:* }) i  Z* N( a) _' w, K$ ?8 \

    1. 3 H. Q$ p) F" f' `0 m  p3 L2 y
    2. // 此函数将在切换词库时自动调用。
      + r2 z$ s) ]4 }- J
    3. // dict:词库信息;object类型;大体的格式如下:% C% B/ [0 H) {* C% D
    4. //    {
      5 s0 S! m* M5 Y' C. @2 }, U( D& G( W
    5. //        "bookName":"锐特英汉词典",. \9 ]$ I; s4 L) A
    6. //        "date":"2013.06.17",% j# E% u0 S9 s# R6 X+ r
    7. //        "description":"Enjoy!",# c# M6 z) d! F
    8. //        "wordCount":0,
      2 y! \8 n+ s) H" `0 H6 `) Z# L$ M' \
    9. //        "author":"锐特"
      % `9 K4 n, @4 M0 y$ m1 U
    10. //        "dictSize":0,& u6 X* K: Q' F& p
    11. //        "dictVersion":"1",% K+ k! b3 `' T) S
    12. //        "dictVersionCode":0,& r* F- c3 U# v0 E
    13. //        "type":"main"* N6 t: J+ v; X$ m6 m% q+ n. B/ z1 O
    14. //    }, O$ w' X) Z% s/ E' f
    15. // word: 当前要查的词;string类型;
      1 b/ \& Z+ c! B% B
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
      2 N  R- @6 d' ^1 K" w9 B- y
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。" ]% E5 {" o6 s+ o; ~, _  w
    18. function dictExecute(dict, word, response){
      7 ]1 P5 R. D0 M3 d% Q5 o* u
    19. }) C/ H8 e8 |, L# k
    复制代码
    0 Q7 E" J& Y/ q5 V
    - 预置JS函数! z6 e0 w$ I& A3 ~, B$ Z  y4 a$ W! |
    1. // 用cls类样式标记source中的word1 \) V+ C$ s, J3 `6 Z, _
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
      ' K; f$ b* Z  y2 {3 Z5 T$ O* r& s
    3. function markWord(source, word, cls);1 D! d% p, ^3 S. ~7 m/ _  }6 Q* I4 @

    4. " f; {4 ~  r/ a
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
      2 r& W) N0 W* V( a" h. G3 I! M# h
    6. // source 句子
      ( y' b/ ?# y& N; k
    7. // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."& Y7 ~  R' e8 X% M( s) L2 V
    8. function splitWord(source);1 n2 V' s4 I2 h& v
    复制代码
    # [+ d( m! U' ~' v3 n
    % f6 b, j5 v1 U* i
    ## 词条数据
    + S  h3 B- b+ u  s- 词条数据,可以是HTML、文本、JSON、二进制。- _' m. i7 X5 F) X$ i: l6 X
    - 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。
    ( h# {8 @0 N+ ]+ K( [* C- r& r0 |: }- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。
    . d' Q  A& u8 r% \7 V0 o- 预置HTML标签扩展:9 G* W0 P5 I/ n8 }* [9 `1 [
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->& z" |. }' G" P" Q
    2. <a href="entry://key">key</a> 1 ~  b( K# b( b5 R8 o% X/ B# X
    3.   k: q, {7 r6 ]% X* u
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->; \" t7 v' O- }/ ^# {# a
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a> 4 y0 @7 C! }- W  M

    6. 4 n2 W# `% j/ D2 D) M7 }2 S
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
      , p- I; n5 u6 W
    8. <w>word</w>
    复制代码
    0 r9 L+ Z. K% c4 ]1 ~, _7 |  a

    & P9 a4 i7 N1 m+ a+ e  n## 资源
    / \: f4 u' k$ n- \. d- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。. [5 H. i- t4 Z  g+ F
    - 资源路径中的分隔符使用\例如:\pic\test.png。
    ) f$ H0 H) I  q# ?- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。7 W. F& F0 j" t5 l8 U6 p
    - 软件已经包含了一些预置图标,可直接使用:% F' y, a+ f+ l
    1. uk_pron.png 英式发音图标7 Q# a9 C; f/ y1 O; C4 a
    2. us_pron.png 美式发音图标$ G; I1 \4 v- b( M$ n9 @
    3. voice.png 语音图标
    复制代码
    4 V" e  C0 {2 h' k: @$ |7 z" C

    - q& d8 f) M0 b## 注意事项
    . p9 t2 f6 j! }  f& ]4 t, B( Y/ ]- CSS, JS等文本文件如无特殊说明均使用UTF-8, r6 r3 j" n3 g& N  R& U

    6 c4 {$ {6 U1 I/ l- ~## QA
    3 u1 R* {! }8 }5 @* z! [- u$ O" ~( E) j- 目前支持哪些格式的词库格式?2 d$ ?" p7 N, w- g& X5 _9 q
    目前支持StarDict和MDict的词库。
    * r: B. B5 J& X2 ]# A0 dMDict词库目前暂不支持加密。- r1 `+ D7 }" O" \* z4 q1 h
    StarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。: W  u& e: m3 V- N
    3 B4 q% b5 c- ]' q/ P/ t
    - 如何添加的词库?
    3 V$ ~* @, J  P. v8 ?# }/ o% q将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。( y6 M+ c3 E$ C: S
    4 s5 c$ W$ K9 Y6 G6 x
    - 我制作词库时需要技术怎么办?: u+ D5 f, m7 \. p$ x
    请在论坛发帖,我会全力技术。
    * z9 l3 [0 g1 v3 t; H/ Y. d. u8 o- o0 ~- L& S
    - 自带的词库数据是否会开源?* b( V2 n4 A& P0 O* W0 q
    会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。6 l, e2 C$ K6 r7 f

    8 j' L+ z6 ]& G8 X4 Y& u& ]## 开发计划! z( d$ y' O- i- H* E" g
    - 单词发音
    3 b$ A+ p2 Y7 x, `$ Y- 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑 1 ~2 l5 k5 _1 y
    % S! p  a9 J: J2 V) n
    还想要的关键(基本)功能:8 c( s: j# j& m* y. B! [
    1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。
    # [# g- Y" V' k! Z& _& I0 R) b5 w2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。+ @  W) f" X$ |" s
    3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。! `. P) _" G6 S5 l' W
    4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2.. x) p7 E) G; G" ?% 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# P! E# ^2 }2 |
    謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@

    - ~, d5 G# {8 a$ V一会我放一个到百度网盘。

    点评

    謝謝~~  发表于 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 n6 ]% Y: w2 e, b73.5兆为什么这么大?
    # n. g- o. b8 s' b$ Q
    包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:41& c* y2 J9 m$ X7 {$ b) g' G% H0 w% X
    安装后,打不开,闪退

    ; {* p( l# v! a# ~可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:15
    ! X: V' h$ v  [. r哇感觉好棒!要是变成一个支持mdx的背单词软件就好了

    6 V' t, k6 T; a6 z$ ^想过以后写一个背单词的,慢慢来。
  • 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:210 o' f+ t5 y3 I4 r+ X7 _8 E
    还是闪退 华为荣耀6p,安卓6.0

    $ |' i2 r; D. Q9 Q谢谢 我测试下
  • 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 15:51 , Processed in 0.063325 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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