Re: GTK+2.0 Chinese (or CJK) fonts on win32

Tor Lillqvist <[email protected]>
Newsgroups gmane.comp.video.gimp.windows.devel
Message-ID <[email protected]>
 > astro_chuck writes:
 >  > Thanks tml, you are right, mingliu is a traditional. However it still
 >  > doesn't work after I put these lines in pango.aliases:
 >  > 
 >  > sans = sans
 >  > sans += "MingLiU"

I have now hacked on pangowin32 a bit, regained my understanding of
how it works (or fails to work), and I think I understand the issues
here. This definitely is related to LOGFONT::lfFaceName being in the
local codepage as described in bug #68113. I have added code that
looks for an ASCII (English) name (peeking into the font with
GetFontData()) instead (compare to FreeType2's sfobjs.c:tt_face_get_name()). 

While I am at it, I will also do some other improvements, optimisation
and refactoring as necessary. Hopefully, this will result in a
pangowin32 that is in a much better shape. I'll probably be done in a
few days, commit to CVS, and build new zipfiles of pango-1.0 to
download.

I'll also look into making pango_win32_font_get_coverage() actually
use the PangoLanguage passed to it. Will check what FreeType2 does, if
it does something similar. It seems that you can use this heuristics:
If the font name table has an entry in Traditional Chinese (0x404), it
is for zh_TW. If it has a name in Simplified Chinese (0x804), it is
for zh_CN. By comparing to the PangoLanguage
pango_win32_font_get_coverage() is asked to get the coverage map for,
one can then decide whether to include the unified CJK characters or
not.

--tml
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.