You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@jakarta.apache.org by Robert Simpson <RS...@Verizon.net> on 2003/04/05 18:04:51 UTC

[VOTE][i18n] Internationalization subproject

Proposal for Internationalization Subproject

This is a proposal for creating an internationalization subproject under
the Jakarta project.  This final version of the proposal is similar to
the second draft (submitted to the Jakarta General mailing list for review
on Wednesday, March 5, 2003) with the exception of a few additions such as
an explanation of the lack of Internationalization Libraries in the initial
code.  A few changes have also been made to the downloadable code itself,
most notably use of the "native2ascii" ANT task so that the resources are
now encoded with escaped Unicode.

An HTML version of this proposal can be found at http://iToolSet.com/i18n/PROPOSAL.html


0) Rationale

One of the functions that is common to many applications, especially those
that are accessed or distributed via the Internet, is the need to display
prompts, messages, along with their replaceable parameters, and other text
in the language preferred by the user.

In the Java(TM)* SDK Exceptions classes, there are methods
(getLocalizedMessage) which are intended for localization of exception messages,
but those localization functions are left to the subclass implementations.
Subclasses which provide the implementation need to be created.

Certain prompts, messages or text may be common among various applications,
while others may be unique to specific applications.  Collections of localized
resources can be created for both types, each stored in their own libraries.
A common framework can be created to support internationalization of resources
using these libraries.

There currently is a "Resources" component in the Jakarta Commons sandbox.
The intent is to provide a common interface for access to resources of various
types.  The functions provided by this component could be provided in a subpackage
under the package created for the new internationalization subproject.

These various efforts for providing functions that enable internationalization
of applications should be combined into one place, to encourage interoperability
between these various functions.


1) Scope of the Subproject

The proposal defines a common framework for internationalization of
Java resources.  This internationalization typically occurs by localizing
instances of these resources to a specific Locale.  The proposed framework would
facilitate the internationalization of all objects to a single Locale per user,
in either a single-user or multi-user environment.  For example, when localizing
messages, both the message patterns and the inserted arguments should be localized
to the same Locale.  This is a good example of why internationalization should occur
at a higher level than simply the resources that supply the localized message patterns.

The Internationalization subproject would consist of two major components:

1. the code component

2. a set of Internationalization libraries

       libraries for general application areas
           Some libraries, which would provide resources for certain general
           application areas, would be created as part of the Internationalization
           subproject.  For example, localized resources related to common security
           functions (such as user instructions pertaining to user names and passwords)
           that could be used by various applications would be part of this subproject.

       application-specific libraries
           Additional libraries that would provide internationalization resources
           for specific applications could be created within the scope of those
           applications. For example, resources related to the ANT build tool
           would be created and stored as part of that Apache project.


1.5) Interaction With Other Projects and Subprojects

It is expected that other projects and Jakarta subprojects will make use of the
internationalization subproject anywhere they need to provide for internationalization
of resources, resulting in much heavier interaction inbound rather than outbound.


2) Initial Source of the Package

The initial source of the package would be obtained from existing code (after the
addition of comments to meet Apache requirements), which can be found in a .zip file
that can be downloaded from http://iToolSet.com/i18n/initsrc.zip.  This code
has been revised somewhat to make it more generalized to fit into the Apache world, and
to provide a working example.  The example, which simulates the use of localized resources
in a multi-user (ex: servlets) environment with both local client-side (multiple users with
distinct locales) and remote server-side (single server with it's own locale) destinations,
can be run by executing the "test2.bat" batch file or the "test2.sh" shell script.
(The test is currently set up to run under version 1.4).
The JavaDoc for the initial code can be found http://iToolSet.com/i18n/docs/index.html".

The initial source does not include any Internationalization Libraries, beyond
what is needed for the examples, for three reasons:

 1. The set of words, phrases, messages, etc for the Apache projects would not
    be the same as for the existing code.  The Internationalization Libraries
    should be built based on the needs within the Apache code.  Users of the
    Apache Internationalization subproject (including the developers of the
    initial code, following the "eat your own cooking" principle), would build
    upon the code and libraries downloaded from Apache.

 2. The developers of the Apache Internationalization Libraries would be volunteers
    contributing specifically to the Apache effort, rather than developers targeting
    a specific subject area for other purposes (such as a company supporting their
    customers).  However, outside contributions of Internationalization Libraries
    in general subject areas (such as "science", "legal", etc) that were not already
    addressed within Apache would be welcomed.  For areas already addressed, extending
    the existing libraries for those subject areas would be the preferred approach.

 3. The initial code has been converted for the purpose of making it more general and
    usable by a large target audience, in preparation for submission as an Apache
    subproject.  However completion of the conversion to build internal code on top
    of the Apache Internationalization subproject would not make much sense until the
    subproject proposal has been accepted (in other words, we don't want to build
    too much internal code on top of a non-existent Apache project).


3) Required Jakarta Resources

CVS Repository

    New directory "i18n" in the Jakarta CVS repository.
    Revise initial committers based on initial committers list (below).

Mailing List

    Create mailing lists "i18n-user" and "i18n-dev".

Bugzilla

    New subproject "i18n" under the Jakarta project,
    with appropriate version identifiers as needed.


4) Initial Committers

The initial committers on the Internationalization subproject shall be Robert Simpson and
at least some of those who have expressed interest in the Commons Resources
component (Craig McClanahan, Michael Schachter, Jason van Zyl, and Daniel Rall).
(An e-mail would be sent to at least some of those additional committers to
determine if they would still be willing to be committers for the internationalization
subproject.  They would be included in the committers list based on their agreement.)


4.5) Additional Contributors

In addition to code contributors, this subproject would also be seeking persons
who would be interested in contributing to the language translation effort.  These
persons should be natively fluent in a language other than English, and be able to
read English as a second language.  Any persons with such qualifications may contact
the author of this proposal at Rob.Simpson@iToolSet.com.


* Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.



---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@jakarta.apache.org
For additional commands, e-mail: general-help@jakarta.apache.org