客户端缺省情况下运行时,当然是很难看,因为没有使用正常的汉字字体来显示。因为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前。
参考: