[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Language Setup Document
Re: Language Setup Document
Fri, 04 Jul 2003 12:12:08 -0400
From: Kazunobu Kuriyama <address@hidden>
To: Yen-Ju Chen <address@hidden>
Subject: Re: Language Setup Document (Re: Text drawing bug - gaps after
16th character ...)
Date: Fri, 04 Jul 2003 18:56:46 +0900
Yen-Ju Chen wrote:
This is not under my control. :)
Are you suggesting a kind of rejection? Is there someone who is in charge
of it other
than the author?
I mean I have no right to access GNUstep CVS and web site.
I have no preference where it should be.
By the way, I just check GNUstep and Wiki websites.
This document is in user section in both websites.
Moreover, contrary to the explanation of your article, the XIM I use works
though it doesn't use either UTF8 or Big5 for encoding. I've never touched
for the purpose the article suggests.
Indeed, I just check the source code again and XIM section is not
I think your computer understands none of Chinese characters even today.
It is simply doing mappings as it is told. It should be irrelevant to which
language is used.
I think it's high time to make the document official.
I think an official document need to be test as what we do right now.
By the time, I guess I was the only one who need it and test it.
I would be happy it is more official, but not in the form of my original
If you find my claims resonable, I'd like you to read the attached file.
If you find it useful for you, I'm willing to cooperate with you.
The document looks very good. Just don't forget to put you as the author.
PS. I add the part of Traditional Chinese, and not sure ablut the
which is just a reminder.
How to set up GNUstep for East Asian languages
2003-07-04 Versions 2.0 beta
This brief article illustrates how to set up your GNUstep for the East
Asian languages known as CJK (Chinese, Japanese, and Korean) in literature.
We assume that you already know how to set up your X Window System
for your language environment such as locale, fonts, and input methods.
We also assume that you selected 'art' as the backend of GNUstep's GUI.
Like other computer software made outside the region, GNUstep requires
some adjustment to use those languages. The adjustment consists of
the following steps:
1. Prepare one or more true type font files which contain characters
of your native language, and organize them in a certain way so that
the art backend can use them.
2. Set the environmental variable GNUSTEP_STRING_ENCODING to an appropriate
value for the language in use.
3. Set the NSGlobalDomain variables such as NSFont, NSFontSize, and
to name a few, to appropriate values using the GNUstep's
Now we explain each step in detail.
The art backend expects necessary true type font files to be found in the
specified directories, which are usually $GNUSTEP_USER_ROOT/Library/Fonts
and $GNUSTEP_SYSTEM_ROOT/Library/Fonts. You need to organize font files
in a certain way (see below) so that the art backend can recognize them.
For example, suppose you have a hypothetical true type font file called
MyFont.ttf and want to allow all other users to use it. Then, as root,
# cd $GNUSTEP_SYSTEM_ROOT/Library/Fonts
# mkdir MyFont.nfont
# cd MyFont.nfont
With your favorite editor, create a file whose contents is as follows:
Faces = (
PostScriptName = "MyFont";
Name = "Regular";
Files = ("MyFont.ttf");
Then save it as FontInfo.plist (the format above is known as property list
GNUstep, which explains why the extension is 'plist'). This small file
you've created just now is referred to as .nfont package.
The FontInfo.plist above is just a bare-bones version. For further
we strongly recommend the reader to read nfont_packages.txt found at
If you want to use the font file personally, replace GNUSTEP_SYSTEM_ROOT
GNUSTEP_USER_ROOT in the instruction above.
As default, GNUstep assumes that a character is encoded in ISO8859-1 unless
the escape character \u precedes it (This exception applies to other
Hence, if you want to use the characters of your native language with
you have to tell it which encoding you use. This can be done by setting
environmental variable GNUSTEP_STRING_ENCODING to an appropriate value.
The possible values for GNUSTEP_STRING_ENCODING are as follows:
NSJapaneseEUCStringEncoding // Japanese
NSISOLatin1StringEncoding // ISO-8859-1; West European
NSShiftJISStringEncoding // Japanese
NSISOLatin2StringEncoding // ISO-8859-2; East European
NSWindowsCP1252StringEncoding // WinLatin1
NSWindowsCP1253StringEncoding // Greek
NSWindowsCP1254StringEncoding // Turkish
NSWindowsCP1250StringEncoding // WinLatin2
NSISO2022JPStringEncoding // Japanese
// GNUstep additions
NSKOI8RStringEncoding // Russian/Cyrillic
NSISOLatin3StringEncoding // ISO-8859-3; South European
NSISOLatin4StringEncoding // ISO-8859-4; North European
NSISOCyrillicStringEncoding // ISO-8859-5
NSISOArabicStringEncoding // ISO-8859-6
NSISOGreekStringEncoding // ISO-8859-7
NSISOHebrewStringEncoding // ISO-8859-8
NSISOLatin5StringEncoding // ISO-8859-9; Turkish
NSISOLatin6StringEncoding // ISO-8859-10; Nordic
NSISOThaiStringEncoding // ISO-8859-11
NSISOLatin7StringEncoding // ISO-8859-13
NSISOLatin8StringEncoding // ISO-8859-14
NSISOLatin9StringEncoding // ISO-8859-15; Replaces ISOLatin1
NSUTF7StringEncoding // RFC 2152
NSGSM0338StringEncoding // GSM (mobile phone) default alphabet
NSBIG5StringEncoding // Traditional chinese
Of these values, choose an appropriate one for your purpose and set the
environmental variable to it. For example, for sh or bash,
$ export GNUSTEP_STRING_ENCODING=NSBIG5StringEncoding
or, for csh,
% setenv GNUSTEP_STRING_ENCODING NSBIG5StringEncoding
4. User Default Values
Now that you specify the encoding, you have to determine which fonts you
use to display the characters of your native language.
Becuase the fonts used in GNUstep GUI are initially set to those that are
appropriate for European languages, you have to overwrite them to display
the characters correctly.
At least, you need to change the user default value NSFont. For example,
suppose you have an .nfont package called MyFont and want to use it to
the characters. To do this, use the GNUstep's utility 'defaults' as
$ defaults write NSGlobalDomain NSFont MyFont
Depending on situation, you may also need to set NSUserFont to MyFont.
In GNUstep, a pair of a key and a value such as (NSFont, MyFont) is called
To confirm the value, use
$ defaults read
If you want to remove the assignment entirely to revert to the original
default value, use
$ defaults delete NSGlobalDomain NSFont
For further details about the user default values, the reader can refer to
the documents DefaultsSummary.html and NSFont.html shipped with the GNUstep
5.1. Traditional Chinese
LC_CTYPE=zh_TW.Big5 (or LC_ALL=zh_TW.Big5 or LANG=zh_TW.Big5)
GNUSTEP_STRING_ENCODING = NSBIG5StringEncoding
MingTi.nfont package (use Arphic font as example):
Faces = (
PostScriptName = "MingTi";
Name = "Regular";
Files = ("bsmi00lp.ttf");
Set default font:
$ defaults write NSGlobalDomain NSFont MingTi
(Kazunobu Kuriyama gives an example here.)
(Waiting for someone who contributes it.)
6. Concluding Remarks
Although this article has focused on the CJK languages, most part of it
is also applicable to other languages if GNUstep supports the enconding
If you find a way to set up GNUstep with your native language other than
CJK, please consider to contribute it to the GNUstep community to share
your invaluable experience with others. We'll greatly appreciate it.
Comments or suggestions are also welcome.
MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*.
|[Prev in Thread]
||[Next in Thread]|
- Re: Language Setup Document,
Yen-Ju Chen <=