现在的位置: 首页 > 综合 > 正文

关于OpenERP客户端字体问题的一点心得

2012年04月14日 ⁄ 综合 ⁄ 共 1126字 ⁄ 字号 评论关闭

客户端缺省情况下运行时,当然是很难看,因为没有使用正常的汉字字体来显示。因为OpenERP客户端UI是基于GTK的,所以修改OpenERP客户端字体其实是修改GTK里汉字字体的显示。

GTK下相关的两个配置文件一个是etc\gtk-2.0\gtkrc,一个是etc\pango\pango.aliases。
对于中文操作系统下,我们可以不用直接修改gtkrc,而是以之为蓝本,新建一个文件,其名称为gtkrc.zh_CN。其内容大致如下:

gtk-theme-name = "MS-Windows"
gtk-icon-theme-name = "Tango"
gtk-fallback-icon-theme = "hicolor"
gtk-alternative-button-order = 1
gtk-alternative-sort-arrows = 1
gtk-auto-mnemonics = 1
gtk-show-input-method-menu = 0
gtk-show-unicode-menu = 0


style "user-font" {
  font_name = "serif 10"
}

widget_class "*" style "user-font"
widget "*" style "user-font"

gtk-font-name="SimSun 10"

 

这里的自定义字体风格并没有使用什么网上流行的写法,即类似这样的:

style "user-font" {
  font_name = "simsun 10"
}

为什么,这是为了显示斜体字时系统不会出现类似这样的警告信息:

PangoWarning: couldn't load font "SimSun Italic Not-Rotated 10", falling back to "Sans Italic Not-Rotated 10", expect ugly output.

 

那么中文怎么能用serif 呢?这就要靠pango.aliases里对字体集的定义进行处理。在pango.aliases里,找到serif字体集,修改成如下内容:

serif  = "times new roman,angsana new,Microsoft YaHei,simsun,mingliu,gulimche,ms gothic,kartika,latha,mangal,raavi"

这样英文或斜体就使用英文字体,中文按“雅黑、宋体”的顺序来使用。

有一点要提醒的是,缺省的pango.aliases中,mingliu全部是在simsun前,这导致Openerp客户端中的汉字很多看起来是繁体字,所以大家可以把所有的simsun放到mingliu前。

参考:

关于OpenERP客户端字体问题的一点心得

Windows下GTK中文显示问题

抱歉!评论已关闭.