C/C++ Internationalization


The C/C++ Internationalization workshop will provide attendees with a broad understanding of internationalization processes, issues and pitfalls. Numerous practical examples, from real projects, will be presented.

The workshop covers how C/C++ deal with: character sets and Unicode (including surrogates, UTF encodings, normalization forms and transcoding), locales and locale models for client-server applications, formatting for messages and for date/time/currency/numbers, text processing functions including search & sort, etc.

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 C or C++ (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 C/C++ internationalization techniques.


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


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


  1. Internationalization with C/C++
    • POSIX C standard internationalization API
    • C++ standard internationalization API
    • Win 32 API
  2. Character sets and Unicode with C/C++
    • C/C++ vs. Unicode (version by version)
    • The standard wchar_t type
    • The TCHAR strategy
    • Unicode file I/O in C/C++
  3. Locales in C/C++
    • Definition
    • Identification, ISO 639, ISO 3166
    • Selection: install, start-up, run-time
    • C (POSIX) locales
    • C++ locales and facets
  4. Resources in C/C++
    • UNIX Message catalogs
    • Catgets and gettext
    • Windows Resource files
    • Message formatting
  5. Formatting and Parsing in C/C++

POSIX i18N APIs and C++ facets described for:

  • Working with date, time, numbers
  • Working with currency
  • Working with calendars
  • Message formatting in C++ (lack of)
  1. Text Processing in C/C++

POSIX i18N APIs and C++ facets described for:

  • Searching and Sorting
  • Boundaries: character, word, line, sentence
  • Basic character operations
  • Character properties
  1. Wrap-up
    • Evaluation of the Microsoft TCHAR approach
    • Presentation of the ZCHAR approach
    • Summary evaluation of C/C++ internationalization support


Each attendee will receive a 200+ 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.