6    Using Internationalized Software

This chapter explains how setup tasks and software features vary among language environments other than English. The chapter is aimed at programmers who are familiar with Tru64 UNIX in an English-language environment and who need to work with other languages, particularly those that use multibyte characters, to run and test their applications.

6.1    Working in a Multilanguage Environment: Introduction

To enable input and display in any language other than English, you must always set the locale in which your process runs. Depending on the language, you may need to perform additional tasks, for example, to:

This chapter discusses these topics as they apply to particular languages or groups of languages. The chapter also describes some command and desktop environment features that English-language speakers do not normally use and that allow you to display, enter, print, and mail text in languages other than English. For complete information about using internationalization features of applications that run in the Common Desktop Environment (CDE), see the CDE Companion.

Language-specific user guides provide additional information about customization and use of software provided for a particular language. The following user guides are available only in HTML format:

Non-English characters are embedded in the text of the user guides for Chinese, Japanese, and Korean. To view these characters with your web browser, the appropriate language support subsets must be installed on your system and your locale must be set to one that includes the local language characters used in the book.

Tru64 UNIX documentation also provides introductory reference pages on the topics of internationalization ( i18n_intro(5)) and localization ( l10n_intro(5)), along with reference pages for all supported languages and codesets.

6.2    Setting Locale and Language

System software that supports different language environments may provide translated message files, application resource files, help files, or some combination of these. If translations are available for message files, you can vary the language of software messages and other text by selecting a locale.

For system software, you set locale by defining the LANG environment variable. For example:


% setenv LANG en_US.ISO8859-1

Refer to the discussion of internationalization in the System Administration book and in the Command and Shell User's Guide for more detailed information on using locales and defining the associated variables for system and user setup. You can also refer to the i18n_intro(5) reference page for a discussion of locale variables such as LANG. If these locale variables are not defined, internationalized applications assume the POSIX (C) locale, which supports only English. For names of locales that are available with the operating system, see l10n_intro(5).

Note

Locales often have multiple variants. These variants have the same name as the base locale but include a file name suffix that begins with the at sign (@). Locale variants for support of codesets, such as UCS-4 and cp850, that are not native to UNIX, can be assigned to LANG or LC_ALL. However, locale variants that differ from the base locale in only one locale category should be assigned only to the appropriate locale category. For example, a locale variant designed to support a specific collation sequence, such as @radicalwould be assigned to LC_COLLATE. A locale variant designed to support the euro monetary sign (@euro) would be assigned only to LC_MONETARY. Use the base locale name, not these variants, in assignments to the LANG environment variable. Furthermore, in cases where a base locale name is not being assigned to all locale categories, avoid using the LC_ALL environment variable, whose assigned value overrides settings for both LANG and the environment variables for specific locale categories.

Many locale-specific files reside in directories whose names are constructed from the language, territory, and codeset portions of a locale name. Commands and other system applications insert the setting of the LANG variable into search paths that contain %L as one of the directory nodes. This makes it possible for software programs to find the correct set of files, such as fonts, resource files, user-defined character files, and translated reference pages, that should be used with the current locale. An @ suffix related to collation, if included in an assignment to the LANG variable, may result in applications being unable to find certain locale-specific files.

For graphical applications, you need to select a language to take advantage of text translations and local-language features available with Common Desktop Environment (CDE) and other kinds of Motif applications. For Asian languages, the correct language selection is particularly important because it enables:

See the CDE Companion for general information about setting language in CDE.

CDE assumes that all applications run during a session operate in the language that was set at the start of the session. On Tru64 UNIX systems, you can work around this restriction.

  1. In a dtterm window, set the LANG or LC_ALL environment variable to the locale in which you want to run the new application. For example:

    
    % setenv LANG ko_KR.deckorean
    

  2. If the setting is for a Japanese, Chinese, or Korean locale, use the system command line to start the appropriate input method server before invoking the application. For example:

    
    % /usr/bin/X11/dxhangulim &
    

    See Section 6.4 for information about Asian input method servers.

  3. In the same window, use the system command line to invoke the application you want to run in the new locale. For example:

    
    % /usr/dt/bin/dtterm &
    

  4. If you need to change your keyboard setting to work in the new locale, do so before starting to work in the new application's window. See Section 6.3 for information about setting keyboard type.

6.3    Selecting Keyboard Type

To enter English text, a standard keyboard provides a sufficient number of keys (combined with shift states) to enter all uppercase and lowercase letters, numerals, and punctuation marks. For many other languages, the default keyboard does not provide enough keys and shift states to enter all characters.

Terminal users must use a localized keyboard or, if their keyboard includes a Compose key, use Compose-key sequences to enter non-English characters from single-byte codesets. Some terminals also provide software emulation of a number of keyboard layouts for languages that are based on single-byte codesets. The user guide for each terminal explains how you can use its keyboard to enter non-English characters. Entry of multibyte characters in Asian languages requires special terminal hardware.

Workstation users can set keyboard type to be appropriate for languages for which there are standard keyboard types when appropriate support files are installed on the system. You need to set keyboard type for Western and Eastern European languages, Japanese, Thai, and Hebrew. Keyboard setting is not required for Chinese and Korean languages.

In CDE, use Keyboard Options (one of the Desktop Applications) to change your keyboard type. Refer to the CDE Companion for more information about changing keyboard type. From the system command line, this application is invoked by using the dxkeyboard command.

Unlike the language setting, the keyboard setting is a global attribute that applies to all windows. Therefore, if you are working in windows that were created with different language settings, you may need to change the keyboard setting as you move from one window to another. Keep in mind that no matter what setting is made by using CDE applications, that setting does not change the setting that applies when you log on the system. The keyboard setting when you log on the system is always the system-default keyboard. See keyboard(5) for information about changing the system-default keyboard.

6.3.1    Determining Keyboard Layout

If you change your keyboard from the one whose characters are printed on the hardware keys, you need to know how characters are mapped to keys and whether any characters must be entered by using a mode-switch key or mode-switch key sequence. For some languages, such as Czech, up to four different characters can be mapped to the same key. In such cases, you use the key defined as the mode switch to toggle among different sets of characters mapped to the same key. Note that mode switching is a character entry mechanism that is different from Compose sequences. A particular keyboard setting may support Compose sequences (which require one key to be defined as a multikey), mode switching (which requires at least one key to be defined as a mode-switch key), both, or neither of these input mechanisms.

You can access a keyboard layout for your current keyboard setting by using a command similar to the following to create a PostScript file that you can print:

% /usr/bin/X11/xkbprint -label symbols -o mykeyboard.ps :0

Refer to xkbprint(1X) for more information about the xkbprint command.

6.4    Determining Input Method

For some languages, such as Japanese, Chinese, and Korean, you use an input method to enter characters, phrases, or both. An input method lets you input a character by taking multiple editing actions on entry data. The data entered at intermediate stages of character entry is called the preediting string. The X Input Method specification defines four user input styles:

For some of the input styles selected in an application, the preediting and status windows are not redrawn correctly if the application window is occluded by other windows. To correct this problem, click on or refocus on the application window.

Input methods for different locales typically support more than one user input style but not all of them. If you work in languages that are supported by an input method, you can specify styles in priority order through the VendorShell resource XmNpreeditType. By default, this resource is defined to be:

OnTheSpot,OverTheSpot,OffTheSpot,Root

The preceding value means that on-the-spot input style is used if the input method supports it, else the over-the-spot is used if the input method supports it, and so forth.

There are several ways to supply the XmNpreeditType resource value to an application:

Input styles are supported by specialized input method servers. An input method server runs as an independent process and communicates with an application to handle input operations. An input method server does not have to be running on the same system as the application but must be running and made accessible to the application before the application starts. Following are the input method servers available in the operating system, along with the input styles that each server supports:

