A lot of checks and a major workaround are for ICU 4.8 or earlier which can be removed. An annoying bug (Parsing of timezones like "GMT" in "full" format followed by unrelated text) fixed in 4.8.1 is worth avoiding by requiring this version over 4.8.0.
5.8 KiB
Boost.Locale
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.
License
Distributed under the Boost Software License, Version 1.0.
Properties / Requirements
- C++11
- ICU 4.8.1 or newer for full feature support. ICU 50.1 is not supported, please use a newer version.
- Formatted with clang-format, see
tools/format_sources.sh
Build Status
Branch | GH Actions | Appveyor | Drone | codecov.io | Deps | Docs | Tests |
---|---|---|---|---|---|---|---|
master |
|||||||
develop |
Directories
Name | Purpose |
---|---|
doc |
Documentation |
examples |
Examples |
include |
Headers |
src |
Source files |
test |
Unit tests |
More information
- 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.