Boost.Locale

# 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.

Features:

- 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.

# Tutorials

- Introduction to C++ Standard Library localization support
- Using Boost.Locale
  - Locale Generation
  - Collation
  - Text Conversions
  - Numbers, Time and Currency Formatting and Parsing
  - Messages Formatting (Translation)
  - Character Set Conversions
  - Boundary analysis
  - Localized Text Formatting
  - Working with dates, times, timezones and calendars.
  - Getting information about the current locale
  - Working with multiple locales
- Using Localization Backends
- Recommendations and Myths
- Building the Library
- Appendix
  - Design Rationale
  - Frequently Asked Questions
  - Default Encoding under Microsoft Windows
  - Running Examples under Microsoft Windows
  - Using Gettext Tools on Windows
  - Glossary
  - Tested Compilers and Platforms
  - Status of C++11 char16_t/char32_t support
  - Special Thanks
- Changelog

- © Copyright 2009-2012 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.