lbhl 发表于 2019-12-4 16:55:29

欧路词典的致命伤:同一词典多个版本同时安装会打架!

已经发生过很多次,今天又来了。
当我试图测试众多的牛津英汉汉英版本究竟哪个我最喜欢的时候,不同版本开始打架了。我将不同版本拷贝到各自不同目录然后全部拷贝到 C:\Users\Administrator\AppData\Roaming\Francochinois\eudic
结果发现有的版本排版错位甚至该出的东西都不出来。一开始还以为是那个版本不兼容欧路,谁知当我一次只试一个版本将其他版本删除的时候,这些所有版本显示又都正常了。这,显然和清除缓存无关,因为我每次实验前必清除。

也许这是一个无法解决的问题?如果是这样的话,欧路的确不能用于测试同一词典的不同版本。

希望作者能看到。




独行者 发表于 2019-12-27 00:35:59

本帖最后由 独行者 于 2019-12-27 00:41 编辑

这个问题我在帖子 https://www.pdawiki.com/forum/thread-35617-1-1.html 关于欧路词典的缺点中提过,此问题同时存在于 PC 端和手机端,为了区分不同词典的 CSS 选择器,欧路词典采用的是和 GoldenDict 一样的思路,就是给每个词典的 html 加上随机生成的 ID 做为唯一的 id 选择器前缀,但问题是欧路词典在解析 CSS 时存在缺陷,比如遇到 @charset "utf-8"; 欧路词典就会解析出错,导致生成了非预期的 CSS 文件。例如

原始的 CSS 是
@charset "utf-8";

body {
    margin: 2em;
}

a:hover {
   color: #4372b6;
   text-decoration: underline
}

欧路词典会将其转换成
@charset "utf-8";

body{
    margin: 2em;
}

#ID224342347child a:hover {
    color: #4372b6;
    text-decoration: underline
}
由于 body 前面没有加上 #ID224342347child,此 CSS 文件会影响到全局的 body 标签,进而影响所有词典的样式。

而 GoldenDict 就无此问题
@charset "utf-8";

#gdfrom-2af74dded57c0b4bf1a2e7c76ade8787 .mdict body {
    margin: 2em;
}

#gdfrom-2af74dded57c0b4bf1a2e7c76ade8787 .mdict a:hover {
    color: #4372b6;
    text-decoration: underline
}

尽管我半年前就反馈过此问题,但按照欧陆词典官方一贯的尿性,对于反馈的BUG或建议基本是置若罔闻。
因此如果对于加入了 @charset "utf-8"; 的 CSS 文件最好将这一句都删除,避免欧路词典解析出错。

lgmcw 发表于 2019-12-6 00:10:30

本帖最后由 lgmcw 于 2019-12-6 08:50 编辑

欧路刚开埠那会儿还没有移动版,我就第一时间买了个付费的桌面版。楼主的遇到的问题我在2014年就问过了,底层架构的问题,5年了也不见好。这也是我购买了全平台的欧路而从不使用的原因(除了测试兼容性)。都散了吧。

https://i.loli.net/2019/12/06/ZXL4beHazAgkMSJ.png

我爱深蓝 发表于 2019-12-4 18:56:36

最新版欧路词典有很多问题,所以你若是仅仅测试GoldenDict正好,或者干脆就用GoldenDict

dfliaoyue 发表于 2019-12-4 19:10:06

只说点大而化之的东西,欧路具体啥情况我不知道哈:
每一个词条,其实就是一个html。多个词条同时显示时(不管是同一词典的重复词头还是不同词典),不同的软件的处理大体分为两种:
(1)每个词条都是独立页面;
(2)所有词条在同一页面,即作为一个大的html页面的不同区块。
第一种情况,一般css/js之类的不会打架。第二种,容易打架。
对于第二种情况,css还好,像goldendict会给每个词典一个id,然后把css里类型都换成这个词典id下的类型。js嘛就比较头疼,我一般最多也只将js作用范围精确到类型(给某个词典的词条整体加个类型,然后再其中处理),但不会说针对不同版本还做进一步区分。

maixiu 发表于 2019-12-4 20:51:21

我得有道在线和朗文冲突呀,开了有道在线,朗文就出问题

littleanimals 发表于 2019-12-5 09:26:50

对对对,排版错的一塌糊涂。有一次直接卸了重装。
ios很麻烦啊阿啊,要重新倒入。

lbhl 发表于 2019-12-5 09:54:38

dfliaoyue 发表于 2019-12-4 19:10
只说点大而化之的东西,欧路具体啥情况我不知道哈:
每一个词条,其实就是一个html。多个词条同时显示时( ...

有一点我想了,既然词典软件处理不周全,同一词典不同版本会打架,那么哪怕不同词典也一样会打架。因为只要css javascript用了同名ID标签就可能发生冲突,只不过不同词典之间ID重名概率比同一词典不同版本小很多罢了。

atauzki 发表于 2019-12-5 18:59:49

欧路已经留着bug不修好长时间了

lbhl 发表于 2019-12-6 01:00:58

lgmcw 发表于 2019-12-6 00:10
欧路刚开埠那会儿还没有移动版,我就第一时间买了个付费的桌面版。楼主的遇到的问题我在2014年就问过了,底 ...

这种底层构架的问题,不是说想改就能随便改得了的,要改要花巨量的精力时间。这是大手术,除非病入膏肓都没人买没人用它了,他们才可能改。想想ANGULARJS改到ANGULAR,底层也改了,那是巨大公司的产品,人家有这个资金和能力。小公司小软件折腾保不起的。
我也想换GoldenDict,但是在我笔记本上装了150部MDX,GoldenDict远比欧路卡得多。

lgmcw 发表于 2019-12-6 01:02:11

本帖最后由 lgmcw 于 2019-12-6 01:04 编辑

lbhl 发表于 2019-12-6 01:00
这种底层构架的问题,不是说想改就能随便改得了的,要改要花巨量的精力时间。这是大手术,除非病入膏肓都 ...
GoldenDict确实是卡得不行。不过我正好以此为借口把常用列表精简了不少。常用列表,62部,查常见词还是卡,但是勉强能用了;不过还好生僻词查得多,就不怎么卡了。

lyncms 发表于 2019-12-6 18:51:35

lbhl 发表于 2019-12-6 01:00
这种底层构架的问题,不是说想改就能随便改得了的,要改要花巨量的精力时间。这是大手术,除非病入膏肓都 ...

150部词典,我的天,这能看得完吗{:4_104:}

cici920 发表于 2019-12-9 10:43:06

lbhl 发表于 2019-12-6 01:00
这种底层构架的问题,不是说想改就能随便改得了的,要改要花巨量的精力时间。这是大手术,除非病入膏肓都 ...

考虑 加个内存

lbhl 发表于 2019-12-27 09:40:22

lgmcw 发表于 2019-12-6 01:02
GoldenDict确实是卡得不行。不过我正好以此为借口把常用列表精简了不少。常用列表,62部,查常见词还是卡 ...

词典软件呈现查词内容的快慢只和要渲染的总量有关,和词典总数并无直接关系。所以,常用词20部词典的内容可能超过100部词典非常用词内容反而更慢。

lbhl 发表于 2019-12-27 09:45:34

本帖最后由 lbhl 于 2019-12-27 09:46 编辑

独行者 发表于 2019-12-27 00:35
这个问题我在帖子 https://www.pdawiki.com/forum/thread-35617-1-1.html 关于欧路词典的缺点中提过,此问 ...
好像这个ID不是随机生成的,而是按MDXBUILDER打包时生成的ID来的。MDXBUILDER软件打包的特点是每次启动后无论打几个包,虽然生成的ID看起来是个随机数,但对所有包都为同一个值不变化。好吧这回欧路又完蛋了,凡是ID为同一个值的MDX它只认一个其余几个都看不到!!!如果有多个MDX要生成,你必须每次启动MDXBUILDER只打包一个然后关闭MDXBUILDER再启动再打下一个包!奶奶的,上次15个词根词缀词典打包害得我搞了十几次累死人哦!

独行者 发表于 2019-12-27 10:14:47

lbhl 发表于 2019-12-27 09:45
好像这个ID不是随机生成的,而是按MDXBUILDER打包时生成的ID来的。MDXBUILDER软件打包的特点是每次启动后 ...

GoldenDict 就自动生成的id,从来没遇到样式冲突。

zack@van 发表于 2020-1-12 10:29:58

词典页面内取词常常不够灵敏。欧路。。无奈用mac

Mademe 发表于 2020-1-15 13:13:13

emmmmmmmmm,这是个问题

liping_wh 发表于 2020-1-20 08:28:57


感谢分享好资源

George... 发表于 2020-3-3 22:10:23

谢谢楼主分享
页: [1]
查看完整版本: 欧路词典的致命伤:同一词典多个版本同时安装会打架!