| United States-English |
|
|
|
![]() |
Common Desktop Environment: Internationalization Programmer's Guide > Chapter 4 Xt,
Xlib, and Motif DependenciesInternationalized User Interface Language |
|
The capability to parse a multibyte character string as a string literal has been added to the User Interface Language (UIL). Creation of a UIL file is performed by using the characteristics of the target language and writing the User Interface Definition (UID) file. The UIL compiler parses nonstandard charsets as locale text. This requires the UIL compiler to be run in the same locale as any locale text. If the locale text of a widget requires a font set (more than one font), the fonts must be specified within the resource file as a render table. To use a specific language with UIL, a UIL file is written according to characteristics of the target language and compiled into a UID file. The UIL file that contains localized text needs to be compiled in the locale in which it is to run. The following shows examples of literal strings. The cur_charset value is always set to the default_charset value, which allows the string literal to contain locale text. To set locale text in the string literal with the default_charset value, enter the following:
OR
Compile the UIL file with the LANG environment variable matching the encoding of the locale text. Otherwise, the string literal is not compiled properly. The font set cannot be set through UIL source programming. Whenever the font set is required, you must set it in the resource file as render table resource. Refer to Motif Programmer's Guide for more information. Like font sets, font lists are specified in resource files as render tables. Refer to Motif Programmer's Guide for detailed information. Render tables, as well as renditions, tab lists, and tab stops, are implemented as a special class of objects. Refer to Motif Programmer's Guide for detailed information. If necessary, set the input method-related resources in the resource file as shown in the following example:
For a locale-sensitive application, set the UID file to the appropriate directory. Set the UIDPATH or XAPPLRESDIR environment variable to the appropriate value. For example, to run the uil_sample program with an English environment (LANG environment variable is en_US), set uil_sample.uid with Latin characters at the $HOME/en_US directory, or set uil_sample.uid to a directory and set the UIDPATH environment variable to the full path name of the uil_sample.uid file. To run the uil_sample program with a Japanese environment (LANG environment variable is ja_JP), create a uil_sample.uid file with Japanese (multibyte) characters at the $HOME/ja_JP directory, or place uil_sample.uid to a unique directory and set the UIDPATH environment variable to the full path name of the uil_sample.uid file. The following list specifies the possible variables:
If the XAPPLRESDIR environment variable is set, the MrmOpenHierarchy() function searches the UID file in the following order:
If the XAPPLRESDIR environment variable is not set, the MrmOpenHierarchy() function uses $HOME instead of theXAPPLRESDIR environment variable. With the default_charset string literal, any characters can be set as a valid string literal. For example, if the LANG environment variable is el_GR, the string literal with default_charset can contain any Greek character. If the LANG environment variable is ja_JP, the default_charset string literal can contain any Japanese character encoded in Japanese EUC. If no character set is set to a string literal, the character set of the string literal is set as cur_charset. And, in the system environment, the cur_charset value is always set as default_charset. Figure 4-2 “Sample UIL program on English and Japanese environments” shows a UIL sample program on English and Japanese environments. In the following sample program, LLL indicates locale text, which can be Japanese, Korean, Traditional Chinese, Greek, French, or others.
Three mechanisms exist for specifying strings in UIL files:
Both string literals and compound strings consist of text, a character set, and a writing direction. For string literals and for compound strings with no explicit direction, UIL infers the writing direction from the character set. The UIL concatenation operator (&) concatenates both string literals and compound strings. Regardless of whether UIL stores string literals in UID files as null-terminated strings or as compound strings, it stores information about each string's character set and writing direction along with the text. In general, UIL stores string literals or string expressions as compound strings in UID files under the following conditions:
UIL recognizes a number of keywords specifying character sets. UIL associates parsing rules, including parsing direction and whether characters have 8 or 16 bits, for each character set it recognizes. It is also possible to define a character set using the UIL CHARACTER_SET function. The syntax of a string literal is one of the following:
For each syntax, the character set of the string is determined as follows:
UIL always stores a string specified using the COMPOUND_STRING function as a compound string. This function takes as arguments a string expression and optional specifications of a character set, direction, and whether to append a separator to the string. If no character set or direction is specified, UIL derives it from the string expression, as described in the preceding section.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||