Boost.Locale
Boost.Locale

Boost.Locale 是什么?

Boost.Locale 是一个在 C++ 中提供高质量本地化功能的库。它最初被设计为 CppCMS - C++ Web Framework 项目的一部分,然后被贡献给了 Boost。

Boost.Locale 为开发跨平台本地化软件提供了强大的工具——即能够与用户用其语言交流的软件。

功能

  • 正确的字符大小写转换、大小写折叠和规范化。
  • 排序(collation),包括对 4 个 Unicode 排序级别的支持。
  • 日期、时间、时区和日历的操作、格式化和解析,包括对非公历日历的透明支持。
  • 字符、单词、句子和换行符的边界分析。
  • 数字格式化、拼写和解析。
  • 货币格式化和解析。
  • 强大的消息格式化(字符串翻译),包括对复数形式的支持,使用 GNU catalog。
  • 字符集转换。
  • 对 Latin1 等 8 位字符集的透明支持。
  • charwchar_t 的支持。
  • 对 C++11 char16_tchar32_t 字符串和流的实验性支持。

Boost.Locale 补充了标准库的 API,使得编写跨平台和“跨文化”软件变得容易。

为了实现这一目标,Boost.Locale 使用了最先进的 Unicode 和本地化库:ICU - International Components for Unicode。

Boost.Locale 在 C++ locales 框架、iostreams 和强大的 ICU 库之间建立了自然的连接。

Boost.Locale 也提供非 ICU 的本地化支持。它基于操作系统原生 API 或标准 C++ 库支持。通过牺牲一些不太重要的功能,Boost.Locale 变得功能较少,但更轻量且易于部署。

字符集转换也通过轻量级的 IConv 库提供。当该库不可用时,将使用 ICU 或操作系统原生 API。

警告
Apple macOS 上的系统 IConv 库可能不符合 GNU 标准,在编码转换时可能导致意外结果。强烈建议使用 HomeBrew 提供的 GNU IConv。

教程