查看: 4728|回复: 10
打印 上一主题 下一主题

[求助] Getdict的问题

[复制链接]

该用户从未签到

42

主题

1737

回帖

2万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
20641

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2013-9-10 10:07:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大师,我用getdict(Oeasy提供的2.6版)转了一些mdict的字典,基本保持原貌。
有个问题:朗文双解(孤雷版)的单词正常,但是词组都乱了:附图的上面是mdx的排版,下面是转换后的stardict格式的,
只有这种带发音标志的词组乱码,别的都正常。
请教如何解决?谢谢!

2013-09-10_100529.jpg (58.17 KB, 下载次数: 2)

词组乱码

词组乱码

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

2
发表于 2013-9-10 11:53:19 | 只看该作者
本帖最后由 Oeasy 于 2013-9-10 12:15 编辑

孤雷老兄排版的时候,音标包括accent和secondary accent符号都用了金山词霸的音标字体。
white elephant mdx源代码是:
white elephant

<b style="color:blue;font-size:150%">white elephant</b><hr color=blue noshade><FONT color=blue size=+1><FONT face="Kingsoft Phonetic Plain, Tahoma" style="font-weight:normal">7</FONT>white <FONT style="font-weight:normal">'</FONT>elephant</font> <BR><font color=red>&#9689;</font><b style="color:darkred">noun</b><i style="color:darkgreen"> [C] </i><BR><b>1. </b><font>something that is completely useless, although it may have cost a lot of money</font><BR><font color=#ff5000>&#8226; 昂贵而无用的东西:</font><BR><font color=#0044ff>&nbsp;&#187;When the theatre first opened it was widely regarded as a white elephant.</font><BR><font style="color:#039;font-size:90%">&nbsp;&nbsp;那家剧院刚开张时,大家都认为它是个奢侈的摆设。</font>
</>

用GetDict转成StarDict格式就成了:
white elephant        \n<b style="color:blue;font-size:150%">white elephant</b><hr color=blue noshade><FONT color=blue size=+1><FONT style="font-weight:normal">&#716;</&#643;O&#331;e>white <&#643;O&#331;e style="font-weight:normal">'</&#643;O&#331;e>elephant</font> <BR><font color=red>&#9689;</font><b style="color:darkred">noun</b><i style="color:darkgreen"> [C] </i><BR><b>1. </b><font>something that is completely useless, although it may have cost a lot of money</font><BR><font color=#ff5000>&#8226; 昂贵而无用的东西:</font><BR><font color=#0044ff>&nbsp;&#187;When the theatre first opened it was widely regarded as a white elephant.</font><BR><font style="color:#039;font-size:90%">&nbsp;&nbsp;那家剧院刚开张时,大家都认为它是个奢侈的摆设。</font>\n

导致,StarDict的这个条目,内容字体和headword一样大。
问题在哪儿,一看便知,要解决的话。
一、改改mdx的源码就行,其实学习学习mdx的格式,再学学lingvo dsl的语法,花点时间,可以把mdx转成很漂亮的dsl。
可参考:http://lingvo.helpmax.net/zh/%E6 ... %E8%AF%8D%E5%85%B8/
主要工作就是查找、替换,当然,过程中可能会遇到一些神奇的、事先没想到的问题。
二、修改StarDict格式的源码txt,用CvtStarDict2Txt.exe(http://ishare.iask.sina.com.cn/f/7635073.html)把StarDict格式转成txt,把里面&#643;O&#331;e替换成font,再用Stardict词库编译器(http://code.google.com/p/stardictproject/downloads/list; [url]http://code.google.com/p/stardict-3/[/url])把源文件compile成StarDict格式应该就行了。
三、yhssdl大仙升级下GetDict?{:10_301:}

该用户从未签到

42

主题

1737

回帖

2万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
20641

灌水大神章小蜜蜂章笑傲江湖章

3
 楼主| 发表于 2013-9-10 12:00:05 | 只看该作者
谢谢版主。本人小白,能否明示一下,是不是把所有的“&#643;O&#331;e”都改成“font”啊?

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

4
发表于 2013-9-10 12:01:56 | 只看该作者
belleyeah 发表于 2013-9-10 12:00
谢谢版主。本人小白,能否明示一下,是不是把所有的“&#643;O&#331;e”都改成“font”啊?

应该是,试一下吧。

该用户从未签到

42

主题

1737

回帖

2万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
20641

灌水大神章小蜜蜂章笑傲江湖章

5
 楼主| 发表于 2013-9-10 12:19:22 | 只看该作者
我用getdict转出了mdx源码,请问版主第一种方法如何实现(修改mdx源码)?非常感谢!!

该用户从未签到

42

主题

1737

回帖

2万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
20641

灌水大神章小蜜蜂章笑傲江湖章

6
 楼主| 发表于 2013-9-10 12:50:41 | 只看该作者
按照第二种方法,把txt里面的“&#643;O&#331;e”都改成“font”,然后用stardict-edit转换,提示如下
Building...
Warining: line 2139 \\
Convert over.
LDOCE4th_E-C wordcount: 37375
Done!

生成的文件显示如下,排版全没了。请问是哪个步骤出错了?

2013-09-10_125203.jpg (41.06 KB, 下载次数: 4)

stardict

stardict

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

7
发表于 2013-9-10 13:30:39 | 只看该作者
belleyeah 发表于 2013-9-10 12:50
按照第二种方法,把txt里面的“&#643;O&#331;e”都改成“font”,然后用stardict-edit转换,提示如下
Buil ...

Open your .ifo file and change sametypesequence=m to sametypesequence=h, then everything will be perfect.

该用户从未签到

42

主题

1737

回帖

2万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
20641

灌水大神章小蜜蜂章笑傲江湖章

8
 楼主| 发表于 2013-9-10 14:31:10 | 只看该作者
Oeasy 发表于 2013-9-10 13:30
Open your .ifo file and change sametypesequence=m to sametypesequence=h, then everything will be p ...

谢谢!看了一下:
里面缺省值就是h
sametypesequence=h

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

9
发表于 2013-9-10 18:47:39 | 只看该作者
belleyeah 发表于 2013-9-10 14:31
谢谢!看了一下:
里面缺省值就是h
sametypesequence=h

Really? Are you sure?

该用户从未签到

42

主题

1737

回帖

2万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
20641

灌水大神章小蜜蜂章笑傲江湖章

10
 楼主| 发表于 2013-9-11 10:52:02 | 只看该作者
Oeasy 发表于 2013-9-10 18:47
Really? Are you sure?

这个是用getdict 2.6转出的ifo文件:
StarDict's dict ifo file
version=2.4.2
wordcount=37375
idxfilesize=662726
bookname=ldoce4
sametypesequence=h

另外mdx的keyword是不出现在词条的,这样转换出的stardict的keyword就多重复了一次,能否把stardict的keyword“隐藏”或者删除呢?

2013-09-11_105401.jpg (58.25 KB, 下载次数: 2)

对比

对比

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

11
发表于 2013-9-11 12:00:36 | 只看该作者
belleyeah 发表于 2013-9-11 10:52
这个是用getdict 2.6转出的ifo文件:
StarDict's dict ifo file
version=2.4.2

把StarDict源代码txt里
<b style="color:blue;font-size:150%">keyword</b><hr color=blue noshade>(或者你想删除其他内容也行,查找相应内容就行)删除然后重新compile即可。
可以使用正则表达式,我一般用Perl Engine的,
查找
<b style="color:blue;font-size:150%">(?<sub>.*?)</b><hr color=blue noshade>
替换为无内容即可。