ICU - очень хорошая библиотека, но у нее есть недостатки:
- API ужасен с точки зрения современного дизайна C ++ и плохо работает со стандартной библиотекой C ++
- Этоориентирован на UTF-16
- Это инструменты перевода сообщений далеки от совершенства, поэтому Boost.Locale использует модель Gettext
См .: http://www.boost.org/doc/libs/1_49_0/libs/locale/doc/html/rationale.html#why_icu
Boost.Locale делает локализацию способом C ++, а также позволяет использовать другие бэкэнды помимо ICU (конечно, ICU лучше), так что во многих случаях Boost.Locale предоставляет вам лучшую альтернативу локализации, поскольку она проще, разработана для современного C ++ и, как правило, прощеиспользовать.
Конечно, если вам нужны очень сложные алгоритмы, которые не поддерживаются Boost.Locale или все, что делает ваше приложение, это обработка Unicode, тогда ICU может быть лучше, кроме того, что Boost.Locale лучше длялокализация приложений на C ++.