Java and Java EE Internationalization


The Java and Java EE Internationalization workshop provides attendees with a broad understanding of internationalization processes, issues and pitfalls.

This workshop shows how Java and Java EE deal with: character sets and Unicode (including surrogates, UTF encodings, normalization forms and transcoding), locales and locale models for client-server applications, resources and resource maintenance, sorting & searching, date & time processing, formatting of numbers and currency, text processing functions, etc.

Attendees will leave with a clear understanding of how to correctly and efficiently internationalize their Java-based applications.

Target Audience

This course is intended for software developers, software architects, software technical project managers and team leaders. It is highly recommended that attendees have a working knowledge of Java (and have taken the pre-requisite "All About Internationalization" workshop).


This workshop provides software professionals with a solid foundation on software internationalization and a practical, extensive coverage of Java internationalization techniques.


The agenda described below is for a 1.5-day session (or 2 days with supervised hands-on exercises).


This workshop presumes that attendees have already taken the "All About Internationalization" workshop.


  1. Internationalization with Java and Java EE
    • Java platforms: Java SE and Java EE
    • JSP and JSTL
    • Internationalization features of Java versions
    • books and useful resources
  2. Java and Unicode
    • Java versions vs. Unicode versions; supplementary character support
    • Characters vs. Code Points; Character and code-point interfaces
    • What needs to change for full Unicode support
    • Unicode normalization in Java
    • Basic transcoding for Files and Strings
    • Reliable transcoding with the CharSet class
    • Character sets for JSP and the Web
    • IDN and IRL support (international domain names and URL)
  3. Java Locales
    • Identification, ISO 639, ISO 3166, BCP 47
    • Features of BCP 47 locales
    • Enumeration
    • Selection: install, start-up, run-time
    • Locale-aware functions
    • Locale hierarchies: resource container selection
    • User-defined locales
    • Locales with JSP and JSTL
  4. Java Resources
    • Resource bundles
    • GetBundle search order
    • GetLocale and GetString
    • ListResourceBundle
    • PropertyResourceBundle
    • Non-text resources
    • ResourceBundle.Control (with many examples)
    • JSP resources
    • Performance caveats, subclassing pitfalls
  5. Formatting & Parsing
    • Formatting & parsing numbers and currency; format customization
    • Formatting & parsing date and time; format customization
    • Working with calendars
    • Formatting messages with Java Formatter and Java MessageFormat
    • How to handle plural agreement in messages
  6. Text Processing
    • Searching and sorting text
    • Collation and collation-based processes
    • Collation rules and collation performance
    • Word and character boundaries
    • Line and sentence boundaries
    • Case conversion
    • Character properties
  7. Text Input and Output
    • Input methods and the Java IMF (Input Method Framework)
    • Input method types: host input method support vs. built-in input methods
    • When do you need to use input method APIs ?
    • Text rendering and GUI layout
    • The ComponentOrientation property
    • Logical and physical fonts
    • The Java font mechanism
    • Three options for fonts: logical fonts, platform fonts or embedded fonts


Each attendee will receive a 250+ page booklet, one slide per page, with ample room for notes, complete with table of contents and glossary. The booklet is designed to serve as a practical easy-to-use reference “book” for regular use during an internationalization project.

Pierre Cadieux

About our Instructor – Pierre Cadieux

Pierre Cadieux is a veteran with over 35 years' experience in internationalization of software, Web sites and mobile devices. He has taught internationalization at the Université de Montréal. Pierre has been technology editor for the LISA newsletter, VP Technology at ALIS and director of technology at Bowne Global Solutions.

At ALIS, Pierre pioneered the transparent handling of Arabic and Hebrew languages and created the core bi-directional technology licensed by Microsoft.

As Director of Localization Technology at Bowne Global Solutions, he carried out research and analysis on multilingual Web sites and published the first generic model of Globalization Management Systems.

Additionally, Pierre holds a B. Sc. and M. Sc. in Computer Science.