Fix spec. OBS/gerrit sync
[profile/ivi/xterm.git] / README.i18n
1 -- $XFree86: xc/programs/xterm/README.i18n,v 1.1 2003/11/13 01:16:37 dickey Exp $
2
3 Using xterm in your language
4 ============================
5
6 Since XFree86 version 4.0, the internationalization (i18n) feature of
7 xterm is gradually improved.  Xterm is being improved even now.  You
8 need only set the standard locale environment variables such as
9 LC_CTYPE, LC_ALL, LC_CTYPE, or LANG.  Once the locale is set up you can
10 use xterm in your favorite character encoding.
11
12 This document explains how the i18n feature is realized and how to
13 configure xterm for your character encoding.
14
15 Refer to locale(7) for details of the locale mechanism.
16
17
18 Basic i18n-related settings and resources
19 =========================================
20
21 These settings apply to XFree86 xterm patch #181, and the program luit
22 which is distributed with XFree86 4.4
23
24 1.  Usage of "locale mode"
25
26     On startup, xterm must be in "locale mode" to make it follow the
27     current locale.  You can invoke xterm in locale mode in these ways:
28
29     a.  Set "vt100.locale" resource "true".  This resource was
30         introduced since XFree86 4.3.  The default value of the "locale"
31         resource is "medium", which means xterm follows the locale only
32         in Chinese, Japanese, Korean, or Thai locales.  For example,
33
34           XTerm*locale: true
35
36         in your ~/.Xresources file.
37
38     or
39
40     b.  Invoke xterm with the "-lc" option.
41
42 2.  Converter program "luit"
43
44     The "luit" must be available in the standard XFree86 binary
45     directory.  It is usually available because it is part of the
46     XFree86 distribution.  The standard binary directory may differ from
47     system to system.  /usr/X11R6/bin/luit is an example.
48
49     "luit" is used to convert between Unicode and the character encoding
50     for your locale.  When built for XFree86, xterm includes logic for
51     invoking luit.
52
53 3.  Locale setting
54
55     Finally, you will need to configure your locale.  We expect that you
56     have already configured your locale for other software.  For example,
57
58       LANG=de_DE@euro
59       export LANG
60
61     in your ~/.xsession file.  There are many ways to configure locale. 
62     For example, your display manager may have a mechanism to invoke a
63     window manager in your favorite locale, or you may have system-wide
64     locale setting in /etc/environment.  You may also have set the
65     LC_ALL variable instead of the LANG variable.
66
67
68 How to use xterm in different locale temporarily
69 ================================================
70
71 You may sometimes need to invoke xterm in a different character encoding
72 than your current locale.  For example, use xterm to login remote systems
73 in different locale.
74
75 Do this by invoking xterm in the target locale.  For example,
76
77   $ LANG=ru_RU.KOI8-R xterm &
78
79 Previously, font setting has been used in such cases.
80
81   $ xterm -fn -misc-fixed-medium-r-normal--10-*-*-*-*-*-koi8-r &
82
83 This does not work well in conjunction with the "locale" resource,
84 because luit and xterm combined rely upon Unicode fonts.
85
86
87 How to set fonts for UTF-8/locale modes
88 =======================================
89
90 Since xterm patch #181, xterm can automatically use Unicode fonts in
91 UTF-8 mode and locale mode.  Few of you will need to modify the default
92 setting to display your language.  In particular, Unicode fonts in
93 combination with locale mode will satisfy the needs of not only
94 ISO-8859-1 users but also East Asian and other non-ISO-8859-1 users.
95
96 If you want to set your favorite Unicode font for UTF-8 and locale
97 modes, you should add a line such as the following in your ~/.Xresources
98 file:
99
100     XTerm*VT100.utf8Fonts.font: \
101          -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
102
103 The leading "XTerm*" pattern is more specific than the system's
104 app-defaults file, therefore it overrides the corresponding line
105 beginning with
106
107     *VT100.utf8Fonts.font:
108
109 Here is an additional note.  If you want to display East Asian
110 doublewidth characters (CJK Ideogram, Hiragana, Katakana, Hangul,
111 and so on), we recommend using
112
113     -misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-iso10646-1
114
115 or
116
117     -misc-fixed-medium-r-normal--18-*-*-*-*-*-iso10646-1
118
119 because these two fonts have corresponding doublewidth fonts.  These
120 fonts are used as default font and default "Large" font, respectively.
121
122
123 The internals of xterm i18n
124 ===========================
125
126 You do not need to read this section if you only want to configure your
127 xterm.  Here we describe how xterm is implemented to support i18n.
128
129 The original version of xterm does not support locale or character
130 encoding.  Its I/O stream is interpreted as a mere 8-bit index for a
131 font.
132
133 Beginning with XFree86 4.0, xterm supported UTF-8.  It was implemented
134 as a separate UTF-8 mode from the conventional 8-bit mode.  Character
135 encodings had no effect on the 8-bit mode.  The UTF-8 mode has been
136 extended to support doublewidth characters (for East Asian characters)
137 and combining characters (such as accents for Latin alphabets and Thai
138 vowels/tone marks).
139
140 Doublewidth characters are characters that occupy two continuing
141 columns on the terminal.  Xterm uses separate fonts for normal
142 (singlewidth) characters and doublewidth characters.  Though xterm has
143 configuration items for specifying doublewidth fonts, it will
144 automatically search for a font with exactly twice as wide and the same
145 name as the specified normal font.
146
147 The default behavior of xterm was modified to use this UTF-8 mode in
148 UTF-8 locales.  A command line option of "-u8" and a resource of "utf8"
149 were introduced to choose UTF-8 mode.
150
151 "luit" was introduced to XFree86 at version 4.2.  It converts between
152 UTF-8 and other encodings.  When luit is invoked in a UTF-8 terminal,
153 the terminal acts as if it is really running in the other encoding.
154
155 Since XFree86 version 4.3, xterm provides a new mode to invoke luit
156 automatically to support various encodings.  The mode where xterm
157 invokes luit is called "locale mode".  It is the third mode following
158 conventional 8-bit mode and UTF-8 mode.  In the locale mode, xterm is
159 aware of the current locale and character encoding.  Since locale mode
160 uses luit, it is based on the UTF-8 mode.  That is, xterm works in UTF-8
161 mode and luit works as a converter between UTF-8 and the character
162 encoding for your locale.  This is why the locale mode always needs
163 Unicode fonts.  The default behavior of xterm is modified so that the
164 "locale mode" will be adopted in Chinese (Big5 and GB2312), Japanese
165 (EUC-JP), Korean (EUC-KR), and Thai (ISO-8859-11, as known as TIS-620)
166 locales.  Locale mode is chosen for these character encodings because
167 these encodings are not supported by conventional 8-bit mode even by
168 changing fonts (ISO-8859-11 needs combining characters and others need
169 doublewidth characters).
170
171 To control the locale mode, command line options of "-lc" and "-en" and
172 a resource of "locale" were introduced.  The command line option of
173 "-u8" and a resource of "utf8" were made obsolete by them, though
174 retained for compatibility.
175
176 Since XFree86 version 4.4, xterm can have two sets of default fonts,
177 one for conventional 8-bit mode and another for UTF-8 and locale modes,
178 by introducing the "utf8Fonts" subresource.
179
180
181 Future TODO Items
182 =================
183
184 We anticipate that xterm's locale mode will be used increasingly in the
185 future.  Since the UTF-8 and locale modes use more resources than
186 conventional 8-bit mode (because it needs larger fonts and another
187 process "luit"), faster hardware may be needed to gain complete
188 acceptance by users.  However, the locale mechanism allows users
189 to manipulate data in a standard form.  Its usefulness compensates
190 in part for reduced performance.
191
192 Xterm supports antialiased fonts ("-fa" and "-fs" command line options). 
193 Currently UTF-8 nor locale modes do not work with antialiased fonts.
194
195 Xterm does not support bi-directional or RTL languages such as Hebrew
196 and Arab.  A simple standard how terminal should behave for these
197 languages is needed.
198
199 Xterm does not support Unicode characters above U+10000.