<!-- $XConsortium: ch16.sgm /main/11 1996/09/08 19:34:42 rws $ -->
<!-- (c) Copyright 1995 Digital Equipment Corporation. -->
<!-- (c) Copyright 1995 Hewlett-Packard Company. -->
<!-- (c) Copyright 1995 International Business Machines Corp. -->
<!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
<!-- (c) Copyright 1995 Novell, Inc. -->
<!-- (c) Copyright 1995 FUJITSU LIMITED. -->
<!-- (c) Copyright 1995 Hitachi. -->
<Chapter Id="SAG.I18N.div.1">
<Title Id="SAG.I18N.mkr.1">Configuring Localized Desktop Sessions<IndexTerm><Primary>National Language Support</Primary><Secondary>internationalizing</Secondary></IndexTerm></Title>
<Para>To configure localized desktop sessions, you will need to:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Set the LANG environment variable and other National Language Support
(NLS) environment variables</Para>
</ListItem>
<ListItem>
<Para>Access language-dependent message catalogs and resource files</Para>
</ListItem>
<ListItem>
<Para>Execute applications remotely across internationalized systems</Para>
<InformalTable Id="SAG.I18N.itbl.1" Frame="All">
<TGroup Cols="1">
<ColSpec Colname="1" Colwidth="4.0 in">
<TBody>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Managing the LANG Environment Variable276'--><XRef Role="JumpText" Linkend="SAG.I18N.div.2"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Finding Fonts278'--><XRef Role="JumpText" Linkend="SAG.I18N.div.9"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Localizing app-defaults Resource Files279'--><XRef Role="JumpText" Linkend="SAG.I18N.div.10"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Localizing Actions and Data Types279'--><XRef Role="JumpText" Linkend="SAG.I18N.div.11"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Localizing Icons and Bitmaps280'--><XRef Role="JumpText" Linkend="SAG.I18N.div.12"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Localizing Help Volumes281'--><XRef Role="JumpText" Linkend="SAG.I18N.div.15"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Localizing Message Catalogs282'--><XRef Role="JumpText" Linkend="SAG.I18N.div.16"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Executing Localized Desktop Applications Remotely282'--><XRef Role="JumpText" Linkend="SAG.I18N.div.17"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Resetting Your Keyboard Map282'--><XRef Role="JumpText" Linkend="SAG.I18N.div.18"></Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
</ListItem>
</ItemizedList>
<Sect1 Id="SAG.I18N.div.2">
<Title Id="SAG.I18N.mkr.2">Managing the LANG Environment Variable<IndexTerm><Primary>internationalization</Primary><Secondary>LANG variable</Secondary></IndexTerm><IndexTerm><Primary>LANG variable</Primary></IndexTerm></Title>
<Para>The LANG environment variable must be set for the desktop to use the
operating system's language-sensitive routines. The desktop supports:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Western Europe, Latin-based languages</Para>
</ListItem>
<ListItem>
<Para>Japanese</Para>
</ListItem>
<ListItem>
<Para>Traditional Chinese</Para>
</ListItem>
<ListItem>
<Para>Simplified Chinese</Para>
</ListItem>
<ListItem>
<Para>Korean</Para>
</ListItem>
</ItemizedList>
<Note>
<Para>Support for other languages may have been added by your desktop
vendor.</Para>
</Note>
<Para>You can set LANG to any value supported by the operating system. The
Options menu in the login screen displays the list of supported languages and
territories.</Para>
<Para>There are four ways to set LANG for the desktop:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>By editing a resource in the <Command>Xconfig</Command> file</Para>
</ListItem>
<ListItem>
<Para>Using the Options menu in the login screen</Para>
</ListItem>
<ListItem>
<Para>By creating an executable <Command>sh</Command> or <Command>ksh</Command> <Filename>Xsession.d</Filename> script. (See
<!--Original XRef content: '&xd2;Sourcing
Xsession.d Scripts&xd3; on page&numsp;26'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.SesMg.mkr.5"> for more information about using an
Xsession.d script.)</Para>
</ListItem>
<ListItem>
<Para>By editing the user's <Filename>.dtprofile</Filename> file</Para>
</ListItem>
</ItemizedList>
<Para>When LANG is set, the desktop uses the following language-dependent files to
determine the localized interface.</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="107*">
<colspec colwidth="421*">
<TBody>
<Row>
<Entry><Para><StructName Role="typedef">Colors</StructName></Para></Entry>
<Entry><Para><Filename>/usr/dt/palettes/desc</Filename><Symbol Role="Variable">.language</Symbol></Para></Entry>
</Row>
<Row>
<Entry><Para><Literal>Backdrops</Literal></Para></Entry>
<Entry><Para><Filename>/usr/dt/backdrops/desc</Filename><Symbol Role="Variable">.language</Symbol></Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Sect2 Id="SAG.I18N.div.3">
<Title>Setting the Language for Multiple Users<IndexTerm><Primary>internationalization</Primary><Secondary>setting language</Secondary></IndexTerm><IndexTerm><Primary>language, setting using Xconfig file</Primary></IndexTerm><IndexTerm><Primary>Xconfig file</Primary><Secondary>setting language with</Secondary></IndexTerm></Title>
<Para>If you set the language by means of an <Command>Xconfig</Command> file, the login screen is
localized and LANG is set for all users. This is the only way to change LANG
for all displays in multi-display systems. (To modify <Command>Xconfig</Command>, copy
<Filename>/usr/dt/config/Xconfig</Filename> to <Command>/etc/dt/config/Xconfig.)</Command></Para>
<Para>The language is set by placing the following line in
<Filename>/etc/dt/config/Xconfig</Filename>:</Para>
<ProgramListing>dtlogin.<Symbol Role="Variable">host_display</Symbol>.language: <Symbol Role="Variable">language</Symbol></ProgramListing>
<Para>For example, the following line sets LANG to <Filename>Swedish_locale</Filename> on display
<ComputerOutput>my_host:0</ComputerOutput>.</Para>
<ProgramListing>dtlogin.my_host_0.language: Swedish_locale</ProgramListing>
<Para>The <Command>dtlogin</Command> client reads the appropriate message catalog for that language
and brings up the localized login screen. The <Command>dtlogin</Command> client then determines
the list of locales using the following resources in the
<Filename>/etc/dt/config/Xresources</Filename> resource file:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para><Filename>dtlogin*language</Filename></Para>
</ListItem>
<ListItem>
<Para><Filename>dtlogin*languageList</Filename></Para>
</ListItem>
<ListItem>
<Para><Filename>dtlogin*languageName</Filename></Para>
</ListItem>
</ItemizedList>
<Para>The <Command>Xconfig</Command> file may need to set the NLSPATH environment variable
appropriately for the chosen language. If this is not the case, or if you want to
set NLSPATH yourself, see
<!--Original XRef content: '&xd2;NLSPATH Environment Variable&xd3; on page&numsp;278'--><XRef Role="HeadingAndPage" Linkend="SAG.I18N.div.8">.</Para>
</Sect2>
<Sect2 Id="SAG.I18N.div.4">
<Title>Setting the Language for One Session</Title>
<Para>To set the language for one session, use the login screen Options menu. The
login screen is localized and LANG is set for the user. LANG returns to its
default value (set in <Command>dtlogin</Command>) at the conclusion of the session.</Para>
</Sect2>
<Sect2 Id="SAG.I18N.div.5">
<Title>Setting the Language for One User<IndexTerm><Primary>LANG variable</Primary><Secondary>in .dtprofile</Secondary></IndexTerm><IndexTerm><Primary>.dtprofile file</Primary><Secondary>setting LANG</Secondary></IndexTerm></Title>
<Para>A user can override the login's LANG setting within the
<Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dtprofile</Filename> file. The login screen is not localized, and LANG
is set for the user.</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>If you use <Command>sh</Command> or <Command>ksh</Command>:</Para>
<programlisting>LANG=<Symbol Role="Variable">language</Symbol>
export LANG</programlisting>
</ListItem>
<ListItem>
<Para>If you use <Command>csh</Command>:</Para>
<programlisting>setenv LANG <Symbol Role="Variable">language</Symbol></programlisting>
</ListItem>
</ItemizedList>
</Sect2>
<Sect2 Id="SAG.I18N.div.6">
<Title>LANG Environment Variable and Session Configuration</Title>
<Para><Command>The LANG environment variable changes the directory name that is searched for
your session configuration files.</Command></Para>
<Para><Command>The localized session configuration files are:</Command></Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para><Filename>/usr/dt/config/</Filename><Symbol Role="Variable">language</Symbol><Filename>/Xresources</Filename> (Login Manager resource file)</Para>
</ListItem>
<ListItem>
<Para><Filename>/usr/dt/config/</Filename><Symbol Role="Variable">language</Symbol><Filename>/sys.font</Filename> (Session Manager resource file)</Para>
</ListItem>
<ListItem>
<Para><Filename>/usr/dt/config/</Filename><Symbol Role="Variable">language</Symbol><Filename>/sys.resources</Filename> (Session Manager resource
file)</Para>
</ListItem>
<ListItem>
<Para><Filename>/usr/dt/config/</Filename><Symbol Role="Variable">language</Symbol><Filename>/sys.session</Filename> (Session Manager executable
shell)</Para>
</ListItem>
<ListItem>
<Para><Filename>/usr/dt/config/</Filename><Symbol Role="Variable">language</Symbol><Filename>/sys.dtwmrc</Filename> (Window Manager resource file)</Para>
</ListItem>
<ListItem>
<Para><Filename>/usr/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol><Filename>/dtwm.fp</Filename> (Window Manager Front
Panel)</Para>
</ListItem>
</ItemizedList>
</Sect2>
<Sect2 Id="SAG.I18N.div.7">
<Title>Setting Other NLS Environment Variables<IndexTerm><Primary>internationalization</Primary><Secondary>NLS environment variables</Secondary></IndexTerm><IndexTerm><Primary>NLS environment variables</Primary></IndexTerm></Title>
<Para>Besides LANG, there are other NLS environment variables such as LC_CTYPE
and LC_ALL. These variables are not affected by the <Command>dtlogin</Command> language
resource nor by the login screen Options menu. They must be set in the
following files:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>System-wide variables: <Filename>/etc/dt/config/Xsession.d</Filename></Para>
</ListItem>
<ListItem>
<Para>Personal variables: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dtprofile</Filename></Para>
</ListItem>
</ItemizedList>
<Sect3 Id="SAG.I18N.div.8">
<Title Id="SAG.I18N.mkr.3">NLSPATH Environment Variable<IndexTerm><Primary>message catalogs</Primary></IndexTerm></Title>
<Para>The NLSPATH environment variable determines the directory paths that
applications search for message catalogs. Both LANG and NLSPATH must be
set to use those message catalogs. Refer to
<!--Original XRef content: '&xd2;Localizing Message Catalogs&xd3; on
page&numsp;282'--><XRef Role="HeadingAndPage" Linkend="SAG.I18N.div.16"> for the location of localized messages. Most desktop clients will prefix
the path to NLSPATH upon startup.</Para>
</Sect3>
</Sect2>
</Sect1>
<Sect1 Id="SAG.I18N.div.9">
<Title Id="SAG.I18N.mkr.4">Finding Fonts<IndexTerm><Primary>internationalization</Primary><Secondary>fonts</Secondary></IndexTerm></Title>
<Para>Fonts included with the desktop are in the <Filename>/usr/lib/X11/fonts</Filename> directory.<IndexTerm>
<Primary>fonts</Primary>
<Secondary>primary directory</Secondary>
</IndexTerm>
Each directory contains a directory file, <ComputerOutput>fonts.dir</ComputerOutput>, and an alias file,
<ComputerOutput>fonts.alias</ComputerOutput>. See the <ComputerOutput>mkfontdir</ComputerOutput> man page for information on creating the
<ComputerOutput>fonts.dir</ComputerOutput> and <ComputerOutput>fonts.alias</ComputerOutput> files.<IndexTerm>
<Primary>fonts</Primary>
<Secondary>finding with directory file</Secondary>
</IndexTerm><IndexTerm>
<Primary>fonts</Primary>
<Secondary>finding with alias file</Secondary>
</IndexTerm><IndexTerm>
<Primary>fonts</Primary>
<Secondary>finding with mkfontdir command</Secondary>
</IndexTerm><IndexTerm>
<Primary>mkfontdir command, compiling files</Primary>
</IndexTerm>
</Para>
<Para>To list all fonts available at a server, user the <ComputerOutput>xlsfonts</ComputerOutput> command.<IndexTerm>
<Primary>xlsfonts command</Primary>
<Secondary>listing fonts at server</Secondary>
</IndexTerm><IndexTerm>
<Primary>fonts</Primary>
<Secondary>xlsfonts command</Secondary>
</IndexTerm><IndexTerm>
<Primary>xlsfonts command</Primary>
<Secondary>installation</Secondary>
</IndexTerm><IndexTerm>
<Primary>xlsfonts command</Primary>
<Secondary>listing fonts at server</Secondary>
</IndexTerm><IndexTerm>
<Primary>xlsfonts command</Primary>
<Secondary>installation</Secondary>
</IndexTerm>
To add or
delete fonts to the server, use the <ComputerOutput>xset</ComputerOutput> command.</Para>
</Sect1>
<Sect1 Id="SAG.I18N.div.9a">
<Title Id="SAG.I18N.mkr.4a">Managing User Defined Characters<IndexTerm><Primary>user defined characters</Primary><Secondary>managing</Secondary></IndexTerm><IndexTerm><Primary>localization</Primary><Secondary>user defined characters</Secondary></IndexTerm></Title>
<sect2>
<Title>Overview</title>
<para>In East Asian countries such as China, Korea, and Japan, Chinese
characters (called Hanzi in China, Hanja in Korea, and Kanji in Japan)
are used extensively. Because the number of Chinese characters
is very large (more than 50,000 in the largest Japanese Kanji dictionary)
the standard coded character sets for Chinese characters
(such as JIS X 0208, KS C 5601, and GB 2312) define only
the most frequently used characters.
</para>
<para>For ordinary writing purposes,
a standard character set is sufficient. Some cases, however, require the
use of non-standard characters. For example, for
Resident Registration in Japan, a person's
name and place name must be written in exactly the same characters
as used in previously hand-written registration forms. Another
example is the publication of ancient documents, such as Taoist or
Confucian classics. These documents contain many characters that
are now obsolete and not defined in the standard character sets.
Such non-standard characters are referred to as "User Defined Characters."<IndexTerm><Primary>user defined characters</Primary><Secondary>defined</Secondary></IndexTerm>
</para>
<sect3>
<Title>How UDCs Are Organized</title>
<para>User Defined Characters (UDCs) use either "empty" code points
(points in the code set that have no characters assigned to them) or
a Private Use Area
(if defined by the code set). In most cases, a system vendor will
supply a UDC area, which consists of one or more contiguous blocks
of code points that can be used for UDCs.<IndexTerm><Primary>user defined characters</Primary><Secondary>and UDC area</Secondary></IndexTerm>
</para>
<para>The basic procedure for creating a UDC is:
</para>
<orderedlist>
<listitem>
<para>Assign a code point in the UDC Area to the character to be defined.
</para>
</listitem>
<listitem>
<para>Create a glyph image (or a set of glyph images to define multiple font
sizes) for that character by using the UDC Font Editor,
<command>dtudcfonted</command>.
</para>
</listitem>
</orderedlist>
<para>Once a UDC is created, it can be propagated to other systems by using
the UDC Data Exchanger.
For data interchange consistency, UDC definitions should be unified
within an organization.
</para>
<para>Before attempting to create UDCs, you must
determine:
</para>
<itemizedlist>
<listitem>
<para>What code set is being used and what code
points are available for UDCs. To create UDCs, users
must know which code points to use.<IndexTerm><Primary>code set</Primary><Secondary>for user defined characters</Secondary></IndexTerm>
</para>
<para>When interchanging text data under the X Protocol,
compound text is used. In compound text, extended
segments can be used to transfer UDCs.
If you use extended segments for UDC transfer, you should define
the encoding name for the UDCs and how code points or glyph indexes
are transferred in the segments.
</para>
</listitem>
<listitem>
<para>How font files are organized and what glyph
indexes are used for UDCs. UDCs can be stored in
standard font files with empty glyph indexes or in
separate font files specific to UDCs. If separate files
are used, the system should be shipped with empty font
files for UDC. When editing an existing UDC, the user must
specify the font name and the glyph indexes for the UDC.
This means the user must know the relationship between
code points and glyph indexes.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Font Files</title>
<para>To display and print UDCs they must be stored in databases as
font files. UDC glyphs, like other character glyphs, are stored in font
files that are used in the X Window system. The font file formats
are PCF (Portable Compiled Format) and SNF (Server Natural Format),
which can be accessed by an X server. The
UDC Font Editor can also access font files in those formats.<IndexTerm><Primary>user defined characters</Primary><Secondary>font files for</Secondary></IndexTerm><IndexTerm><Primary>font files</Primary><Secondary>for user defined characters</Secondary></IndexTerm>
</para>
<para>When the X server displays a UDC, it refers to the UDC in the
associated font file. Likewise, when a UDC is printed,
the printer spooler refers to the UDC in the font file.
</para>
<para>Font files must be set up to be able to be used by the X Window
system. In other words, they must be placed in directories that
are defined in the Xserver's font path, and the management files
(such as <Symbol Role="Variable">fonts.dir</Symbol>) must be
placed in those directories.
The UDC Font Editor does not install font files,
and does not modify any resources such as
<Symbol Role="Variable">fonts.dir</Symbol> in the system.
</para>
<para>The UDC Font Editor
can use only UDC font files that are available in the
current locale and that are defined in the X NLS database. The X NLS
database is a database that defines what codeset and font set are used
for each locale. The UDC Font Editor
constructs UDC fonts in various point sizes and styles.
To add a new editable font, you must specify the
code set name and UDC area in the X NLS database.
</para>
<para>When the UDC Font Editor and the UDC Data Exchanger
look for font files, they first search
the <systemitem class="environvar">DTUDCFONTPATH</systemitem>
environment variable (which is a colon-separated list of directories
containing UDC font files) and then the directories
specified in the
<filename>/usr/dt/config/$LANG/fonts.list</filename> file. To set
font search directories for each locale, specify them in
the <filename>fonts.list</filename> file. (Do not forget the terminal colon.)
For example:
</para>
<programlisting>#
# fonts.list file example
#
  /usr/lib/X11/fonts/misc:
  /usr/dt/config/xfonts/ja:
