ICU-4692 update ICU4J readme for 3.4

X-SVN-Rev: 18354
This commit is contained in:
Doug Felt 2005-07-26 21:44:58 +00:00
parent 80c533be49
commit 7efd460d81

View File

@ -18,10 +18,10 @@ h3.doc { background: #CCCCFF }
<body style="background-color: rgb(255, 255, 255);" lang="EN-US" <body style="background-color: rgb(255, 255, 255);" lang="EN-US"
link="#0000ff" vlink="#800080"> link="#0000ff" vlink="#800080">
<h2>International Components for Unicode for Java (ICU4J)</h2> <h2>International Components for Unicode for Java (ICU4J)</h2>
<h3>Read Me for ICU4J 3.2</h3> <h3>Read Me for ICU4J 3.4</h3>
<hr size="2" width="100%"> <hr size="2" width="100%">
<p><b>Release Date</b><br> <p><b>Release Date</b><br>
Nov 22, 2004<br> Jul 31, 2005<br>
</p> </p>
<p>For the most recent release, see the <a <p>For the most recent release, see the <a
href="http://www.ibm.com/software/globalization/icu/downloads.jsp"> ICU4J href="http://www.ibm.com/software/globalization/icu/downloads.jsp"> ICU4J
@ -74,6 +74,9 @@ the JDK</li>
Characters</b></a> &#8211; String manipulation and character properties<br> Characters</b></a> &#8211; String manipulation and character properties<br>
&nbsp;&nbsp;&nbsp;&nbsp;Required for proper GB 18030 and JIS 213 &nbsp;&nbsp;&nbsp;&nbsp;Required for proper GB 18030 and JIS 213
repertoire support</li> repertoire support</li>
<li><a href="http://icu.sourceforge.net/userguide/charset.html"><b>Charset
Detection</b></a> &#8211; Recognition of various single and multibyte charsets<br>
&nbsp;&nbsp;&nbsp;&nbsp;Useful for recognizing untagged text data</li>
<li><a <li><a
href="http://icu.sourceforge.net/userguide/unicodeSet.html"><b>UnicodeSet</b></a> href="http://icu.sourceforge.net/userguide/unicodeSet.html"><b>UnicodeSet</b></a>
&#8211; standard set operations optimized for sets of Unicode characters<br> &#8211; standard set operations optimized for sets of Unicode characters<br>
@ -188,44 +191,55 @@ current and complete version of this support is always found in ICU4J.
--> -->
<h3 class="doc"><a name="news"></a>What Is New In This Release?</h3> <h3 class="doc"><a name="news"></a>What Is New In This Release?</h3>
<ul> <ul>
<li><a href="#News_ULocale">ULocale (RFC 3066) implementation complete</a> <li><a href="#News_Standards">Unicode 4.1, CLDR 1.3 Support</a></li>
</li> <li><a href="#News_Charset">New Charset Detection API</a></li>
<li><a href="#News_Resource_Data">RBNF, Transliterator data <li><a href="#News_DateFormat">Improved Date Formatting</a></li>
now in separate resource trees</a> </li> <li><a href="#News_Calendars">Additional Calendar Support</a></li>
<li><a href="#News_Compat">Increased API compatibility with JDK</a></li>
</ul> </ul>
<p>A complete report of the API changes between version 3.2 and <p>A complete report of the API changes between version 3.4 and
version 3.0 of ICU4J can be found <a href="APIChangeReport.html">here</a>. version 3.2 of ICU4J can be found
This report is generated by a <a href="APIChangeReport.html">here</a>. This report is generated by a
tool and has some limitations, the most notable of which is that it tool and has some limitations, the most notable of which is that it
does not properly reflect the effect of class inheritance changes. Also does not properly reflect the effect of class inheritance
of course, changes. Also of course, being generated by a tool, the report does
being generated by a tool, the report does not provide explanation or not provide explanation or commentary on the changes. For background
commentary on the changes. For background information and information and clarification of changes it's always recommended that
clarification of changes it's always recommended that you check the you check the mailing list and archives.</p>
mailing list and archives.</p>
<h4><a name="News_ULocale" id="News_ULocale">ULocale (RFC 3066) <h4><a name="News_Standards" id="News_Standards">Unicode 4.1, CLDR 1.3 Support</a></h4>
implementation complete</a></h4> <p>ICU has been updated to Unicode 4.1, including new character
<p>RFC 3066 defines a new format for Locale identifiers that properties and values. Collation has been updated to Unicode
incorporates information about the script as well as the language and Technical Standard #10 (UCA). Locale data has been updated to CLDR
region into the locale identifier. ICU4J has enhanced the 1.3. Additional APIs have been added to access and display more
<tt>ULocale</tt> class to provide this information. All ICU4J APIs that CLDR data.<br>
work with
<tt>Locale</tt> have been overloaded to also work with <tt>ULocale</tt>.
<tt>ULocale</tt> is now the preferred API for specifying a locale ID to
ICU4J APIs.<br>
</p> </p>
<h4><a name="News_Resouce_Data" id="News_Resouce_Data">RBNF, <h4><a name="News_Charset" id="News_Charset">New Charset Detection API</a></h4>
Transliterator data <p>ICU4J provides heuristics for detecting the charset of a byte stream.
now in separate resource trees</a></h4> Users can create a Java Reader or String from any byte-oriented input stream
<p> when the charset or encoding of the byte data is unknown. The implementation
More resource data has been moved out of the core resources into recognizes most widely used encodings for European and Asian languages.<br>
separate resource trees. This will make it easier for clients to </p>
trim the data used by ICU4J.<br> <h4><a name="News_DateFormat" id="News_DateFormat"></a>Improved Date Formatting</h4>
<p>Time and Date formatting now supports narrow and standalone day and month names, as well
as generic time zones (e.g. "Pacific Time", "United Kingdom"). Time zone
name data is available for many more timezones and locales.<br>
</p>
<h4><a name="News_Calendars" id="News_Calendars"></a>Additional Calendar Support</h4>
<p>Existing Calendar APIs have been promoted to stable. Coptic and Ethiopic
calendars have been added. Calendar instantiation now recognizes the
<tt>calendar</tt> keyword in <tt>ULocale</tt> identifiers.<br>
</p>
<h4><a name="News_Compat" id="News_Compat">Increased API compatibility with the JDK</a></h4>
<p>Several small differences between ICU4J APIs and the core Java APIs have been
removed. For example, types of some enum constants have been aligned with Java's
(int became byte), UCharacter added methods to match java.lang.Character APIs
(including some deprecated methods, for completeness).<br>
</p> </p>
<h3 class="doc"><a name="license"></a>License Information</h3> <h3 class="doc"><a name="license"></a>License Information</h3>
<p> <p>
The ICU projects (ICU4C and ICU4J) use the X license. The X The ICU projects (ICU4C and ICU4J) use the X license. The X
license is a <b>non-viral</b> and recommended free software license license is <b>suitable for commercial use</b> and is a recommended free software license
that is compatible with the GNU GPL license. This became that is compatible with the GNU GPL license. This became
effective with release 1.8.1 of ICU4C and release 1.3.1 of ICU4J in effective with release 1.8.1 of ICU4C and release 1.3.1 of ICU4J in
mid-2001. All new ICU releases will adopt the X license; previous ICU mid-2001. All new ICU releases will adopt the X license; previous ICU
@ -235,8 +249,8 @@ need to accept the terms and conditions of the X license.
</p> </p>
<p> <p>
The main effect of the change is to provide GPL compatibility. The main effect of the change is to provide GPL compatibility.
The X license is listed as GPL compatible, see the GNU page at <a The X license is listed as GPL compatible, see the GNU page at
href="http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses"> <a href="http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses">
http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses</a>. http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses</a>.
This means that GPL projects can now use ICU code, it does <b>not</b> This means that GPL projects can now use ICU code, it does <b>not</b>
mean that projects using ICU become subject to GPL. mean that projects using ICU become subject to GPL.
@ -252,7 +266,7 @@ package.
<h3 class="doc"><a name="PlatformDependencies"></a>Platform Dependencies</h3> <h3 class="doc"><a name="PlatformDependencies"></a>Platform Dependencies</h3>
<p> Parts of ICU4J depend on functionality that is only available in <p> Parts of ICU4J depend on functionality that is only available in
JDK 1.4 or later, although some components work under earlier JVMs. All JDK 1.4 or later, although some components work under earlier JVMs. All
components should be compiled using a Java2 compiler, as even components should be compiled using a Java 2 compiler, as even
components that run under earlier JVMs can require language features components that run under earlier JVMs can require language features
that are only present in Java2. Currently 1.1.x, 1.2.x and 1.3.x JVMs that are only present in Java2. Currently 1.1.x, 1.2.x and 1.3.x JVMs
are unsupported and untested, and you use the components on these JVMs are unsupported and untested, and you use the components on these JVMs
@ -284,12 +298,12 @@ platforms:
If you want to use ICU4J (as opposed to developing it), your best bet If you want to use ICU4J (as opposed to developing it), your best bet
is to download an official, packaged version of the ICU4J source is to download an official, packaged version of the ICU4J source
code. These versions are tested more thoroughly than day-to-day code. These versions are tested more thoroughly than day-to-day
development builds, and they are packaged in zip files for convenient development builds, and they are packaged in jar files for convenient
download. These packaged files can be found at <a download. These packaged files can be found at the <a
href="http://ibm.com/software/globalization/icu/downloads.jsp">http://ibm.com/software/globalization/icu/downloads.jsp</a>. href="http://ibm.com/software/globalization/icu/downloads.jsp">ICU Downloads page</a>.
If a packaged snapshot is named <b>ICU4JXXXXXX.zip</b>, where XXXXXX A packaged snapshot is named <b>icu4jsrc_XXX.jar</b>, where XXX
is the release version number. Please unzip this file. It is the release version number. Please unjar this file. It
will reconstruct the source directory. </li> will reconstruct the source directory.</li>
</ul> </ul>
<ul type="disc"> <ul type="disc">
<li><b>CVS Source Repository:</b><br> <li><b>CVS Source Repository:</b><br>
@ -304,7 +318,7 @@ directions that are contained on the <a
</li> </li>
</ul> </ul>
<p>For more details on how to download ICU4J directly from the web <p>For more details on how to download ICU4J directly from the web
site, please also see <a site, please see the ICU downloads page at <a
href="http://ibm.com/software/globalization/icu/downloads.jsp">http://ibm.com/software/globalization/icu/downloads.jsp</a> href="http://ibm.com/software/globalization/icu/downloads.jsp">http://ibm.com/software/globalization/icu/downloads.jsp</a>
</p> </p>
<h3 class="doc"><a name="WhatContain"></a>The Structure and Contents of <h3 class="doc"><a name="WhatContain"></a>The Structure and Contents of
@ -407,7 +421,7 @@ These add to, and in some cases replace, related core Java classes:
<td bgcolor="#ffffff" valign="baseline">Additional utility <td bgcolor="#ffffff" valign="baseline">Additional utility
classes: classes:
<ul> <ul>
<li>Calendars - Gregorian, Buddhist, Hebrew, Islamic, Japanese </li> <li>Calendars - Gregorian, Buddhist, Coptic, Ethiopic, Hebrew, Islamic, Japanese </li>
<li>Holiday</li> <li>Holiday</li>
<li>TimeZone</li> <li>TimeZone</li>
<li>VersionInfo</li> <li>VersionInfo</li>
@ -474,13 +488,23 @@ the ICU4J web site, and can be built from the sources:
<ul> <ul>
<li><a href="http://icu.sourceforge.net/apiref/icu4j/">Index <li><a href="http://icu.sourceforge.net/apiref/icu4j/">Index
to all ICU4J API</a></li> to all ICU4J API</a></li>
<li><a href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/CharsetDetector.html">Charset Detector</a> &#8211; Detection of charset from a byte stream</li>
<li>International Calendars &#8211; <a <li>International Calendars &#8211; <a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/IslamicCalendar.html">Islamic</a>,
<a <a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/BuddhistCalendar.html">Buddhist</a>, href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/BuddhistCalendar.html">Buddhist</a>,
<a <a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/ChineseCalendar.html">Chinese</a>,
<a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/CopticCalendar.html">Coptic</a>,
<a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/EthiopicCalendar.html">Ethiopic</a>,
<a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/GregorianCalendar.html">Gregorian</a>,
<a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/HebrewCalendar.html">Hebrew</a>, href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/HebrewCalendar.html">Hebrew</a>,
<a <a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/IslamicCalendar.html">Islamic</a>,
<a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/JapaneseCalendar.html">Japanese</a>.</li> href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/JapaneseCalendar.html">Japanese</a>.</li>
<li><a <li><a
href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/Normalizer.html">Unicode href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/Normalizer.html">Unicode
@ -1145,7 +1169,9 @@ select the next or previous block of text.) </li>
<h3 class="doc"><a name="resources">ICU4J Resource Information</a></h3> <h3 class="doc"><a name="resources">ICU4J Resource Information</a></h3>
Starting with release 2.1, ICU4J includes its own Starting with release 2.1, ICU4J includes its own
resource information resource information
which is completely independent of the JDK resource information. The which is completely independent of the JDK resource information. (Note,
in ICU4J 3.2 and 3.4, time zone information still depends on the
underlying JDK). The
new ICU4J information is equivalent to the information in ICU4C and new ICU4J information is equivalent to the information in ICU4C and
many many
resources are, in fact, the same binary files that ICU4C uses. resources are, in fact, the same binary files that ICU4C uses.
@ -1158,20 +1184,20 @@ from release to release, so clients should not depend on the exact
organization organization
of the data in ICU4J.</p> of the data in ICU4J.</p>
<ul> <ul>
<li>The primary <b>locale data</b> is under the directory <tt>icudt32b</tt>, <li>The primary <b>locale data</b> is under the directory <tt>icudt34b</tt>,
as a set of <tt>".res"</tt> files whose names are the locale identifiers. as a set of <tt>".res"</tt> files whose names are the locale identifiers.
Locale naming is documented the <code>com.ibm.icu.util.ULocale</code> Locale naming is documented the <code>com.ibm.icu.util.ULocale</code>
class, and the use of these names in searching for resources is documented class, and the use of these names in searching for resources is documented
in <code>java.util.ResourceBundle</code>. in <code>java.util.ResourceBundle</code>.
</li> </li>
<li>The <b>collation data</b> is under the directory <tt>icudt32b/coll</tt>, <li>The <b>collation data</b> is under the directory <tt>icudt34b/coll</tt>,
as a set of <tt>".res"</tt> files.</li> as a set of <tt>".res"</tt> files.</li>
<li>The <b>rule-based transliterator data</b> is under the directory <li>The <b>rule-based transliterator data</b> is under the directory
<tt>icudt32b/translit</tt> as a set of <tt>".res"</tt> files. (<b>Note:</b> the <tt>icudt34b/translit</tt> as a set of <tt>".res"</tt> files. (<b>Note:</b> the
Han transliterator test data is no longer included in the core icu4j.jar Han transliterator test data is no longer included in the core icu4j.jar
file by default.)</li> file by default.)</li>
<li>The <b>rule-based number format data</b> is under the directory <li>The <b>rule-based number format data</b> is under the directory
<tt>icudt32b/rbnf</tt> as a set of <tt>".res"</tt> files. <tt>icudt34b/rbnf</tt> as a set of <tt>".res"</tt> files.
<li>The <b>break iterator data</b> is directly under the data <li>The <b>break iterator data</b> is directly under the data
directory, as a set of <tt>".brk"</tt> files, named according to the directory, as a set of <tt>".brk"</tt> files, named according to the
type of break and the locale where there are locale-specific versions.</li> type of break and the locale where there are locale-specific versions.</li>
@ -1192,9 +1218,9 @@ resource files refers to the other file's data. In other cases, a
file may alias a portion of another file's data in order to save file may alias a portion of another file's data in order to save
space. Currently ICU4J provides no tool for revealing these space. Currently ICU4J provides no tool for revealing these
dependencies.</p> dependencies.</p>
<blockquote><strong>Note:</strong> Java's <code>Locale</code> class <blockquote><strong>Note:</strong> Java's <code>Locale</code> class
silently converts the language code <tt>"he"</tt> to <tt>"iw"</tt> silently converts the language code <tt>"he"</tt> to <tt>"iw"</tt>
when you construct the Locale. Thus when you construct the Locale (for versions of Java through Java 5). Thus
Java cannot be used to locate resources that use the <tt>"he"</tt> Java cannot be used to locate resources that use the <tt>"he"</tt>
language code. ICU, on the other hand, does not perform this language code. ICU, on the other hand, does not perform this
conversion in ULocale, and instead uses aliasing in the locale data to conversion in ULocale, and instead uses aliasing in the locale data to
@ -1249,8 +1275,8 @@ regenerate them when they move to new releases of ICU4J.</td>
</table> </table>
</blockquote> </blockquote>
<p> <p>
ICU4J 3.0's resource mechanism is new for this release and we are still We are still developing ICU4J's resource mechanism. Currently it
developing it. Currently it is not possible to mix icu's new binary <tt>.res</tt> is not possible to mix icu's new binary <tt>.res</tt>
resources resources
with traditional java-style <tt>.class</tt> or <tt>.txt</tt> with traditional java-style <tt>.class</tt> or <tt>.txt</tt>
resources. We might resources. We might
@ -1270,10 +1296,8 @@ the contents of the ICU4J resources.
<p> <p>
The files in <tt>icudata.jar</tt> get extracted to <tt>com/ibm/icu/impl/data</tt> The files in <tt>icudata.jar</tt> get extracted to <tt>com/ibm/icu/impl/data</tt>
in in
the build directory when the 'core' target is built. Thereafter, as the build directory when the 'core' target is built.
long as the file <tt>res_index.res</tt> file is untouched, they will Building the <tt>'resources'</tt> target will force the
not be extracted again. Building the <tt>'resources'</tt> target will
force the
resources to once again be extracted. Extraction will resources to once again be extracted. Extraction will
overwrite any corresponding resource files already in that directory. overwrite any corresponding resource files already in that directory.
</p> </p>
@ -1333,7 +1357,7 @@ review all comments.</p>
<h2>Thank you for your interest in ICU4J!</h2> <h2>Thank you for your interest in ICU4J!</h2>
<br> <br>
<hr align="center" size="2" width="100%"> <hr align="center" size="2" width="100%">
<p><i><font size="-1">Copyright &copy; 2002-2004 International Business <p><i><font size="-1">Copyright &copy; 2002-2005 International Business
Machines Corporation and others. All Rights Machines Corporation and others. All Rights
Reserved.<br> Reserved.<br>
5600 Cottle Road, San Jos&eacute;, CA 95193 5600 Cottle Road, San Jos&eacute;, CA 95193