Previous | Next | Trail Map | Internationalization | Setting the Locale

Creating a Locale

To create a Locale object, you typically specify the language code and country code. For example, to specify the French language and the country of Canada, you would invoke the constructor as follows:
aLocale = new Locale("fr","CA");
In the next example, we create Locale objects for the English language in the U.S.A. and Great Britain:
bLocale = new Locale("en","US");
cLocale = new Locale("en","GB");
The first argument is the language code, a pair of lower-case letters that conform to ISO-639. You can find a full list of the ISO-639 codes at:
/www.ics.uci.edu/pub/ietf/http/related/iso639.txt
The second argument is the country code. It consists of two, upper-case letters, and conforms to ISO3166. A copy of ISO-3166 can be found at:
http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html.
If you need to distinguish your Locale further, you can specify a third parameter, called the variant code. If there are variations in language usage within the same country, you might want to specify a variant. For example, in the South of the United States, people often say "y'all," but in the North they say "you all." You could create different Locale objects as follows:
nLocale = new Locale("en", "US" ,"NORTH");
sLocale = new Locale("en", "US", "SOUTH");
The variant codes conform to no standard. They are arbitrary and application- specific. If you created Locale objects with the NORTH and SOUTH variant codes, as in the preceeding example, only your application would know how to deal with them.

Usually, you'll specify variant codes to indentify differences caused by the computing platform. For example, font differences may force you to use different characters on Windows and UNIX. You could then define the Locale objects with the variant codes WINDOWS and UNIX:

xLocale = new Locale("de", "DE" ,"UNIX");
yLocale = new Locale("de", "DE", "WINDOWS");
The country and variant codes are optional. You may create a Locale for the English language as follows:
enLocale = new Locale("en", "");
However, if you omit the country code, your application cannot adapt to regional differences in language. For instance, a program using the enLocale object cannot display the word "colour" in the U.K. and the word "color" in the U.S..

For your convenience, the Locale class provides constants for some languages and countries. For example, you can create Locale objects by specifying the JAPANESE or JAPAN constants. The Locale objects created by the following two statements are equivalent:

j1Locale = Locale.JAPAN;
j2Locale = new Locale("ja", "JA");
When you specify a language constant, the country portion of the Locale is undefined. The next two statements create equivalent Locale objects:
j3Locale = Locale.JAPANESE;
j4Locale = new Locale("ja", "");


Previous | Next | Trail Map | Internationalization | Setting the Locale