Comment 32 for bug 94282

Revision history for this message
Magi Su (magisu) wrote : Re: [Bug 94282] Re: QT program doesn't select Chinese font correctly

On Friday 27 July 2007 15:29:05 MilchFlasche wrote:
> Hi Magi,
>
> Could I ask if you have tried to use any English fonts in KDE Control
> Center to display? Such as Nimbus XXXX, Bitstream XXX, etc. If you use
> them, can they grab Simsun or Simhei as you have set for Chinese
> character fallback correctly? If Qt is doing this well on your machine,
> then I will try your suggestion thoroughly again.
>
> I'm having problems here because I have set "Microsoft Jhenghei" (微軟正黑體)
> for fallback in the fontconfig files (I have tried /etc/fonts/language-
> selector.conf, /etc/fonts/local.conf, /etc/fonts/conf.d/xxxx, and I
> think ~/.font.conf already too), but now only serif, sans-serif and
> monospace these three fonts can grab Microsoft Jhenghei correctly; other
> English fonts in KDE are still grabbing some really ugly CJK font as
> fallback. So the problem is not that they display Chinese characters as
> boxes, but they just display Chinese characters awfully. But in GNOME,
> there's no problem with fontconfig. I guess this is the main issue in
> this bug report.
>
> By the way, do we have to add XML dtd in the beginning of every conf
> file? Because I have seen many conf files with them, but many not. Would
> this affect how Qt handles fonts?
>
> Cheers.

Dear MilchFlasche
My suggestions are: 1. do not touch /etc/fonts, only work on ~/.fonts.conf 2.
if you can read Simplified Chinese, go to forum.ubuntu.org.cn in the
section "中文支持" (chinese support) you might find some useful information. Just
go to the forum and find what you need, plenty of solutions there. AndI think
my system deal with the fonts like "bitstream" or "dejavu" in chinese well.
just put them into the XML file, at <alias> section, I suppose.

Indeed, the Qt library work well after the final version of Feisty come out,
at least in my computer. The only problem is in some JAVA programs like
stellarium, no chinese could be shown, I don't know why, but I seldom use
JAVA.

Well, I can answer the question of XML now but not a week ago, since I've
learnt that just three days before~^_^. DTD is useful, but not necessary for
XML files. DTD section only control the structure of XML file, to force the
XML data follow the structure defined in that section. If the XML file data
do not follow, parser will report an error and try to recover. However, it is
not necessary for XML files. Without that, a well-formed XML file will work.
But there will be NO check of structure. A simple example:

<?xml version="1.0"?>
<HEAD>
 <DATA>
  <TEXT>HELLO</TEXT>
  <TEXT>WORLD</TEXT>
 </DATA>
 <DATA>
  <VALUE>3.1415</VALUE>
 </DATA>
</HEAD>

this is a standard XML file, without DTD section. it will be parsed as it is
well-formed.

however, if DTD information is inserted at the 2nd line like this:

<!DOCTYPE HEAD
 [
 <!ELEMENT DATA (TEXT)*>
 <!ELEMENT TEXT (#PCDATA)>
 ]
>

will be parsed with error because the DTD section restricted the XML file so
DATA could only have element with TEXT.

XML is simple, just spend a few hours you can work on it, though not
mastering.

Good Luck!

--
学而不会是为学。