在Goldendict-ng中使用zim和slob

是否可能提供source等的slob格式呢?

感觉排版比直接用goldendict访问网站还要好些,但还是有些问题,比如搜 Bougainvillea glabra,结果能重复四次。

怀疑你看到是完整版中文维基吗?事实恰好相反,维基词条的详尽程度超过任何一种中文词典,包括百度百科。

丢到 article.js 里试试

document.addEventListener('DOMContentLoaded', function() {
    const imgs = document.getElementsByTagName('img');
    for (const img of imgs) {
        img.src = img.src.replace('http://upload.wikimedia.org', 'https://i1.wp.com/upload.wikimedia.org');
    }
});
1 个赞

我觉得这很好理解,中文维基百科相当于用台湾人华人华侨的视角看中国,他们看不到国内的市区县,不是很正常吗?搜索下你本地的知名人物,余觉之、吴荣治、赵冠山。截至今年 3 月份,完整版的中文维基百科收录 144 万词条,百度百科收录 2792 万词条。

补充:百度百科还收录了 502 只大熊猫的家谱。对比了下,英文维基收录 54 只,中文维基收录 36 只。 :smile:

感谢感谢,我尝试了一下,代码没起左右,考虑到在CSS隐藏img后也会消耗时间加载,请假ChatGPT尝试了用JS控制不加载图片也没用,感觉还是有难度的。

把你原先用来隐藏图片的 css 删掉

删掉的的,在您那里正常吗

打开控制台看看图片链接有没有被正确替换

1 个赞


article-script.txt (1.1 MB)

没有替换过来,麻烦帮忙看看啦,js文件上传不了,把后缀改为.txt了

在我这里没问题,用的是你给的文件。把其他词典禁用看看(在词典栏对该词典 ctrl + 左键点击即可)

1 个赞

禁用别的词典可能太麻烦。

另外开一个新的Goldendict-ng (portable)文件夹,单独试一下这个slob看看。

1 个赞

是呀,感觉没有必要这么麻烦吧。slob的资源也不太多。

1 个赞

感谢,用您的简繁JS脚本找到原因了,配置文件必须放在首层才起作用


二、ChatGPT:在你的代码中,虽然成功替换了src属性,但图片的srcset属性中的URL仍然指向被墙的upload.wikimedia.org。因此,即使替换了src,浏览器可能仍然使用了srcset中的被墙URL来加载不同分辨率的图片。你可以尝试以下改进方案,确保srcsrcset中的所有URL都得到替换。document.addEventListener(‘DOMContentLoaded’, function() {
const imgs = document.getElementsByTagName(‘img’);
for (const img of imgs) {
// 替换 src 属性中的 URL
if (img.src.includes(‘http://upload.wikimedia.org’)) {
img.src = img.src.replace(‘http://upload.wikimedia.org’, ‘https://i1.wp.com/upload.wikimedia.org’);
}

    // 替换 srcset 属性中的 URL
    if (img.srcset.includes('http://upload.wikimedia.org')) {
        img.srcset = img.srcset.replace(/http:\/\/upload\.wikimedia\.org/g, 'https://i1.wp.com/upload.wikimedia.org');
    }
}

});
非常感谢,我这边也可以加载啦

3 个赞

// 页面加载时自动切换到简体中文
document.addEventListener(‘DOMContentLoaded’, function() {
zh_tran(‘s’); // 默认显示简体
});


习惯中文简体的情况下,在您的脚本基础上加了一行代码自动切换到简体中文,请问GoldenDict有把繁体字的词典转换为简体的功能吗 - #11,来自 Johnny_Van
article-script.txt (1.1 MB)

1 个赞

更新:没有网络、离线的时候,不加载图片、不占版面;有网络的情况下,加载图片
document.addEventListener(‘DOMContentLoaded’, function() {
const imgs = document.getElementsByTagName(‘img’);
for (const img of imgs) {
// 尝试替换 src 和 srcset 中的 URL
if (img.src.includes(‘http://upload.wikimedia.org’)) {
img.src = img.src.replace(‘http://upload.wikimedia.org’, ‘https://i1.wp.com/upload.wikimedia.org’);
}
if (img.srcset.includes(‘http://upload.wikimedia.org’)) {
img.srcset = img.srcset.replace(/http://upload.wikimedia.org/g, ‘https://i1.wp.com/upload.wikimedia.org’);
}

    // 监听图片加载错误事件
    img.addEventListener('error', function() {
        // 图片加载失败,移除该图片元素
        img.remove();
    });
}

});

article-script.txt (1.1 MB)

3 个赞

这个感觉不是特别必要啊,有时第一次点击图片加载不出来,看到有空白的话,再加载一下就行了。直接移除元素的话,就不知道还有图片了。

不是的,断网的情况下才会删除

可以显示在线图片了,挺好!省去好多硬盘空间。感谢!!!

我去下载了一个Wikitaxi。
https://www.yunqa.de/delphi/apps/wikitaxi/index

这个可以导入Wiki的dump,做成可检索的本地数据库。

下载了zhwikisource-latest-pages-articles.xml.bz2 这个文件:

Index of /zhwikisource/latest/
zhwikisource-latest-pages-articles.xml.bz2 20-Oct-2024 17:53 2461577853
https://dumps.wikimedia.org/zhwikisource/latest/

呃,可是导入到一半,失败了。也许这个软件碰到它没处理过的中文生僻字,出乎意料?

为了不浪费我下载的文件,用7zip解压了zhwikisource-latest-pages-articles.xml.bz2来研究。

是一个7.83g的xml,大得可怕。

呃,Emeditor居然还能打开。

搜了一下,明白了原因。

{{header
|title = 史記
|type = 二十四史
|author = 司馬遷
|times = 西漢
(略)
*[[史記/卷007|卷七]] 項羽本紀第七
*[[史記/卷008|卷八]] 高祖本紀第八
*[[史記/卷009|卷九]] 呂-{后}-本紀第九
*[[史記/卷010|卷十]] 孝文本紀第十

这个{后}有特别标记,可能是简繁转换用的,告诉转换程式别转换这个字。

Dump导出的数据没损坏。

但是做zim的人不知道中文《维基文库》有这种特殊标记,写程式处理数据时没考虑到,把这种不准转换的字弄丢了。

1 个赞