Harmony I18n Tool Plan

Requirement

As we see the Harmony Project has a infrastructure but has no data, we need them to meet customer requirement. A tool automatic setup i18n mechanism for open source project will do a lot benefit to all lightweight projects to their custimers

Goal

The project is plan to make up an automatic tool that helps project to automatically extract the messages in source code, analysis if necessary to localized, then translate and adjust, and at last inject into the source code and apply the localization.

The tool focus on Java Projects, using java ResourceBundle or property loading mechanism.

High level Design

The tool can be depart into 3 small tools/sequences:

1 String extractor and analyzer

In this step, the tool shall look for all strings in the project. Note not all Strings can be localized or it's not necessary. We have to detect, maybe with user's hint (by argument/profile) or user's decision (decide the necessary files)

2 the translator

We don't focus on the translator as there's so many translators and tools, however we may look for a mechanism to automatically translate and adjust for the open source project, so we may offer choice for customers for the style. We are not going to find a 100% correct translation.

3 the injector

This part will apply a formalized i18n mechanism into the source code, using ResourceBundle or property loading, this also help the customer to fix the translation easily.

The Harmony Project has no localized data for worldwide customers. This project plans to create an automatic tool that helps projects to translate the necessary messages. The tool will automatically extract the messages, conduct analysis if necessary to translate, translate and adjust, and at last inject into the source code with ResourceBundle or property loading mechanism and apply the localization. There are many open source projects in existence, most of which do not have localized messages for customer convenience, including the Harmony project, so the tool may also be helpful on a wider scale. (http://wiki.apache.org/harmony/Harmony_i18n_tool)