折腾一天, 原本计划简复杂单记下来方便本人以后翻查的, 一不小心写了这么长, 于是决定拿出来和大家分享, 如果您发现有任何错误, 请一定指出, 感激不尽!
另外, 如果您觉得这篇东西值得和你的同学分享, 那么请一定在转发时保留上面的文件头, 算是对我码字一天的小小支持吧!
美丽好看的操作系统一直不是我们的目的. 希望这篇文字能协助至少一两个同学从这个 Linux 的中文丑化成绩外面彻底摆脱出来, 而真正投入到应用 Linux 为我们效劳, 应用 Linux 进行开发任务的实质性事情当中.
以下内容包括:
1. 为 Redhat 的两个字体子系统添加字体2. 让 Enlightenment 显示中文3. Java 的中文成绩:
- JBuilder 的中文成绩- J2SDK 的中文成绩- J2RE 的中文成绩
大家挑本人需要的看就好了.
为 Redhat Linux 添加新字体
[注]以下进程在 Redhat 9.0 上测试通过.
准备要装置的字体, 如: simsun.ttc, tahoma.ttf...
依据发行注记里所言分别为核心 X 字体子系统和 fontconfig 字体子系统添加字体:
为核心 X 字体子系统添加字体
[注]以下局部应该对 Redhat 9.0 之前的版本也适用, 由于 核心 X 字体子系统存在于迄今为止的版本中.
"如果你想给你的 Red Hat Linux 9 系统添加新字体,依据使用新字体的字体子系统而定,你必须明白所需步骤。对于核心 X 字体子系统,你必须:1. 创建 /usr/share/fonts/local/ 目录(如果它不存在):mkdir /usr/share/fonts/local/"
- 这一步没成绩.
"如果你必需要创建 /usr/share/fonts/local/,你就必须把它添加到 X 字体效劳器的路径中:chkfontpath --add /usr/share/fonts/local/"
- 如果是刚创建的 /usr/share/fonts/local/, 那么执行这一行命令会提示错误,由于系统在这个目录里找不到 fonts.dir 文件, 然后就不 add.. 不过没关系,这一步跳过去, 在第三步之后做.
"2. 把新字体文件复制到 /usr/share/fonts/local/ 中"
- 照做.
"3. 使用以下命令来更新字体信息:ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale"
- 照做. 然后:1) 把 fonts.scale 拷贝出来一份 fonts.dir.2) chkfontpath --add /usr/share/fonts/local/
"4. 使用以下命令来重新启动 xfs 字体效劳器:service xfs reload"
- 这一步我没成功, 由于我发现 redhat 9 外面没有 service 这个命令. 于是用笨方法解决: 参与 X, 再 startx.
以上这些步骤做完之后, 一切 gtk 1.2 的程序里有关字体的局部 (如 xmms 的字体设置里) 都多出来我们要的新字体, 像 simsun, tahoma. 这时可以在程序外部直接使用了.比方我们让歌曲列表里的中文使用 simsum, 英文使用 tahoma, 可以这样做:
1) 先在 xmms 的 Fonts 里勾上选项 "Use fontsets" - 让 xmms 支持双字节的中文字体;2) 在 播放清单 局部阅读字体, 选择使用 simsum:-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r(不用拷这个, 选上 simsun 它本人就出来了)
对于英文字体的要用 tahoma 就这么来, 一点小技巧:
把这段 "-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r" ^x 剪切下来,再选字体为 tahoma, 呈现这个:
-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
好了, 在前面加个逗号, 把刚才剪切的那段东东 ^v 粘贴在前面成为:
-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r
这么一行, 保存一下, 于是歌曲列表就会对中文使用 simsum, 英文使用 tahoma.再把这行拷下面 Main Window 的字体里 (要勾上 "Use X font"), 这时 xmms 主窗口里的字体 (像那条来回滚动的歌曲信息的字体) 也和歌曲列表里的一样了.
留意, 我刚才说的是程序外部, 就象 xmms 的歌曲列表一样, 而 程序本身, 即 xmms 本人的窗口却还是又粗又大的字体, 这时需要改 gtk 的字体设置:
1) 用 root 账号: vi /etc/gtkrc.zh_CN2) 把原来的:
fontset = "-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1,-*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*"
改成和我们上面用在 xmms 里的字体一样:
fontset ="-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"
3) 保存参与, 关掉 xmms 这些程序, 再重新翻开, 效果就出来了! Enjoy!
为 fontconfig 字体子系统添加字体
[注]以下除了 "图形化地装置字体" 局部为 Rehat 9.0 独有, 其他应该在之前版本也适用, 大家试试.
这局部复杂多了, 看 redhat 9 发行注记:
"把新字体添加到 fontconfig 字体子系统比较复杂明了;只需把新字体复制到/usr/share/fonts/ 目录中即可(个体用户可以把新字体复制到 ~/.fonts/ 目录中来修改他们的个人字体配置)
复制了新字体后,使用 fc-cache 来更新字体信息缓存:
fc-cache directory
(这里的 directory 应该是 /usr/share/fonts/ 或 ~/.fonts/ 目录。)"
- 我是按这个方法把字体拷 ~/.fonts/ 下面做成功的. (不想使用 root 用户, hh)
"个体用户还可以图形化地装置字体。方法是:在 Nautilus 中阅读 fonts:///,然后把新字体文件拖放到那里。"
- 而这个方法我失败了, 无论我用普通用户还是 root 用户, 都无法把字体文件拷贝或许 "拖放" 到 Nautilus 的 fonts:/// 文件夹里. 不晓得原因, 只好放弃.
按第一种方式添加成功后, 在 gtk 2 的程序里设置字体的局部都可以自由使用新字体,比方在控制中心里把应用程序字体都改成 simsum. (另外, 我发现 10 号大小的simsun 效果最好, 不使用单色也非常明晰, 可以考虑使用)
总的来说, 为 Redhat Linux 添加新字体并没有什么太难太奥秘的东西, 我个人做完之后觉得并没有想像中那么难, 尤其是 gtk 1.2 程序的字体局部, 不必改别人说过的那么多文件,而实际只要添加完字体, 改个 /etc/gtkrc.zh_CN 就搞定了.
让 Enlightenment 显示中文
异样复杂, 在上面的前提下, 找到你当前使用的 E 主题, 如我的是在
~/.enlightenment/themes/AquaX/
进入这个目录后, 最复杂的做法:gedit textclass.cfg
应用 gedit 的替换功用, 把一切关于字体的字符串, 如:
"-*-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-*"
通通替换成和 xmms 一样的:
-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"
保存参与, 肃清 E 的缓存, Restart E, 搞定.
Java 的中文显示
1. JBuilder 的中文成绩
vi /etc/profile
添加:
JAVA_FONTS=/path/to/your/zhfonts/export JAVA_FONTS
比方要用刚才弄好的 simsum 和 tahoma 字体, 由于我们曾经把它们放在:/usr/share/fonts/local 外面了, 所以这里就可以填:
JAVA_FONTS=/usr/share/fonts/local
留意, JBuilder 显然用的是 fontconfig 字体子系统, 所以, 要让它认出来有哪些字体可以用, fonts.scale 和 fonts.dir 这两个成绩无疑是必需的.相比较上面核心 X 字体子系统的字体文件夹里, 即我的 ~/.fonts 外面只有字体文件和一个叫 "fonts.cache-1" 的文件, 可以比照着了解.
能让 JBuilder 翻开的程序显示中文, 但 JBuilder 本身中文有成绩, 下面:
修改 JBuilder 本人的字体配置, 比方我的 JBuilder 装在:
~/Apps/Devs/JBuilder
那么:vi ~/Apps/Devs/JBuilder8/jdk1.4/jre/lib/font.properties
把这样的东西:
serif.0=-bh -lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1serif.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontspecific
serif.italic.0=-bh-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1serif.italic.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontspecific
通通换成如:
serif.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1serif.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r
serif.italic.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1serif.italic.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r
(还是用上面 xmms 一样的字体)
一切这些 "*.0=.." 都是描述英文该用什么字体,而一切 "*.1=..." 都是描述中文该用什么字体
最后保存参与, JBuilder 里的英文就都是 tahoma, 一切的中文都是 simsun自然, 由于曾经设置了 JAVA_FONTS , 所以一切 Java 的应用程序都能正常找到中文字体并显示.
最后留意一点, 我本人尝试失败的一件事:
记得我们上面配置核心 X 字体子系统时, 在 ~/.fonts/ 外面放置了给 gtk 1.
女装2程序使用的字体文件, 如果这时把 JAVA_FONTS 指向这里, 会呈现的景象是:
JBuilder 外面翻开的程序可以显示中文.但是, JBuilder 本人的窗口无法显示中文.
我个人以为和 fontconfig 的 fonts.dir, fonts.scale 以及核心 X 的'fonts.cache-1" 有关系, 详细就不懂了.所以这里可以体验到两个字体子系统的差异.
2. j2sdk 的中文成绩:
上面这样配置之后, 只有在 JBuilder 环境内开发程序时, 才干正常显示中文(由于 JBuilder 帮你找字体), 而如果我们回到命令行方式使用 j2sdk 开发,这时会发现还是显示不了中文, 让我们由此及彼地推想一下, jbuilder 的 jre里把 font.properties 修改完就能显示中文, 异样, j2sdk 下面也有本人的jre... 没错! 只要把我们刚才为 JBuilder 修改完的 fonts.properties 拷到 $JAVA_HOME/jre/lib 下面, 把它原来的掩盖, 一切 OK!
3. j2re 的中文成绩:
还没想到测试方法, 回头再说...估量也一样, j2re 下面的 lib 里一样有font.properties, 所以, 应该可以再次重用 JBuilder 的 fonts.properties.总之呢, 这一切都基于你最后要把字体添加正确, 其它都好办了, 拷文件而已.