</programlisting>
</sect3>
</sect2>
<sect2>
<Title>The UDC Font Editor<IndexTerm><Primary>user defined characters</Primary><Secondary>and UDC Font Editor</Secondary></IndexTerm><IndexTerm><Primary>UDC Font Editor</Primary></IndexTerm></title>
<para>The UDC Font Editor (<command>dtudcfonted</command>) allows you to create, edit,
and delete UDCs.
</para>
<para>For complete details on using the UDC Font Editor,
refer to the <command>dtudcfonted</command> man page.
</para>
<para>When you start the UDC Font Editor, the <literal>Font Selection</literal>
window appears.
</para>
<para>UDC font files are specified by XLFD (X Logical Font Description)
name. XLFDs are unique and descriptive font names that are used by clients
and applications. The various font attributes such as style and a
character set name are included in the XLFD. For convenience,
you can select the font file style, size, and UDC code area. The UDC code
area includes the code set number as specified in the X NLS database
and the range of UDC glyph indexes that can be used in the code set.
</para>
<para>To list the available UDC font files, select the code set, style, and
definition character size of the desired font in the selection item field.
Specifying a font and then selecting the <literal>Open</literal> button
displays the <literal>Character Edit</literal> window.
</para>
<sect3>
<title>Creating and Editing Characters</title><IndexTerm><Primary>user defined characters</Primary><Secondary>creating</Secondary></IndexTerm><IndexTerm><Primary>user defined characters</Primary><Secondary>editing</Secondary></IndexTerm>
<para>Character patterns are created or edited on the <literal>Character
Edit</literal> window.
</para>
<para>Select the code for the character to be edited from the
character list. This displays the associated character pattern
in the edit pane. If the character code has not been registered in
in the UDC area, nothing is displayed.
</para>
<para>If the character code has not been registered, add the code on the
<literal>Character Control</literal> window, or copy the pattern on the
<literal>Character Copy</literal> window. For details on how to add
character codes, see "Adding and Deleting Character Codes". For details
on how to copy character patterns, see "Copying Character Patterns".
</para>
<para>A set of drawing tools and <literal>Edit</literal> menu options
provide a complete set of operations for creating and editing
character patterns.
</para>
</sect3>
<sect3>
<title>Adding and Deleting Character Codes</title>
<IndexTerm><Primary>user defined characters</Primary><Secondary>adding character codes</Secondary></IndexTerm><IndexTerm><Primary>user defined characters</Primary><Secondary>deleting character codes</Secondary></IndexTerm><IndexTerm><Primary>character codes</Primary><Secondary>adding</Secondary></IndexTerm><IndexTerm><Primary>character codes</Primary><Secondary>deleting</Secondary></IndexTerm>
<para>Character codes are added and deleted on the <literal>Character
Control</literal> window, which is displayed by choosing
<literal>Add/Delete</literal> from the <literal>Character</literal> menu.
</para>
<para>To add a character code, specify its four hexadecimal digits within the
user-defined character area and click the <literal>Add</literal> button.
You can also add a range of characters
by specifying the codes for the first and last characters in the
range. Each new character code is added to the list of characters being edited on
the <literal>Character Edit</literal> window. The character to be edited
is the first character of the added character code (or the added
character code field). If already registered, the character pattern for
the specified character code is not changed.
</para>
<para>To delete a character code, specify its four hexadecimal digits within
the user-defined character area and click the <literal>Delete</literal> button.
You can also delete a range of characters
by specifying the codes for the first and last characters in the
range. The utility asks you to confirm each deletion.
</para>
<para>Deleting a character code removes it from the list of characters being
edited on the <literal>Character Edit</literal> window. The character
code following the deleted character code becomes the current editable
character code.
</para>
</sect3>
<sect3>
<title>Entering Character Codes Graphically<IndexTerm><Primary>character codes</Primary><Secondary>entering graphically</Secondary></IndexTerm></title>
<para>To enter a character code graphically, click the
<literal>Code</literal> button on the <literal>Character
Control</literal> window. The <literal>Character Code Input</literal>
window appears. On this window, click on the desired character, then
click <literal>Apply</literal> to insert the code for the
selected character in the code input field of the <literal>Character
Control</literal> window.
</para>
</sect3>
<sect3>
<title>Copying Character Patterns</title>
<IndexTerm><Primary>user defined characters</Primary><Secondary>copying character patterns</Secondary></IndexTerm>
<para>To copy character patterns already registered or created,
choose <literal>Copy</literal> from the <literal>Character</literal> menu.
The <literal>Character Copy</literal> window appears.
Copying adds the character code specified for the copy destination to
the character list on the Editing window.
</para>
<para>To copy a character pattern, select the character size and specify its
four-hexadecimal-digit code. (You can also copy a range by supplying
the codes for the first and last characters in the range.)
Then, specify the four-hexadecimal-digit code(s) for the
destination character(s) and click the <literal>Copy</literal> button.
</para>
<para>You can also perform composite copies, in which the dots in the source
character pattern are ORed with the dots in the destination character pattern.
</para>
</sect3>
</sect2>
<sect2>
<Title>The UDC Data Exchanger<IndexTerm><Primary>user defined characters</Primary><Secondary>and UDC Data Exchange utility</Secondary></IndexTerm><IndexTerm><Primary>user defined characters</Primary><Secondary>transferring to other systems</Secondary></IndexTerm><IndexTerm><Primary>UDC Data Exchange utility</Primary></IndexTerm></title>
<para>The UDC Data Exchanger (<command>dtudcexch</command>)
is a tool for exchanging
UDC glyph images between systems.
</para>
<para><command>dtudcexch</command> provides a
mechanism for distributing UDC glyph images among different systems.
Specifically, it allows UDC glyph images to be created on one system
using the UDC Font Editor (<command>dtudcfonted</command>) and then
propagated to other systems. <command>dtudcexch</command> stores the UDC
glyph images in a BDF (Bitmap Distribution Format) file, which is
transported to a target system. On the target system,
<command>dtudcexch</command> is run again, this time to extract the
images from the BDF file and add them to the appropriate font file.
</para>
<para><command>dtudcexch</command> provides both an export and an import
function. The export function reads the selected UDC
glyph images from a font file and stores them in a BDF file for transfer
to other systems. The import function reads all UDC glyph images in a
BDF file and adds them to a specified font file.
</para>
<para>When exporting, <command>dtudcexch</command> uses glyph indexes of the
UDC code area in the PCF/SNF font file to select the UDC glyph images. It
stores the converted images in the BDF-format file at the same glyph indexes.
When importing, <command>dtudcexch</command> adds the UDC glyph images to
the PCF/SNF font file at the same glyph indexes found in the BDF file.
The UDC code area information is defined in the X NLS database.
</para>
<para>To create different glyph indexes for the images on the target system,
you can edit the BDF file before you invoke the import function.
</para>
<para>For details on using the UDC Data Exchanger,
refer to the <command>dtudcexch</command>
man page.
</para>
</sect2>
</sect1>
<Sect1 Id="SAG.I18N.div.10">
<Title Id="SAG.I18N.mkr.5">Localizing app-defaults Resource Files<IndexTerm><Primary>internationalization</Primary><Secondary>app-defaults</Secondary></IndexTerm><IndexTerm><Primary>XUSERFILESEARCHPATH variable</Primary></IndexTerm><IndexTerm><Primary>resources</Primary><Secondary>language-dependent</Secondary></IndexTerm><IndexTerm><Primary>app-defaults</Primary><Secondary>language-dependent</Secondary></IndexTerm></Title>
<Para>The default location for the <Filename>app-defaults</Filename> file for the desktop clients is
<Filename>/usr/dt/app-defaults/</Filename><Symbol Role="Variable">language</Symbol>. For example, if LANG is set to
<Filename>Swedish_locale</Filename>, then applications will look for their <Filename>app-defaults</Filename> file in
<Filename>/usr/dt/app-defaults/Swedish_locale</Filename>. If LANG is not set, <Symbol Role="Variable">language</Symbol> is
ignored, and applications look for their <Filename>app-defaults</Filename> file in <Filename>/usr/app-
defaults/C</Filename>.</Para>
<Para>To change the location of <Filename>app-defaults</Filename>, use the XFILESEARCHPATH
environment variable. For example, to move <Filename>app-defaults</Filename> to <Filename>/users</Filename>, set
XFILESEARCHPATH to <Filename>/usr/app-defaults/</Filename><Symbol Role="Variable">language</Symbol><Filename>/</Filename><Symbol Role="Variable">classname</Symbol>.</Para>
<Para>If you set XFILESEARCHPATH in <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dtprofile</Filename>, the value
applies to all desktop and X clients you run. Nonclients will not find their
resource files unless you link or copy them into the directory specified by
XFILESEARCHPATH.</Para>
</Sect1>
<Sect1 Id="SAG.I18N.div.11">
<Title Id="SAG.I18N.mkr.6">Localizing Actions and Data Types</Title>
<Note>
<Para>To customize a file in the <Filename>/usr/dt/appconfig</Filename> directory, copy the file
to the <Filename>/etc/dt/appconfig</Filename> directory prior to customizing.</Para>
</Note>
<Para>The search path for action and data-type definition files includes language-
dependent directories in:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Personal: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/dt/types</Filename></Para>
</ListItem>
<ListItem>
<Para>System-wide: <Filename>/etc/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>Built-in: <Command>/usr/dt/appconfig/types/</Command><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
</ItemizedList>
<Para>The search path for Application Manager's configuration files is:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Personal: <Emphasis>Ho</Emphasis><Symbol Role="Variable">meDirectory</Symbol><Filename>/dt/appmanager</Filename></Para>
</ListItem>
<ListItem>
<Para>System-wide: <Filename>/etc/dt/appconfig/appmanager/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>Built-in: <Filename>/usr/dt/appconfig/appmanager/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
</ItemizedList>
<Para>File and directory names in this directory are localized.</Para>
</Sect1>
<Sect1 Id="SAG.I18N.div.12">
<Title Id="SAG.I18N.mkr.7">Localizing Icons and Bitmaps<IndexTerm><Primary>localization</Primary><Secondary>icons</Secondary></IndexTerm><IndexTerm><Primary>icons</Primary><Secondary>localized</Secondary></IndexTerm><IndexTerm><Primary>icons</Primary><Secondary>non-English</Secondary></IndexTerm></Title>
<Para>To localize an icon, edit the icon with Icon Editor and save it in:</Para>
<ProgramListing>/etc/dt/appconfig/icons/<Symbol Role="Variable">language</Symbol></ProgramListing>
<Para>If you save it in a different directory, set the XMICONSEARCHPATH
environment variable to include the directory where you saved the icon. The
XMICONBMSEARCHPATH environment variable controls the path used to
search for icons.</Para>
</Sect1>
<Sect1 Id="SAG.I18N.div.13">
<Title Id="SAG.I18N.mkr.8">Localizing Backdrop Names<IndexTerm><Primary>icons</Primary><Secondary>localized</Secondary></IndexTerm></Title>
<Para>Localization of backdrops is done through the use of description files
(<ComputerOutput>desc</ComputerOutput>.<Symbol Role="Variable">language</Symbol> and <Filename>desc.backdrops</Filename>). No specific localized directory exists
(such as <ComputerOutput>/usr/dt/backdrops/</ComputerOutput><Symbol Role="Variable">language</Symbol>) for backdrop files. All locales use the
same set of backdrops files but have their own <Filename>desc.</Filename><Symbol Role="Variable">language</Symbol> file containing
the translated names of the backdrops.</Para>
<Para>The description file contains resource specifications for the backdrop names
that are translated. For example:</Para>
<programlisting>Backdrops*Corduroy.desc:    Velours
Backdrops*DarkPaper.desc:   PapierKraft
Backdrops*Foreground.desc:  AvantPlan
</ProgramListing>
<Para>The <ComputerOutput>desc.</ComputerOutput><Symbol Role="Variable">language</Symbol> file is used to retrieve the description of the backdrops for
locale <Symbol Role="Variable">language</Symbol> in order to display the backdrop in the Style Manager. If there is
a description specification, it will be displayed in the Style Manager backdrops
list. Otherwise, the backdrop file name will be used.</Para>
<Para>Users can add their own backdrop descriptions in the
<Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/backdrops/desc.backdrops</Filename> file.
This file is used to
retrieve the backdrop descriptions for all backdrops added by the user
regardless of locale.</Para>
<Para>The search path for the <Command>description</Command> files is:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Personal: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/backdrops/desc.backdrops</Filename></Para>
</ListItem>
<ListItem>
<Para>System-wide: <Filename>/etc/dt/backdrops/desc.</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>Built-in: <Filename>/usr/dt/backdrops/desc.</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
</ItemizedList>
</Sect1>
<Sect1 Id="SAG.I18N.div.14">
<Title Id="SAG.I18N.mkr.9">Localizing Palette Names<IndexTerm><Primary>localization</Primary><Secondary>See also internationalization</Secondary></IndexTerm><IndexTerm><Primary>palettes</Primary><Secondary>localizing names</Secondary></IndexTerm><IndexTerm><Primary>localization</Primary><Secondary>palette names</Secondary></IndexTerm><IndexTerm><Primary>localization</Primary><Secondary>icons</Secondary></IndexTerm><IndexTerm><Primary>icons</Primary><Secondary>localized</Secondary></IndexTerm><IndexTerm><Primary>icons</Primary><Secondary>non-English</Secondary></IndexTerm></Title>
<Para>Localization of palettes is done through the use of description files
(<ComputerOutput>desc</ComputerOutput>.<Symbol Role="Variable">language</Symbol> and <Filename>desc.palettes</Filename>). No specific localized directory exists
(such as <ComputerOutput>/usr/dt/palettes/</ComputerOutput><Symbol Role="Variable">language</Symbol>). All locales use the same set of palette
files but have their own <Filename>desc.palettes</Filename> file containing the translated names
of the palettes.</Para>
<Para>The description file contains resource specifications for the palette names that
are translated. For example:</Para>
<programlisting>Palettes*Cardamon.desc:    Cardamone
Palettes*Cinnamon.desc:    Cannelle
Palettes*Clove.desc:       Brun
</ProgramListing>
<Para>The <ComputerOutput>desc.</ComputerOutput><Symbol Role="Variable">language</Symbol> file is used to retrieve the description of the palettes for
locale <Symbol Role="Variable">language</Symbol> in order to display the palette in the Style Manager list. If there
is a description specification it will be displayed in the Style Manager palettes
list. Otherwise, the palette file name will be used.</Para>
<Para>Users can add their own palette descirptions in the
<Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/palettes/desc.palettes</Filename> file. This file is used to
retrieve the palette descriptions for all palettes added by the user regardless of
locale.</Para>
<Para>The search path for the description files is:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Personal: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/palettes/desc.palettes</Filename></Para>
</ListItem>
<ListItem>
<Para>System-wide: <Filename>/etc/dt/palettes/desc.</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>Built-in: <Filename>/usr/dt/palettes/desc.</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
</ItemizedList>
</Sect1>
<Sect1 Id="SAG.I18N.div.14a">
<Title Id="SAG.I18N.mkr.9a">Localizing an Infolib<IndexTerm><Primary>infolibs</Primary><Secondary>localizing</Secondary></IndexTerm><IndexTerm><Primary>localization</Primary><Secondary>infolibs</Secondary></IndexTerm></Title>
<Para>An infolib contains one or more bookcases, each of which contains one or more books
that can be browsed and searched with the Information Manager. In this hierarchy,
only the infolibs have associated desktop actions. As desktop entities, infolibs can be opened
by dragging and dropping them on the Information Manager control. When an infolib
is opened, the Information Manager displays the Book List window, showing
all the bookcases contained in the infolib.
</para>
<para>The default path for infolibs is set by the
<systemitem class="environvar">DTINFOLIBPATH</systemitem> environment variable.
(The standard CDE desktop path is <filename>/usr/dt/dtinfo/cde.dti</filename>.)
The <Symbol Role="Variable">name</Symbol><filename>.oli</filename> file
found at the first directory level of an infolib contains the abbreviated name for the
infolib. Localizations of an infolib are found in subdirectories beneath the first directory
level and are named according to the NLS mask %<Symbol Role="Variable">L</Symbol>
(or %<Symbol Role="Variable">l</Symbol>_%<Symbol Role="Variable">t</Symbol>.%<Symbol Role="Variable">c</Symbol>.)
In the Information Manager's Book List window, each bookcase in an infolib appears with
the localized string or title stored in the <filename>bookcase.map</filename> file
found in the bookcase's subdirectory.
</para>
</Sect1>
<Sect1 Id="SAG.I18N.div.15">
<Title Id="SAG.I18N.mkr.10">Localizing Help Volumes<IndexTerm><Primary>help volumes</Primary><Secondary>localizing</Secondary></IndexTerm></Title>
<Para>If you have localized a help volume, you must store it in one of the following
directories. The first help volume found is the one used. The directories are
searched in the following order:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Personal: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/help</Filename></Para>
</ListItem>
<ListItem>
<Para>System-wide: <Filename>/etc/dt/appconfig/help/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>Built-in: <Symbol Role="Variable">/usr/dt/appconfig/help/</Symbol><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
</ItemizedList>
</Sect1>
<Sect1 Id="SAG.I18N.div.16">
<Title Id="SAG.I18N.mkr.11">Localizing Message Catalogs<IndexTerm><Primary>localization</Primary><Secondary>message catalogs</Secondary></IndexTerm></Title>
<Para>If you have localized a message catalog, store it in the following directory:</Para>
<Para><Filename>/usr/dt/lib/nls/msg/</Filename><Symbol Role="Variable">language</Symbol>.</Para>
<Para>These directories contain the <Filename>*.cat</Filename> files.</Para>
</Sect1>
<Sect1 Id="SAG.I18N.div.17">
<Title Id="SAG.I18N.mkr.12">Executing Localized Desktop Applications Remotely<IndexTerm><Primary>remote execution</Primary><Secondary>native language support</Secondary></IndexTerm><IndexTerm><Primary>NLS remote execution</Primary></IndexTerm></Title>
<Para>You can invoke localized desktop applications on any remote execution host
that has a similarly localized desktop installation. The values of the NLS-
related environment variables on the host that is invoking the application are
passed to the remote host when the application is started. However, the
environment variables do not contain any host information.</Para>
</Sect1>
<Sect1 Id="SAG.I18N.div.18">
<Title Id="SAG.I18N.mkr.13">Resetting Your Keyboard Map<IndexTerm><Primary>keyboard map, resetting</Primary></IndexTerm><IndexTerm><Primary>internationalization</Primary><Secondary>troubleshooting</Secondary></IndexTerm></Title>
<Para>If you see unexpected characters and behaviors, or characters cannot be
displayed or typed, you might need to reset or install your keyboard map or
change your input method.</Para>
<Para Id="SAG.I18N.mkr.14">The input method is determined by the LC_CTYPE, LANG, or LC_ALL
environment variables, or the language specified by the <ComputerOutput>-lang</ComputerOutput> option.<IndexTerm><Primary>input method, internationalization</Primary></IndexTerm>
</Para>
<Para>For example, if the user wants to open a terminal with the C locale within a
POSIX shell, such as:</Para>
<programlisting>LANG=C dtterm
</ProgramListing>
<Para>This new terminal uses the C locale including the C input method and fonts. If
you are using a language-specific keyboard, the input method may not accept
any extended characters for input. When using the C locale with a language-
specific keyboard, users need to set the LC_CTYPE (or LANG or LC_ALL)
environment variable to an appropriate value before invoking the terminal.
</Para>
<Para>For example, to use the C locale with the German keyboard, type:
</Para>
<programlisting>LANG=C LC_CTYPE=DeDE dtterm
</ProgramListing>
<Para>If the X server has been reset and keymaps have been initialized, you can reset
the proper keyboard map at the server using the <ComputerOutput>xmodmap</ComputerOutput> command.
</Para>
</Sect1>
<Sect1 Id="SAG.I18N.div.19">
<Title Id="SAG.I18N.mkr.14a">Selecting an Input Method Server<IndexTerm><Primary>input method server</Primary><Secondary>selecting</Secondary></IndexTerm></Title>
<Para>Asian users can select which input method server (IMS) to use either at
session startup or at any time within a session (by using the Style
Manager's Internationalization control). IMS selection is
allowed only if <systemitem class="environvar">LANG</systemitem>
is set to an Asian language (Japanese, Korean, Chinese traditional, or
Chinese simplified).
</para>
<para>Once an IMS has been selected, users can set the IMS selection mode, which
determines whether they will be prompted
for an IMS at the next login or will automatically use the currently selected IMS.
</para>
<para>The IMS selection and IMS selection mode are stored in the file:<IndexTerm><Primary>input method server</Primary><Secondary>selection file</Secondary></IndexTerm>
<programlisting><Symbol Role="Variable">$HOME</Symbol>/.dt/ims/[<Symbol Role="Variable">display_name</Symbol>/]<Symbol Role="Variable">CDE_locale_name</Symbol>
</programlisting>
</para>
<para>The format of the IMS selection file is:
</para>
<programlisting>@SelectMode:    0 <lineannotation>(Ask at login), or</lineannotation>
                1 <lineannotation>(Resume current input method)</lineannotation>
@ImsName:       <Symbol Role="Variable">ims_name</Symbol>
@HostName:      <Symbol Role="Variable">host_name</Symbol>
</programlisting>
<sect2 Id="SAG.I18N.div.20">
<Title Id="SAG.I18N.mkr.15">At Session Startup<IndexTerm><Primary>input method server</Primary><Secondary>selecting at session startup</Secondary></IndexTerm></title>
<para>To allow users to select an IMS prior to session startup, set the
<systemitem class="environvar">DTSTARTIMS</systemitem> environment variable to
<systemitem class="constant">TRUE</systemitem>. Setting
<systemitem class="environvar">DTSTARTIMS</systemitem> to
<systemitem class="constant">TRUE</systemitem> causes
the Session Manager to execute the
<filename>/usr/dt/config/Xsession.d/0020.dtims</filename> script.
This script checks <systemitem class="environvar">LANG</systemitem>.
If <systemitem class="environvar">LANG</systemitem> is set to an Asian
language, the script invokes the <command>dtimsstart</command>
program. <command>dtimsstart</command> displays an Input Method
Selection dialog from which the user can select which IMS to use.
The user can choose an IMS running either on the local host or on a remote
host.
</para>
<para>To set the selection mode, the user can use the Style Manager I18N control
(described below) or use <command>DtActionInvoke</command> to execute the
<Symbol>DtImsMode</Symbol> action in <literal>Desktop_Tools</literal> in the
Application Manager. The <Symbol>DtImsMode</Symbol> action
displays a dialog that lets the user choose either
<literal>Ask at Login</literal> or <literal>Resume current input method</literal>.
</para>
<para>The name of the selected IMS and its host and the selection mode
are recorded in the IMS selection file.
</para>
</sect2>
<sect2 Id="SAG.I18N.div.21">
<Title Id="SAG.I18N.mkr.16">Within a Session<IndexTerm><Primary>input method server</Primary><Secondary>selecting within a session</Secondary></IndexTerm></title>
<para>At any point within a session, a user can select which IMS to use by clicking the
the Style Manager I18N control. (This control appears only if
<systemitem class="environvar">LANG</systemitem> is set to an Asian
language.) The Input Method Selection dialog is displayed. If there is a current IMS,
the dialog shows its name as well as the server host on which it is running.
The user can choose an IMS that is running either on the local host or on a remote
host.
</para>
<para>To define the hosts on which an IMS can be found, you can configure the
the <literal>imServerHosts</literal> application resource. The Style
Manager uses this resource to identify which hosts to present for user
IMS selection. It contains a comma-separated list of host names.
</para>
<para>In addition to selecting the IMS, the user can set the selection mode to either
<literal>Ask at Login</literal> or <literal>Resume current input method</literal>.
</para>
<para>The name of the selected IMS and its host and the selection mode
are recorded in the IMS selection file.
</para>
</sect2>
<sect2 Id="SAG.I18N.div.22">
<Title Id="SAG.I18N.mkr.17">Setting the IMS Configuration Files<IndexTerm><Primary>input method server</Primary><Secondary>configuration files</Secondary></IndexTerm></title>
<para>In addition to the IMS selection file (described above), IMS configuration is
defined by:
</para>
<itemizedlist>
<listitem>
<para>The Locale Entry file
</para>
</listitem>
<listitem>
<para>The IMS Entry file
</para>
</listitem>
</itemizedlist>
<sect3 Id="SAG.I18N.div.23">
<Title Id="SAG.I18N.mkr.18">Locale Entry File<IndexTerm><Primary>input method server</Primary><Secondary>Locale Entry file</Secondary></IndexTerm><IndexTerm><Primary>Locale Entry file</Primary></IndexTerm></title>
<para>The Locale Entry file lists the IMSs that support a given locale.
Its location is <filename>/usr/dt/config/ims/</filename><Symbol Role="Variable">locale_name</Symbol>
and it takes the format:
</para>
<programlisting>@Default: <Symbol Role="Variable">ims_name</Symbol>
<Symbol Role="Variable">ims_name</Symbol>: <Symbol Role="Variable">label_string</Symbol>
&hellip;
</programlisting>
<para>The following shows a sample IMS listing for the
locale <literal>ja_JP.SJIS</literal>:
</para>
<programlisting>@Default: xjim
xjim:     HP XJIM
atok8:    ATOK8
vje:      VJE-gamma
egbridge: EGBridge
none:     No Input Method
</programlisting>
</sect3>
<sect3 Id="SAG.I18N.div.24">
<Title Id="SAG.I18N.mkr.19">IMS Entry File<IndexTerm><Primary>input method server</Primary><Secondary>IMS Entry file</Secondary></IndexTerm><IndexTerm><Primary>IMS Entry file</Primary></IndexTerm></title>
<para>The IMS Entry file describes the attributes of an IMS.
Its location is <filename>/usr/dt/config/ims/</filename>
<Symbol Role="Variable">ims_name</Symbol> and it takes the format:
</para>
<programlisting><symbol role="variable">attribute_name</symbol>: <symbol role="variable">attribute_value</symbol>
</programlisting>
<para>where <symbol role="variable">attribute_name</symbol> is:
</para>
<variablelist>
<varlistentry><term><literal>protocols</literal></term>
<listitem>
<para>A String attribute that identifies the supported XIM protocols. The
valid protocols are XIM, Ximp, and Xsi. This attribute is required.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>server_name</literal></term>
<listitem>
<para>A String attribute that identifies the server on which the IMS runs.
This attribute is used for XMODIFIERS and is required.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>cmd_path</literal></term>
<listitem>
<para>A Path attribute that specifies the absolute path of the the IMS's
executable file. It is a a built-in keyword used for local IM built in
Xlib, which does not need a separate process. This attribute is
required.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>cmd_param</literal></term>
<listitem>
<para>A String attribute that supplies a command line option for the IMS
server. The default is NULL.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>env_set</literal></term>
<listitem>
<para>A String attribute that specifies the environment variables to be set,
with the exception of XMODIFIERS. The default is NULL.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>env_unset</literal></term>
<listitem>
<para>A String attribute that specifies the environment variables to be unset,
with the exception of XMODIFIERS. The default is NULL.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>env_pass</literal></term>
<listitem>
<para>A String attribute that specifies the environment variables to be passed
to a remotely executed IMS, with the exception of LANG, DISPLAY, and
XMODIFIERS. The default is NULL.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>has_window</literal></term>
<listitem>
<para>A Bool attribute that indicates whether the IMS has its own main window
appearance or not. The default is False.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>no_server</literal></term>
<listitem>
<para>A Bool attribute that indicates whether <command>dtimsstart</command>
should start the IMS or not. True should be given for the local IM, since it
does not require any server process started by
<command>dtimsstart</command>. The default is False.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>no_remote</literal></term>
<listitem>
<para>A Bool attribute that indicates whether the IMS allows remote execution
or not. The default is False.
</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>no_option</literal></term>
<listitem>
<para>A Bool attribute that indicates whether the IMS allows the command line
option or not. If True, any options specified by
<literal>-imsopt</literal> are ignored, though the value of the
<literal>cmd_param</literal> attribute is always applied regardless of
this value. True should be given for the local IM. The default is False.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>Note that where multiple values are allowed, they must be specified as a
space-separated list. If multiple entries with the same attribute name
appear in the file, only the last one is used.
</para>
<para>The following shows the contents a sample IMS entry file
<filename>/usr/dt/config/ims/</filename><Symbol Role="Variable">xjim</Symbol>.
</para>
<programlisting>protocols:   XIM Ximp
server_name: xjim
cmd_path:    /usr/bin/X11/xjim
cmd_param:   -iconic
env_set:
env_unset:
env_pass:
has_window:  true
</programlisting>
</sect3>
</sect2>
</sect1>
<Sect1 Id="SAG.I18N.div.20a">
<Title Id="SAG.I18N.mkr.15a">Setting Input Method Style<IndexTerm><Primary>input method style</Primary><Secondary>setting</Secondary></IndexTerm></Title>
<para>The Style Manager I18N control allows the user to set the input method style,
which determines how pre-editing will occur. The order in which
pre-edit styles will be used is stored in the <Symbol>XmNpreeditType</Symbol>
resource of <command>VendorShell</command>. <Symbol>XmNpreeditType</Symbol>
records the preferred order of pre-edit styles as a comma-separated list.
For example:
</para>
<programlisting>OnTheSpot,OverTheSpot,OffTheSpot,Root
</programlisting>
<para>By using the <literal>Move-Up</literal> and <literal>Move-Down</literal>
buttons on the dialog displayed by the I18N control,
the user can reorder the pre-edit styles within the list.
</para>
</sect1>
</chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 06:16:56-->
