written: October 1993
converted to HTML: September 1996
The standards associated with internationalization are constantly evolving. The concepts presented here represent a snapshot (or a first approximation) of XPG3/XPG4, POSIX.1-1988, POSIX.2, and ANSI-C. Also included are some supplementary concepts from AIX and SVR4, the X-Window System, Motif, and a few other sources such as magazine articles, that I have found helpful in understanding the issues. Many of the definitions are plagerized from these sources verbatum, and the sources will hopefully be clear from the context.
The style of this tutorial is terse. Every attempt has been made to be complete and accurate, but verbosity has been excised at every turn. Many of the concepts given here apply outside of the C/UNIX environment, but no attempt has been made here to address those applications.
This document was written between 1989 and 1993 while I worked for several companies in the area of C/Unix software internationalization. Since then, the standards have evolved, rendering obsolete some (perhaps much) of what I've written. Also, the technology has (presumably) improved. For example, most of the main Unix implementations now support the most important I18N features, and there probably exist more powerful automated tools to assist the programmer in developing internationalized applications. These advances are not reported in this document. Unfortunately, I don't have the time to maintain this document. But many very good books have since been published that treat internationalization. I apologize for any errors in the text, and I strongly encourage the serious reader to seek out more current sources. It is hoped that this document will contribute something, however, to the reader's understanding of this subject. I welcome comments and suggestions.