Each of these servers has a corresponding reference page.

The applications that you run may support more, fewer, or none of the input styles supported by a particular input server. The preedit option "None" applies when an input server rejects all input styles supported by the application.

In the CDE, the appropriate input server automatically starts when you select the session language. However, see Section 6.15.4 for restrictions that may require you to start an input server manually.

6.5    Determining the Input Mode Switch State

The keyboard layout for an Asian language provides keys for only a small number of characters. For Asian languages, you also use an input methodology (incorporating control-key sequences, keypad-key sequences, or options in a windows application) to convert one or more characters that you can input directly from the keyboard to other kinds of characters. Section 6.4 and the language-specific technical reference guides discuss input methods for Asian languages.

If your keyboard has a mode-switch LED (light emitting diode), it is turned on or off, depending on whether you last toggled the special input mode on or off.

If you are using a workstation and your language is set to an Asian language, you can show the mode-switch LED on the screen by invoking the Keyboard Indicator application with the -map option, as follows:

% /usr/bin/X11/kb_indicator -map &

The -map option starts a Motif application that emulates a mode-switch LED. The application window contains one button, which is displayed as on or off, corresponding to the input mode state. You can click on this button to toggle in and out of input mode. The window is insensitive if input mode switching is not supported for your current language setting.

You can have only one Keyboard Indicator application running during your session. To stop the application, press Ctrl-c in the window from which you started the application or enter the following kill command with the application's process id:

kill -INT process_id

If Keyboard Indicator is stopped by any other means, you must enter the following command before restarting the application:


% /usr/bin/X11/kb_indicator -clear

The preceding command erases the server status for the application so that it can be restarted cleanly.

If your language is set to Hebrew, the Keyboard Manager application (/usr/bin/X11/decwkm) provides the same function as the Keyboard Indicator window provides for Asian languages.

6.6    Defining the Search Path for Specialized Components

European languages are supported by data and executable files installed at system default locations. Asian-language support for some commands and programming libraries requires files that are subordinate to the /usr/i18n directory. These files supplement or replace files in system default locations. When you install one or more of the Asian language subsets, the installation procedure makes the following adjustments to variable settings on a systemwide basis:

The /etc/i18n_profile file includes the preceding variable assignments on a systemwide basis for Bourne and Korn shell users. For C shell users, the installation process includes the /etc/i18n_login file in the /etc/csh.login file to correctly set search paths for Hebrew and Asian languages. Unless specifically noted in descriptions of particular commands or utilities, individual users do not need to change process-specific search paths to find localized binaries and utilities.

6.7    Using Terminal Interface Features for Asian Languages

The Tru64 UNIX Asian terminal driver (atty) and Thai terminal driver (ttty) support input and output of English and other language characters over asynchronous terminal lines. When one or both of these drivers are installed, you can set terminal line characteristics to be appropriate for the language you are using. The driver's local-language capabilities are supported in the following terminal configurations:

Refer to atty(7) and ttty(7) for more information about these terminal drivers.

The stty command can enable support for multibyte codesets and special character manipulation capabilities, such as the following:

This section provides general information about using the stty command to enable features added to the terminal subsystem for Asian languages.

The stty utility sets or reports on terminal input/output characteristics of the device that is the utility's standard input. Table 6-1 shows the stty options that set line discipline for Asian languages.

Table 6-1:  The stty Command Options for Controlling Terminal Line Discipline

stty Option Description
adec Sets the terminal line discipline to handle multibyte data and the processing environment appropriate for simplified Chinese (Hanzi), traditional Chinese (Hanyu), and Korean codesets. This option is supported for both the STREAMS and BSD terminal drivers.
jdec Sets the terminal line discipline to handle multibyte data and the processing environment appropriate for Japanese codesets. This option sets terminal code to dec and application code to eucJP. The jdec option is supported for both the STREAMS and BSD terminal drivers.
tdec Sets the terminal line discipline to handle Thai characters and the processing environment appropriate for the Thai codeset. This option is supported for only the BSD terminal driver.
dec Sets the terminal line discipline back to the default, or standard, tty line discipline and clears characteristics that preceding stty commands may have set for application and terminal code. This option is supported for both the STREAMS and BSD terminal drivers.

Note

Do not set the terminal line discipline to jdec or adec from a console set up for kernel debugging (running the KDEBUG driver). Doing so may cause the console to hang.

The stty command requires an appropriate locale setting to be in effect before changing the terminal line discipline to support that locale. For example, to set your terminal line discipline to handle Korean, enter:

% setenv LANG ko_KR.deckorean
% stty adec

To set your terminal line discipline back to the tty default, enter:


% stty dec

Note

When your terminal line discipline is not set to the tty default and you want to switch to another nondefault option (to switch from jdec to adec, for example), first enter the stty dec command to clear any application or terminal characteristics that may not be appropriate for the new setting. The following example shows how to switch a terminal line discipline from its current setting of adec to jdec:


% stty dec
% stty jdec

The stty command entered with the -a option or all argument displays all settings for the current terminal line discipline:

% stty adec
% stty all
atty disc;speed 9600 baud; 24 rows; 80 columns
erase = ^?; werase = ^W; kill = ^U; intr = ^C; quit = ^\; susp = ^Z
dsusp = ^Y; eof = ^D; eol <undef>; eol2 <undef>; stop = ^S; start = ^Q
lnext = ^V; discard = ^O; reprint = ^R; status <undef>; time = 0
min = 1
-parenb -parodd cs8 -cstopb hupcl cread -clocal
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc
ixon -ixany -ixoff imaxbel
isig icanon -xcase echo echoe echok -echonl -noflsh -mdmbuf -nohang
-tostop echoctl -echoprt echoke -altwerase iexten -nokerninfo
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tabs -onoeot
-odl lru size=256
-sim key= class=
tcode=dec acode=deckanji

6.7.1    Converting Between Application and Terminal Codesets

Many terminals support only one codeset, which is a problem when you work on one terminal and need to run applications in locales (particularly Asian locales) that are based on a variety of codesets. Therefore, the atty driver provides a mechanism for converting between the codeset that an application uses and the codeset that a terminal supports. You control codeset conversion by using options on the stty command line.

Note that the adec, jdec, and dec options of the stty command set terminal code and application code appropriately for Compaq terminals and workstations. You need to explicitly use the tcode option, for example, if you are logging in from a Japanese terminal that does not support the same codeset as Compaq terminals and workstations.

Table 6-2 specifies stty options that explicitly set terminal and application code.

Table 6-2:  The stty Options to Explicitly Set Application and Terminal Code

stty Option Description
acode codeset Sets application code to codeset
tcode codeset Sets terminal code to codeset
code codeset Sets both terminal code and application code to codeset

The following command lets you run an application that uses DEC Kanji on a terminal that supports only Shifted JIS (a codeset prevalent in the Japanese personal computer market):

% stty acode deckanji tcode sjis

The technical reference guides for the Asian language features provide additional details about supported application codesets and terminal codesets.

6.7.2    Command Line Editing That Supports Multibyte Characters

This section discusses how you enable and use command-line editing when Asian-language support is installed on your system.

When the terminal line discipline and terminal codeset characteristics are set appropriately for multibyte codesets, the atty driver handles command-line editing appropriately for languages supported by those codesets. For example, when you enter the control sequence to delete a character (assuming you have defined the control sequence), the entire character is deleted, regardless of how many bytes it occupies. The character being erased can be either a single-byte English character or a multibyte Asian character when both occur on the same command line.

Word deletion is also supported, even when words combine single-byte and multibyte characters. The atty driver accepts single-byte space characters, two-byte space characters (if applicable to the terminal code setting), or tab characters as word delimiters.

The erase and werase options of the stty command line let you define the control sequence for character and word deletion. For example:


