![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Boost.Locale: Locale GenerationBoost , ,
Locale Generation Каждая локализация определяется конкретным идентификатором локализации, который содержит обязательную часть (Язык) и несколько дополнительных частей (Страна, Вариант, ключевые слова и кодирование символов Обратите внимание, что каждая локализация должна включать кодирование, чтобы правильно обрабатывать строки на основе BasicsГенератор класса предоставляет инструменты для генерации необходимых нам локаций. Самый простой способ использования #include <boost/locale.hpp>
using namespace boost::locale;
int main()
{
generator gen;
// Create locale generator
std::locale::global(gen(""));
// "" - the system default locale, set
// it globally
}
Конечно, мы также можем указать местоположение вручную std::locale loc = gen("en_US.UTF-8");
// Use English, United States locale
Совет: Предпочтительнее использовать кодировку UTF-8 Unicode по сравнению с 8-битными кодировками, такими как ISO-8859-X. По умолчанию генерируемые локализации включают все поддерживаемые категории и типы символов. Однако, если в вашем приложении используются только 8-битные кодировки, только кодировки с широкими символами или только конкретные грани, вы можете ограничить генерацию граней конкретными категориями и типами символов, назвав категории и символы функции-члены класса генератор . Например: generator gen;
gen.characters(wchar_t_facet);
gen.categories(collation_facet | formatting_facet);
std::locale::global(gen("de_DE.UTF-8"));
VariantВариантная часть локализации (часть, которая приходит после символа @) зависит от локализации back-end. Non ICU BackendsPOSIX и std бэкэнды используют свои собственные соглашения об именах ОС и зависят от текущей конфигурации ОС. Например, типичный дистрибутив Linux предоставляет winapi back-end не поддерживает никаких вариантов. ICU BackendICU предоставляет широкий спектр вариантов локальных вариантов. Подробные инструкции читать This Ручные страницы ICU. Однако в целом он представлен как набор пар ключ = значение, разделенных с полуколоном ";" Например: «@collation=phonebook;calendar=islamic-civil». В настоящее время ICU поддерживает следующие ключи:
Пожалуйста, обратитесь к документации CLDR и ICU для точного списка ключей и значений: Статья Boost.Locale: Locale Generation раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |