掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 122|回复: 8

[索引] 安卓版GoldenDict:仅有页面首单词索引的图片词典查词

[复制链接]

该用户从未签到

发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 chigre3 于 2026-7-13 02:02 编辑
# `* r7 Q& A0 J7 y# [: f
[设想]一种新的词典格式[专为图片版词典设计]
) y. ~" M" ~+ }1 k7 R" C! z" c8 Mhttps://www.pdawiki.com/forum/fo ... hread&tid=22035 (出处: 掌上百科 - PDAWIKI)
% y+ t1 u5 N% e4 H( X
6 v1 B2 B; @, ~+ W
没想到最早的讨论帖子都过去这么久了,当时停留在桌面版GoldenDict可以通过外置的python代码实现图片词典的查词和图片显示。
) p* w& x4 B& m1 E* ?现在将功能诉求告诉DeepSeek,让它帮忙写了些JavaScript代码,考虑了很多细节并反复修改优化,最终让这个功能在Android端的GoldenDict也较好地实现了。
' Q; R6 Y1 V, p, V% x当然啦,最好的就是APP本身的搜索框那里就能支持是最好的(DictTango要是加上这个功能就好啦~~)0 e, p% j  w0 k2 g. b0 m* g3 s
这次提供了工具和例子,有需要就请拿过去用吧。
6 I5 l9 `* r  x3 A& w! M+ L* j3 @
2 _! Y" i* w6 V$ t8 P) b, }
- G9 b+ d: f. i4 w! M简单介绍:8 c1 m. n+ f' V& d2 _- Y2 I9 @
0. 支持西文词典(一个词条一个页面),也支持中文词典(一个词条多个页面,如多音字"参")。6 B6 M" q1 h4 }5 u1 v5 M0 w6 ]
    中文词典搜索结果若有多个,默认显示第一个结果所在页面,并显示结果列表1.2.3.4以便点击查看
' Q" w1 I1 x" `- K0 u4 f" s% R1 K: \, ^  t/ k/ Q' l
1. 查询功能入口暂时放在特定的"picdic"这个入口词条
( i/ [# b$ [4 g# h+ P& Q1 Q" g. f/ D2 i  P; n7 `4 d
2. 'picdic'入口,默认显示正文第一页
/ f1 o: g4 A1 |6 b6 E" |4 k& {; G, Z9 c5 ^) P! K( m3 b: H* u
3. 默认模式下,可对图片进行以下操作:$ W! t* w- i: p
(1)单击:【翻页】左侧1/3→上一页;中间1/3→开启按钮功能区;右侧1/3→下一页
8 e; g( w  [- P  \(2)双击:【放大;开启允许图片拖拽浏览;开启按钮功能区】单次放大倍数1.75,超过5倍返回100%屏幕宽度
4 p7 Y) y' z) u- Y$ i4 r: ]# E9 b2 p, S
4. 按钮模式下,可对图片进行以下操作:; M3 ]4 k+ l2 d8 g1 b1 F: H3 v2 d$ H
(1)拖拽:方便拖到自己想看的内容区域& z( e; g) P8 j0 ]) f) T
(2)双击放大:单次放大倍数1.75,超过5倍返回100%屏幕宽度2 }5 e$ W1 W( L7 [5 z2 b6 j# U
(3)单击功能按钮:【上一页】 / 【下一页】 / 【关闭】 / 【放大】/ 【缩小】& |8 g' s& Y8 V( o# j! i
    A. 图片已经放大的情况下,翻页显示新的图片大小也一致。
: T+ C. O" r" l8 Y! f    B. 模仿阅读逻辑,下一页按钮,图片会拉齐到左上角;上一页按钮,图片会拉齐到右下角。) m: W% K; N0 Q; I6 L8 a
    C. 关闭X:关闭功能区,返回初始页面状态6 l& h& w9 x7 a+ @& S* \7 V' p: t4 ~
    D. 放大/缩小按钮:+0.5 或者 -0.5 scale数值% M* E' z3 a2 s# n/ R# X4 p
3 I- ^7 U9 v& s8 g' d
7 G( S8 M' x  j6 l
GoldenDict Android 以前还在Play市场,是付费软件。现在众所周知的原因,被下架了。* x! ]! }. u! v$ C
作者都不更新了,也提供了免费下载和激活的方式:http://goldendict.mobi/  具体看网页上操作说明吧
1 f, f1 s( U- k& [下载最后的版本,安装后用软件显示的device id,去网页上获得 license文件('goldendict-key.txt')放到goldendict文件夹下。
- l- I7 m+ L, i$ N* e
2 a5 d' g1 N7 G% ], ~! L, V& v
8 a* \6 h, f7 x" x" \1 u
( Q1 J1 B# i  G请自行下载,解压后,不可修改任何文件名,复制到手机内部存储\GoldenDict 文件夹下
; p# U" G8 k5 U# @9 w- _(词典ZIP资源文件的ID是根据‘路径和文件名’得到的MD5 HASH码,已经写进了html和js文件中,固定了放置的路径和文件名)" t2 ~& }7 M' K9 k
. l; u" \1 \8 }4 x" V3 h
DOWNLOAD URL:
0 n0 I+ N: b* w8 O1 D8 s( u
+ R& W- m1 h, y6 x2 J1. PicDic_EN-ZH_RHWCD.bmp                词典icon. ?9 _1 ]1 c2 X% T) ]0 Y. ^
2. PicDic_EN-ZH_RHWCD.dict                Stardict格式,'picdic'入口词条- t# L# j* R3 F
3. PicDic_EN-ZH_RHWCD.idx                Stardict格式,'picdic'入口词条
$ c# H' h& T4 @$ }! h8 b7 Q4. PicDic_EN-ZH_RHWCD.ifo                Stardict格式,'picdic'入口词条。.ifo可以用文本编辑器修改词典信息" i$ ?/ i! e  K

! j1 S6 y$ j9 A$ s, N5. PicDic_EN-ZH_RHWCD.dsl                Abbyy DSL格式,空壳占位。这个文件的文件名计算得到的MD5 hash值已被写入 PicDic_search.js 的 PIC_RESOURCE_ID)
. Y) o/ ?/ v; Z2 ~7 ]6. PicDic_EN-ZH_RHWCD.dsl.files.zip                Abbyy DSL格式,空壳占位,所有词典图片的资源包【】5 P4 v$ I) F, U7 H) `/ a
/ E/ }- D7 k+ R7 N
7. PicDic_EN-ZH_RHWCD_index.dsl                Abbyy DSL格式,空壳占位。
/ a$ ^+ W% I8 z8. PicDic_EN-ZH_RHWCD_index.dsl.files.zip                Abbyy DSL格式,空壳占位,资源包(CSS+INDEX索引+查词js)。为方便修改,不和图片一起打包
+ o* T; p: u' w# V  ^# L5 U7 G- g→→(8.1 PicDic_EN-ZH_RHWCD.css        入口词条'picdic'的CSS)
3 J* D3 _6 ?8 U, |→→(8.2 PicDic_EN-ZH_RHWCD_index.js                词典的INDEX数据)8 p( {+ H! |5 |# p, N7 A
→→(8.3 PicDic_search.js                后端查词和调用图片显示等所有功能的通用js代码,这个是核心啦,其他APP要支持就靠这个啦)
  O( z: e0 D/ T& v) ?6 r) _9 X
4 B/ M' f! M4 ]  ^, `& v2 n6 o9 o( k' {" \: l( Y7 S: P/ b' {( ]; \% ^0 W
原始index文件结构简单(页码\t内容),举例如下,可使用python代码直接转为'PicDic_EN-ZH_RHWCD_index.js'
+ ~  J# N! [* m. P9 N代码也附在这儿了:( p/ H# q3 I' q8 ~; o9 ]$ K) U+ Y( J
9 ^' ]. V( r: x/ t
0000_00_00        封面
* R& s3 E9 q' l. C- I: o0 K0000_00_01        内封* e7 O# j9 O; D7 r# z" }0 L
0000_00_02        版权
3 U* B) K+ p" D9 X& R+ b$ o% C: n0000_00_03        3 R. l$ I# {5 U0 o( m& j0 K4 z6 p, O
0000_00_04        原书编写者名单+ x3 N  Q8 k7 R* Z
0000_00_05        编译组名单- x: W% \; h0 {; Y3 k1 d* I
0000_01        编译者前言4 h5 @( T  O# g+ h; {+ A" M( K
0000_02        # K3 i2 _, K, z! ~% t9 g6 G7 g
0000_03        原书修订版英语序言
; \: C4 z) ~6 u) g0 ^2 o0000_04        原书第一版英语序言
8 l( @0 h0 H3 b( z% Y; ]0000_05        印欧语系语言3 k( M; T/ L3 T; d# l  F; ]& Z
0000_06        英语简史
( H: F- M4 }& E$ q8 z# Z3 P- c1 X1 t0000_07       
# b. s) G* f. l5 ~5 _% ]0000_08        " m# b; Q8 L, g& g; y- d
0000_09       
) S4 a, f9 M2 E4 W0000_10       
' [8 P  U) {; g  [% {8 y; ~% F0000_11       
: y" x# w& H( g0 `$ w$ c0000_12        用法说明
- z# z0 B  B0 {! z! Z' j" _0000_13       
+ e5 u/ F; f2 m# e' y0000_14       
0 C; E- {7 S4 {" Q. z0000_15        2 k5 N) O+ o/ L+ x) @+ D' M
0000_16        $ c# k. K! \# c4 }5 Y
0000_17        美英音标对照表
0 Q; L0 `& ?% E* N( S/ J0000_18        . q( _4 W* c/ c, q. B) [+ Y3 S
0000_19        目录
: h5 M$ y. C9 u5 ~5 @: q( L; n$ L3 U0001        aalst
# V% R2 X' h1 I) t! j/ V0002        abandon
: s: R; J% K% u/ c0003        abdicate
- ~" R; ~, }8 N, D0004        abhor" G, }2 l/ ^9 i1 g
0005        ablative absolute8 f, ^1 `1 a; N' Z: r# I) T- p
0006        Abominable Snowman+ ]" N' v* R! X1 Z# ]
0007        ab ovo
" _) N; w7 A: O5 M0008        absence
/ L4 m7 w, S# }0009        absolve
) S7 d% X: G+ c) f0 s  r5 {0010        abstractive7 }2 \2 Z, P+ G9 `
0011        abysm
& J8 a* ^4 ^" F7 L6 U0012        acarid
& s2 }$ z. J* j- j1 o4 V0013        accept6 R! Q, ~3 [' S% o8 C
0014        acclaim( W$ I8 o4 f- Y% m5 s9 p
0015        accordingly& H4 S& Q; _* S/ X6 g
0016        accumulate/ L9 p0 ?+ Z: U  V
.............................
# J5 _0 a; \# ]# ~/ u% I8 ^
- A$ ?1 {# ]: S8 X  A' l( B; {# t2 i" L" T
----------------------------1 J5 w; x) c$ X6 ]; @& J
其他有用的DIY相关信息:! S7 d4 k0 \4 c. s
1. MD5 HASH计算('路径/文件名', 不包括''):在线版 https://www.md5hashgenerator.com/  当然也可以CMD命令得到(问下deepseek就知道啦)8 C! g- E  Q/ ~0 f. k) z
2. TAB文本转STARDICT:需要安装pyglossary,然后CMD命令行运行:pyglossary PicDic_EN-ZH_RHWCD.txt PicDic_EN-ZH_RHWCD.ifo --read-format=Tabfile --write-format=Stardict
7 H$ h3 i; C+ s# K3. 暂时就这样吧$ v/ z* R3 G  W

本帖子中包含更多资源

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

x

该用户从未签到

发表于 前天 23:32 | 显示全部楼层
咋支持中文词典的呀?按音序推断的吗?

该用户从未签到

 楼主| 发表于 昨天 00:32 | 显示全部楼层
本帖最后由 chigre3 于 2026-7-15 00:37 编辑 , K# K9 E0 B# a* G* }. P5 m
" W3 F) v; S  |3 m
--------------------------! ]- R9 L( y5 A9 k
如果词条形式是:中文→页码(1个或多个),那就下面举例的情况。
2 R( @. Y* M6 l3 X& c如果词典本身是按照拼音顺序排列的,那也可以录入:拼音→页码,就类似西文处理的方式了(针对拼音,js后端还需要特别处理,使得排序正确吧)* [( ^7 v7 h; N
' I3 m' s- |" A. `; u
* k3 B2 D$ p! f
直接举例吧,用下面的文件替换(只是把原来英文的索引文件后面加了-en,把示例的中文索引加了进来,图片还是兰登的)& H$ f* h/ C. p0 z6 F' u2 s& }; w
【PicDic_EN-ZH_RHWCD_index.dsl.files.zip】 / V% z) o2 s" V3 ^; B2 A/ J

