Trail: Internationalization
Lesson: Setting the Locale
Creating a Locale
Home Page > Internationalization > Setting the Locale
Creating a Locale
To create a Locale object, you typically specify the language code and the 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");
The next example creates Locale objects for the English language in the United States and Great Britain:
bLocale = new Locale("en", "US");
cLocale = new Locale("en", "GB");
The first argument is the language code, a pair of lowercase letters that conform to ISO-639. You can find a full list of the ISO-639 codes at http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt.

The following table lists just a few of the language codes.

Sample Language Codes

Language Code Description
de German
en English
fr French
ja Japanese
jw Javanese
ko Korean
zh Chinese

The second argument of the Locale constructor is the country code. It consists of two uppercase letters and conforms to ISO-3166. A copy of ISO-3166 can be found at http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html.

The following table contains several sample country codes.

Sample Country Codes

Country Code Description
CN China
DE Germany
FR France
IN India
US United States

If you need to distinguish your Locale further, you can specify a third parameter, called the variant code. Usually you specify variant codes to identify 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 as follows:

xLocale = new Locale("de", "DE", "UNIX");
yLocale = new Locale("de", "DE", "WINDOWS");
The variant codes conform to no standard. They are arbitrary and specific to your application. If you create Locale objects with variant codes only your application will know how to deal with them.

The country and variant codes are optional. When omitting the country code, you specify a null String. You may create a Locale for the English language as follows:

enLocale = new Locale("en", "");

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", "JP");

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 page: Setting the Locale
Next page: Identifying Available Locales