[Index]


Table of Contents


Title and Copyright Pages

About This Manual
Audience
New and Changed Features
Organization
Related Documentation
Reader's Comments
Conventions

1    Introduction
1.1    Language
1.2    Cultural Data
1.3    Character Sets
1.4    Localization
1.4.1    Collating Sequence
1.4.2    Character Classification
1.4.3    Case Conversion
1.4.4    Language Information
1.4.5    Message Catalogs
1.5    Language Announcement
1.6    Terms and Definitions
1.6.1    Characters and Strings
1.6.2    Portable Character Set

2    Developing Internationalized Software
2.1    Using Codesets
2.1.1    Ensuring Data Transparency
2.1.2    Using In-Code Literals
2.1.3    Manipulating Multibyte Characters
2.1.4    Converting Between Multibyte-Character and Wide-Character Data
2.1.5    Rules for Multibyte Characters in Source and Execution Codesets
2.1.6    Classifying Characters
2.1.7    Converting Characters
2.1.8    Comparing Strings
2.2    Handling Cultural Data
2.2.1    The langinfo Database
2.2.2    Querying the langinfo Database
2.2.3    Generating and Interpreting Date and Time Strings That Observe Local Customs
2.2.4    Formatting Monetary Values
2.2.5    Formatting Numeric Values in Program-Specific Ways
2.2.6    Using the langinfo Database for Other Tasks
2.3    Handling Text Presentation and Input
2.3.1    Creating and Using Messages
2.3.2    Formatting Output Text
2.3.3    Scanning Input Text
2.4    Binding a Locale to the Run-Time Environment
2.4.1    Binding to the Locale Set for the System or User
2.4.2    Changing Locales During Program Execution

3    Creating and Using Message Catalogs
3.1    Creating Message Text Source Files
3.1.1    General Rules
3.1.2    Message Sets
3.1.3    Message Entries
3.1.4    Quote Directive
3.1.5    Comment Lines
3.1.6    Style Guidelines for Messages
3.2    Extracting Message Text from Existing Programs
3.3    Editing and Translating Message Source Files
3.4    Generating Message Catalogs
3.4.1    Using the mkcatdefs Command
3.4.2    Using the gencat Command
3.4.3    Design and Maintenance Considerations for Message Catalogs
3.5    Displaying Messages and Locale Data Interactively or from Scripts
3.6    Accessing Message Catalogs in Programs
3.6.1    Opening Message Catalogs
3.6.2    Closing Message Catalogs
3.6.3    Reading Program Messages

4    Using Screen-Handling Routines for Character-Cell Terminals
4.1    Handling Wide-Character Data with curses Routines
4.1.1    Writing a Wide Character to a curses Window
4.1.1.1    Add Wide Character (Overwrite) and Advance Cursor
4.1.1.2    Insert Wide Character (no Overwrite) and Do Not Advance Cursor
4.1.2    Writing a Wide-Character String to a curses Window
4.1.2.1    Add Wide-Character String (Overwrite) and Do Not Advance Cursor
4.1.2.2    Add Wide-Character String (Overwrite) and Advance Cursor
4.1.2.3    Insert Wide-Character String (no Overwrite) and Do Not Advance Cursor
4.1.3    Removing a Wide Character from a curses Window
4.1.4    Reading a Wide Character from a curses Window
4.1.5    Reading a Wide-Character String from a curses Windows
4.1.5.1    Reading Wide-Character Strings with Attributes
4.1.5.2    Reading Wide-Character Strings Without Attributes
4.1.6    Reading a String of Characters from a Terminal
4.1.7    Reading or Queuing a Wide Character from the Keyboard
4.1.8    Converting Formatted Text in a curses Window
4.1.9    Printing Formatted Text on a curses Window
4.2    Drawing Ruled Lines in a DECterm Window
4.2.1    Drawing Ruled Lines in a Pattern
4.2.2    Erasing Ruled Lines in a Pattern
4.2.3    Erasing All Ruled Lines in an Area
4.2.4    Interaction of Ruled Lines and Other DECterm Escape Sequences
4.2.5    Determining if the DECterm Device Setting Supports Ruled Lines
4.3    DECterm Programming Restrictions
4.3.1    Downline Loadable Characters
4.3.2    DRCS Characters

5    Creating Internationalized X, Xt, and Motif Applications
5.1    Using Internationalization Features in the X Toolkit Intrinsics
5.1.1    Establishing a Locale with Xt Functions
5.1.2    Using Font Set Resources with Xt Functions
5.1.3    Filtering Events During Text Input with Xt Functions
5.1.4    Including the Codeset Component of Locales with Xt Functions
5.2    Using Internationalization Features of the OSF/Motif and DECwindows Motif Toolkits
5.2.1    Setting Language in a Motif Application
5.2.2    Using Compound Strings and the XmText, XmTextField, and DXmCSText Widgets
5.2.3    Internationalization Features of Widget Classes
5.3    Using Internationalization Features in the X Library
5.3.1    Using the X Library to Manage Locales
5.3.2    Displaying Text for Different Locales
5.3.2.1    Creating and Manipulating Font Sets
5.3.2.2    Obtaining Metrics for Font Sets
5.3.2.3    Drawing Text with Font Sets
5.3.2.4    Handling Text With the X Output Method
5.3.2.5    Converting Between Different Font Set Encodings
5.3.3    Handling Interclient Communication
5.3.4    Handling Localized Resource Databases
5.3.5    Handling Text Input with the X Input Method
5.3.5.1    Opening and Closing an Input Method
5.3.5.2    Querying Input Method Values
5.3.5.3    Creating and Using Contexts for an Input Method
5.3.5.4    Providing Preediting Callbacks for the On-the-Spot Input Style
5.3.5.5    Filtering Events for an Input Method
5.3.5.6    Obtaining Composed Strings from the Keyboard
5.3.5.7    Handling Failure of the Input Method Server
5.3.6    Using X Library Features: A Summary

