| 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 |