掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 29304|回复: 53

[教程] MAC OSX词典转换笔记

[复制链接]

该用户从未签到

发表于 2014-8-29 22:28:32 | 显示全部楼层 |阅读模式
本帖最后由 qunwang6 于 2017-6-9 00:23 编辑
/ a6 o$ E) K, i5 u' |. H7 Z
3 _  P* Q" _' ^( K: a3 i" I7 ~7 _
\BGL\DSL\MDX\CD\ ===> OSX.dictionary. T# n. U" g5 e6 y, z, B
开源项目:PYGLOSSARY
3 z' N& s, l7 g  |5 Whttps://github.com/ilius/pyglossary

5 `8 M9 d. N4 n: W% R- e7 w
20170609更新:7 Z1 N: t1 L" |" c* k! t1 \
新版pyglossary 要安装以下环境:sudo pip3 install lxml beautifulsoup4 html5lib 6 N/ D1 d8 b3 u$ L+ I2 v, T
Python 改成Python3
" e9 Q2 g7 t2 u( g% X; P6 v& m: b
✍
准备好以下环境:
$ {$ H3 Y6 Q- ?3 |* N' c, ]: x* BeautifulSoup4 required to sanitize html contents.8 u3 b- T3 r1 F6 I( M
sudo easy_install beautifulsoup4 html5lib
2 Y1 {( C  L* g- r0 s* GNU make as part of Command Line Tools for Xcode.
5 H/ E4 ?7 r2 J% phttp://developer.apple.com/downloads
- C# o, H. v8 |$ j$ S; I; Z0 ^5 s* Dictionary Development Kit as part of Auxillary Tools for Xcode 5 R  Q6 u' i# J8 G/ t* T
http://developer.apple.com/downloads.- v% U- \/ i, `- J, f. I3 Y
将Dictionary Development Kit解压到/Applications/Utilities/DictionaryDevelopmentKit/
% t3 ?+ q8 s6 m) S. ^- o$ j* ^2 N(不含空格,中文名:应用程序/实用工具那里,也可以解压到其它地方。)

, {4 E8 x& Z! x3 t& Z4 S$ q1 r4 p' I+ X0 b& |/ u


( K4 K. p6 \/ v( W0 y) y! |8 fBGL ===> OSX.dictionary
. o4 b. n6 o* u; [1 F/ U0 ]4 E6 y转换
  1. python pyglossary.pyw --read-options=resPath=OtherResources --write-format=AppleDict dict.bgl dict.xml
复制代码
编译' k; R# A! r3 O& k1 W6 v
* 修改Makefile里2个参数,DICT_NAME是生成文件的名称,DICT_BUILD_TOOL_DIR是Dictionary Development Kit的路径,如果错了就不能生成文件。
+ U( B7 h% W- u/ D4 {5 i8 K6 |* 修改Info.plist里3个参数,CFBundleName是在Mac字典程序工具栏下面显示的标签名,CFBundleDisplayName是词典名称,CFBundleIdentifier是词典的ID,需保持唯一性。。
& b' \: s1 T% E* 根据模板格式编辑Dictionary.xml、Dictionary.css,如果有图片则放置在OtherResources/目录下.
! ~, f# I, [" [/ ?" [" ]3 |* 打开终端,cd进入模板文件目录,输入make,稍等一段时间,即可生成字典文件,将object目录下生成的dictionary文件拷贝至 ~/Library/Dictionaries,打开字典程序,即可看到生成的字典。8 }0 |: m, Q# }# i: q% ^0 _* P
或者直接用make && make install这个命令,生成词典后直接安装到了~/Library/Dictionaries8 n$ [, B4 P6 [; b1 G
# F! F6 ~1 K* f6 d) {
**注意:如果OtherResources里的图片太多的话会出现以下错误:**/ y% x; [* Y5 w7 @
/Volumes/Macintosh HD/Applications/Utilities/DictionaryDevelopmentKit//bin/build_dict.sh: line 206: /bin/cp: Argument list too long0 V. ]1 \6 d! }
Error.9 f# e/ V! m' Y/ C% T9 ?/ E
make: *** [all] Error 1

& H/ g2 ~; }0 c0 k4 R; |% H; U: V0 V1 H& D, ^9 f' C
可以在编译前不加入图片、语音文件,在编译完成后将图片、语音文件复制到xxx.dictionary/Contents目录下。
3 K/ X5 y: I0 V1 w: Y2 \* M; S1 ?6 {8 ^- E2 T5 i9 \


4 H% ?5 n. D3 I8 R2 E( M3 B
- b3 V+ w6 i/ H6 X8 JDSL ===> OSX.dictionary' J) {  Q7 Q: n8 s

+ S+ v6 Y$ ~' c) Y3 t1. Convert DSL from UTF-16 to UTF-8:
  1. iconv -f UTF-16 -t UTF-8 dict_utf16.dsl > dict_utf8.dsl
复制代码

" U( z, m" m( [' H9 q: c" Y( W2. Using pyGlossary python project, convert UTF-8 DSL to AppleDict XML:
  1. python pyglossary.pyw --read-format=ABBYYLingvoDSL --write-format=AppleDict dict_utf8.dsl dict.xml
复制代码
& h, w5 t3 n0 k0 s# y" l
**lingvo格式.dsl转换成可发音的词典。(注意修改命令参数)**) n; B" ^2 _& M. A2 b
audio conversion is optional, "no" by default. The following command works,
/ f6 u/ @% Q' t" S3 X* @~/Development/pyglossary/pyglossary.pyw --read-option="audio=yes" test.dsl test.xml( n5 s8 |5 \* \4 M
make && make install
  1. python /Applications/Utilities/DictionaryDevelopmentKit/pyglossary/pyglossary.pyw --read-options="audio=yes" --write-format=AppleDict ldoce55.dsl ldoce55.xml
复制代码

; K  N8 C8 H% E3. Using Command Line Tools for Xcode and Dictionary Development Kit:编译步骤同BGL ===> OSX.dictionary5 i8 j# [/ _2 Q* D( N/ ^. w
  1. make
    0 k0 U4 q' m" S
  2. make install
复制代码
& X. v$ L: C4 v1 T( L


* I3 h+ i" S2 G7 EMDX ===> OSX.dictionary7 y  t; x6 n% l

3 ~" t% a3 ^  ~1 U9 y9 v3 s转换
# K! C4 K3 q) z' Y( H
  1. cd ~/Downloads/oald8/
    $ [4 ?3 [+ j; N5 ~
  2. ~/Software/pyglossary/pyglossary.pyw --read-options=resPath=OtherResources --write-format=AppleDict oald8.mdx oald8.xml
复制代码
* y% {2 n2 v* W& O  i0 o- S
修改.xml文件里的链接如果不是可发音的词典,以下两步可略过)7 T  p$ y8 u  S; j7 {$ W3 s9 |
  1. sed -i "" 's:src="/:src=":g' oald8.xml
    2 u% n7 W; w9 Z* |3 O
  2. sed -i "" 's|sound://\([/_a-zA-Z0-9]*\).spx|\1.wav|g' oald8.xml
复制代码
第一个是去掉"/"
3 [& g, q, P5 q第二个是去掉”sound://" ,".spx"改成".wav") m4 d9 ~* c, t- T% K" M, v
9 }' J: w0 U: D9 [
将.spx语音文件转换成.wav(需要安装speex,麻烦!可直接从lingvo那里复制,或者直接从原光盘提取)
  1. find OtherResources -name "*.spx" -execdir sh -c 'spx={};speexdec $spx  ${spx%.*}.wav' \
复制代码
8 U+ t$ i+ O, M& G
编译步骤同BGL ===> OSX.dictionary
/ A# M# W; s6 M
  1. make && make install
复制代码
注意:如果OtherResources里的图片和语音文件太多的话会出现错误,可以在编译前不加入图片和语音文件,在编译完成后将图片复制到xxx.dictionary/Contents目录下。4 M& ?; F8 x! I: u


' G* M- x' i: W5 l" N5 _CD(原词典光盘)===> OSX.dictionary* p  d: z: |/ C& B' @- ^+ ?
以OALECD8为例。) Z- J% W; s; s' a6 d
数据提取:虚拟机xp+python2.7,用IDMSKconv提取。7 N4 D0 Y- _& L1 Y" b8 T) G, o
制作:从OALECD8安装目录下找到oalecd_master.css.BAK、从提取出的数据里找到output文件、以及图片和语音mp3文件,复制到Mac OSX下备用。* G  Y' x1 ~: c0 G
将output文件重命名为oalecd8.xml,oalecd_master.css.BAK作为CSS文件重命名为oalecd8.css,从Dictionary Development Kit里找到模板文件分别复制出MyInfo.plist、makefile文件,MyInfo.plist重命名为oalecd8.plist,修改oalecd8.plist和makefile里的参数。
' F1 X3 E, H( |排版:里面各种奇形怪状的标签可以不必修改,有oalecd_master.css.BAK作为默认CSS,所以只需要在oalecd8.xml里添加头部和尾部,删除不要的东西,就可以编译出和原版相同的词典。
* W: Q; V$ k0 n% D5 }  m# ]4 @4 ~, _......+ s! Y- C/ n! d' |% v


6 v2 z) q4 c' X) y' N$ X+ x4 @& N& a###参考:
9 S  _& T4 X& J6 P, S* g* GoldenDict Mac OS X available - Early Access Builds" j+ ^* w! K7 O$ p# B# Q, q  u  @' V
* PyGlossary Overview
9 U4 A2 G9 E" x6 x! N2 }$ E& h*https://developer.apple.com/libr ... /doc/uid/TP40006152
2 h2 r/ y2 b% H1 k+ X& ^" i) c8 v! m
4 s1 y' o& U7 l( W- \) I细节部分
6 s( W6 F% Q% O/ U' K( n& E* k
! @( J& D" C* |8 g$ y' hv======* 注意修改单词内部的链接========v  d( i( d( j) c# }6 y* t
单词跳转用x-dictionary:r:! M  M- z: k4 o, D8 Q
(只能在当前词典内跳转且x-dictionary:r:后的单词大小写须与d:entry id="***"里的大小写一致,不能有空格否则不能跳转。)* p% z- k- a, M
4 ]# n% D6 [' h. c% N6 b( R
单词查找用x-dictionary:d:
& S$ t9 D2 x& h( M(会先搜索当前的词典,若没有,会调用其它词典搜索,不限大小写、空格。)3 c6 A3 J8 W& P4 c/ r) V
(基本上都是用r,用d很少)- m* S$ m$ s/ J) ?* T
^==============================^
. w: S  i; X8 D: f( p' t
The x-dictionary: URI contains three elements separated by colons as the general form—target selector, target text, and dictionary bundle ID. The target selector must be either d (for definition) or r (for reference). Use d if you want to search definitions of the following key text. Use r if you want to refer to the entry specified by the reference ID which must be unique to each dictionary.
辞書.appの辞書を引くURLスキームに/ @4 Y3 C0 A4 c
次のようなものもあります。
. I# d" t/ D6 p' v1 {' ]1 gx-dictionary:d:key_text:dict_bundle_id
: c' |' W9 [; T2 W" `0 `x-dictionary:r:reference_id:dict_bundle_id
" d; X$ ^: p0 z, H# Q8 K6 A**1key_text    調べたい単語
, O% B2 ]; R& W**2reference_id 辞書を作るために作成するdictionary.xmlの
& p6 s) L2 N% ^& |9 s7 f8 D  g各タイトルごとに割り当てる固有のエントリーID# l; H8 E+ N) b! w
<d:entry id="0ABCDE" d:title="案の定">
6 K% l! C" Z2 W5 M3 x# e, {1 W
* ex.- _: S& D6 t7 v  \# N' }

  Z3 m% ~/ d/ k$ d# Y5 _) o; ~/ ?& T
) k0 G& m5 r4 b: X7 B5 d9 ]
     <d:entry id="make a face" d:title="make a face">% H/ @/ S: R' h
     <d:index d:value="make a face"/>
# V* t4 g3 _  t% e7 g$ M! w+ b! f1 z     <html><body><h1>make a face</h1>! q" A8 ^' ^$ W  S1 n( c3 N
     <a href="entry://grimace">grimace</a></body></html>7 q' g9 @$ Q! {* }
     </d:entry>
8 o" o( m$ a% n2 d  b- B
) b* ?! s" f7 h! h     <d:entry id="make faces" d:title="make faces">
! w) h* }$ e. g8 O     <d:index d:value="make faces"/>
5 y1 j  [) H* ?. S7 R     <html><body><h1>make faces</h1>
8 k0 N8 }) O  y) Q' g/ ]" X     <a href="entry://make a face">make a face</a></body></html
: w' @& `4 l1 b" {1 Y/ e     </d:entry>
: ~6 Z7 R, g: |0 @) Q: t" i# u
$ U7 f2 ^* q; ]6 y6 G" P- }2 D3 V
"entry://grimace"
& {4 @' l) `$ b+ H; Qentry://替换为x-dictionary:r:: w% ^6 x# U1 O4 Q- K- \
===>"x-dictionary:r:grimace"1 k$ j5 |" F2 t! a

7 V' r, h; I; A, h( C- }& D% \d:entry id="make a face"
" O1 J" r# q' a( |! G" W& B' o' i* @href="entry://make a face"
) P9 D$ `& [, J" |8 I$ O
类似上面的单词,中间不能有空格,否则单词间不能跳转。6 s7 w- ?/ s* l8 d6 x
===>
+ ]) }$ J, r2 C6 O* i- ?, P. [/ Yd:entry id="make_a_face"
; w- B; ]5 ]  Z3 }  bhref="x-dictionary:r:make_a_face"0 C% D0 q; N1 `0 L: X5 W( D0 h' _1 c
替换空格需要用到的正则表达式:  b% z/ G5 |+ C" `3 f, x( G
(在此感谢ryuya,https://pdawiki.com/forum/thread-13044-1-1.html
  1. (<d:entry id="[^"]+)\s替换为\1_
复制代码
  1. (href="x-dictionary:r:[^"]+)\s替换为\1_
复制代码
0 U  m: j+ |0 s
v=========词组/词性跳转、定位===========v
7 S: p  \0 M% N8 X/ c; H/ g词组/词性页面内定位
/ U- e% J7 j$ H6 ^# t<a class="LP_OS" href="entry://#L_hkx1">suffix</a>( `1 z8 X5 W3 U7 F! {% X# r
<a name="L_hkx1"></a>
( r" o7 u2 C. r1 b$ S' l3 D; u==> <a class="LP_OS" href="#L_hkx1">suffix</a>
/ _/ I1 D/ I; q: n. u# [------------------
% Q5 N6 }& S2 d7 z词组/词性跳转并定位
! Y+ R1 }+ P' j4 D7 u' w1 u3 s<a href="entry://clip#ld3097">clip</a>& U5 D' B; h3 ~/ K
<a name="ld3097"></a><span class="L_IDOM">$100 / 50 cents etc a clip</span>& K7 M: w6 z. b  ~
==> <a href="x-dictionary:r:clip:#ld3097">clip</a>; g9 k4 P, X. q4 i3 W
用到的正则表达式:
  ]) x, o- [& @6 zx-dictionary:r:(.+?)#
' b! q. b8 ]8 o; e) |替换为:2 U. E- d8 H! z! c
x-dictionary:r:\1:#4 b  \$ l/ z* X$ `0 D
相关的词典:朗文当代英语词典英汉双解第4版$ I8 d0 w* p' H$ O: H7 C: `% \- J# N
Shorter Oxford English Dictionary Sixth Edition1 E6 Y: G, ]4 B+ g# o: W1 U* g
^=========词组/词性跳转、定位===========^5 V. u. j1 c) j

. \* p. L5 Z9 X. v/ o0 Y
1 B% ]8 X0 T( e( D* n
另外一个开源项目
3 M6 a$ I* J* y+ M: _DSL to OS X/iOS dictionary converter(相关教程可到我的空间相册里查看)* L' u; w: `* X7 L
https://github.com/svintuss/DSLConverter
6 j- J% W- x( | StarDict转换工具
* R/ Z9 ]) T+ s% t" fhttps://code.google.com/p/mac-dictionary-kit/0 p% ^" b8 X& `
关于金山字体问题
: ]% s  {5 e2 dhttp://www.linuxsir.org/bbs/thread363915.html
3 d4 F" H/ E9 o
许多Linux词典也使用了Kingsoft Phonetic Plain字体,但是能下载到的金山字体一般都不是unicode编码的,导致Linux下音标显示为方框。实际上用FontForge修改一下金山字体即可使用。
2 p) _: Z" P3 Q; P安装FontForge:' T  W" ^, s6 J; _% V
#urpmi fontforge: X9 c0 G7 s0 |" d4 h5 l  F) _; x
然后用FontForge打开金山字体文件,你可以看到FontForge对字体里的每一个字形都分两行显示。上面小的是字符的名称,下面大的就是那个字符的字形了。金山字体本来是对普通拉丁字符赋予音标字形的一个字体,但是因为它不是unicode编码,在Unicode的拉丁字符区一个字形都没有。
2 v2 c( r% o) s" S0 `7 P所以首先要找到金山字符的位置,比较靠后。注意从一个空格字形开始的。这个空格很重要,因为空格和之后几个符号的字形跟普通拉丁字符的字形没有区别,所以我们用来定位所有的金山字符。
' c# Z; {4 p! c5 p找到之后,从空格开始选定所有的字符,大约有三四十个。剪切之。
5 g/ U# U; {" Z2 m; @) i+ F然后找到拉丁字符区。可以看到所有的字形都是“X”,也就是空。找到表示空格的那个字符位(U+0020),选中,复制。所有的金山字形就按照顺序复制到这个字符位以及之后的字符位去了。
! X0 x9 H: g  d- a最后保存成.ttf文件就OK了。保存的时候会有一些提示信息,照着做一下就行。
$ W. C+ F. f, H$ n顺便发一个做好的.ttf文件。仅为技术探讨,版权归原作者所有。
0 M3 [" x% P0 |8 Y0 i

! _( {0 t, ~( a# f% A9 k' ^9 L! }
8 o" x: _2 }, X$ o7 P
一些小技巧
. e: }' d% `+ s1 F0 k: a+ dMac osx 下可以用三指取词,但在一些第三方软件下是不起作用的。
8 u3 N, j' _) J' t+ G9 y' u不过结合Alfred这个神器+下面这个脚本可实现热键取词。
  1. open dict://{query}
复制代码
同理可将网上流传的“142000个单词语音库”解压到同一个文件夹内,借助内置的afplay命令+Alfred+下面的脚本,可做到热键取词发音。
  1. afplay /Users/qunwang6/Sound/Webster/{query}.wav
复制代码
2 j8 b+ B; q) S+ u# L( t
生词本0 h! Q  `: ^, R9 C; o1 V( x
BetterDictionary
: t- n2 N9 }( z" s
: e; ~1 l1 z8 X- g...
* a4 ~' g3 J% b' p0 U0 H- Q


" f' m7 q  e- ]7 k" Q+ ]自己动手,丰衣足食。先发颗种子。" t# v* R% K& J1 U5 O$ b
Longman Dictionary of Contemporary English 5th Edition 无发音
. c4 [6 k* |" P2 h4 b, B4 g1 B(宇宙盘0x0001词库分类 /MAC OSX dictionary下 or http://pan.baidu.com/s/1kTolbkb
! ^" L1 s; s' C0 x9 V9 f, a, o转自https://www.pdawiki.com/forum/thread-10697-1-1.html

$ B: \# }+ j7 m: N& a. V2 U2 C
2 {6 ~6 x" h9 e; J/ p! R  i 链接: http://pan.baidu.com/s/1i3rgl7n 密码: vcpf
6 H1 b% T: {3 W  ~. ~

本帖子中包含更多资源

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

x

评分

1

查看全部评分

本帖被以下淘专辑推荐:

该用户从未签到

发表于 2017-9-7 13:15:08 | 显示全部楼层
本帖最后由 colin00 于 2017-9-7 13:19 编辑
( Y3 N5 s1 O7 W  ?# Q. ~  Q& t# J) G; V) L6 Y
大神,我在转这部Collins的时候出现了问题:, C7 _  E! {+ @7 f

3 `$ P" P+ a* h; m* T* T/ h. o
  1. """/Developer/Extras/Dictionary Development Kit"/bin"/build_dict.sh"  "CollinsDictionary" "CollinsDictionary.xml" "CollinsDictionary.css" "CollinsDictionary.plist"
    ( D( S3 {3 `" n
  2. - Building CollinsDictionary.dictionary.
    3 B% S8 n: m) }8 U8 D% _
  3. - Checking source.# y( _( d5 x; N
  4. CollinsDictionary.xml:70: parser error : xmlParseEntityRef: no name: b& R: i* t( m1 |- f/ @- p, s6 i0 i
  5. OL.css$/;for(var i=_l.length-1;i>=0;i--)with(_l.href){var _m=match(_r);if(_m&/ {- o# [6 Y, V/ e- l
  6.                                                                             ^
    9 n' [! ~% _9 n7 T0 N8 Y; z
  7. CollinsDictionary.xml : failed to parse! Z+ a6 `2 D4 r
  8. Error.
    2 G! \; z$ M5 `
  9. make: *** [all] Error 1
复制代码
  }: M# T# w; o+ ^

$ C& B9 P) M, S4 Q5 w+ u请问下,这个该如何解决呢?7 X' E5 k# E! }5 u9 o
$ x6 n; P/ {+ L2 W3 ~6 f7 W
谢谢!
) _% ?4 y; |% p/ q0 I4 ]2 f/ R- x4 w+ o, n7 P: t7 H
这一行代码是这样的:
: A, l6 s, @' r! Z! f1 P- M2 G& r
  1. <d:entry id="_n" d:title="404">' b; \  f9 A* e3 J8 k
  2. <d:index d:value="404" d:title="404"/><h1>404</h1><div class="dxr"><div id="404_1"><div class="j84"><a id="404_1"></a><div class="f9d">404 <span class="kf5">/&#716;f&#596;&#720;&#601;&#650;&#712;f&#596;&#720;<img class="ik4" onclick="aes(this,'e/en_/en_gb/en_gb_404')" src="sp.png"/>/</span></div><div class="mh1"><div class="x5z"><h3 class="jgs"><span class="sg0">noun</span></h3><div class="o8h"><div class="lij"><span class="rgm">slang.</span> <span class="sd9">a stupid or ineffectual person</span></div></div></div></div><div class="roj"><h2 class="fhq">Origin</h2>C21: from the Internet error message '404 Not Found'</div></div></div><script src="cl.js" type="text/javascript"></script><script>if(typeof(uc1)=="undefined"){var _l=document.getElementsByTagName("link");var _r=/COL.css$/;for(var i=_l.length-1;i>=0;i--)with(_l.href){var _m=match(_r);if(_m&&_l.id=="kc1"){document.write('<script src="'+replace(_r,"cl.js")+'"type="text/javascript"><\/script>');break;}}}</script></div>' b6 W8 V: \$ c# @
  3. </d:entry>
复制代码

该用户从未签到

 楼主| 发表于 2014-9-6 09:58:50 | 显示全部楼层
cidianaihao 发表于 2014-9-6 08:39 ( D7 c  l/ G( N; _. ^! U: G2 `" w9 _
不过结合Alfred这个神器+下面这个脚本可实现热键取词。
; X- p8 T: J! H1 r) r
+ w& }! y9 P, H! W! g    open dict://{query}

4 B: N, b* c  V' r

该用户从未签到

发表于 2017-2-12 23:35:57 | 显示全部楼层
感谢楼主,成功转换了[英-汉] 牛氵聿高阝介第⑧中英又又解 https://www.pdawiki.com/forum/thread-14881-1-1.html。但是有几个问题:" h9 x; @' u( _3 H
1.  i; V& Z% w5 v- b) T( H
2.
8 @  H8 y! G' l, F图片的xml代码如下:2 m- P9 w% q6 k9 C6 \' `- I1 L5 s
  1. <img alt="/pic/fruit_comp.jpg" height="540" onclick="this.style.display='none';this.nextSibling.nextSibling.style.display='block';" src="/pic/fruit_comp.jpg" style="display:none;" width="720"/>
    1 |( N# n4 g  a6 w
  2. <img alt="/thumb/apple.jpg" backup-height="540" backup-width="720" class="Media" onclick="this.style.display='none';this.previousSibling.previousSibling.style.display='block';" resource="pic" src="/thumb/apple.jpg" thumb="apple.jpg" thumb_resource="thumb" topic="fruit_comp.htm" type="image"/>
    " ?! f( R3 D! V
复制代码
! Q$ B2 j$ _; L# q* E3 g
文件O8C.dictionary/Contents/pic/fruit_comp.jpg也存在。这个词典里面的所有图片都没有。你发的朗文5里面图片是可以的; V2 ?7 G6 F, F8 Z. f
, p' Y5 b$ ~* n6 z# m+ p
词性的xml代码如下:
  1. <span class="block-g" display="block" level="3">/ J+ p9 u" \9 F) g
  2. <span class="pos-g" display="inline" level="4">
    8 x! D; N( Y0 A" L, ~% I0 G" D
  3. <span class="pos" level="5" pos="n">noun</span>
    + N' ~3 S0 w: K- P: z& Y* z" y
  4. </span>; N  m/ Q& b3 ^4 d: r
  5. <img alt="/pic/fruit_comp.jpg" height="540" onclick="this.style.display='none';this.nextSibling.nextSibling.style.display='block';" src="/pic/fruit_comp.jpg" style="display:none;" width="720"/>
    6 _, o/ K  \4 e; ^* v& _, w
  6. <img alt="/thumb/apple.jpg" backup-height="540" backup-width="720" class="Media" onclick="this.style.display='none';this.previousSibling.previousSibling.style.display='block';" resource="pic" src="/thumb/apple.jpg" thumb="apple.jpg" thumb_resource="thumb" topic="fruit_comp.htm" type="image"/>9 ?/ k5 a+ Z4 y  }) i' Y
  7. <span class="clear"></span>" l2 Y2 s$ {3 L4 v5 i* o" q
  8. </span>
复制代码

  K# D, b3 m0 b) U2 b就只有第一行在音标后面的词性才不换行,之后的词性没有问题,所有的单词都是这样。当窗口宽最小时,词性才换行
/ z& B  z, S7 B, H6 p+ s% I. _/ w6 ^/ ~0 n/ {# r
第一行的xml代码如下:
# A2 M+ @1 I" ]$ ]0 t( R
  1. <span class="top-g" level="2">. q9 t9 h9 A" p9 `6 B
  2. <span class="h" core="y" level="3">apple</span>
    5 O( e( ^, f! S! [1 [- s+ Z
  3. <span class="z">& V9 E8 g5 _9 e* \8 N- N5 z8 [
  4. <span class="symbols-coresym">★</span>
    1 R' C; b4 Q9 z
  5. </span>
    ) Y% F7 k9 T! V" j" ]4 c% |
  6. <span class="ei-g" level="3" type="h_full_">
    5 ]0 A3 X2 V4 y3 Q
  7. <span class="z_ei-g">/</span>
    7 n, K+ H2 T$ v- [3 o3 O1 Q
  8. <span class="phon-gb" file="{gb}/a/ap/app/apple#_gb_1.spx" level="4" recdate="070503" wd="apple">&#712;&#230;pl</span>& n1 H5 _6 j- W& r' s2 F
  9. <a backup-class="Media" class="fayin" href="x-dictionary:d:sound://uk/apple__gb_1.spx" resource="uk_pron" topic="a/app/apple/apple__gb_1.spx" type="sound"><img class="fayin" src="uk_pron.png"/></a>0 `! d" {4 }) o# x# G; ]9 |
  10. <span class="z">;3 A5 E, q7 f8 Q3 d) X  O7 t
  11. <span class="z_phon-us">NAmE</span>
    ; N6 \+ I3 A8 b6 B  V! ^
  12. </span>. m7 r9 V- k6 h; _
  13. <span class="phon-us" file="{gb}/a/ap/app/apple#_us_1.spx" level="4" recdate="070503" sup="y" wd="apple">&#712;&#230;pl</span>
    ; k$ o0 F# f# y4 F" `$ w
  14. <a backup-class="Media" class="fayin" href="x-dictionary:d:sound://us/apple__us_1.spx" resource="us_pron" topic="a/app/apple/apple__us_1.spx" type="sound"><img class="fayin" src="us_pron.png"/></a>! R. z; B$ w+ E. I3 M8 _$ S
  15. <span class="z_ei-g">/</span>
    3 F- W7 w/ [# O# ]! |' d; I8 F
  16. </span>
    , L! V. |& V0 r! {6 f
  17. <span class="block-g" display="block" level="3">4 G- E3 X2 t/ a- E
  18. <span class="pos-g" display="inline" level="4">1 V3 d% N$ E" V% L  D4 w: H4 ?
  19. <span class="pos" level="5" pos="n">noun</span>6 m9 a" T) x; h
  20. </span>' }  `% Z. H7 G! h
  21. <img alt="/pic/fruit_comp.jpg" height="540" onclick="this.style.display='none';this.nextSibling.nextSibling.style.display='block';" src="/pic/fruit_comp.jpg" style="display:none;" width="720"/>3 }* d  ^9 N' O) L
  22. <img alt="/thumb/apple.jpg" backup-height="540" backup-width="720" class="Media" onclick="this.style.display='none';this.previousSibling.previousSibling.style.display='block';" resource="pic" src="/thumb/apple.jpg" thumb="apple.jpg" thumb_resource="thumb" topic="fruit_comp.htm" type="image"/>& t& Y/ H/ P' ?! O3 V/ U
  23. <span class="clear"></span>% \& I+ s2 a1 p  X; u
  24. </span>
    5 F( J5 ^2 W* U) q3 P
  25. </span>
复制代码
! h, ~' x. C0 Z8 `- D
0 G, F4 }5 }( @7 H: s

本帖子中包含更多资源

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

x
  • TA的每日心情

    2021-9-20 08:09
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2021-8-25 03:52:19 | 显示全部楼层
    能出个视频就好了,我连用什么软件转换都不知道

    该用户从未签到

    发表于 2020-2-3 15:02:57 | 显示全部楼层
    Thanks for your great work.
  • TA的每日心情
    开心
    2022-4-14 08:13
  • 签到天数: 71 天

    [LV.6]常住居民II

    发表于 2019-8-17 13:05:34 | 显示全部楼层
    兄弟,LDOCE6好像用不了哦。
  • TA的每日心情
    无聊
    2019-6-22 20:04
  • 签到天数: 75 天

    [LV.6]常住居民II

    发表于 2017-12-25 15:53:29 | 显示全部楼层
    请问各位有没有 牛津高阶英汉双解第八版 给mac用的呢

    该用户从未签到

    发表于 2017-9-10 10:40:58 | 显示全部楼层
    qunwang6 发表于 2017-9-9 20:01/ U' M. `. z* Y! e- a6 s
    用ultraedit编辑器打开,正则替换

    9 D1 {% @' K# P1 t多谢大神,已经成功制作了!!!

    该用户从未签到

     楼主| 发表于 2017-9-9 20:01:31 | 显示全部楼层
    本帖最后由 qunwang6 于 2017-9-9 20:03 编辑 ) V4 L. B: c5 J; Y
    colin00 发表于 2017-9-8 15:31
    - m8 s/ S. e" v0 C' e) y& e" \$ [谢谢大神,新版本貌似不能删除空格,删除了就没用了;xml文件很大,不知道为什么用编辑器打开存储后老出 ...
    % t: q/ y( M; Q  t2 R# z

    8 O3 A; k) z6 }8 G3 l4 K用ultraedit编辑器打开,正则替换% j* D" @& w, E2 y) c0 l/ y. f! d

    该用户从未签到

    发表于 2017-9-8 15:31:58 | 显示全部楼层
    qunwang6 发表于 2017-9-7 23:111 t) Q1 v2 `- E8 f
    不支持javascript,把和里面的内容删掉,单独用一个单词测试编译试试。另外"/Developer/Extras/Diction ...

    ) @, u8 ?" |# K) _谢谢大神,新版本貌似不能删除空格,删除了就没用了;xml文件很大,不知道为什么用编辑器打开存储后老出现 invalid string length 的错误,所以想借助终端的 sed 命令批量修改,但是又不知道该怎么删除这种 html 标签和中间内容,大神指教下吧~~

    该用户从未签到

     楼主| 发表于 2017-9-7 23:11:17 | 显示全部楼层
    本帖最后由 qunwang6 于 2017-9-7 23:12 编辑
    & b' t2 W$ n; I, c( e) G
    colin00 发表于 2017-9-7 13:15
    9 T8 Y# H* y6 S1 j大神,我在转这部Collins的时候出现了问题:
    : [, K7 W) ~9 x% ?6 J% _3 q: U9 z
    - `, T+ U8 k% m
    不支持javascript,把<script></script>和里面的内容删掉,单独用一个单词测试编译试试。另外"/Developer/Extras/Dictionary Development Kit"/bin"/build_dict.sh"路径里有空格,建议去掉。

    该用户从未签到

    发表于 2017-2-26 22:07:37 | 显示全部楼层
    太好了支持一个一定要顶非常实用

    该用户从未签到

    发表于 2017-2-24 13:04:15 来自手机 | 显示全部楼层
    感谢大师的作品!
  • TA的每日心情
    开心
    2025-1-7 17:15
  • 签到天数: 773 天

    [LV.10]以坛为家III

    发表于 2017-2-22 07:17:52 | 显示全部楼层
    有没有OSX to MDX的方法

    该用户从未签到

    发表于 2016-12-16 18:11:38 | 显示全部楼层
    楼楼xcode8是不是不可以用啊?

    该用户从未签到

    发表于 2016-11-28 09:54:42 | 显示全部楼层
    micangel 发表于 2016-11-27 17:53
    8 g  E4 b7 M2 w7 [才看到大神的回复.已经转头的欧路Mac版的怀抱. 用Anki的Word Query插件可以实现制卡直接同时导入多本Mdx  ...

    + p2 {' J, {% W! s支持楼主!!!
  • TA的每日心情
    开心
    2023-2-17 00:10
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2016-11-27 17:53:17 | 显示全部楼层
    qunwang6 发表于 2016-10-30 22:15
    : \3 s- I" @$ Y( t+ D4 ~/Applications/Utilities/DictionaryDevelopmentKit//bin/build_dict.sh: No such file or directory1 r2 ]4 m3 b4 G* ^  ]
    检 ...

    & }1 F' ^. q9 ~( I: x, E3 G' m才看到大神的回复.已经转头的欧路Mac版的怀抱. 用Anki的Word Query插件可以实现制卡直接同时导入多本Mdx dict的释义,已经玩High了.这个错误还真没注意到,谢谢大神, 方法mark. 回头再试一遍,当是学习.

    该用户从未签到

     楼主| 发表于 2016-10-30 22:15:24 | 显示全部楼层
    micangel 发表于 2016-10-29 17:02
    ( n7 i- M- V! M! t3 Z5 U"""/Applications/Utilities/DictionaryDevelopmentKit/"/bin"/build_dict.sh"  "abc" "abc.xml" "abc.css" ...
    7 k8 v0 R0 f% y$ N7 a  A; K5 d
    /Applications/Utilities/DictionaryDevelopmentKit//bin/build_dict.sh: No such file or directory
    8 B  N! m  z3 c& z  ?检测一下文件的路径" F/ e$ x6 |  `! {
  • TA的每日心情
    开心
    2023-2-17 00:10
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2016-10-29 17:02:36 | 显示全部楼层
    """/Applications/Utilities/DictionaryDevelopmentKit/"/bin"/build_dict.sh"  "abc" "abc.xml" "abc.css" "abc.plist"9 _4 _+ S1 v6 M, C$ P/ f* C
    /bin/sh: /Applications/Utilities/DictionaryDevelopmentKit//bin/build_dict.sh: No such file or directory+ a* b, q( b' p. l0 @# r1 x; r- y4 Z
    make: *** [all] Error 127$ x" ^$ A( ^3 m
    到make这一步时出现这个问题,求大神现身.8 e& `& X+ D5 u( t0 e

    该用户从未签到

    发表于 2016-10-29 14:22:58 | 显示全部楼层
    谢谢楼主努力,提供好资源。

    该用户从未签到

    发表于 2016-8-21 22:26:55 | 显示全部楼层
    谢谢了,大神。
  • TA的每日心情
    擦汗
    2021-3-14 12:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-7-15 20:12:13 | 显示全部楼层
    支持一下开源项目
  • TA的每日心情
    无聊
    2021-1-15 05:13
  • 签到天数: 271 天

    [LV.8]以坛为家I

    发表于 2016-3-28 17:18:45 | 显示全部楼层
    qunwang6大神, 按照您的方法使用PYGLOSSARY时碰到了问题, 能否请您抽空赐教?
    4 ?( T) W' v- c. |: O具体请移步: https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-28 16:25 , Processed in 0.029495 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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