6    Using Internationalized Software
6.1    Working in a Multilanguage Environment: Introduction
6.2    Setting Locale and Language
6.3    Selecting Keyboard Type
6.3.1    Determining Keyboard Layout
6.4    Determining Input Method
6.5    Determining the Input Mode Switch State
6.6    Setting Parameters in the .Xdefaults File
6.7    Defining the Search Path for Specialized Components
6.8    Using Terminal Interface Features for Asian Languages
6.8.1    Converting Between Application and Terminal Codesets
6.8.2    Command Line Editing That Supports Multibyte Characters
6.8.3    Kana-Kanji Conversion: Customization of Japanese Input Options
6.9    Setting Up and Using User-Defined Character Databases
6.9.1    Creating User-Defined Characters
6.9.1.1    Working on the cedit User Interface Screen
6.9.1.2    Editing Font Glyphs
6.9.2    Creating UDC Support Files That System Software Uses
6.9.3    Processing UDC Fonts for Use with DECwindows
6.9.3.1    Using fontconverter Command Options
6.9.3.2    Controlling Output File Format
6.10    Setting Up and Using the Chinese Phrase Input Method
6.10.1    Enabling the SIM Service
6.10.2    Creating and Maintaining a Chinese Phrase Database
6.10.3    Using a Chinese Phrase Database
6.10.3.1    Phrase Input Supported Through the SIM Service
6.10.3.2    Phrase Input in the DECwindows Motif Environment
6.11    Modifying the Database Location Configuration File
6.12    Using Printer Interface Features That Support Local Languages
6.12.1    Print Filters for Local Language Printers
6.12.2    Support for Local Language Printers in /etc/printcap
6.12.3    Enhancements to the lprsetup Command
6.12.4    Printing Commands and Printer Daemon
6.12.5    Font Handling for PostScript Printers
6.12.5.1    Choosing Fonts for Different Locales
6.12.5.2    Setting Up Print Queues With the pfsetup Command
6.12.5.3    Downloading Fonts to the DEClaser 1152
6.12.5.4    Downloading Fonts to the DEClaser 5100
6.13    Using Mail in a Multilanguage Environment
6.13.1    The sendmail Utility
6.13.2    The mailx Command and MH Commands
6.13.3    The comsat Server
6.14    Applying Sort Orders to Non-English Characters
6.15    Processing Reference Pages in Languages Other Than English
6.15.1    The nroff Command
6.15.2    The tbl Command
6.15.3    The man Command
6.16    Converting Data Files from One Codeset to Another
6.17    Miscellaneous Information for Base System Commands
6.18    Using Language Support Enhancements for DECwindows Motif Applications
6.18.1    Tuning the X Server for Ideographic Languages
6.18.2    Using Font Renderers for Multibyte PostScript Fonts
6.18.2.1    Setting Up the Font Renderer for Double-Byte PostScript Fonts
6.18.2.2    Setting Up the Font Renderer for UDC Fonts
6.18.3    Changing the Language of the Start Session Window
6.18.4    Setting Fonts for Display of Local Languages
6.18.4.1    Using MwmFontSetup to Update a Private Mwm File
6.18.4.2    Accessing Local Language Fonts for Remote Displays
6.18.5    Customizing the DECterm Window for Local Languages
6.18.6    Using the CDA Viewer and Converters with Asian Language Text

7    Creating Locales
7.1    Creating a Character Map Source File for a Locale
7.2    Creating Locale Definition Source Files
7.2.1    Defining the LC_CTYPE Locale Category
7.2.2    Defining the LC_COLLATE Locale Category
7.2.3    Defining the LC_MESSAGES Locale Category
7.2.4    Defining the LC_MONETARY Locale Category
7.2.5    Defining the LC_NUMERIC Locale Category
7.2.6    Defining the LC_TIME Locale Category
7.3    Building Libraries to Convert Multibyte/Wide-Character Encodings
7.3.1    Required Methods
7.3.1.1    Writing the __mbstopcs Method for the fgetws Function
7.3.1.2    Writing the __mbtopc Method for the getwc() Function
7.3.1.3    Writing the __pcstombs Method for the fputws() Function
7.3.1.4    Writing a __pctomb Method
7.3.1.5    Writing a Method for the mblen Function
7.3.1.6    Writing a Method for the mbstowcs Function
7.3.1.7    Writing a Method for the mbtowc Function
7.3.1.8    Writing a Method for the wcstombs Function
7.3.1.9    Writing a Method for the wctomb Function
7.3.1.10    Writing a Method for the wcswidth Function
7.3.1.11    Writing a Method for the wcwidth Function
7.3.2    Optional Methods
7.3.3    Building a Shareable Library to Use with a Locale
7.3.4    Creating a methods File for a Locale
7.4    Building and Testing the Locale

A    Summary Tables of Worldwide Portability Interfaces
A.1    Locale Announcement
A.2    Character Classification
A.3    Case Conversion
A.4    Character Collation
A.5    Access to Data That Varies According to Language and Custom
A.6    Conversion and Format of Date/Time Values
A.7    Printing and Scanning Text
A.8    Number Conversion
A.9    Conversion of Multibyte and Wide-Character Values
A.10    Input and Output
A.11    String Handling
A.12    Codeset Conversion
A.13    Miscellaneous Functions

B    Sample Locale Source Files
B.1    Character Map (charmap) Source File
B.2    Locale Definition Source File

Glossary

Index