Michael Fang's Weblog Miko's Weblog

Wednesday Jul 04, 2007

The OpenJDK Project was officially launched at JavaOne in San Francisco on May 8, 2007. To get started, please visit: http://openjdk.java.net/ and http://community.java.net/openjdk/

The http://openjdk.java.net/ site contains a list of Groups and Projects that are ready for your participation.

I work for the Software group, specifically, I work for a group that handles Java Localization (L10n) Engineering/Testing and Internationalization (I18n) Testing.

There is currently an Internationalization Group on http://openjdk.java.net web site. The Group page is http://openjdk.java.net/groups/i18n. But the Localization Group has not been represented. After some discussion, we decided not to confuse the participants about I18n and L10n with 2 separate Groups. Instead, the L10n Group will share the same page and mailing list with the I18n Group. Before the page could be updated to include L10n information, here is some information prepared by the L10n engineers to help interested participants to get started.

The Localization Group

The localization group is comprised of developers and translators interested in localizing JRE and JDK into various languages.

Activities include contributing translation or linguistic review, validating and providing locale data, providing other locale-specific features into Java, or maintaining/bug fixing existing localization bugs.

Introduction

Until Java 6, user interface provided in both JRE and JDK have been localized 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, runtime messages, and tools messages. JDK includes user interface elements for additional tools such as compiler, JConsole, javadoc, demos, etc.

Source Files

Localization resource files are distributed throughout the JDK workspace. They are usually located in the resources directories for each component.

Below are some of the locations of the localizable resource files.

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 (also in 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 JRE
update make/common/Defs.gmk in j2se workspace, which means update j2se/make/common/Defs.gmk

in following two lines, add the locale you are going to localize.

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 JDK
update 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, to localize the installshield of JRE and JDK in windows. It's related with many changes, and will be described later.

Building and Rebuilding

After building the whole JDK tree, the localization related resource 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 following localization projects:

Community

Mailing Lists

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed