# Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

# Boost.Locale

## What is Boost.Locale?

Boost.Locale is a library that provides high quality localization facilities in a C++ way. 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.

Provided 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++0x `char16_t` and `char32_t` strings and streams.

Boost.Locale enhances and unifies the standard library's API the way it becomes useful and convenient for development of 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 and use library.

## 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++0x char16_t/char32_t support
  - Special Thanks