While there is a fair amount of literature discussing the cultural
differences between countries and the challenge of creating software,
hardware, documentation, and packaging for international use, there is very
little written about how to actually do it. In this book we'll talk about
and pitfalls of internationalization, demonstrate the various approaches
"internationalization" of a simple program, and talk about some
of the extensive
standardization efforts currently going on.
Don't miss the sample chapters while you're reading about the book Global Software.
Table of Contents
Chapter 1: Introduction
Why this book? How is it organized? Do I need a computer to
understand what is being discussed? Do I need to type in the sample
code? What computer was it written for? etc...
Part One -- What It Is
Note: The book is broken into sections to allow instructors to assign portions
to students. For example, part one of the book would make an excellent
introduction to the challenges of internationalization of software, with the rest
left perhaps as laboratory exercises or individual research.
Chapter 2: Why Internationalize?
There's a significant market for computers already in the European and
Pacific Rim countries, and lots more on the way. A look at IBM, HP,
AT&T, DEC and Sun national versus international sales 1987-1990,
including pithy quotes from appropriate parties both at these firms and at
market analysis groups.
Chapter 3: Internationalization versus Localization
What's the difference? Which do we want to do?
What actually gets internationalized? Explain cultural context. Detail
elements of culture, including; paper size, currency notation, date and
time presentation formats, sorting and transliteration problems, quirks of
some of the more interesting languages (e.g. capitalizing accented vowels
in Canadian French).
Mostly anecdotal stories about what can happen when internationalization
of products is done without proper consideration of the change in a
particular culture or language, including the Chevy Nova in Mexico (Nova
= doesn't go), some of the famous language translation software from the
1960's MIT AI Laboratory, and similar.
Part Two -- How To Do It
Chapter 6: Three Approaches to Internationalization
Detail stages a program goes through in the transition from source code
to object code to executable binary. Map to compile-time, link-time and
run-time internationalization. Discuss advantages and disadvantages of
Chapter 7: Elements of Internationalization ‚ Our Sample
Introduce the sample program we're going to work with -- a simple C
program "Analyse Employee Pay" which will contain the following
elements requiring internationalization: time and date notations,
currency notation, floating point 'radix' and accuracy level, output paper
size, sorting algorithms, transliteration algorithms. Full source to the
program will be presented here.
Chapter 8: Compile-Time Internationalization
Talk further about compile-time internationalization, then subroutine by
subroutine detail how they would have to change the sample program to
support compile-time internationalization, including listing newly
modified routines en toto. Since compile-time requires a specific
language, we'll most likely use either French or Spanish for this
Chapter 9: Link-Time Internationalization
Building on the previous modifications, we'll now go through the process
needed to rewrite the original program to make "external" routine calls
that can be supplied when the software is all linked together, rather than
contained in "the same file". Included will be listings for all of the new,
internationalized functions like "show_currency()".
Chapter 10: Run-Time Internationalization
Finally, in this section we'll focus on the separate subroutines that were
written in the previous chapter and create versions that can switch
between a couple of different languages upon invocation of the executable.
To accomplish this, we'll also introduce the concept of a database of
cultural elements and demonstrate how to use it.
Chapter 11: Other Elements of Internationalization
How to support 16-bit character sets, color, graphics, documentation,
customer support, packaging, marketing, sales and similar -- very briefly!
Part Three -- Existing Tools and Organizations
Chapter 12: HP's Native Language System
One of the first major innovators in the area of software inter-
nationalization, Hewlett-Packards' NLS package has proven to be a
durable base for much of the recent work done within X/Open as well as
the AT&T MNLS package included with System V release 4.
Chapter 13: AT&T's MultiNational Language System
Now part of System V release 4.0, MNLS is the most likely bet for a
single existing standard for internationalization of software. In this
chapter we'll look at what MNLS is and compare how it offers features
like the appropriate display of currency with what we created earlier in
Chapter 14: Standardization Organizations
Crossing many geographic and political borders, internationalization has
attracted the attention of dozens of different standardization bodies,
including X/Open, the IEEE Posix working group, ANSI, ISO, ECMA, and
many more. We detail each, describe the interrelation of the groups, and
project the future plans of each organization.
Part Four -- Politics of International Software
Chapter 14: The Politics of International Software
Since we're talking about designing software to transport to foreign
territory, there is a lot of politics involved too. The primary example will
be the legality of exporting implementations of the DES encryption
algorithms found in the Unix operating system, as per the U.S.
Department of Commerce.
Chapter 15: The Future of International Software
Reinforce the future growth of the international computer market, this
time pointing out that, for example, while there many be dozens of
database systems that can handle English, the number that work in
French available in France might well be sufficiently small that a "me too"
product in the United States might well be a tremendous success in the
French computer software marketplace.
References and Bibliography
Appendix 1: Contact Names and Addresses for Internationalization