internationalization Getting started with internationalization

30% OFF - 9th Anniversary discount on Entity Framework Extensions until December 15 with code: ZZZANNIVERSARY9


Internationalization is an engineering process intended to generalize a product so that it can handle multiple languages, scripts and cultural conventions without the need for redesign or recompilation. It involves a range of activities, such as:

  • Prepare software distribution platforms for a global audience
  • Defining mappings for currency conversion
  • Defining sorting rules which change based on the current alphabet
  • Defining numeric and date formatting which adapts to the current locale selected
  • Discovering the language of the user's input, so that content can be displayed correctly
  • Offering a default language, with the option to have the text transliterated from one language to another
  • Permitting the user to select language-related user preferences
  • Displaying times, dates, and calendar information in appropriate languages and formats


VersionRelease Date
ICU 582016-12-09
ICU 572016-03-23
ICU 562015-10-07
ICU 552015-04-01
ICU 542014-10-01
ICU 532014-04-02
ICU 522013-10-09
ICU 512013-03-22
ICU 502012-12-17
ICU 492012-03-21

Installation or Setup

ICU(International Components for Unicode) can be installed as a library for the following languages:

Here is a series of installion steps for a few implementations:

  • ICU4J:

    • place icu4j.jar in your CLASSPATH
      • Optionally, place icu4j-charset.jar in your CLASSPATH for charset API support
    • To build ICU4J, you will need JDK 7+ and Apache Ant 1.9+
    • Set the JDK and Ant environment variables
      • set JAVA_HOME=C:\jdk1.8.0
      • set ANT_HOME=C:\apache-ant
      • set PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;%PATH%
    • Run the desired target defined in build.xml. The default target is "jar" which compiles ICU4J library class files and create ICU4J jar files. For example:
      • C:\icu4j>ant
  • ICU4C

    • Place the path to ICU4C in the LD_LIBRARY_PATH environment variable so that dynamic linker can find it. For example:
      • export LD_LIBRARY_PATH=/opt/icu/lib
    • Or Windows:
      • set PATH=%PATH%;C:\icu\dist\bin; set INCLUDE=%INCLUDE%;C:\icu\dist\include; set LIB=%LIB%;C:\icu\dist\bin
    • Run the configure script and build ICU4C using a makefile:
      • ./configure --prefix=/opt/icu
    • Or CygWin:
      • set PATH=%PATH%;C:\Cygwin\bin C:> dos2unix * C:> dos2unix -f configure
      • C:> "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
      • C:> bash runConfigureICU Cygwin/MSVC -prefix=/cygdrive/c/icu/dist
    • Run make and make install:
      • make && make install

Got any internationalization Question?