Java Internationalization
Internationalization is the process of designing software
so that it can be adapted (localized) to various languages
and regions easily, cost-effectively, and in particular
without engineering changes to the software. Localization is
performed by simply adding locale-specific components, such
as translated text, data describing locale-specific
behavior, fonts, and input methods.
In the Java SE Platform, internationalization support is
fully integrated into the classes and packages that provide
language- or culture-dependent functionality. The following
sections outline the most important internationalized areas
of functionality in core,
desktop,
enterprise, and
mobile Java.
Core Java provides the foundation for internationalization of desktop and server
applications.
- Text representation: the Java programming language is based on the Unicode character
set, and several libraries implement the Unicode standard.
- Locale identification and localization: Locales in the Java SE platform
are just identifiers that can be used to request locale specific behavior
in many different areas of functionality. Localization is supported at the
most basic level by the ResourceBundle class, which provides access to locale
specific objects, including strings.
- Date and time handling: The Java SE platform provides various calendars,
and supports conversion to and from calendar independent Date objects. All
time zones in the world are supported.
- Text processing includes character analysis and case mapping, string
comparison, breaking text into words and lines, as well as formatting numbers,
dates, and time values into strings or parsing them back from strings. Most
of these functions are locale dependent.
- Character encoding conversion supports converting text between Unicode
and other character encodings when reading incoming text from streams or
writing outgoing text to streams.
See the documentation:
See Also
Internationalization Tutorial
(日本語)
Timezone Data, Daylight Savings Time, and the Java Runtime Environment
Forum
FAQ (日本語)
Code Samples & Apps
Technical Articles & Tips
Books & Authors
I18N Bugs
AWT I18N Bugs
L10N Japan Bugs
Localization Bugs
Subscribe to the Sun Globalization Newsletter
The user interface libraries in the Java SE platform enable the development of rich
interactive applications. Internationalization aspects include:
- Text input is the process of entering new text into a document -
in the simplest case through typing on a keyboard, but often involving front-end
software such as input methods, handwriting recognition, or speech input.
- Text display is a multistep process that includes selecting a font,
arranging text into paragraphs and lines, selecting glyphs for characters
or character sequences, and rendering these glyphs. Some writing systems
require bidirectional text layout for Arabic and Hebrew, or complex character-to-glyph
mappings for Arabic, Thai, and the scripts of India. Text display is handled
by the Java 2D graphics system and the Swing toolkit for lightweight user
interface components; by AWT for peered user interface components.
- User interface layout needs to accommodate text expansion or shrinkage
caused by localization, and match the direction of the user's writing system.
For example, English-speaking users expect the tools in a tool bar to be
organized from left to right, but users of a right-to-left language such
as Arabic expect the tools to be organized from right to left.
See the documentation:
The J2EE technologies build on the internationalization foundation
provided by Core Java. Of particular interest are the web tier
technologies:
See Also
Internationalization
and Localization chapter of
Designing
Enterprise Applications with the J2EE Platform
Developing
Multilingual Web Applications Using JSP Technology
(日本語,
中文)
The J2ME configurations (Connected Limited Device
Configuration and Connected Device Configuration) provide
subsets of the internationalized APIs in Core Java. The
layered profiles complement these with subsets of the
Desktop Java APIs (Personal Profile, Personal Basis
Profile), or provide their own internationalized APIs
(Mobile Information Device Profile, Mobile
Internationalization API).
|
|