% stty erase [Ctrl-h]
% stty werase [Ctrl-j]

This example specifies that Ctrl-h deletes the character preceding the cursor and Ctrl-j deletes the word preceding the cursor.

History mode is a mode of command-line editing that allows you to recall and optionally modify a command entered previously. The history mode implementation discussed here is one that is customized for Asian-language input and supported only for the BSD terminal driver. Table 6-3 specifies the stty options that enable or disable history mode editing.

Table 6-3:  The stty Options to Enable/Disable History Mode

stty Option Description
history key Sets the toggle key for the history mechanism and enables it.
-history Disables the history mechanism.

The atty driver can maintain a history of up to 32 commands, each with a maximum length of 127 characters. Table 6-4 describes the commands you can use to edit command lines after entering the history key.

Table 6-4:  Command Line Editing in History Mode

Command/Key Description
Ctrl-a Move to the beginning of the line
Ctrl-d Delete the character under the cursor
Ctrl-e Move to the end of the line
Up-arrow Recall the previous command line in the history list
Down-arrow Recall the next command in the history list
Left-arrow Move the cursor left by one character
Right-arrow Move the cursor right by one character
erase_sequence Delete the character preceding the cursor
werase_sequence Delete the word preceding the cursor

In the preceding table erase_sequence and werase_sequence indicate the control sequences defined by the stty options erase and werase, respectively.

When editing a command line in history mode, you insert characters as follows:

  1. Press the arrow keys to move the cursor to the position immediately to the right of the point where you want to insert characters.

  2. Enter the characters you want to insert.

If you enter the control characters that represent "kill," "interrupt," or "suspend," the tty driver breaks out of history mode and cancels the command line being edited.

6.7.3    Kana-Kanji Conversion: Customization of Japanese Input Options

In the Japanese language, a particular language element, such as a vowel, can be represented by more than one character. These characters can have both phonetic and ideographic variants; furthermore, the phonetic character variants can print in either two-column or single-column width. The different classes of characters, listed in the following table, require different input schemes:

Character Class Description
Kanji Ideographic
Hiragana Phonetic
Katakana Phonetic Katakana characters exist in full width (two-column) and half width (single-column) formats. The single-column format of Katakana is referred to as Hankaku.

During a single session, a Japanese user can work with Kanji, Hiragana, and Katakana characters in various combinations. The user therefore must be able to customize terminal input mode to suit the character being entered. When the input device is a JIS terminal rather than a workstation, the user must adjust line discipline and terminal code settings in the software to match hardware capabilities (for example, whether the terminal uses 7-bit or 8-bit encoding).

The tty driver supports a mechanism known as Kana-Kanji conversion. This term refers to the conversion between phonetic and ideographic character encoding and the support for keyboard entry sequences that make Japanese character selection more efficient for the user. You use the stty command to enable or disable the Kana-Kanji conversion method and other aspects of Japanese input support. The stty options that support Japanese input are described in Table 6-5 and, unless noted otherwise, are used in conjunction with the jdec option. For example, the following command sets the terminal line discipline to support Japanese character encoding and also enables Kana-Kanji conversion:

% stty jdec ikk

Table 6-5:  The stty Options to Enable and Customize Japanese Input

stty Option Description
clause mode

Sets the character attribute for marking a clause that results from Kana-Kanji conversion.

The mode argument can be bold, underline, reverse, or none.

esc.alw

Changes the terminal state to "shift out" whenever a newline character is output.

This option applies only when the tcode (terminal code) stty option is set to jis7 or jis8.

-esc.alw

Does not change the current terminal state when a newline character is output.

This option applies only when the tcode (terminal code) option is set to jis7 or jis8.

henkan mode

Sets the character attribute for marking a Henkan, or conversion, region that results from Kana-Kanji conversion.

The mode argument can be bold, underline, reverse, or none.

ikk

Enables the Japanese input method and spawns the Kana-Kanji conversion daemon, kkcd, if it does not already exist. With the BSD terminal driver in cbreak mode, you must use the jx option before using the ikk option to enable the input method. With the STREAMS terminal driver, you must use the jinkey option before using the ikk option.

By default, key map information is taken from (in highest to lowest priority order):

  • The file specified for the kkseq option of the stty command

  • The file defined for the JSYKKSEQ environment variable

  • The $HOME/.jsykkseq file

System default key map files for the Japanese input method reside in the /usr/i18n/skel/ja_JP directory.

Dictionaries used with the Japanese input method are taken from (in highest to lowest priority order):

  • The files defined for the JSYTANGO, JSYKOJIN, and JSYLEARN environment variables

  • The /usr/i18n/jsy/jsytango.dic, $HOME/jsykojin.dic, and $HOME/jsylearn.dic dictionary files

-ikk Disables the Japanese input method and kills the kkcd daemon.
jinkey sequence Defines the escape sequence to activate the extended Japanese input method used with the STREAMS terminal driver. The parameter for this option can be more than one character.
imode mode

Sets the mode for handling 8-bit code or Hankaku (single-column) Kana code when the terminal line discipline is set to dec. The mode argument can be one of the following keywords:

  • kanji, where the 8-bit code is treated as encoding for Kanji

  • hiragana, where the 8-bit code is converted to 2-column Hiragana format

  • katakana, where the 8-bit code is converted to 2-column Katakana format

  • hankaku, where the 8-bit code is handled in Hankaku (1-column) Katakana format

jx character Sets the toggle character for entering the extended, or cbreak, Kana-Kanji conversion mode used with the BSD terminal driver. Users need to enter cbreak mode when working in utilities, such as dbx, that do not support the full range of Japanese input options.
-jx Undefines the toggle character for entering the extended Kana-Kanji conversion mode.
kin esc_sequence Sets the JIS Kanji "shift in" escape sequence for the JIS terminal.
kkmap Displays the current key map for Kana-Kanji conversion. The display is a traversal tree with a maximum of 15 characters for each key sequence.
kkseq file Sets the Kana-Kanji conversion key map file for the terminal (see also the table entry for the ikk option).
knj.bsl Uses only one backspace to erase one Kanji character.
-knj.bsl Uses two backspaces to erase one Kanji character.
knj.sp Uses one 2-byte (zenkaku) space to blank out one Kanji character.
-knj.sp Uses two ASCII spaces to blank out one Kanji character.
kout esc_sequence Sets the JIS Kanji "shift out" escape sequence for the JIS terminal.

6.8    Supporting User-Defined Characters and Phrase Input

The national character sets for Japan, Taiwan, and China do not include some of the characters that can appear in Asian place and personal names. Such characters are defined by users and reside in site-specific databases. These databases are called user-defined character (UDC) or character-attribute databases. When users define ideographic characters, they must also define font glyphs, collating files, and other support files for the characters. Appendix B provides details on how you set up and use UDC databases.

In Korea, Taiwan, and China, users can input a complete phrase by typing a keyword, abbreviation, or acronym. This capability is supported by a phrase database and an input mechanism. Appendix C provides details on how you set up and use a Chinese phrase database.

The /var/i18n/conf/cp_dirs configuration file allows software services or hardware to locate the databases that support UDC and phrase input.

Example 6-1 shows the default entries in the cp_dirs file. You can edit these entries to change the default locations.

Example 6-1:  Default cp_dirs File

#
# Attribute directory configuration file
#
#                       System location         User location
#                       ===============         =============
udc     -               /var/i18n/udc           ~/.udc
odl     -               /var/i18n/odl           ~/.odl
sim     -               /var/i18n/sim           ~/.sim
cdb     /usr/i18n/.cdb  /var/i18n/cdb           ~/.cdb
iks     -               /var/i18n/iks           ~/.iks
pre     -               /var/i18n/fonts         ~/.fonts
bdf     -               /var/i18n/fonts         ~/.fonts
pcf     -               /var/i18n/fonts         ~/.fonts

Each line in the cp_dirs file represents one entry and has the following format:

[service_name standard_path system_path user_path ]

The service_name can be one of the following:

The cp_dirs file can contain only one entry for each service named. Remaining fields in the entry line consist of the following:

The preceding locations are specified as one of the following:

Comment lines in the cp_dirs file begin with the number sign (#).

6.9    Using Printer Interface Features That Support Local Languages

When you install Tru64 UNIX and include language variant subsets, your printing subsystem is enhanced with the following features:

The following sections discuss all but the last of the listed features.

6.9.1    Generic Internationalized Print Filters

The pcfof and wwpsof print filters enable use of Compaq printers, particularly those for which no other printer-specific solution is described in this chapter. You also need to use these filters if your printer is from another vendor. Both of these filters rely on a printer customization file (.pcf file) to supply certain device-specific information. Operating system software includes a basic set of .pcf files. System administrators can add more .pcf files to describe the capabilities of additional printers used at your site.

6.9.1.1    pcfof Print Filter

The pcfof filter handles both PostScript printers and text printers, such as the HP PCL printer. For PostScript files, the filter requires that the appropriate local language PostScript fonts be available on the printer. This restriction limits the filter's usefulness on many Compaq printers, particularly for printing PostScript files that require Japanese fonts. This filter can be set up to do codeset conversion when the printer locale differs from the one required for a text file print job. The filter also has .pcf files that are appropriate to use for a number of third-party text printers. Refer to pcfof(8) and the System Administration manual for details on using this print filter.

6.9.1.2    wwpsof Print Filter

The wwpsof filter is used only with PostScript printers. The main advantage of this filter is that it does not require PostScript fonts to be printer resident because the filter can embed the required fonts in the print job. The PostScript fonts can be either outline fonts installed on the system or bitmap fonts made available to the filter through an X font server. The filter prints multilanguage text files by first converting each character in the text file to a matching character in a UNIX codeset for which fonts are available and then converting the file to PostScript. The filter can also print PostScript files that have been generated by a CDE application. Refer to wwpsof(8) and the System Administration manual for details on using this print filter.

6.9.2    Print Filters for Specific Local Language Printers

A print filter processes text data for a particular model of printer. The filter handles the device dependencies of the printer and performs device accounting functions. When each print job is complete, the print filter writes an accounting record to the file specified by the af field of the printer's entry in the /etc/printcap file.

The print filters for local-language text printers can handle text files that contain ASCII and local-language characters, or output files created by the nroff command. When processing nroff output, the filter removes multibyte characters that extend beyond the page boundary and translates nroff control sequences for underlining, superscripting, and subscripting to control sequences appropriate for the printer. However, the filter does not support multiple nroff control sequences on the same character.

The PostScript print filters can print PostScript files in addition to text and nroff output files.

A local-language print filter can be the specified filter in both the of and if fields in the /etc/printcap file. For general information on /etc/printcap entries, refer to the System Administration manual and to printcap(4). Supplementary information is provided in i18n_printing(5). A reference page for a specific language (for example, Japanese(5)) lists the names of print filters that support printing characters in that language.

The following print filters process text data for Asian languages:

Language Filter Printer
Japanese la84of LA84-J
Japanese la86of LA86-J
Japanese la90of LA90-J
Japanese la280of LA280-J
Japanese la380of LA380-J
Japanese ln03jaof LN03-J
Japanese ln05jaof LN05-J
Simplified Chinese la88cof LA88-C
Simplified Chinese la380cbof LA380-CB
Korean la380kof LA380-K
Korean dl510kaof DL510-KA
Traditional Chinese cp382dof CP382-D
Thai thailpof EP1050+

The following print filters process PostScript and text data for Asian languages and for some of the languages supported by locales using the ISO8859-2, ISO8859-5, ISO8859-7, and ISO8859-9 codesets:

Language Filter Printer
Japanese ln82rof LN82R
Czech, Traditional Chinese, Simplified Chinese, Hungarian, Greek, Korean, Polish, Russian, Slovak, Slovene, and Turkish dl1152wrof DEClaser 1152
Thai dl1152trof, dl1152ttmrof DEClaser 1152
Czech, Traditional Chinese, Simplified Chinese, Hungarian, Greek, Korean, Polish, Russian, Slovak, Slovene, and Turkish dl5100wrof DEClaser 5100
Thai dl5100trof, dl5100ttmrof DEClaser 5100

See the reference page for a specific language (for example, Japanese(5)) to find the names of print filters that support printing characters in that language. See i18n_printing(5) for information about the DEClaser 1152 and DEClaser 5100 printers.

6.9.3    Support for Local Language Printers in /etc/printcap

The /etc/printcap file describes characteristics of each printer on the system. Printer characteristics are specified by symbol/value pairs, where each symbol is a 2-character mnemonic. Each time a user submits a print job, the lpd printer daemon and printer spooling system uses information in the /etc/printcap file to determine how that job is handled.

Table 6-6 lists and describes /etc/printcap symbols that are specific to support for local-language printers. Refer to printcap(4) for descriptions of other symbols used in the /etc/printcap file. Refer to Section 6.9.4 for an example of using the lprsetup command to add several of these options to the /etc/printcap for a local-language printer.

Table 6-6:  Symbols in /etc/printcap File for Local Language Printers

Symbol Type Default Description
ya str None

Double-quoted list of keyword value assignments. This assignment list specifies most of the printer options related to country-specific support. The option keywords, which are explained following this table, include flocale, font, line, odldb, odlstyle, onehalf, plocale, spcom, tacdata, and tm.

yd str None

Secondary tty line or channel for font faulting

Specify this entry for the DEClaser 1152 printer to support the font-faulting mechanism. The font-faulting mechanism, which is enabled by the alpc and ffserver commands, allows the printer to use fonts that are installed but not downloaded. Font faulting is required to support Chinese, Korean, and some other fonts. The font-faulting daemon (ffd) uses the secondary tty line to send font information to the printer.

yj str NULL

If on (the default) is specified as a value, restarts the filter specified for the of symbol for every print job. You need to define this symbol only for printers that are not country-specific and only if non-ASCII characters need to be printed on the flag page of printed output.

yp str NULL Printer ID that conforms to the WoToTo Standard (for Thai printers).
ys num NULL

Size of the SoftODL character cache

The ys entry is applied to text print filters. It must be present and its value must be greater than zero to enable on-demand loading of font files. These font files are the ODL support files created by the cgen utility for user-defined characters. The location of the SoftODL support files is identified by the path for systemwide ODL files in the database location configuration file /usr/var/i18n/conf/cp_dirs. ODL files for private UDC databases are not downloaded to printers.

For optimal performance, the cache value specified for the ys field should match the printer cache size. To find out the cache size for a particular printer, refer to the printer's manual.

yt str fifo

The SoftODL character replacement method

The yt entry applies to text print filters. The value for this entry can be either fifo (first-in-first-out) or lru (least recently used). You can type either uppercase or lowercase letters for these values. To find out which value is appropriate for a particular printer, refer to the printer's manual.

The ya symbol is defined for printing languages whose characters are not included in the Latin-1 character set. The value assigned to the ya symbol is a quoted string that can include one or more of the following keywords:

6.9.4    Enhancements to Printer Configuration Software

The CDE Printer Configuration application is the desktop application that helps you add, delete, or change the characteristics of the printers on your system. The lprsetup utility is an alternative way to do these operations if your system is not running windows software. In both cases, the software performs necessary tasks, such as creating the printer spooling directory, linking the appropriate filter to the printer, and writing the entry for the printer in the /etc/printcap file. See lprsetup.dat(4) for information about mapping the product names of supported printers to their system identifiers. Refer to the System Administration manual for detailed information and examples for printer setup.

Example 6-2 shows how you use the lprsetup command to set up a local-language printer, in this case ln05ja.

Example 6-2:  Setting Up a Local Language Printer with lprsetup

# /usr/sbin/lprsetup   [1]
Printer Setup Program
 
Command < add modify delete exit view quit help >: add
 
Adding printer entry, type '?' for help.
 
Enter printer name to add [0] : ln05    [2]
 
For more information on the specific printer types Enter
`printer?'
 
Enter the FULL name of one of the following printer
types:
 
cp382d    dl1152w  dl5100w     dl510ka  ep1050+   fx1050
fx80      hp4mplus hp4mplus_a4 hpsimx   hpsimx_a4 hp680c
hp680c_a4 hpIII    hpIIIP      hpIIP    hpIV      ibmpro
la280     la30     la30n_a4    la30w    la30w_a4  la324
la380     la380cb  la380k      la400    la424     la50
la600     la70     la75        la84     la86      la88
la88c     la90     lf01r       lg02     lg04plus  lg06
lg08      lg12     lg12plus    lg31     lg104plus lg108plus
lj250     ln03     ln03ja      ln03r    ln03s     ln05
ln05ja    ln05r    ln06        ln06r    ln07      ln07r
ln08      ln08r    ln09        ln10ja   ln14      ln17
ln17_a4   ln17p    ln17ps_a4   ln82r    nec290    ps_level1
ps_level2 remote   wwpsof      xf       unknown
generic_ansi generic_ansi_a4 generic_text generic_text_a4
or press RETURN for [unknown] : ln05ja    [3]

.
.
.
Enter the name of the printcap symbol you wish to modify. Other valid entries are:   'q' to quit (no more changes) 'p' to print the symbols you have specified so far. 'l' to list all of the possible symbols and defaults.   The names of the printcap symbols are:   af br cf ct df dn du fc ff fo fs gf ic if lf lo lp mc mx nc nf of op os pl pp ps pw px py rf rm rp rs rw sb sc sd sf sh st tf tr ts uv vf xc xf xs ya yd yj yp ys yt Da Dl It Lf Lu Ml Nu Or Ot Ps Sd Si Ss Ul Xf   Enter symbol name: ya [4]   Enter a new value for symbol 'ya'? ["plocale=ja_JP.sdeckanji"]   Do you want to enable ODL? [n] y [5]   Enter symbol name: yt [6]   Enter a new value for symbol 'yt'? [fifo]   Enter symbol name: q [7]
.
.
.

  1. Invokes the lprsetup program. [Return to example]

  2. Selects a name for the printer (see Table 6-7). [Return to example]

  3. Selects the printer type. [Return to example]

  4. Specifies the printer locale. [Return to example]

  5. Enables on-demand loading (ODL) of printer fonts for user-defined characters. An affirmative response also sets the cache size that the SoftODL service uses. This value, by default the appropriate cache size for the printer, is stored as value of the ys symbol in the /etc/printcap file. [Return to example]

  6. Specifies the character replacement method that the SoftODL service uses. [Return to example]

  7. Quits the program to indicate no more changes are needed to the /etc/printcap file. [Return to example]

Table 6-7 lists Asian languages and the associated printer choices as displayed by the lprsetup script.

Table 6-7:  Local Language Printers Supported by the lprsetup Command

Language Printer
Japanese (text only) la84j, la86j, la90j, la280j, la380j, ln03ja, ln05ja,
Japanese (PostScript) ln83r
Traditional Chinese (text only) cp382d
Simplified Chinese (text only) la88c, la380c
Korean (text only) la380k, dl510k
Czech, Traditional Chinese, Simplified Chinese, Hungarian, Greek, Korean, Polish, Russian, Slovak, Slovene, and Turkish (PostScript) dl1152w, dl5100w, wwpsof, lps17 [Footnote 3]
Thai (text only) dp1050+
Thai (PostScript) dl1152t, dl1152ttm, dl5100t, dl5100ttm

6.9.5    Print Commands and the Printer Daemon

The lp, lpc, lpd, lpq, lpr, lprm, and lpstat commands handle the features added to the print subsystem for Asian and other languages not in the Latin-1 group. For example, the lpr command includes the -A option and additional values for the -O option to give users access to such features. See lpr(1) for details about local-language options and values.

6.9.6    Choosing PostScript Fonts for Different Locales

The fonts for the Chinese and Korean languages do not fit in the memory of most PostScript printers. Fonts for the Thai language and some European languages do fit in memory, but are large enough that they do not fit in printer memory along with fonts for other languages. For PostScript printers that are currently available and for which fonts supporting certain languages are not printer-resident, the wwpsof print filter (see Section 6.9.1.2) provides a solution. In this case, you may need to specify in a printer's configuration file the names of the PostScript fonts you want to use for different languages. Tru64 UNIX also provides a mechanism for selectively downloading fonts to certain older PostScript printer products as described in i18n_printing(5). In this case, you have to choose among fonts to be downloaded to the printer.

The following list associates languages and codesets with the appropriate set of PostScript fonts:

6.10    Using Mail in a Multilanguage Environment

Tru64 UNIX provides enhanced versions of the following commands and utilities to handle languages based on multibyte-character codesets:

The following sections discuss enhancements to these components, along with a discussion of codeset conversion done by the comsat server. Refer to sendmail(8), mailx(1), mh(1), comsat(8) for more complete software descriptions.

6.10.1    The sendmail Utility

The sendmail utility, which is a back end to several user commands, is configured by default to support 8-bit data. The configuration that supports 8-bit data is required for multibyte character support. Refer to sendmail(8) for restrictions that apply to the 8-bit configuration.

6.10.2    The mailx Command and MH Commands

The mailx command and all applicable commands in the MH system support the conversion of mail messages between the mail interchange codeset (used to transfer messages to some hosts) and a user's application codeset. For example, if the mail interchange codeset is ISO-2022-JP and the application codeset is eucJP, the mailx or MH command converts incoming messages to the Japanese EUC codeset before displaying them.

To prevent data loss, when incoming messages are stored in mail folders, the messages are encoded in the codeset in which they are received. Codeset conversion takes place when users extract or display the messages.

To communicate mail interchange code information to other systems, outgoing messages include two additional header lines like the following:

Mime-Version: 1.0
 
Content-Type: TEXT/PLAIN; charset=ISO-2022-JP

The charset field in the preceding example specifies the mail interchange codeset, in this case, ISO-2022-JP. This codeset is an ISO 7-bit state-dependent codeset for Japanese characters. Codesets other than those that are part of the ISO standard, are identified by the prefix X- in the codeset name. For example, when DEC Hanyu is the codeset used for mail interchange, the following header lines are included in outgoing mail messages:

Mime-Version: 1.0
 
Content-Type: TEXT/PLAIN; charset=X-dechanyu

The mailx command and MH commands use the following values (listed in order of highest to lowest priority) to determine or set the mail interchange and application codesets for a particular message:

6.10.3    The comsat Server

The comsat server, which notifies users of incoming mail messages, always attempts to convert incoming mail messages from the mail interchange codeset to the user's application codeset. The comsat server uses the following values (in order of highest to lowest priority) to determine the codesets that apply to a message:

6.11    Applying Sort Orders to Non-English Characters

The sort command sorts characters according to the collation sequence defined for the current locale. A particular locale can apply one set of collation rules to the associated character set. Multiple locale names do exist, however, for the same combination of language, territory, and character set. Most often, these variations exist to offer users the choice of more than one collating sequence.

When more than one locale is available for a given combination of language, territory, and codeset, some of the locale names include a suffix with the format @variant. To avoid problems with pathnames constructed using the %L specifier, you should assign a locale name with a suffix that is category specific only to the appropriate locale category variable (or variables). In the following example, the locale assigned to LC_COLLATE differs from the locale assigned to LANG only with respect to collating sequence:

% setenv LANG zh_TW.eucTW
% setenv LC_COLLATE zh_TW.eucTW@radical

Supporting different collation orders through one or more locales is adequate for most languages. However, collation orders for Asian languages require additional support for the following reasons:

For the preceding reasons, the asort command was developed and is available when you install language variant subsets that support Asian languages. The asort command uses, by default, the collating order defined for the LC_COLLATE variable and supports all the options supported by the sort command. In addition, the asort command includes the following options:

Refer to asort(1) for more information about using this command.

6.12    Processing Reference Pages in Languages Other Than English

Programmers who supply software applications for UNIX systems frequently supply online reference pages (manpages) to document the application and its components. UNIX text-processing commands and utilities must be able to process translated versions of these reference pages for applications sold to the international market. Enhanced versions of the nroff, tbl, and man commands are included in Tru64 UNIX to support this requirement.

6.12.1    The nroff Command

The nroff command includes the following capabilities to support locales:

When formatting reference pages that contain ideographic characters, the nroff command treats each character as a single word. A string of ideographic characters, including 2-byte letters and punctuation characters, can be wrapped to the next line subject to the following constraints:

The standard no-first, no-last character lists are defined in nroff catalog files. For lists of these characters, refer to the language-specific technical reference guides that are available on the documentation CD-ROM.

The no-first and no-last constraints exist to prevent nroff from placing a punctuation mark or right parenthesis at the beginning of a text line or placing a left parenthesis at the end of a text line. You can turn the standard constraints on and off in source files with the .ki and .ko commands, respectively.

You can also define a private set of no-first and no-last characters with the following command:

.kl 'no-first-list'no-last-list '

The parameters no-first-list and no-last-list are strings of characters you should include in the no-first and no-last categories. You cancel a private no-first and no-last list by entering a .kl command with null strings as the parameters. For example:

.kl '''

Note

The characters specified in the .kl command override, rather than supplement, the characters in the standard set of no-first and no-last characters. Therefore, you cannot use the standard set of no-first and no-last characters together with a private set.

Using the command .kl ''' restores use of the standard set of no-first and no-last characters for the current locale.

The nroff command can format text so that it is justified or not justified to the right margin. When text is justified to the right margin, nroff inserts spaces between words in the line. Ideographic characters, although treated as words in most stages of the formatting process, differ in terms of whether they can be delimited by spaces.ž .\" characters include in the character definition Ÿž .\" character (can-space-before), after the character (can-space-after), ŸThe characters that can be preceded by a space, followed by a space, or both are listed in the language-specific user guides that are available on line when you install language variant subsets of Tru64 UNIX. When right-justifying text, the nroff command inserts spaces only at the following places:

In other cases, no space is inserted between consecutive ideographic characters. Therefore, if a text line contains only ideographic characters, it may not be justified to the right margin.

6.12.2    The tbl Command

The tbl command preprocesses table formatting commands within blocks delimited by the .TS and .TE macros. The tbl command handles multibyte characters that can occur in text of languages other than English.

The tbl command is frequently used along with the neqn equation formatting preprocessor to filter input passed to the nroff command. In such cases, specify tbl first to minimize the volume of data passed through the pipes. For example:


% cd /usr/usr/share/ja_JP.deckanji/man/man1
% tbl od.1 | neqn | nroff -Tlpr -man -h | \
lpr -Pmyprinter

When printing Asian language text, you must use printer hardware that supports the language.

6.12.3    The man Command

The man command can handle multibyte characters in reference page files. By default, the man command automatically searches for reference pages in the/usr/share/locale_name /man directory before searching the /usr/share/man and /usr/local/man directories. Therefore, if the LANG environment variable is set to an installed locale and if reference page translations are available for that locale, the man command automatically displays reference pages in the appropriate language.

In addition, the man command automatically applies codeset conversion (assuming the availability of appropriate converters) when reference page translations for a particular language are encoded in a codeset that does not match the codeset of the user's locale. Refer to man(1) for information about redefining the man command search path and for more details about codeset conversion.

6.13    Converting Data Files from One Codeset to Another

Each locale is based on a specific codeset. Therefore, when an application uses a file whose data is coded in one codeset and runs in a locale based on another codeset, character interpretation may be meaningless. For example, assume that a fictional language includes a character named "quo", which is encoded as \031 in one codeset and \042 in another codeset. If the "quo" character is stored in a data file as \031, the application that reads data from that file should be running in the locale based on the same codeset. Otherwise, \031 identifies a character other than "quo".

Users, the applications they run, or both may need to set the process environment to a particular locale and use a data file created with a codeset different from the one on which the locale is based. The data file in question might be appropriate for a given language and in a codeset different from the user's locale for one of the following reasons:

You can convert a data file from one codeset to another by using the iconv command or the iconv_open, iconv, and iconv_close functions. For example, the following command reads data in the accounts_local file, which is encoded in the SJIS codeset; converts the data to the eucJP codeset; and appends the results to the accounts_central file:

% iconv -f SJIS -t eucJP accounts_local \
>> accounts_central

Many commands and utilities, such as the man command and internationalized print filters, use the iconv functions and associated converters to perform codeset conversion on the user's behalf.

The iconv command and associated functions can use either an algorithmic converter or a table converter to convert data. Algorithmic converters, if installed on your system, reside in the /usr/lib/nls/loc/iconv directory; this directory is the one searched first for a converter. This directory also contains an alias file (iconv.alias) that maps different name strings for the same converter to the converter as named on the system. Table converters, if installed on your system, reside in the /usr/lib/nls/loc/iconvTable directory. The value of the LOCPATH variable, if defined, overrides the command's default search path.

The iconv command assumes that a converter name adheres to the following format:

from-codeset_ to-codeset

For the preceding example, the iconv command would search for and use the /usr/lib/nls/loc/iconv/SJIS_eucJP converter.

Table 6-8 specifies the codeset conversions that Tru64 UNIX supports for English data. The user guides for the language variant subsets include tables with codeset conversions supported for Asian languages.

For detailed information about the iconv command, refer to iconv(1) and iconv_intro(5). For information on functions that programs can use to perform codeset conversion, refer to iconv_open(3), iconv(3), and iconv_close(3). You can find a list of all the codeset converters available for a particular language in the reference page for that language.

Table 6-8:  Supported Codeset Conversions for English

Codeset ASCII-GR ISO8859-1 ISO8859-1-GL ISO8859-1-GR
ASCII-GR - Yes No No
ISO8859-1 Yes - Yes Yes
ISO8859-1-GL No Yes - No
ISO8859-1-GR No Yes No -

6.14    Miscellaneous Information for Base System Commands

The following list includes information about features and restrictions that apply when using traditional UNIX commands in local-language environments:

6.15    Using Language Support Enhancements for Motif Applications

In the Motif environments, such as CDE, you use versions of fonts, codesets, servers, and applications that support features discussed in earlier sections of this chapter. This section provides more detail on using features that help support Asian languages. Topics include:

6.15.1    Tuning the X Server for Ideographic Languages

Asian languages have large ideographic character sets, so all characters needed for display are not loaded into memory at the same time. Instead, only as many characters as will fit in the memory cache are simultaneously loaded. When characters needed for display are not currently cached in memory, the least recently used font glyphs are removed from the cache to make room. The font-cache mechanism allows you to display ideographic text in multiple typefaces, font sizes, and font styles without increasing the amount of memory that systems must have to support ideographic languages.

The X Server font-cache mechanism allows you to change the number of cache units and the size of these units to best accommodate the character sets used in displays. You will probably need to change the default values set for cache parameters to achieve the best performance from your system if it will display Asian-language text. Consider the following criteria when deciding on the optimal values for font caching:

To change the cache size (which is the number of cache units) and the size of each cache unit, you must modify the X Server configuration file /usr/lib/X11/xdm/Xservers. This file contains a line, similar to the following one, that starts the X Server:

:0 local /usr/bin/X11/X

You can modify this line to add definitions for cache size and unit size. For example:

:0 local /usr/bin/X11/X -cs cache_size -cu unit_size

Table 6-9 describes the options that tune the font-cache mechanism.

Table 6-9:  X Server Options for Tuning the Font-Cache Mechanism

stty Option Description
-cs cache_size

Defines the number of cache units.

The minimum (and also default) value for this parameter is 1024. If you specify a cache size smaller than 1024, font caching is disabled. For one ideographic language, the recommended value is the lowest multiple of 1024 that accommodates the number of frequently used characters in that language.

If a workstation displays multiple ideographic languages simultaneously, you must add together the values required for each language to get the minimum cache size. Specify an even larger value if you intend to run applications, such as desktop publishing software, that require multiple font styles and sizes for each ideographic character.

-cu unit_size

Defines the size of each cache unit.

The minimum value for unit size is 31 bytes and the default value is 128 bytes. If you specify a value smaller than 31 bytes, the value has no effect. If a particular font requires more memory space than 128 bytes, the font-cache mechanism automatically allocates one or more additional units to store its glyphs.

Note

Font caching applies only to uncompressed fonts in pcf format. Font caching is not applied to any compressed fonts or to fonts in bdf format. Because font caching cannot be used with compressed fonts, the 2-byte fonts for Asian languages are not installed in compressed format.

You can calculate cache unit size with the following formula:

unit_size =
((floor(ceil((double)WIDTH / 8.0) /4.0)) + 1.0) * 4.0 * (double)HEIGHT

Consider the following calculation for a typical font size of 24x24:

unit_size in bytes
= ((floor(ceil((double) 24 / 8.0 / 4.0)) + 1.0) * 4.0 * (double) 24
= 96

For 34x34 fonts, the unit size calculation would yield 272 bytes.

Given that 96 bytes are needed to cache a 24x24 font glyph and 272 bytes is needed to cache a 34x34 font glyph, the default unit size of 128 has the following implications:

Small fonts (whose characters require a single, 128-byte unit) are used to display ideographic characters. Therefore, you usually have to change only the cache size to achieve acceptable performance in text displays of languages with ideographic characters.

6.15.2    Using Font Renderers for Multibyte PostScript Fonts

The operating sytem includes font renderers that allow any X application to use the PostScript fonts available for the Chinese and Korean languages. The system administrator can set up font renderers for the following kinds of fonts for use through the X Server or the font server:

By installing the IOSWWXFR** subset, you automatically enable font rendering for the PostScript outline fonts.

6.15.2.1    Setting Up the Font Renderer for Double-Byte PostScript Fonts

You can set up the font renderer for Chinese and Korean PostScript fonts for use either through the X Server or the font server by editing the appropriate configuration file:

The renderer for Asian double-byte PostScript fonts uses its own configuration file that specifies the following information:

The default pathname for this configuration file is /var/X11/renderer/DECpscf_config; however, you can change this path by setting the DECPSCF_CONFIG_PATH environment variable.

6.15.2.2    Setting Up the Font Renderer for UDC Fonts

The UDC font renderer accesses the UDC database directly to obtain font glyphs. Therefore, X applications that use this renderer do not need to use .pcf files generated by the cgen utility.

You can set up the UDC font renderer for use either through the X Server or the font server as follows:

6.15.3    Setting Fonts for Display of Local Languages

The system on which you install language variant subsets is automatically updated with fonts required to display text in the supported languages.

In CDE, applications access local language fonts through a font alias mechanism. The /usr/dt/config/xfonts/i18n/{75,100}dpi/fonts.alias files rather than files installed in the /usr/dt/config/xfonts/locale-name/ areas are most critical for resolution of which fonts an application uses. This arrangement supports both a consistent session language and the ability to run an individual application in a language different from the session language.

6.15.3.1    Accessing Local-Language Fonts for Remote Displays

The system where local-language subsets are installed may function as a client in a client-server display environment. In this case, the local-language fonts must also be available to the window managers for all the server systems where native language text is displayed. You need to install fonts for other locales either on individual systems used for remote login to the system where language variant subsets are installed or make the fonts known to the other systems through a font server. Table 6-11, Table 6-12, Table 6-13, Table 6-14, Table 6-15, Table 6-16, and Table 6-17 describe the fonts used to display text in various local languages. See ISO8859-15(5) for a list of available bitmap fonts for the ISO 8859-15 (Latin-9) codeset, which is not used in any locales but may be needed for displaying the euro character. You can use the /usr/bin/X11/xlsfonts command to determine which fonts are currently installed on a system.

Table 6-11:  Bitmap Fonts for Asian Locales

Language Typeface Style Sizes 75dpi 100dpi
Japanese Gothic (ISO Latin-1) Normal 8, 10, 12, 14, 18, 24 x x
  Gothic (Kanji) Normal 8, 10, 12, 14, 18, 24 x x
  Gothic (Roman Kana) Normal 8, 10, 12, 14, 18, 24 x x
  kmenu (ISO Latin-1) Normal 12 x x
  kmenu (Roman Kana) Normal 12 x x
  Mincho (ISO Latin-1) Normal 8, 10, 12, 14, 18, 24 x x
  Mincho (Kanji) Normal 8, 10, 12, 14, 18, 24 x x
  Mincho (Roman Kana) Normal 8, 10, 12, 14, 18, 24 x x
  Screen (DECsuppl) Normal 14, 18, 24 x  
  Screen (DECtech) Normal 14, 18, 24 x  
  Screen (ISO Latin-1) Normal 14, 18, 24 x  
  Screen (Kanji00) Normal 10, 14, 16, 18, 24 x  
  Screen (Kanji11) Normal 10, 14, 18, 24 x  
  Screen (Roman Kana) Normal 10, 14, 18, 24 x  
Korean Gotic Normal 16, 24 x  
  Myungcho Normal 16, 24, 32 x  
  Screen Normal 18, 24 x  
  KS Roman Normal 18, 24 x  
Simplified Chinese FangSongTi Normal 24, 34 x  
  HeiTi Normal 16, 24, 34 x  
  KaiTi Normal 24, 34 x  
  Screen Normal 18, 24 x  
  SongTi Normal 16, 24, 34 x  
Traditional Chinese Hei (CNS11643) Normal 16, 24 x  
  Hei (DTSCS) Normal 16, 24 x  
  Screen (CNS11643) Normal 18, 24 x  
  Screen (DTSCS) Normal 18, 24 x  
  Sung (CNS11643) Normal 24, 32 x  
  Sung (DTSCS) Normal 24, 32 x  
Thai Screen Normal 14, 18, 24 x  
Asia (Misc.) Screen (DEC Ctrl) Normal 14, 18, 24 x  
  Screen (DRCS) Normal 18, 24 x  

Table 6-12:  Bitmap Fonts for *.ISO8859-2 Locales

Language Typeface Style Sizes 75dpi 100dpi
Czech, Hungarian, Polish, Slovak, Slovene Arial Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Arial Narrow Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Book Antiqua Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Bookman Old Style Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Century Gothic Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Century Schoolbook Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Courier Normal 8, 10, 12, 14, 18, 24, 36 x x
    Italic 8, 10, 12, 14, 18, 24, 36 x x
    Bold 8, 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 8, 10, 12, 14, 18, 24, 36 x x
  Monotype Corsiva Normal 10, 12, 14, 18, 24, 36 x x
  Times New Roman Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Terminal Normal 14, 18 x x
    Double-Width 14, 18 x x
    Double-Width, Double-Height 28, 36 x x
    Narrow 14, 18 x x
    Double-Width, Narrow 14, 18 x x
    Double-Width, Double-Height, Narrow 28, 36 x x
    Bold 14, 18 x x
    Double-Width, Bold 14, 18 x x
    Double-Width, Double-Height, Bold 28, 36 x x
    Narrow, Bold 14, 18 x x
    Double-Width, Narrow, Bold 14, 18 x x
    Double-Width, Double-Height, Narrow, Bold 28, 36 x x

Table 6-13:  Bitmap Fonts for *.ISO8859-4 Locales

Language Typeface Style Sizes 75dpi 100dpi
Lithuanian Arial Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Arial Narrow Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Book Antiqua Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Bookman Old Style Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Century Gothic Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Century Schoolbook Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Courier Normal 8, 10, 12, 14, 18, 24, 36 x x
    Italic 8, 10, 12, 14, 18, 24, 36 x x
    Bold 8, 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 8, 10, 12, 14, 18, 24, 36 x x
  Monotype Corsiva Normal 10, 12, 14, 18, 24, 36 x x
  Times New Roman Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Terminal Normal 14, 18 x x
    Double-Width 14, 18 x x
    Double-Width, Double-Height 28, 36 x x
    Narrow 14, 18 x x
    Double-Width, Narrow 14, 18 x x
    Double-Width, Double-Height, Narrow 28, 36 x x
    Bold 14, 18 x x
    Double-Width, Bold 14, 18 x x
    Double-Width, Double-Height, Bold 28, 36 x x
    Narrow, Bold 14, 18 x x
    Double-Width, Narrow, Bold 14, 18 x x
    Double-Width, Double-Height, Narrow, Bold 28, 36 x x

Table 6-14:  Bitmap Fonts for *.ISO8859-5 Locales

Language Typeface Style Sizes 75dpi 100dpi
Russian Arial Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Courier Normal 8, 10, 12, 14, 18, 24, 36 x x
    Italic 8, 10, 12, 14, 18, 24, 36 x x
    Bold 8, 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 8, 10, 12, 14, 18, 24, 36 x x
  Nimrod Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Plantin Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Times New Roman Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Terminal Normal 14, 18 x x
    Double-Width 14, 18 x x
    Double-Width, Double-Height 28, 36 x x
    Narrow 14, 18 x x
    Double-Width, Narrow 14, 18 x x
    Double-Width, Double-Height, Narrow 28, 36 x x
    Bold 14, 18 x x
    Double-Width, Bold 14, 18 x x
    Double-Width, Double-Height, Bold 28, 36 x x
    Narrow, Bold 14, 18 x x
    Double-Width, Narrow, Bold 14, 18 x x
    Double-Width, Double-Height, Narrow, Bold 28, 36 x x

Table 6-15:  Bitmap Fonts for *.ISO8859-7 Locales

Language Typeface Style Sizes 75dpi 100dpi
Greek Arial Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Courier Normal 8, 10, 12, 14, 18, 24, 36 x x
    Italic 8, 10, 12, 14, 18, 24, 36 x x
    Bold 8, 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 8, 10, 12, 14, 18, 24, 36 x x
  Times New Roman Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Terminal Normal 14, 18 x x
    Double-Width 14, 18 x x
    Double-Width, Double-Height 28, 36 x x
    Narrow 14, 18 x x
    Double-Width, Narrow 14, 18 x x
    Double-Width, Double-Height, Narrow 28, 36 x x
    Bold 14, 18 x x
    Double-Width, Bold 14, 18 x x
    Double-Width, Double-Height, Bold 28, 36 x x
    Narrow, Bold 14, 18 x x
    Double-Width, Narrow, Bold 14, 18 x x
           
           
    Double-Width, Double-Height, Narrow, Bold 28, 36 x x

Table 6-16:  Bitmap Fonts for *.ISO8859-8 Locales

Language Typeface Style Sizes 75dpi 100dpi
Hebrew David Normal 8, 10, 12, 14, 18, 24 x x
    Italic 8, 10, 12, 14, 18, 24 x x
    Bold 8, 10, 12, 14, 18, 24 x x
    Bold-Italic 8, 10, 12, 14, 18, 24 x x
  Frankruhl Normal 8, 10, 12, 14, 18, 24 x x
    Italic 8, 10, 12, 14, 18, 24 x x
    Bold 8, 10, 12, 14, 18, 24 x x
    Bold-Italic 8, 10, 12, 14, 18, 24 x x
  Gam Normal 8, 10, 12, 14, 18, 24 x x
    Italic 8, 10, 12, 14, 18, 24 x x
    Bold 8, 10, 12, 14, 18, 24 x x
    Bold-Italic 8, 10, 12, 14, 18, 24 x x
  menu Normal 10, 12 x x
  Miriam Normal 8, 10, 12, 14, 18, 24 x x
    Italic 8, 10, 12, 14, 18, 24 x x
    Bold 8, 10, 12, 14, 18, 24 x x
    Bold-Italic 8, 10, 12, 14, 18, 24 x x
  Miriam Fixed Normal 8, 10, 12, 14, 18, 24 x x
    Italic 8, 10, 12, 14, 18, 24 x x
    Bold 8, 10, 12, 14, 18, 24 x x
    Bold-Italic 8, 10, 12, 14, 18, 24 x x
  Narkiss Tam Normal 8, 10, 12, 14, 18, 24 x x
    Italic 8, 10, 12, 14, 18, 24 x x
    Bold 8, 10, 12, 14, 18, 24 x x
    Bold-Italic 8, 10, 12, 14, 18, 24 x x
  Terminal Normal 14, 18 x x
    Double-Width 14, 18 x x
    Double-Width, Double-Height 28, 36 x x
    Narrow 14, 18 x x
    Double-Width, Narrow 14, 18 x x
    Double-Width, Double-Height, Narrow 28, 36 x x
    Bold 14, 18 x x
    Double-Width, Bold 14, 18 x x
    Double-Width, Double-Height, Bold 28, 36 x x
    Narrow, Bold 14, 18 x x
    Double-Width, Narrow, Bold 14, 18 x x
    Double-Width, Double-Height, Narrow, Bold 28, 36 x x

Table 6-17:  Bitmap Fonts for *.ISO8859-9 Locales

Language Typeface Style Sizes 75dpi 100dpi
Turkish Arial Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Arial Narrow Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Book Antiqua Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Bookman Old Style Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Century Gothic Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Century Schoolbook Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Courier Normal 8, 10, 12, 14, 18, 24, 36 x x
    Italic 8, 10, 12, 14, 18, 24, 36 x x
    Bold 8, 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 8, 10, 12, 14, 18, 24, 36 x x
  Monotype Corsiva Normal 10, 12, 14, 18, 24, 36 x x
  Times New Roman Normal 10, 12, 14, 18, 24, 36 x x
    Italic 10, 12, 14, 18, 24, 36 x x
    Bold 10, 12, 14, 18, 24, 36 x x
    Bold-Italic 10, 12, 14, 18, 24, 36 x x
  Terminal Normal 14, 18 x x
    Double-Width 14, 18 x x
    Double-Width, Double-Height 28, 36 x x
    Narrow 14, 18 x x
    Double-Width, Narrow 14, 18 x x
    Double-Width, Double-Height, Narrow 28, 36 x x
    Bold 14, 18 x x
    Double-Width, Bold 14, 18 x x
    Double-Width, Double-Height, Bold 28, 36 x x
    Narrow, Bold 14, 18 x x
    Double-Width, Narrow, Bold 14, 18 x x
    Double-Width, Double-Height, Narrow, Bold 28, 36 x x

6.15.4    Customizing a Terminal Emulation Window for Asian Languages

The following features and restrictions apply to terminal windows that you create when an Asian language is specified for the language setting: