掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

楼主: spoiltbrat

[工具] Mdict Editor Tool v2.0.35 -- 多功能个性化词典制作工具

    [复制链接]
  • TA的每日心情
    开心
    2018-5-15 08:32
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2017-3-14 09:04:44 | 显示全部楼层
    python打包的?我这里一开始跟我的py冲突。

    该用户从未签到

    发表于 2017-3-14 16:10:50 | 显示全部楼层
    有需求才会有动力不断更新软件!谢谢!
  • TA的每日心情
    开心
    2020-4-22 11:12
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2017-3-15 08:31:46 | 显示全部楼层
    感谢分享,软件很强大。试试看
  • TA的每日心情
    开心
    2020-4-12 13:04
  • 签到天数: 453 天

    [LV.9]以坛为家II

    发表于 2017-3-18 07:56:10 | 显示全部楼层
    可惜我是计算机语言白痴。感谢大侠的分享。
  • TA的每日心情
    开心
    2018-2-9 09:10
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    发表于 2017-3-23 15:58:33 | 显示全部楼层
    用了楼主大神的工具 但是测试用示例生成个mdx,然后也不能实现跳转,词典不能切换

    本帖子中包含更多资源

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

    x
  • TA的每日心情
    开心
    2020-4-3 07:40
  • 签到天数: 491 天

    [LV.9]以坛为家II

    发表于 2017-3-30 09:13:29 | 显示全部楼层
    PC MDICT上JS报错是经常遇到的,手机EBDic上邻近的单词点击没反应。找原因却没发现词典格式有错。
    # Y* w' F) Q# E# \5 R! v/ ]1 \( b$ m其他词典中用不同的JS却没此问题。
    & H! }& m$ d% [5 u经比较后,发现是其他的JS用了自检查的方法(IF THEN 等)等嵌套。, x6 \! N  v1 A5 X
    2 t3 E5 F1 p) A" ?2 p) _
    若是能在JS上找到好的办法,就不用对词典源折腾了。
    ; q& t+ O; j: f" I( G+ M7 Q- z; e
    供参考:
    # @+ G# W- V* y9 i5 W8 V8 r( E5 Q; j9 W4 U) U' p8 `2 g0 i
    1. var vrh = (function() {
      0 Q& `& Q2 u- a# _& z" F$ m
    2.         return {$ r- G1 j: }. \, i! h
    3.                 c: function(c) {4 i: c; Q. D+ g- N* K9 p
    4.                         var p = c.parentNode.parentNode;) Q8 K% J3 B4 P' S. [% m
    5.                         var d = p.getElementsByTagName("div");
      & g( x8 X) Q% H2 d4 N% e
    6.                         var r = /\w+(?=\.png$)/;2 Q; N/ b3 C( @9 V
    7.                         for (var i = 0; i < d.length; i++)3 q" x1 g6 v/ W, D) a* I( b; @% W& x
    8.                                 if (d[i].style.display == "block") {$ U) W6 L) y9 A8 l+ K% y
    9.                                         c.src = c.src.replace(r, "x");
      + @! U  J" L0 ~0 O
    10.                                         d[i].style.display = "none";* T, I/ p; U) ^  {6 n
    11.                                 } else {
      0 e+ m% j/ c! ^4 k0 @9 w, N
    12.                                         c.src = c.src.replace(r, "c");$ R  R1 `4 }0 P
    13.                                         d[i].style.display = "block";( q1 D3 h5 @- O. T2 ?
    14.                                 }
      0 \! Z0 g; Y. V+ @3 Q
    15.                 }
      9 m0 Q) Q! H& b$ ^$ L* F! w4 w% F
    16.         }2 {7 ~( c  x- \8 i/ l: ~3 P8 R( l! E
    17. }());! I) }: M+ E0 l* u0 s) P- d; w
    18. var dzp = (function() {- L- v$ r" p/ s# `+ L
    19.         function e(t, c) {( z6 @  g/ D# D! M
    20.                 var d = document.getElementsByTagName("div");
      1 s  B0 y# A! E" i) o2 k
    21.                 for (var i = 0; i < d.length; i++) {; ?8 m5 v2 ?. M: p) y
    22.                         var p = d[i].previousSibling;0 |# t0 q0 r; u, m$ o
    23.                         if (p && (d[i].className == "cdw" || d[i].className == "oje")) {
      . i/ @7 M2 n0 c' E( h
    24.                                 var h = p.offsetHeight;
      2 B% C8 |( ?4 v7 o6 P% x+ l
    25.                                 if (p.childNodes[1].className == "izv" && d[i].offsetHeight > h * 12) {
      4 ], K6 Q6 E* m" V
    26.                                         p.childNodes[1].style.backgroundPosition = "0 0";& V8 E+ g7 H" r( \! X
    27.                                         d[i].style.display = "none";" z4 \& ?5 F- w- _
    28.                                 }
      8 @# W  @" t+ C$ k& {+ U
    29.                         }  X0 F' E; Y% K0 K* l2 d
    30.                 }
      $ k2 t' A  F0 @% I9 q; m
    31.         }( o3 s: Y- c" o/ _" }7 {
    32. 7 m$ j& |2 W0 ^. ^  O! Q0 p
    33.         function g(a, b, c, d) {1 a+ d: F5 ?4 u  n# A+ e
    34.                 var s = a.style;
      / {& f: H5 S& a  o
    35.                 s.backgroundColor = d;
      " w1 U$ `3 i( }8 `  M" w5 K
    36.                 s.color = c;
      * b/ m8 z) C! \- W, D, d
    37.                 s.borderColor = c;
      ' U/ `8 V: P! `9 R3 Q8 V
    38.                 s = b.style;+ k5 e" e2 z6 d" @
    39.                 s.backgroundColor = c;$ b$ V* H% ^! y  R, d0 p" \5 e
    40.                 s.color = "#FFF";
      , y  T$ R9 f6 y  v) }0 q0 r! t9 x6 ^+ ^
    41.                 s.borderColor = c;
      - @% P" G2 |' R. o
    42.         }
      % D" Y0 ~, @  [5 U; U, B, R
    43.         if (typeof(dzp) == "undefined") {9 [; O6 l: i) E) O, |
    44.                 if (window.addEventListener)
      3 A3 r. Z& ~( v; J
    45.                         window.addEventListener("load", e, false);
      1 ~) R% g1 K' k# c- K4 V& u
    46.                 else window.attachEvent("onload", e);
      ; ]! }& B& k# K9 @, [
    47.         }. V+ \4 l: c, h  Z8 O3 M1 F
    48.         return {
      ) c* e# I; T8 t
    49.                 v: function(c, f) {! P/ ~: P& Y% }; _) C
    50.                         c.removeAttribute("onclick");
      8 }; i( e+ T- f: G
    51.                         with(c.style) {! S7 ^* J7 u4 M, H" |4 S
    52.                                 cursor = "default";
      % Y3 ~" H, |& @. x, \" o
    53.                                 outline = "1px dotted gray";
      % z( V2 _+ c  g
    54.                         }5 [/ ~* r8 X/ W5 r$ S* s
    55.                         var p = "soundc11/";6 C; I: r5 T$ N# V: v/ W% x
    56.                         if (/^span:/.test(f)) {2 Z- V2 R. Y& v
    57.                                 var l = f.replace(/^span:/, "");
      : D: W7 I6 G4 \3 H/ g0 H
    58.                                 p = "audio/prons/" + l[0] + "/" + l + ".mp3";/ q8 m. B" ^7 @5 D  g5 o) L# T
    59.                         } else {
      / d) ~! C  [" c9 N
    60.                                 if (/^gg/.test(f)) p += "gg";  d. ^2 v' s7 D. x% ?1 a/ m: N% s# W
    61.                                 else if (/^bix/.test(f)) p += "bix";6 M' K8 J  [+ I' Q* n4 m( N- y
    62.                                 else if (/^[0-9]/.test(f)) p += "number";$ ^' @: h  A$ _2 b1 C( J; E# {# U3 `
    63.                                 else p += f[0];5 w# c, w+ p- n* R% J3 S$ E
    64.                                 p += '/' + f + ".wav";
      6 d! D- t5 }* H# c* v
    65.                         }
      2 G: B+ b7 l! w& ?5 `8 A! l8 U
    66.                         var u = "http://media.merriam-webster.com/" + p;, y: v6 T  H+ p
    67.                         var b = function() {5 \* }( b2 U8 h" F
    68.                                 with(c.style) {7 m7 N- h/ _6 ~0 Q% Z; `
    69.                                         outline = "";
      ' ]7 h' V% D7 l3 z7 B  H/ Y& `- j
    70.                                         cursor = "pointer";) I2 z5 e9 ?6 V5 s1 v
    71.                                 }
      5 r0 ~7 b3 j) o+ q
    72.                                 c.setAttribute("onclick", "dzp.v(this,'" + f + "')");: ?! f. x5 k2 A; E. ^) C- v
    73.                         };# M! T" s- L- T- A( n( @1 [
    74.                         var t = setTimeout(b, 2000);) W6 [1 d4 N2 o8 E
    75.                         try {
      $ C6 o. [; ]! b" J( j" m. [) M
    76.                                 with(document.createElement("audio")) {* V% a7 G3 a, [' U* p7 Z% ?. |
    77.                                         setAttribute("src", u);
      ; F3 Z. Y, O3 b7 @% }7 M* g
    78.                                         onloadstart = function() {
      # A. y+ N4 ]# p' t' V3 K5 @
    79.                                                 clearTimeout(t);
      % \4 {1 P# W9 }) G/ x* k
    80.                                         };
      ( G( f; F1 I5 i) c" J, I
    81.                                         onended = b;( r( L+ n8 c" R4 f/ _4 c
    82.                                         play();! u: H6 o% C" W  `$ y
    83.                                 }5 M9 q) \( q; P8 ]4 l9 J
    84.                         } catch (e) {
      ! ?+ t* M8 P, R% s' b
    85.                                 c.style.outline = "";
      & u+ ^4 h8 K) k' f
    86.                         }& E& a- A* s' a& }9 t
    87.                 },
        G9 E: L* Z" [! G7 Q
    88.                 x: function(c) {
      % x8 m( F+ D( T- n' t, _8 a
    89.                         var n = c.parentNode.nextSibling;
      / q/ v. O, a2 [1 ~, T  u
    90.                         if (n.style.display != "none") {
      + x# @2 |# {: k7 ]
    91.                                 n.style.display = "none";" U) J6 D5 y- E3 `; I. _
    92.                                 c.style.backgroundPosition = "0 0";( {. `0 b, F2 P+ [
    93.                         } else {
      + i* |5 {* ^/ k2 Q* E
    94.                                 n.style.display = "block";: }$ O! `6 n8 v& @  _1 ?
    95.                                 c.style.backgroundPosition = "-16px 0";2 T* C) s$ w# V) ?( K
    96.                         }
      ; T# x) U5 E1 _- E" m
    97.                 },
      9 U8 U- h% H* D2 N$ W
    98.                 h: function(c) {/ ^, O) ^' \. U5 B8 g( c; U! }& v
    99.                         var p = c.parentNode;
      1 \6 _* J- P% I8 K
    100.                         var d = p.nextSibling;
      4 o  T4 R; q# j2 g/ W$ \: S
    101.                         var t = d.nextSibling;2 i' v, l+ E6 D% k
    102.                         c.className = "kfh";
      " J  d2 s+ ^1 C  X/ Z
    103.                         c.setAttribute("onclick", "javascript:void(0);");9 S5 z( n1 V4 s. A, m& d
    104.                         var b = c.nextSibling ? c.nextSibling : c.previousSibling;% f4 v  G8 `$ ~8 f% Q' r4 w
    105.                         var j = c.nextSibling ? 1 : 0;, B. \0 h! z& }' w5 J1 b
    106.                         b.className = "dt7";! q- G1 T$ F( t
    107.                         b.setAttribute("onclick", "dzp.h(this)");
      % \. E* V! `# C8 ^' H0 _$ a/ e
    108.                         if (j) g(b, c, "#4AB0EF", "#F5F7FB");
      " |. k% u( r3 T8 k# w6 c# g
    109.                         else g(b, c, "#F48040", "#FDF9F7");5 p! z8 ~/ ^: B* P
    110.                         if (t.style.display != "block") {) `# E( f( m3 M2 v( c0 M
    111.                                 t.style.display = "block";- x! b: |. v) ]4 Q/ T; t; ^; R
    112.                                 d.style.display = "none";) t) y9 F1 B/ p( P/ I8 w
    113.                         } else {- V! @0 k, I  z" G
    114.                                 t.style.display = "none";
      ; s, x; U( e; M) v
    115.                                 d.style.display = "block";
      9 }6 b1 l+ ]; \% [
    116.                         }3 W. P0 r5 p3 u* Z$ A
    117.                 }' o* ?, _" F6 T- b7 c" ~
    118.         }
      $ _' {" s3 e' }7 Z# ], M
    119. }());
    复制代码

    该用户从未签到

    发表于 2017-4-5 09:49:26 | 显示全部楼层
    感谢S大的更新。
  • TA的每日心情

    2025-12-24 07:02
  • 签到天数: 251 天

    [LV.8]以坛为家I

    发表于 2017-6-7 06:03:17 | 显示全部楼层
    Hi, 贴主,感谢您的工具,但我用的时候出现了几个问题,希望贴主可以帮忙。
    + I: ^" s3 w' a) Q/ W" x; r- @" _1 W; Q1 ?( r* \- [" F" O
    就是在合并了几本字典后,在合并词典内,词典的发音图标,和词典内的图都是打××的,请问可以怎么解决呢?5 h: I% C5 w  x9 i
    / o% b3 S1 k1 R3 \: D2 L
    我是先从原本各字典的MDX 用软件 转成 mdx源文件格式,然后再用贴主的软件合并。可是转变为 合并的mdx格式后,就出现以上情况。
    9 X: \( c/ r' A/ X/ ^4 ]  N5 M原来 各词典 的 MDD 是否也要转换呢?
    - R1 L# k+ }% V5 N' ]. J5 L1 M" P0 H/ F
  • TA的每日心情

    2020-10-22 07:38
  • 签到天数: 78 天

    [LV.6]常住居民II

    发表于 2017-7-6 11:55:52 | 显示全部楼层
    楼主真棒!太感谢了!
  • TA的每日心情
    郁闷
    2021-11-23 09:55
  • 签到天数: 77 天

    [LV.6]常住居民II

    发表于 2017-7-19 14:13:30 | 显示全部楼层
    我没有win7的64位啊。能出win7 32位的版本吗?或者顺手帮忙做做美国传统4的双向词典?
  • TA的每日心情
    开心
    2019-11-29 11:52
  • 签到天数: 327 天

    [LV.8]以坛为家I

    发表于 2017-10-6 21:12:01 | 显示全部楼层
      大神,我用你的合并词典工具合并了两部词典,可是在安卓欧路下,只能读取其中一本。似乎只要是用这个工具合并的词典都会相互干扰,请问要怎样才能让这些合并的词典独立不受干扰全部显示出来?
  • TA的每日心情
    开心
    2020-2-20 08:39
  • 签到天数: 117 天

    [LV.6]常住居民II

    发表于 2017-10-7 21:23:55 | 显示全部楼层
    玩转得很棒,
  • TA的每日心情
    开心
    2026-5-3 09:50
  • 签到天数: 983 天

    [LV.10]以坛为家III

    发表于 2017-11-5 15:02:36 | 显示全部楼层
    好好学**技术
  • TA的每日心情
    擦汗
    2018-3-24 09:35
  • 签到天数: 159 天

    [LV.7]常住居民III

    发表于 2018-1-22 00:01:37 | 显示全部楼层
    大神你好,我用您的合并多个词典,为啥出来的是html格式,不应该是txt的格式么,这样怎么转换成mdx呢?
  • TA的每日心情
    慵懒
    2023-4-7 01:55
  • 签到天数: 990 天

    [LV.10]以坛为家III

    发表于 2018-1-26 14:19:46 | 显示全部楼层
    谢谢分享,下来看看
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-2-6 08:22:09 | 显示全部楼层
    本帖最后由 喬治兄 于 2018-2-6 09:09 编辑 * Z! \5 H0 S8 ^: i& V
    " E  D" M& b! V+ f4 N! W
    spoiltbrat 兄:* t; e7 K4 P4 p0 ~

    + i' {  A' i: U$ N軟件很強大,但不太會用, js 會報錯5 y" X3 [" X' I' n9 _
    搞了一夜真不知錯在哪9 ^) }' e$ w0 [  _. x4 V
    用IE打開經過你的程序結合成的out.htm切換都正常
    4 z3 t0 y+ B# v/ h+ w. s3 [8 u  O. U怎麼經過Mdxbuilder Compiler 後就, js 會報錯& l, X7 q& w% Q
    能否解決# P9 c% f; {1 N: i2 p
    或有同好若知如何解決請指點迷津7 I7 ]5 |: s8 ?3 y

    3 g. p" @3 A0 c+ A) k已附上 css & js$ Q5 P, \+ y" j) D1 [' q$ O
    7 [  x  X2 c, T+ ~5 Y( v
    因 mdx 和 out.htm 太大無法上傳
    4 O  C% G2 G% @7 p" S3 O" y1 o6 ?, e' B- g8 r# L- O
    感謝萬分

    本帖子中包含更多资源

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

    x
  • TA的每日心情
    开心
    2020-2-24 22:02
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-2-12 22:50:33 | 显示全部楼层
    这是做个性化词典的好东西
  • TA的每日心情
    开心
    2018-2-20 00:08
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2018-2-18 20:57:18 | 显示全部楼层
    非常好的软件,下载试试
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-8-6 02:59 , Processed in 0.019219 second(s), 15 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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