安卓版GoldenDict:仅有页面首单词索引的图片词典查词
本帖最后由 chigre3 于 2026-7-13 02:02 编辑[设想]一种新的词典格式[专为图片版词典设计]
https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=22035 (出处: 掌上百科 - PDAWIKI)
没想到最早的讨论帖子都过去这么久了,当时停留在桌面版GoldenDict可以通过外置的python代码实现图片词典的查词和图片显示。
现在将功能诉求告诉DeepSeek,让它帮忙写了些JavaScript代码,考虑了很多细节并反复修改优化,最终让这个功能在Android端的GoldenDict也较好地实现了。
当然啦,最好的就是APP本身的搜索框那里就能支持是最好的(DictTango要是加上这个功能就好啦~~)
这次提供了工具和例子,有需要就请拿过去用吧。
static/image/hrline/4.gif
简单介绍:
0. 支持西文词典(一个词条一个页面),也支持中文词典(一个词条多个页面,如多音字"参")。
中文词典搜索结果若有多个,默认显示第一个结果所在页面,并显示结果列表1.2.3.4以便点击查看
1. 查询功能入口暂时放在特定的"picdic"这个入口词条
2. 'picdic'入口,默认显示正文第一页
3. 默认模式下,可对图片进行以下操作:
(1)单击:【翻页】左侧1/3→上一页;中间1/3→开启按钮功能区;右侧1/3→下一页
(2)双击:【放大;开启允许图片拖拽浏览;开启按钮功能区】单次放大倍数1.75,超过5倍返回100%屏幕宽度
4. 按钮模式下,可对图片进行以下操作:
(1)拖拽:方便拖到自己想看的内容区域
(2)双击放大:单次放大倍数1.75,超过5倍返回100%屏幕宽度
(3)单击功能按钮:【上一页】 / 【下一页】 / 【关闭】 / 【放大】/ 【缩小】
A. 图片已经放大的情况下,翻页显示新的图片大小也一致。
B. 模仿阅读逻辑,下一页按钮,图片会拉齐到左上角;上一页按钮,图片会拉齐到右下角。
C. 关闭X:关闭功能区,返回初始页面状态
D. 放大/缩小按钮:+0.5 或者 -0.5 scale数值
GoldenDict Android 以前还在Play市场,是付费软件。现在众所周知的原因,被下架了。
作者都不更新了,也提供了免费下载和激活的方式:http://goldendict.mobi/具体看网页上操作说明吧
下载最后的版本,安装后用软件显示的device id,去网页上获得 license文件('goldendict-key.txt')放到goldendict文件夹下。
static/image/hrline/5.gif
请自行下载,解压后,不可修改任何文件名,复制到手机内部存储\GoldenDict 文件夹下
(词典ZIP资源文件的ID是根据‘路径和文件名’得到的MD5 HASH码,已经写进了html和js文件中,固定了放置的路径和文件名)
DOWNLOAD URL:
1. PicDic_EN-ZH_RHWCD.bmp 词典icon
2. PicDic_EN-ZH_RHWCD.dict Stardict格式,'picdic'入口词条
3. PicDic_EN-ZH_RHWCD.idx Stardict格式,'picdic'入口词条
4. PicDic_EN-ZH_RHWCD.ifo Stardict格式,'picdic'入口词条。.ifo可以用文本编辑器修改词典信息
5. PicDic_EN-ZH_RHWCD.dsl Abbyy DSL格式,空壳占位。这个文件的文件名计算得到的MD5 hash值已被写入 PicDic_search.js 的 PIC_RESOURCE_ID)
6. PicDic_EN-ZH_RHWCD.dsl.files.zip Abbyy DSL格式,空壳占位,所有词典图片的资源包【】
7. PicDic_EN-ZH_RHWCD_index.dsl Abbyy DSL格式,空壳占位。
8. PicDic_EN-ZH_RHWCD_index.dsl.files.zip Abbyy DSL格式,空壳占位,资源包(CSS+INDEX索引+查词js)。为方便修改,不和图片一起打包
→→(8.1 PicDic_EN-ZH_RHWCD.css 入口词条'picdic'的CSS)
→→(8.2 PicDic_EN-ZH_RHWCD_index.js 词典的INDEX数据)
→→(8.3 PicDic_search.js 后端查词和调用图片显示等所有功能的通用js代码,这个是核心啦,其他APP要支持就靠这个啦)
static/image/hrline/5.gif
原始index文件结构简单(页码\t内容),举例如下,可使用python代码直接转为'PicDic_EN-ZH_RHWCD_index.js'
代码也附在这儿了:
0000_00_00 封面
0000_00_01 内封
0000_00_02 版权
0000_00_03
0000_00_04 原书编写者名单
0000_00_05 编译组名单
0000_01 编译者前言
0000_02
0000_03 原书修订版英语序言
0000_04 原书第一版英语序言
0000_05 印欧语系语言
0000_06 英语简史
0000_07
0000_08
0000_09
0000_10
0000_11
0000_12 用法说明
0000_13
0000_14
0000_15
0000_16
0000_17 美英音标对照表
0000_18
0000_19 目录
0001 aalst
0002 abandon
0003 abdicate
0004 abhor
0005 ablative absolute
0006 Abominable Snowman
0007 ab ovo
0008 absence
0009 absolve
0010 abstractive
0011 abysm
0012 acarid
0013 accept
0014 acclaim
0015 accordingly
0016 accumulate
.............................
static/image/hrline/5.gif
----------------------------
其他有用的DIY相关信息:
1. MD5 HASH计算('路径/文件名', 不包括''):在线版 https://www.md5hashgenerator.com/当然也可以CMD命令得到(问下deepseek就知道啦)
2. TAB文本转STARDICT:需要安装pyglossary,然后CMD命令行运行:pyglossary PicDic_EN-ZH_RHWCD.txt PicDic_EN-ZH_RHWCD.ifo --read-format=Tabfile --write-format=Stardict
3. 暂时就这样吧
咋支持中文词典的呀?按音序推断的吗? 本帖最后由 chigre3 于 2026-7-15 00:37 编辑
--------------------------
如果词条形式是:中文→页码(1个或多个),那就下面举例的情况。
如果词典本身是按照拼音顺序排列的,那也可以录入:拼音→页码,就类似西文处理的方式了(针对拼音,js后端还需要特别处理,使得排序正确吧)
直接举例吧,用下面的文件替换(只是把原来英文的索引文件后面加了-en,把示例的中文索引加了进来,图片还是兰登的)
【PicDic_EN-ZH_RHWCD_index.dsl.files.zip】
"阿": ["0001", "0011", "0015", "1000"],
"阿门": ["0016"],
"阿姨": ["0008", "0105"],
"啊": ["0002", "0010", "0100"],
"吖": ["0003"],
"腌": ["0004"],
"挨": ["0005"],
"唉": ["0006"],
"哀": ["0007"],
"皑": ["0008"],
在'picdic'查询界面,输入‘阿',就会出现 ① ② ③ ④,
分别对应0001,0011,0015,1000这4个页面,默认显示第一个结果
点击其他序号就显示相应页面。
图片浏览功能很方便了:翻页/放大缩小/拖动(当然,没有像浏览PDF那么方便)
实际就是:搞了一个统一格式format的索引式图片词典(无论是只有每页页首单词,或者是详细索引,不论中文还是英文索引)
前端展示放在了goldendict的‘picdic’词条下,
后端js搞定排序定位/显示结果和图片/图片操作定义等
如果有手机端APP集成了这个功能,也就是增添了对于这个统一格式format索引图片词典的支持,
前端就直接是APP搜索入口,和其他词典一样查询啦,同时显示,那样最好啦。 本帖最后由 chigre3 于 2026-7-15 01:17 编辑
20260715:
功能增强:
1. 增设配置文件 picdic_display.ini(也还是js格式,放了常用设置选项)
2. 增加图片显示时预先加载前后页的可选功能(翻页浏览的感觉更丝滑了)
2. 增加默认模式下的左右滑动翻页功能(手指划一划翻页,很符合手机上操作啊) klwo2 发表于 2026-7-14 23:32
咋支持中文词典的呀?按音序推断的吗?
我又想了下,就是如果一本全新的中文词典,只录入了(拼音→页码)这样的最简单形式的索引。对这样的索引词典,如何输入中文后去定位页面呢?
有python包,刚刚去了解了下,可以实现输入中文,转为拼音(多音也可以),然后用pinyin去定位页面。
js有没有这样的功能库我需要再查一下。其实没有,也可以自制一个数据库用来转化咯。 功能升级:
支持索引类型:拼音,汉字,英文(西文)
对于中文词典,只制作了拼音索引,也可以支持了
-------------------------------------
输入 索引类型 行为 结果
"参" pinyin 取所有读音(can1, cen1, san1, shen1) 合并四个读音对应的所有页面
"参加" pinyin 取首字 "参" 的上下文读音 can1 仅匹配 can1 对应的页面
"中心" chinese 二分查找精确匹配 "中心" 返回 "中心" 对应的页面
"center" english 二分查找精确/前缀匹配 "center" 返回最接近的页面
"can1" pinyin 二分查找匹配键 "can1" 返回 "can1" 对应的页面 chigre3 发表于 2026-7-15 04:32
功能升级:
支持索引类型:拼音,汉字,英文(西文)
对于中文词典,只制作了拼音索引,也可以支持了
{:4_94:}我想来想去,你这套东西可能最适合《古今汉语词典》,因为它是按音序排的,收词量也算大
也适合《现代汉语大词典》——不过这套书大家都想要精确索引
它暂时不适合按部首排的,或者按四角号码排的
我没工夫研究这个{:4_109:}只是留言给感兴趣的朋友 klwo2 发表于 2026-7-15 19:29
我想来想去,你这套东西可能最适合《古今汉语词典》,因为它是按音序排的,收词量也算大
也适合 ...
我是觉得那些没有文字版的外文词典和中文词典都通用呀
页:
[1]