Proposal for Internationalization Subproject This is a proposal for creating an internationalization subproject under the Jakarta project. The intention of this submission to the Jakarta general list is to solicit comments on this version of the draft.
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 component. 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 Component 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 Subpackages and Components It is expected that other components and subpackages will make use of the internationalization component 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 demonstrate how it might appear in 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". 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 Locale component 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 component. 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 [EMAIL PROTECTED] * 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]