The Wayback Machine - https://web.archive.org/web/20220606190102/http://openjdk.java.net/groups/i18n/
The Internationalization and Localization Group
This group specializes in theInternationalization andLocalization components
The Internationalization Libraries Group
The internationalizationgroupis a set of developers interested in the design, implementation,and maintanence of the Java internationalization libraries.
Introduction
Internationalization (abreviated "i18n") is the process ofdesigning software so that it can be adapted (localized) to variouslanguages and regions easily, cost-effectively, and in particularwithout engineering changes to the software. Localization isperformed by simply adding locale-specific components, such astranslated text, data describing locale-specific behavior, fontsand input methods.
Source Structure
Source for the internationalization libraries is foundthroughout the JDK workspace. Typically, directories undersrc/share/classes/java
contain the classes andinterfaces of the public APIs. Often the implementations of theseAPIs reside in the correspondingsrc/share/classes/sun
directories. Source that is platform dependent (e.g., inputmethods) may also reside under thesrc/[solaris|windows]
directories.
Here are some of the locations of the core internationalizationlibraries.
src/share/classes/java/lang
:
Contains source for theCharacter
andString
classes which implement theUnicode Character Database.
src/share/classes/java/text
:
Contains source for classes providing locale sensitive servicessuch asDateFormat
,NumberFormat
,Collator
,Normalizer
,Bidi
,BreakIterator
, etc.
src/share/classes/java/util
:
Contains source for locale utility classes such asLocale
,Currency
,Calendar
,TimeZone
,ResourceBundle
, etc.
src/share/classes/sun/[text|util]/resources
:
Contains the locale data needed for the above locale sensitiveclasses.
src/share/classes/java/awt/im
:
Contains source for the API classes of theInput Method Framework.
src/share/classes/sun/awt/im
:
Contains source for the implementation classes of theInput Method Framework.
src/solaris/classes/sun/awt/fontconfigs
,src/windows/classes/sun/awt/windows
:
Contains source for thefont configuration files
Building and Rebuilding
After building the whole JDK tree, output class files will begenerated under the corresponding directories underbuild/classes
directory. Some of the locale data willbe incorporated in thebuild/lib/ext/localedata.jar
file. To rebuild the internationalization library sources, you maywant to rungnumake
in the following directories:
make/java/java
make/java/text
make/java/util
make/java/awt
Documentation
Community
- Internationalization bloggers
The Localization Group
The localization group is comprised of developers and translatorsinterested in localizing JRE and JDK into various languages.
Activities include contributing translation or linguistic review,validating and providing locale data, providing otherlocale-specific features into Java, or maintaining/bug fixingexisting localization bugs.
Introduction
Until Java 6, user interface provided in both JRE and JDK have beenlocalized into following languages.
Language | JRE | JDK |
Chinese (Simplified) | O | O |
Chinese (Traditional) | O |
|
English | O | O |
French | O |
|
German | O |
|
Italian | O |
|
Japanese | O | O |
Korean | O |
|
Spanish | O |
|
Swedish | O |
|
JRE includes user interface elements such as Swing dialogs, runtimemessages, and tools messages. JDK includes user interface elementsfor additional tools such as compiler, JConsole, javadoc, demos,etc.
Source Files
Localization resource files are distributed throughout the JDKworkspace. They are usually located in the resources directoriesfor each component.
Below are some of the locations of the localizable resourcefiles.
rt.jar (jre)
j2se/src/share/classes/sun/awt/resources/awt.properties
j2se/src/share/classes/sun/print/resources/serviceui.properties
j2se/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties
j2se/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties
j2se/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties
j2se/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties
j2se/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties
j2se/src/share/classes/com/sun/accessibility/internal/resources/accessibility.properties
j2se/src/share/classes/sun/security/util/AuthResources.java
j2se/src/share/classes/sun/security/util/Resources.java
j2se/src/share/classes/sun/tools/jar/resources/jar.properties (alsoin tools.jar)
j2se/src/share/classes/sun/applet/resources/MsgAppletViewer.java(also in tools.jar)
j2se/src/share/classes/sun/util/logging/resources/logging.properties
j2se/src/share/classes/sun/misc/resources/Messages.java
j2se/src/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java
j2se/src/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources.java
j2se/src/share/classes/com/sun/org/apache/xml/internal/utils/res/XResources_en.java
j2se/src/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java
j2se/src/share/classes/sun/management/resources/agent.properties
compiled into windows native code
j2se/src/windows/classes/sun/awt/windows/awtLocalization.properties
localedata.jar (jre)
j2se/src/share/classes/sun/util/resources/LocaleNames.properties
j2se/src/share/classes/sun/util/resources/TimeZoneNames.java
j2se/src/share/classes/sun/util/resources/CalendarData.properties
j2se/src/share/classes/sun/util/resources/CurrencyNames.properties
j2se/src/share/classes/sun/text/resources/CollationData.java
j2se/src/share/classes/sun/text/resources/FormatData.java
indicim.jar (jre)
j2se/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties
thaiim.jar (jre)
j2se/src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties
resources.jar (jre)
j2se/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb.properties
j2se/src/share/classes/com/sun/rowset/RowSetResourceBundle.properties
j2se/src/share/classes/sun/rmi/registry/resources/rmiregistry.properties
j2se/src/share/classes/sun/rmi/server/resources/rmid.properties
jconsole.jar (sdk)
j2se/src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java
tools.jar (sdk)
j2se/src/share/classes/sun/tools/jar/resources/jar.properties
j2se/src/share/classes/sun/tools/javac/resources/javac.properties
j2se/src/share/classes/com/sun/tools/javac/resources/javac.properties
j2se/src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii.java
j2se/src/share/classes/sun/tools/serialver/serialver.properties
j2se/src/share/classes/sun/security/tools/JarSignerResources.java
j2se/src/share/classes/sun/rmi/rmic/resources/rmic.properties
j2se/src/share/classes/sun/applet/resources/MsgAppletViewer.java
j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties
j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties
j2se/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java
j2se/src/share/classes/com/sun/tools/javac/resources/compiler.properties
j2se/src/share/classes/com/sun/tools/javadoc/resources/javadoc.properties
j2se/src/share/classes/com/sun/tools/apt/resources/apt.properties
j2se/src/share/classes/com/sun/tools/javah/resources/l10n.properties
j2se/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable.prp
j2se/src/share/classes/com/sun/tools/corba/se/idl/idl.prp
j2se/src/share/classes/com/sun/tools/jdi/resources/jdi.properties
demos (sdk)
j2se/src/share/demo/jfc/CodePointIM/resources/codepoint.properties
j2se/src/share/demo/jfc/CodePointIM/README.html
j2se/src/share/demo/jfc/Font2DTest/resources/TextResources.properties
j2se/src/share/demo/jfc/Notepad/resources/Notepad.properties
j2se/src/share/demo/jfc/Stylepad/resources/Stylepad.properties
j2se/src/share/demo/jfc/SwingSet2/resources/swingset.properties
doc (sdk)
j2se/src/share/doc/jdk/README.html
Update makefile
To include the localized resource file in JRE and JDK bundle,corresponding makefiles need to be updated.
Include locale in JREupdate make/common/Defs.gmk in j2se workspace, which means updatej2se/make/common/Defs.gmk
in following two lines, add the locale you are going tolocalize.
J2RE_LOCALES = de es fr it ja ko sv zh_CN zh_TW zh_HK
PLUGIN_LOCALES = de es fr it ja ko sv zh_CN zh_TW zh_HK
For example, if you are going to localize JRE into thai, then
J2RE_LOCALES = de es fr it ja ko sv th zh_CN zh_TW zh_HK
PLUGIN_LOCALES = de es fr it ja ko sv th zh_CN zh_TW zh_HK
update make/common/Defs.gmk in deploy workspace.
In follwoing line, add the locale you are goingto localize
PLUGIN_LOCALES = de es fr it ja ko sv zh_CN zh_TW zh_HK
Include locale in JDKupdate make/common/Defs.gmk in j2se workspace
in following line, add the locale you are going to localize.
J2SDK_LOCALES = ja zh_CN
Notes: It's not mentioned how to include locale in install ws, tolocalize the installshield of JRE and JDK in windows. It's relatedwith many changes, and will be described later.
Building and Rebuilding
After building the whole JDK tree, the localization relatedresource files can be found in various jar files such as rt.jar,localdata.jar, tools.jar, jconsole.jar, resources.jar, indicim.jar,thaiim.jar, etc.
Additional Localization Projects
You may also be interested in participating in the followinglocalization projects:
Community