| Table of Contents

# Writing Global Programs

> The Internet is a large and growing network of computers from all over the world. The Internet provides an unprecedented ability to communicate instantly (well, as instantly as is possible with a PC, a 14.4 modem, and a woefully overloaded Internet) with people from around the globe at any time. With this ability comes certain responsibilities, such as enabling software to communicate with people according to their customs and in their natural language.

> The JDK 1.1 release of Java added several features to the Java language and the class packages to help you write global programs. That is, programs that tailor themselves to the user's customs and language. The applet running below, called AroundTheWorld, uses these new features of the JDK to display information about various places in the world in a way that is appropriate for users in that area.

> Note: The internationalization features documented in this lesson were added to the JDK for its 1.1 release. These features did not exist in previous releases of the JDK and thus will not work in previous releases.

> To run the applets that appear in this lesson you must use a browser or viewer that supports the JDK 1.1. If your browser does not support JDK 1.1 applets, you can use the `appletviewer` program that ships with JDK 1.1.

> Important: Due to security restrictions, the AroundTheWorld program will not run as an applet. For now, you must run it as a stand-alone application. This is being fixed.

> > Your browser can't run 1.1 Java applets, so here's a picture of the applet when it first comes up:

> #### What Is a Global Program?

> > The AroundTheWorld applet uses features of the JDK 1.1 to present information about different areas of the world in the most natural way for that area. The AroundTheWorld applet illustrates the components and design features of a global program.

> #### Exploring "AroundTheWorld"

> > First, you should get familiar with the source code to the AroundTheWorld applet. Later, we'll walk through the source code and investigate its global features and how it uses the JDK 1.1 to implement those features.

> #### What Are Locales and How Do I Use Them?

> > The JDK 1.1 provides a Locale class that represents a specific geographic or political region. A Locale object is just an identifier--it contains information about the locale (such as its language and country) but does not contain any data for the locale.

> #### Managing Locale-Sensitive Data

> > A global program isolates locale-sensitive data and localizes them. That is, a global program isolates locale-sensitive data into localized ResourceBundles.

> #### Formatting Dates and Numbers

> > Dates and numbers are locale-sensitive--different people format dates and numbers differently whether it's the order in which the date elements are listed or the symbol used as the decimal point.

> #### Character Encoding and Conversion

> > [PENDING: ... ]

> #### Collation and Text Boundaries

> > [PENDING: ... ]

> #### Unicode Handling "Stuff"

> > [PENDING: ... ]

> [PENDING: here's a list of some more information to include in this lesson:

> - applet with a menu and some buttons
> - show Action Handling based on Component name, *not* label
> - show how to localize exceptions that are generated
> ]

| Table of Contents