Part of the Boost C++ Libraries.
Boost.Locale is a library that provides high quality localization facilities in a C++ way. It was originally designed a part of CppCMS - a 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 users in their 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
andwchar_t
- Experimental support for C++11
char16_t
andchar32_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.
Distributed under the Boost Software License, Version 1.0.
- C++11
- Formatted with clang-format, see
tools/format_sources.sh
Branch | GH Actions | Appveyor | Drone | codecov.io | Deps | Docs | Tests |
---|---|---|---|---|---|---|---|
master |
|||||||
develop |
Name | Purpose |
---|---|
doc |
Documentation |
examples |
Examples |
include |
Headers |
src |
Source files |
test |
Unit tests |
- Ask questions
- Report bugs: Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
- Submit your patches as pull requests against develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
- Discussions about the library are held on the Boost developers mailing list. Be sure to read the discussion policy before posting and add the
[locale]
tag at the beginning of the subject line.