What is Boost.Locale?

Boost.Locale is a library that provides high quality localization facilities in C++. It was originally designed a part of CppCMS - C++ Web Framework project and then contributed to Boost.

Boost.Locale gives powerful tools for development of cross platform localized software - the software that talks to user in its language.


  • Correct case conversion, case folding and normalization.
  • Collation (sorting), including support for 4 Unicode collation levels.
  • Date, time, timezone and calendar manipulations, formatting and parsing, including transparent support for calendars other than Gregorian.
  • Boundary analysis for characters, words, sentences and line-breaks.
  • Number formatting, spelling and parsing.
  • Monetary formatting and parsing.
  • Powerful message formatting (string translation) including support for plural forms, using GNU catalogs.
  • Character set conversion.
  • Transparent support for 8-bit character sets like Latin1.
  • Support for char and wchar_t.
  • Experimental support for C++11 char16_t and char32_t strings and streams.

Boost.Local complements the standard library's API, making it easy to write cross platform and "cross culture" software.

In order to achieve this goal, Boost.Locale uses the state-of-the-art Unicode and Localization library: ICU - International Components for Unicode.

Boost.Locale creates the natural glue between the C++ locales framework, iostreams, and the powerful ICU library.

Boost.Locale provides non-ICU based localization support as well. It is based on the operating system native API or on the standard C++ library support. Sacrificing some less important features, Boost.Locale becomes less powerful but lighter and easier to deploy.