QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1672|回复: 12

GTK1程序菜单中文显示问题

[复制链接]
发表于 2006-2-20 11:30:16 | 显示全部楼层 |阅读模式
首先 /etc/X11下没有XF86Config文件(使用的是xfree86)

系统中只有一个中文ttf字体,X可是使用,gtk2的程序显示没有问题。gtk1程序菜单的显示不了。配置了/etc/gtk/gtkrc.zh_CN ,使得有了fonts.dir里有中文字体信息的行(和文件fonts.scale有相同的内容,其中汉字编码有 gb2312.1980-0/gbk-0/gb18030.2000-0)

运行 fc-cache -f -v 看到只扫描了 /usr/share/fonts;/usr/X11R6/lib/X11/fonts/TTF 和 /home/root/.fonts三个目录,连/usr/X11R6/lib/X11/fonts/misc 也不扫描。

退出重新登陆,gtk1程序中还是找不到那个中文字体。直接手工修改配置文件为中文字体,启动程序输出找不到指定的中文字体。


我估计就是程序根本就没有找到字体路径,这个系统也没有XF86Config文件,我复制了其它系统的一个相同文件,只保留了字体的相关段,重启X还是没有反应,看来是没有读取这个文件。fc-cache 读的还是那三个目录。


请教各位大侠,这种情况下该怎么办,我希望它能用上我的ttf字体,添加pcf字体比较麻烦。还有就是似乎 fc-cache 扫过的字体目录,gtk1程序还是找不到。
 楼主| 发表于 2006-2-20 12:16:07 | 显示全部楼层
现在的情况是,xmms打开文件的对话框连中文的文件都看不到
复制了一个gbk的pcf字体进去
设定xmms 字体的时候,能预览这个字体,但是xmms提示说 this is a 2-byte font and may not be displayed correctly
然后它真的就没有任何显示了。
回复

使用道具 举报

发表于 2006-2-20 12:29:47 | 显示全部楼层
gtk1和fontconfig(fc-cache)没关系,只要fonts.dir,fonts.scale正确,路径在XF86Config就可以了。
回复

使用道具 举报

发表于 2006-2-20 12:34:33 | 显示全部楼层
在ttf所在的目录里用xfontscale和xfontdir创建fonts.scale和fonts.dir文件,之后在将这个目录加入到X font path中。fonts.scale和fonts.dir中都应该包含这个ttf字体。
如果不能xfontscale和xfontdir不认这个ttf字体,需要手工添加,也可以用fontforge把字体重新生成一遍。
回复

使用道具 举报

 楼主| 发表于 2006-2-20 13:17:52 | 显示全部楼层
可是,不知道为什么,这个系统中没有XF86Config文件,添加不了啊。
我也尝试复制一个其它系统的XF86Config过来用,但是结果表明没用。
fonts.dir和fonts.scale已经写好了,就是觉得gtk1程序根本就找不到TTF字体目录下的fonts.dir字体信息。
回复

使用道具 举报

发表于 2006-2-20 17:56:55 | 显示全部楼层
用chkfontpath添加呢?
没有config文件不奇怪,Xorg可以通过参数指定config文件,XF86应该也可以。即使没有config文件也不影响它运行,只要加上相应的参数即可。
用xfontsel可以查看所有gtk1能使用的字体,fc-cache不扫描并不要紧
回复

使用道具 举报

 楼主| 发表于 2006-2-20 19:18:22 | 显示全部楼层
高度精简的系统,没有chkfontpath命令。
xfontsel命令中能看到我安装的所有pcf中文字体。
可是程序还是不能正常显示。

只有两个程序是gtk的,xmms和dillo(破烂货,还仍不了)
先搞菜单中文显示问题。
没有中文 xmms.mo的情况下显示英文(废话),复制mo进去以后,菜单中涉及到的中文全部不显示。

gtkrc.zh_CN 应该没有问题。
拿xmms来说,菜单不能显示中文;字体配置中,如果单选中文字体,播放窗口里的也不是乱码,是乱七八糟的那种,shell输出缺少iso8859-1的字体,播放列表没有显示;如果设成前边是一个iso8859-1的英文字体,后边是中文字体,那就连乱七八糟的中文也没有了。

还有就是 xmms 打开文件窗口中显示不了中文文件。

这个X精简到 /usr/X11R6/lib/X11/fonts/下,只有misc和TTF两个文件夹,fonts文件夹下没有其它发行版中的 encodings文件夹里边也没有large中包含中日韩编码文件的文件夹,我复制一份进去也不知道管不管用;X自己的locale下只有zh_CN.UTF-8,我复制了gbk等其它相关的(这个应该能找到)。我的系统locale是gbk的

就这样一个系统,除了gtk1的程序,其它程序的中文显示、输入都没有问题。
回复

使用道具 举报

发表于 2006-2-20 19:43:03 | 显示全部楼层
你们漏了一个文件  encodings.dir
放在中文字体的 目录下

看里面的路径 和encodings 目录对应起来

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2006-2-20 19:56:05 | 显示全部楼层
pslist, 谢谢你的回复,我试过了,复制过去以后退出重新登陆没有反应。

又发现当我把/etc/gtk/gtkrc.zh_CN 改名为 gtkrc.zh_CN.GBK后,(locale 是 GBK)菜单不是没有中文了,而是变成了乱码,可是不知道说明了什么。
回复

使用道具 举报

发表于 2006-2-20 21:11:37 | 显示全部楼层
你复制encodings.dir 文件到 simsun.ttf 相同的目录下后
看encodings.dir 里面的路径   把对应的 encondings 目录也复制或连接一下
里面有2个路径, 第一个路径有的  第2个没有, 自己把encondings 目录复制一下

我的 gtkrc 是写在 ~/.gtkrc  下面的
回复

使用道具 举报

 楼主| 发表于 2006-2-21 14:37:27 | 显示全部楼层
我复制了encodings.dir 文件到 TTF目录下, 里面的路径已经更改为对应的enconding目录路径

我也复制了gtkrc.zh_CN.GBK 到/home/root/.gtkrc
退出重新登陆后,还是老样子。
都快被这个东西搞崩溃了,他妈的。
回复

使用道具 举报

发表于 2006-2-21 17:54:49 | 显示全部楼层
gtk 是不需要重新登入的  只要重新起动 程序即可

style "gtk-default-zh-cn" {
fontset = "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1,\
          -misc-simsun-medium-r-normal--12-*-*-*-c-*-gbk-0,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-cn"

这个是我的 .gtkrc   试试

估计搞不定 都是 encondings.dir 文件的问题   
好几个人都是这么搞定的
回复

使用道具 举报

 楼主| 发表于 2006-2-22 00:42:45 | 显示全部楼层
我的TTF字体着不到设置的办法,只好弄pcf字体进去了,复制到了misc目录下。.gtkrc的文件内容是根据这个几个pcf字体写的,应该没有问题了。
弄了一个gbksong12 14 16 和 gb16st 进去都能识别,看样子也不是用不上,就是不能正常显示了。我总是觉得这个XF86缺的东西太多了。你猜这个XF86总共的的部件有多大?大概是8M的情况。可是gtk2的程序却什么问题都没有,真是怪了。

我再检查一下这个encodings.dir文件,不过觉得路径都没有问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-13 04:10 , Processed in 0.042963 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

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