掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6721|回复: 73

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

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

    [LV.1]初来乍到

    发表于 2016-7-1 11:55:56 | 显示全部楼层 |阅读模式
    本帖最后由 东风解冻 于 2016-7-1 20:25 编辑
    ; A  K9 m/ x7 n6 e3 i3 w
    # N- j7 I/ J% r我开发了一个安卓版的词典软件,兼容Mdict和StarDict的词库,放到论坛和大家交流。
    ! R8 U6 m# P5 N, j8 y软件还提供了丰富的词库开发接口,方便词库开发者实现各种功能,如果没有你想要的功能还可以和我联系。: j) u2 ]9 m; U
    二楼提供了词库开发接口。& j1 H+ ]8 j) {! R9 \3 L/ c

    " C  b, s- P$ t; ^+ n# Z另外,我对当前词库的数据并不是太满意,如果谁有合适的数据,我希望和您一起做一个词库。
    - s4 A' a) v& f6 e最核心的数据包括:
    * [. v( S9 p6 f1 E% U9 _0 V  ]& {
    • 简洁,词条的解释不要太臃肿。
    • 针对每类解释中的每个解释都有例句。
    • 如果例句有发音就更好了。# [0 X$ _/ s# i  _& L0 s
    . p3 g5 P& E5 J9 [
    + B4 i2 R( K( I, S8 L0 u. A3 m/ ]7 n
    下载地址
    & A/ _# L, l+ L) T1 b1 a2 ?( |; i3 z百度网盘下载
    $ x7 N7 Y2 ?0 K) w/ f7 y

    本帖子中包含更多资源

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

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

    [LV.1]初来乍到

     楼主| 发表于 2016-7-1 12:04:30 | 显示全部楼层
    本帖最后由 东风解冻 于 2016-7-1 14:12 编辑
    - {. Q, ?/ F$ h% r+ Z0 p' u2 E  `4 f% ]3 J0 G, {
    ## 文件结构
    . J# o8 e. K  u" k+ o2 b4 ?; H- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。2 D( t$ r" `) A3 n; @: V1 w
    - 一个词库目录中包含以下文件:
    5 R: A- k9 [+ `5 R2 ]    - 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。
    # d! O! N' j& k, i, E4 l    - dict.png。词库图标,72*72像素大小的PGN图片。
      c- g8 ^- r$ ^* D    - dict.css。样式文件,必需以dict.css命名。; d  G& L7 L) L% w
        - dict.js。脚本文件,必需以dict.js命名。! v5 J7 m' o/ W2 f& t: M6 C
        - 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。" R9 d' _7 W$ C' Y' \  d* h  ]  e
    7 _1 P; u0 G, U+ N6 B/ M. |- X
    ## 样式8 B5 ]( O/ t- [; Z# {+ i% C
    - 为了更好的用户体验,请尽量使用预置样式。
    % G* f  D0 T& k' Z- 预置样式详细见预置样式源代码。
    # z/ n- ?  |. x' p7 N/ ^
    1. : s2 ]% C3 p, _/ w
    2. body
      . d5 o; B2 B  p8 y
    3. {2 u4 J% Z2 Z$ I- n+ v$ S" G& A
    4.         font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;2 P1 S4 b6 ?, J$ y
    5.         font-size:13px;
        s/ b% B8 u: c# L
    6.         color: #595857;* [2 T" i% _( @! E! Z
    7.         margin: 0px;* M9 [% t- Q/ y
    8.         padding: 4px 10px 4px 10px;9 {: P2 I* b& g* g
    9.         background: #f3f0e9;
      5 ]. Q4 C' y* k, l- j
    10. }
      & v( h2 J" i* S0 a2 ~0 `$ u, e* t3 P

    11. 0 ]& S! L+ Z/ F! b, Y( X
    12. /* 标题栏中的当前词条 */) R8 A% }1 J9 d* @/ [
    13. #current_word
      7 f) T% M6 K0 g5 V
    14. {( e& G8 j- C+ x9 `
    15.     color:#E58339;" K) v" J7 M8 c! f# Y5 x
    16.     font-weight:bold;$ T) I' O( |# M/ O
    17.     font-size:24px;
      / @% M- k; a) p0 r2 A
    18. }
      1 G3 y& S: y6 {# f5 n! w
    19. 0 j/ c6 r% d7 T* e, c* r! w/ H; z' P
    20. /* 用于高亮例句中的当前词条 */6 }: J# J# I& M
    21. .current_word
      8 q2 Z" N3 y2 f3 g9 k' l, F
    22. {2 W" }* t' x" V5 k* o% M* {& @$ ~
    23.     color:Green;% `- }4 w. P" g0 n7 `' E
    24. }
      4 c+ @5 m/ V! A/ U
    25. / a0 c6 X+ \0 n2 |) l+ U
    26. /* 词性 */
      * |) s- q  t0 W+ c# b: Q
    27. .pro
      % c5 ~9 a' m# e0 r4 a
    28. {
      / v+ j+ a) n( w& h$ [  O, @
    29.     color: White;
      % X' F7 c: Q7 C) C1 N% }$ M
    30.     background-color: #999999;
      , g8 u( F: r1 ?6 B. }# H* d& I
    31.     font-size: 14px;
      % R3 q" F, J9 }6 R% Y) {& J6 `
    32.     min-width: 30px;
      $ H+ j3 e: @7 B" t
    33.     display: inline-block;$ ~* o6 y7 s  l. ~: E, }5 o
    34.     padding: 1px 2px 1px 2px;
      + n9 `9 d7 N; k9 s  g3 Z# I. J  g
    35.     text-align: center;( {. }- g. V9 R9 I3 i: f
    36.     font-weight: bold;1 N/ u$ G5 C$ ^( B
    37. }% d7 L* L# ^( n* O3 D" J9 S! L/ u

    38.   i3 g0 V! H. d8 ~3 X
    39. /* 词意 */
      % \) h( o2 [& o
    40. .dec
      / t; ]! k; l* a0 q7 M3 l2 q
    41. {
      * N5 A$ y% p4 M* V9 ?" M; R2 ^6 V
    42.     font-size: 15px;% O# n$ f$ C# z4 e
    43.     font-weight: bold;
      % N2 C+ E2 V# I( P7 _
    44.     padding: 1px 2px 1px 2px;$ X+ Z& J, P. U; D) P0 v+ D
    45.     vertical-align: baseline;
      3 l2 z' j& g% P' E, K
    46. }' b# b1 a& `2 a  B* y
    47. 1 @$ ]& r, o2 M( k7 k9 I" p/ p, A
    48. /* 例句原文 */8 q3 [) c6 s# F' y
    49. .sent3 \/ t/ L" R: [. ^- E, |' [
    50. {3 g- K8 Y$ o4 |( J
    51. }( P% p: W. g, ?# i/ r$ L
    52. 3 Y3 N8 i0 \/ s1 j& J
    53. /* 例句译文 *// k) T  H% l  c: x/ @; L
    54. .tran* w0 r) W8 W; _) l1 R, n
    55. {, `' i% z6 d1 C- e" i
    56. }2 r4 ^  X; {: U) I. K* B

    57. 4 W% }1 l( T' P
    58. /* 高亮 */2 l0 U5 a) d, D( \% z8 `7 @
    59. .highlight- X8 ]5 l2 o1 ]2 d3 _+ _  }
    60. {
      " H$ [0 ^! S' T$ |. I2 ?9 T+ _& F( H" H
    61.     color:#E58339 !important;: [% r' A  O1 a: X
    62. }
      / E- I7 O+ _  c# x: L
    复制代码

    ; a$ h  @$ z- I% w& S. ^## 脚本
    / r# W2 p/ l8 h- 默认已经引用了JQuery开发框架。
    / p7 T* {4 l1 S% k2 O$ x+ Y- x- 自定义脚本时,需要编写dictExecute函数:
    ; Y5 O+ b7 n  [* |& p/ ]5 A% x

    1. ! k6 w6 f6 T- s' ~
    2. // 此函数将在切换词库时自动调用。
      % b! n  j8 ?0 Y
    3. // dict:词库信息;object类型;大体的格式如下:
      # E2 K7 \4 D& a" j- ?2 _
    4. //    {: f- @* v8 N8 E. W
    5. //        "bookName":"锐特英汉词典",
      , O8 v! z+ @! }+ u. \5 X$ m
    6. //        "date":"2013.06.17",
        `8 i' g/ _! _. S% r
    7. //        "description":"Enjoy!",$ p3 x$ g  L( e0 D! z0 m' i
    8. //        "wordCount":0,: M( Y% u2 M& `* @3 |
    9. //        "author":"锐特"4 I% k" [6 W% {( [4 L( _  l" P
    10. //        "dictSize":0,
      . [( B$ v& K- c
    11. //        "dictVersion":"1",
      ; i# c! g" U3 l; z1 L! k: b
    12. //        "dictVersionCode":0,
      $ m( p2 v' R0 f% X
    13. //        "type":"main"
      5 M$ P. V* w& i7 r3 ~9 ?7 B
    14. //    }
      ) N/ g! }4 ~& V/ ^4 ~' {% l7 ?- ~
    15. // word: 当前要查的词;string类型;- B( O; u0 t9 w, v  o+ U5 |8 @
    16. // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;. g3 [  n* U6 u% _
    17. // 在编写脚本的过程中,你可直接使用这些参数中的数据。# P0 v, M: `4 e5 A$ o$ v( \* @9 R- v
    18. function dictExecute(dict, word, response){* C6 t% t' e, I6 d5 [2 c
    19. }! i) _  N4 Y, n/ y
    复制代码

    2 D$ m* s5 u. ?/ }6 v) J% A/ ^& Q- 预置JS函数( i0 U/ j$ r' j
    1. // 用cls类样式标记source中的word
      9 V: O# q; \+ y1 ]9 E# {
    2. // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."- m& i% i% P( N. _. b  S7 j, Z; q
    3. function markWord(source, word, cls);2 a9 o; B( T' k& O

    4. % X  `, u( R$ Q+ S3 p
    5. // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
      8 z8 Z' S. B5 B
    6. // source 句子
      ; F, G5 K! c1 U) ^) f
    7. // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."% ]* h+ k! r; A9 r" h1 b
    8. function splitWord(source);; T' A: K" a- H
    复制代码
    ' w& A' U5 |- l# t
    5 e; S6 o0 J" M8 F  o& b3 r% R
    ## 词条数据
    ; M# k, w3 |0 l/ S& Z4 u- 词条数据,可以是HTML、文本、JSON、二进制。
    8 B" }! ]' n$ }2 ^  C0 H- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。- l: F$ y  O$ @- t& X
    - 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。2 M% _* I8 Q2 m: Z+ ?8 n' Z
    - 预置HTML标签扩展:
    - q$ e" t9 p2 s* X$ A
    1. <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->
      - o2 }4 X! T! N# q$ F! p
    2. <a href="entry://key">key</a>
      ! X6 E1 O5 i9 D6 _8 {

    3. $ A; C- X. t; {' B, u4 L
    4. <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->- }$ V1 M0 c" ~0 _* h& [% L& D
    5. <a href="sound://uk/outlive_gb_1.aac">a sentence.</a>
      4 }4 g- ?" O6 N2 \3 t3 H3 j. X
    6. % z' K2 X3 S( W5 O. v+ @0 q
    7. <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->0 r+ }4 g7 e3 s0 h, E. Q" q
    8. <w>word</w>
    复制代码

      F" i. Q0 _5 e# U: @* B, B% c) z  m8 c8 _- ~. f, Q
    ## 资源5 D0 G+ T1 h7 b2 m4 ?: q7 f  N
    - 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
    + X0 L  y2 k: s- 资源路径中的分隔符使用\例如:\pic\test.png。
    ; v% [* J- p- X: E8 ^1 r. D- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。
    4 t0 t$ a, l' [& r! O- 软件已经包含了一些预置图标,可直接使用:, n  T: s0 J& ^$ N/ [
    1. uk_pron.png 英式发音图标0 I. Y' Q  C& k1 \" b$ J
    2. us_pron.png 美式发音图标) K( H$ |8 L; G3 i4 B
    3. voice.png 语音图标
    复制代码

    3 x6 E7 Y/ a. L. A5 T/ O, t& d3 O4 o1 n% G
    ## 注意事项0 u0 C* t# N! R! |0 a% X5 d
    - CSS, JS等文本文件如无特殊说明均使用UTF-8- J. Q% X: G/ C. h
    8 P! f2 E" m7 o* y
    ## QA( E7 X5 Y9 B' O5 I5 r, Y* h; h2 s
    - 目前支持哪些格式的词库格式?* |& T' Q" y/ K" T8 e3 G& `# _2 g
    目前支持StarDict和MDict的词库。* c( y+ W8 {- S! H$ e5 I9 m" s
    MDict词库目前暂不支持加密。
    7 }9 Q# a6 D. Z, H4 `' }7 bStarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。
    3 ~+ ~% W2 r7 w' Y4 E+ D4 y% s6 j5 O1 B1 K* U- j2 l$ o
    - 如何添加的词库?
    ( q7 d( f+ @6 f( R3 r将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。) H+ r7 d" ]5 `1 `6 ?- ]- R& X. s5 ?5 N
    $ [/ G. y& v1 {% X3 K2 P# M" M
    - 我制作词库时需要技术怎么办?% ~+ Y) @& k1 r  n; k7 P
    请在论坛发帖,我会全力技术。5 ]) }7 d" E6 b, b3 F& q  L9 s

    ) h8 O5 B* E; y0 {% k( N- 自带的词库数据是否会开源?
    2 r+ A9 T' d0 W$ J9 u会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。  A* [0 W! ]8 |- d( c

    5 W# X( }7 M6 _0 Y! M## 开发计划
    3 y- H. N8 y7 Y5 @/ @- 单词发音
    . {: T' G" w/ }  ^9 w" X' A- 支持多语言词库的索引

    该用户从未签到

    发表于 2016-7-1 12:41:12 | 显示全部楼层
    本帖最后由 ncq001 于 2016-7-1 12:44 编辑
    + F& z1 v5 K4 s" Y# P
    7 ?1 |7 l7 @) o3 A还想要的关键(基本)功能:6 L4 K; I) _8 o: V; r) s& v6 ?4 ~
    1、支持带分组管理的单词本功能(能与PC等平台联机同步),可以导入/导出单词文本文件,有PC端支持编辑管理生词分组和导入/导出。  }: m8 D; j2 L$ v1 `
    2、支持词典正文中单词的弹出式跳查功能(当前正在阅读的正文不变),查出的单词可以再加入生词本指定分组中。
    , b" [  N0 L) _1 x3、对于MDX类型的词典,可以控制不同词典正文内容的显示,比如新牛津2中,如果不需要显示词源部分正文,可以有选项控制显示或关闭。
    6 d' T( {# Q: u$ S2 `, I8 _4、生词本提供单词简要义项列表方式,或详细方式(多词典),其中列表中的内容能指定使用哪个MDX的词典,比如牛8还是新牛2., M- I4 t! W' M9 {$ y! l, S* j
  • 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: g$ W0 ^: S: Z# H* a7 z
    謝謝分享,請問有其他下載地址嗎?這個下載地址要花10小時以上@@
    9 J$ u/ U' `; e+ t. A: Y# J$ h
    一会我放一个到百度网盘。

    点评

    謝謝~~  发表于 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* E* }) I, j: c. }9 N
    73.5兆为什么这么大?
    5 U; q$ u# O* p
    包含了两个词库一个是自己的,一个是牛8
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:46:39 | 显示全部楼层
    865052004 发表于 2016-7-1 23:41
    , d; Q9 ]; q+ j" J3 x5 i安装后,打不开,闪退

    7 p& O* l& p) N/ r. o. d* P可能是在部分手机上有Bug,我再好好检查下。
  • TA的每日心情
    开心
    2023-8-28 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2016-7-2 15:47:36 | 显示全部楼层
    fnaviwwo1 发表于 2016-7-1 20:15
    - b. ~/ L: Q! F* y: M哇感觉好棒!要是变成一个支持mdx的背单词软件就好了

    ( U+ f9 f! {1 A: z$ _* v想过以后写一个背单词的,慢慢来。
  • 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
    # x' X8 B  P. |还是闪退 华为荣耀6p,安卓6.0

    ) R  L, F4 F; ~3 ~# N谢谢 我测试下
  • 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的每日心情
    奋斗
    6 分钟前
  • 签到天数: 1714 天

    [LV.Master]伴坛终老

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

    本版积分规则

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

    GMT+8, 2024-3-29 22:36 , Processed in 0.054220 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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