1 _0 R7 u( w, z8 @2 S3 T3 D8 u- @$ n9 }# @/ J& d5 M
        "阿": ["0001", "0011", "0015", "1000"],0 G/ r  Q" \  c3 i# M
        "阿门": ["0016"],
5 ?9 M# [1 O: D: {: u6 X* b2 i8 |7 d        "阿姨": ["0008", "0105"],
9 u7 m' c! d7 T! s  h% p        "啊": ["0002", "0010", "0100"],( i& t" {* S& u/ X
        "吖": ["0003"],
7 A1 ^- E9 w4 I# c        "腌": ["0004"],7 `+ H( Y$ \* ]# K: ]9 X& r
        "挨": ["0005"],
1 ^3 v2 a& b! S& d, p  K% R5 z        "唉": ["0006"],
1 _+ f/ Q4 W. }) d        "哀": ["0007"],2 W% N0 i9 }, t+ }! n* m
        "皑": ["0008"],

  F" d! M  ~( {! y" r7 U( f
: H5 m* U& K- \' v- O- b! v2 D4 k4 I; R2 x8 j9 G
在'picdic'查询界面,输入‘阿',就会出现 ① ② ③ ④,& [  @4 L( a6 S1 D6 w. z0 z. ^% B
分别对应0001,0011,0015,1000这4个页面,默认显示第一个结果
0 @6 e& a. J; O' P+ z4 v点击其他序号就显示相应页面。6 p; X7 f+ K4 \7 K0 F
图片浏览功能很方便了:翻页/放大缩小/拖动(当然,没有像浏览PDF那么方便)& t6 q3 J" c( v2 y. r' {

本帖子中包含更多资源

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

x

该用户从未签到

 楼主| 发表于 昨天 00:43 | 显示全部楼层
实际就是:搞了一个统一格式format的索引式图片词典(无论是只有每页页首单词,或者是详细索引,不论中文还是英文索引)
' U) E9 v  c" g' y/ R前端展示放在了goldendict的‘picdic’词条下,- I0 g: p& Z' l* R
后端js搞定排序定位/显示结果和图片/图片操作定义等/ O' `6 Q$ _6 ]; H3 A5 i
3 w* b( H; M* l  i9 ~# Z
如果有手机端APP集成了这个功能,也就是增添了对于这个统一格式format索引图片词典的支持,
* L4 A2 [9 v7 e) q. b前端就直接是APP搜索入口,和其他词典一样查询啦,同时显示,那样最好啦。

该用户从未签到

 楼主| 发表于 昨天 01:14 | 显示全部楼层
本帖最后由 chigre3 于 2026-7-15 01:17 编辑 / H: E4 U+ ~- j' R( e( X/ q
- }/ y3 @& k7 Y1 E& G0 \
20260715:
2 _# `, y% c0 u% ]/ Y1 t7 F2 D# _功能增强:& P: c/ ^8 n, F& K
1. 增设配置文件 picdic_display.ini(也还是js格式,放了常用设置选项)" ]3 ?- W7 N" b0 S' ?+ F$ |
2. 增加图片显示时预先加载前后页的可选功能(翻页浏览的感觉更丝滑了)
: c3 H1 @" g5 D. o3 l" v4 d2. 增加默认模式下的左右滑动翻页功能(手指划一划翻页,很符合手机上操作啊)

该用户从未签到

 楼主| 发表于 昨天 01:29 | 显示全部楼层
klwo2 发表于 2026-7-14 23:32  a& P9 L5 M# m& W) a) K
咋支持中文词典的呀?按音序推断的吗?

) z' T/ [1 w9 u) Z我又想了下,就是如果一本全新的中文词典,只录入了(拼音→页码)这样的最简单形式的索引。对这样的索引词典,如何输入中文后去定位页面呢?. G# V2 \2 C* q
有python包,刚刚去了解了下,可以实现输入中文,转为拼音(多音也可以),然后用pinyin去定位页面。  Z2 E9 F7 Q# S% d: Z! f' q  C3 e
6 z& e3 B+ _$ i9 G
js有没有这样的功能库我需要再查一下。其实没有,也可以自制一个数据库用来转化咯。

该用户从未签到

 楼主| 发表于 昨天 04:32 | 显示全部楼层
功能升级:
* X* {4 H: I+ k0 x. i2 u, V: h支持索引类型:拼音,汉字,英文(西文)
7 {) F* O9 o6 s4 L对于中文词典,只制作了拼音索引,也可以支持了2 A: R) I, Q) L) p; H
-------------------------------------/ S6 N* m$ p1 W$ ~3 W6 I( O
输入        索引类型        行为        结果
/ k6 J. F! h+ I"参"        pinyin        取所有读音(can1, cen1, san1, shen1)        合并四个读音对应的所有页面: w5 a8 }/ A  s* p
"参加"        pinyin        取首字 "参" 的上下文读音 can1        仅匹配 can1 对应的页面
; x0 t7 X! K3 D6 n3 w"中心"        chinese        二分查找精确匹配 "中心"        返回 "中心" 对应的页面& Y9 V3 j: Q5 M1 V+ w
"center"        english        二分查找精确/前缀匹配 "center"        返回最接近的页面& J9 x; ^% F/ t1 ^9 c9 t
"can1"        pinyin        二分查找匹配键 "can1"        返回 "can1" 对应的页面

该用户从未签到

发表于 昨天 19:29 | 显示全部楼层
chigre3 发表于 2026-7-15 04:32
/ u1 _7 l8 O! n! X3 G, }功能升级:
2 d- p! D0 y9 h8 ]1 D9 |支持索引类型:拼音,汉字,英文(西文)
7 s% H+ e' J/ V* y/ u3 g对于中文词典,只制作了拼音索引,也可以支持了
% |$ [& e2 ]6 W, J
我想来想去,你这套东西可能最适合《古今汉语词典》,因为它是按音序排的,收词量也算大. ~5 P+ y5 C$ W
* g9 P, R4 Z! Z: G. X2 m
也适合《现代汉语大词典》——不过这套书大家都想要精确索引
# g3 y% e/ E6 f+ b8 U  T, b9 q6 d1 s: W( y
它暂时不适合按部首排的,或者按四角号码排的
3 M9 S, e4 L0 T9 m0 G# U, I/ U$ S3 D: v
我没工夫研究这个只是留言给感兴趣的朋友

该用户从未签到

 楼主| 发表于 19 小时前 | 显示全部楼层
klwo2 发表于 2026-7-15 19:29
% |; v/ T" d9 g6 y; m我想来想去,你这套东西可能最适合《古今汉语词典》,因为它是按音序排的,收词量也算大. \. |5 {0 D0 D% z) C
3 }: F: E  ^- \0 N: I, M
也适合 ...

8 c. |( {- _1 l7 H3 c) c我是觉得那些没有文字版的外文词典和中文词典都通用呀
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2026-7-16 20:31 , Processed in 0.022004 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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