| # Internationalization Enhancements |

This page provides an overview of internationalization enhancements in Java SE Development Kit 6 (JDK):

- Core Java Internationalization
- Desktop Java Internationalization

## Core Java Internationalization

#### Locale Sensitive Services SPIs

To enable plug-in of locale sensitive data (e.g., date format strings) and services (e.g., date formatters), some Service Provider Interfaces (SPIs) for locale-sensitive classes in the `java.text` and `java.util` packages have been added. These SPIs make it much easier for developers to provide support of more locales in addition to the currently available locales in Java SE. For example, your own implementation of `BreakIterator` for Chinese could become available through the `BreakIterator.getSentenceInstance` factory in the Java runtime.

#### Unicode Normalizer API

The new `java.text.Normalizer` class supports the Unicode text normalization defined in Unicode Standard Annex #15.

#### Internationalized Domain Names Support

The new `java.net.IDN` class provides Internationalized Domain Names (IDNs) support based on RFC 3490, 3491, 3454, and 3492.

#### Japanese Imperial Calendar Support

A new `Calendar` implementation has been added to support the Japanese imperial era-based year numbering, such as Heisei 17 for 2005 (Gregorian). An instance of this Japanese imperial calendar can be created through the `Calendar.getInstance` factory by specifying a `Locale("ja", "JP", "JP")`. The `java.text.SimpleDateFormat` class now supports calendar specific eras and date formats for non-Gregorian calendar systems. Refer to the Supported Calendars documentation for details.

#### `ResourceBundle` Enhancements

The new nested `java.util.ResourceBundle.Control` class has been added to give applications more control over the resource bundle loading process. The class defines a set of callback methods that are invoked by the `ResourceBundle.getBundle` factory during the resource bundle loading. Applications can override those callback methods to change the factory method behavior.

#### Additional Locales Support

The following locales are now available.

- `zh_SG` - Chinese (Simplified), Singapore
- `en_MT` - English, Malta
- `en_PH` - English, Philippines
- `en_SG` - English, Singapore
- `el_CY` - Greek, Cyprus
- `id_ID` - Indonesian, Indonesia
- `ga_IE` - Irish, Ireland
- `ms_MY` - Malay, Malaysia
- `mt_MT` - Maltese, Malta
- `pt_BR` - Portuguese, Brazil
- `pt_PT` - Portuguese, Portugal
- `es_US` - Spanish, United States

Refer to the Supported Locales documentation for details.

## Desktop Java Internationalization

#### Key Input in non-English Locales

The keyboard related AWT code has been re-architected to fix various problems on key input in non-English locales for Solaris and Linux operating systems.

Copyright © 2005 Sun Microsystems, Inc. All Rights Reserved. Feedback | Java Software