TA的每日心情 | 开心 2018-5-24 00:07 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
本帖最后由 Arran 于 2018-5-24 03:13 编辑
( G x0 s& F4 K+ l2 @2 i! ?3 E- V2 M6 y. K" k% b/ u
先说结论,把附件解压得到的article-style.css放到~/.goldendict/下面就好,windows应该是%APPDATA%/goldendict7 c8 b6 c1 l3 w# Z- a$ n+ Z9 M( e
其实就是把官方的article-style.css第450行关于.dst_opt的内容从display:none改成了display:inline.+ H- x) M1 j+ O$ \
8 U( M' d5 f6 J4 ? d
下了一个dsl版本的longman DOCE 5th,然后发现好多内容是白的,如下图。
3 c: i& ]6 w: l
- W5 `$ Y* k# y! E4 {. E* s* y9 K$ O" B1 G
最开始我以为是字典下坏了,不过语音什么都是正常的,能清晰地听到“apple pie”,然后我就把dsl.dz解压打开看了下,没问题呀,有这个短语。
& P8 j: Q, K/ z# f1 h3 \6 m! @" B8 E" i5 l7 x* h9 Q0 g
' H2 T( {9 V* v( n7 Y/ N6 r关于怎么打开dsl.dz有够折腾的- -
3 H9 t8 i1 L6 [5 k6 j7 X, L
) I" b: Y' Z% O* n# M# c后来发现mac版的goldendict好像是用的mac自带的webkit内核浏览器控件,自带一个“审核元素”,看到一个很可恶的none
. e; s! |& E/ y5 u: i H2 w6 k! Q% q" B) [% F5 r" V3 R
o- H2 {+ F, B5 X
通过元素审查器查看css文件以后,第一句话就是
1 q) a# I& d1 s' W* q8 h5 I<!-- Built-in css -->
; m a+ _! X; ]/ _然后我去github上看了下代码库,是内置的article-style.css,本来我以为这种资源文件应该会被放在application包内的某个文件夹下面,找了一圈发现并没有,应该是被QT直接嵌到某个静态资源文件里面了。2 K' L6 A& z O, H+ }- R8 I8 C( O
本来打算clone下来修改好从新编译下,后来发现他存配置文件的目录~/.goldendict下面有个style文件夹,猜测是放自定义样式的,放进去以后并没有用,Google了一下应该放到~/.goldendict文件下面,放进去以后真的管用了。
4 p: J1 q7 Z- R# T' {2 p) q$ s" b( U1 y; G
- z$ ~- _9 T# d. a& z% V
下面是打开dsl.dz的过程,可能跟c语言程序有点关系不感兴趣的可以返回了。$ |" M/ L/ n& s( f: K9 M1 D
------------------------------------------------睿智的分割线------------------------------------------
: b5 _; {8 [: Xdsl.dz使用dictzip压缩的文件,打算在mac上装一个。# c' ~ l' @$ f/ U$ |8 i( [4 T! j
从github上clone下来以后发现并没有做mac平台适配,并且6年没更新了,跟着他的INSTALL装了一下,然后就发现他用的libtool编译的。 a& ?, Y0 L) n; P8 c9 X
都知道macOS上面Xcode Command Tools装的libtool和Linux的libtool完全是两个东西,于是装个一个glibtool,接着把Makefile里面,这一行改成。
u' r. N. V" L# x总算是能开始编译了。# w# L# g& ]& }& o H
我不知道写这个程序的人6年前是怎么编译通过的,有一行但是他的代码库里面并没有这个文件,Google了一波说是有个头文件叫<getopt.h>里面定义了函数getopt_long(**),看了一下他确实是用了getopt_long这个函数,于是帮他改成了顺便还加上了。5 ^4 |% N# V: s. y
接着就是一大段的“Undefined symbols”,大量用到了一个"PRINTF(**)"看上去明显是一个自定义宏,但是并没有找到这个定义,Google一下也没找到这个是哪个库的宏。
/ Z4 g7 }% h6 A# c- W本来想算了懒得搞了,不过注意到他PRINTF的用法是- PRINTF(DBG_**, ("**", **))
复制代码 。“DBG”,直觉上讲是DEBUG的缩写,看上去应该是打印debug信息调试用的,于是全部注释掉。+ m* C. n6 S9 s: {9 v' ?
还不错编译完了。
l: a; D3 ~: Q Y N. {接着就是喜闻乐见的"segmentation fault",不过好在在看dictzip用法的时候发现他man写的不错,应该是不打算维护了然后写下来交给别人的。* |6 w y$ @9 [6 e% L
description第一句话就是"dictzip compresses files using the gzip(1) algorithm (LZ77) in a manner which is completely compatible with the gzip file format."
+ L; D5 D1 F3 J' i9 y* i# J. ?于是直接mv成.gz,然后gunzip就解出来dsl了,dsl又是纯文本文件能直接打开,虽然大了点,不过好点的文本编辑器都支持分段加载多以打开也是很快的。9 T7 M5 ]0 y# ^- w" M. g. V0 c% ]9 e
emmm....所以,为啥不直接用gzip呢。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
4
查看全部评分
-
|