icu

Комплексная библиотека для поддержки интернационализации (i18n) и локализации (l10n) в приложениях. Она предоставляет полный набор инструментов для работы с Unicode, преобразования текста, форматирования данных с учетом языковых стандартов и других операций, необходимых для создания приложений, поддерживающих множество языков и культур. Библиотека используется в операционных системах, браузерах и корпоративных приложениях для обеспечения кросс-платформенной поддержки интернационализации.

Особенности

  • полная поддержка стандарта Unicode и всех связанных с ним технологий;
  • форматирование чисел, дат, времени, валют с учетом локали;
  • преобразование текста (транслитерация, нормализация, регистр);
  • анализ и обработка текста (разбивка на слова, предложения, символы);
  • поддержка двунаправленного текста (BIDI) для языков с написанием справа налево.

Основные компоненты

ICU состоит из нескольких модулей, каждый из которых отвечает за определенный аспект интернационализации и работы с Unicode (подробнее с документацией можно ознакомиться здесь).

Обработка Unicode и текста

Библиотека предоставляет фундаментальные функции для работы с текстом в формате Unicode, включая нормализацию, преобразование регистра, поддержку различных систем письма и обработку специальных символов.

Ключевые функции обработки текста:

  • u_strToUpper(), u_strToLower(), u_strToTitle() — преобразование регистра с учетом локали;
  • unorm_normalize() — нормализация Unicode (NFC, NFD, NFKC, NFKD);
  • u_strHasMoreChar32() и u_strNext32() — итерация по символам Unicode (code points);
  • u_getIntPropertyValue() — получение свойств символов Unicode;
  • ubidi_open() и ubidi_setPara() — обработка двунаправленного текста (BIDI).

Форматирование данных с учетом локали

ICU предоставляет мощные средства для форматирования чисел, дат, времени, валют и других типов данных в соответствии с правилами конкретного языка и региона. Эти функции учитывают все особенности локали, включая разделители, валютные символы и порядок элементов.

Функции форматирования:

  • icu::NumberFormat — форматирование чисел (целых, дробных, процентов, валют);
  • icu::DateFormat — форматирование дат и времени (различные стили, календарные системы);
  • icu::MessageFormat — форматирование сообщений с плюрализацией и выбором по полу;
  • icu::PluralFormat и icu::PluralRules — работа с формами множественного числа;
  • icu::MeasureFormat — форматирование единиц измерения.

Преобразования кодировок и текста

Библиотека включает систему преобразования текста между различными кодировками, а также инструменты для транслитерации и других преобразований текста. Поддерживаются сотни кодировок, включая все современные стандарты.

Функции преобразования:

  • icu::Converter — преобразование между различными кодировками (ICU4C: ucnv_open(), ucnv_convert());
  • icu::Transliterator — транслитерация текста между системами письма;
  • icu::IDNA — обработка доменных имен в международных форматах (IDNA 2003/2008);
  • icu::StringPrep — подготовка строк по стандарту SASLprep, Nameprep и другим.

Анализ текста и границ

ICU предоставляет средства для лингвистического анализа текста, включая определение границ символов, слов, предложений и строк. Это особенно важно для правильного отображения текста, переноса слов и текстового поиска.

Функции анализа:

  • icu::BreakIterator — определение границ символов, слов, предложений и строк;
  • icu::CharsetDetector — автоматическое определение кодировки текста;
  • icu::Collator — сравнение и сортировка строк с учетом локали;
  • icu::StringSearch — поиск подстрок с учетом особенностей языка.

Календари и временные зоны

Библиотека поддерживает различные календарные системы (григорианский, исламский, еврейский, китайский и др.) и предоставляет инструменты для работы с временными зонами по всему миру.

Функции работы с календарями и временем:

  • icu::Calendar — абстракция календаря с поддержкой множества календарных систем;
  • icu::TimeZone — работа с временными зонами (конвертация, получение смещений);
  • icu::SimpleDateFormat — форматирование дат и времени для конкретного календаря;
  • Расчеты с датами (добавление, вычитание, получение полей).

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "icu/74.1@aurora",
    )    

Процесс локальной сборки описан в документации.

icu

ICU is a mature, widely used set of C/C++ and Java libraries
Лицензия
ICU
Версия
Домашняя страница
Скачать
armv7
15 Mb
MD5: 4e348328b4930fa01a4c66d30c7506cc
Updated: 03.09.2025, 18:24:37
x86_64
15.48 Mb
MD5: 554900e7f1db351e1e8877b9df05f034
Updated: 03.09.2025, 18:24:50
armv8
15.39 Mb
MD5: 5e6691ba98e53e40910fa3f4286550d6
Updated: 03.09.2025, 18:24:03
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.