Международные компоненты для Unicode - International Components for Unicode

Международные компоненты для Unicode
Разработчики) Консорциум Unicode
Первый выпуск 1999 г.
Стабильный выпуск
69.1 / 18 марта 2020 г . ; 17 месяцев назад ( 2020-03-18 )
Репозиторий Отредактируйте это в Викиданных
Написано в C / C ++ (C ++ 11) и Java
Операционная система Кроссплатформенность
Тип библиотеки для Unicode и интернационализации
Лицензия Лицензия Unicode
Веб-сайт www .icu-project .org

Международные компоненты для Unicode ( ICU ) - это открытый проект зрелых библиотек C / C ++ и Java для поддержки Unicode , интернационализации программного обеспечения и глобализации программного обеспечения. ICU широко переносится во многие операционные системы и среды. Он дает приложениям одинаковые результаты на всех платформах и между программным обеспечением C, C ++ и Java. Проект ICU - это технический комитет Консорциума Unicode, спонсируемый, поддерживаемый и используемый IBM и многими другими компаниями.

ICU предоставляет следующие услуги: обработка текста Unicode , полные свойства символов и преобразование наборов символов ; Регулярные выражения Unicode ; полные наборы Unicode; границы символов, слов и строк; сортировка и поиск с учетом языка ; нормализация , преобразование в верхний и нижний регистр и транслитерация скрипта ; комплексная архитектура пакетов локальных данных и ресурсов через Common Locale Data Repository (CLDR); мульти- календарь и часовые пояса ; и основанное на правилах форматирование и анализ дат, времени, чисел, валют и сообщений. ICU исторически предоставляла комплексную услугу верстки текста для арабского, иврита, индийского и тайского языков, но в версии 54 она устарела и была полностью удалена в версии 58 в пользу HarfBuzz .

ICU предоставляет более широкие возможности интернационализации, чем стандартные библиотеки для C и C ++. ICU 67 поддерживает Unicode 13.0 и обрабатывает удаление Великобритании из регионов ЕС . ICU 64 поддерживает Unicode 12.0 , в то время как ICU 64.2 добавил поддержку Unicode 12.1, то есть единственного нового символа для нынешней японской эры Reiwa (но его поддержка также была перенесена в более старые версии ICU вплоть до ICU 4.8.2). ICU 58 (с поддержкой Unicode 9.0) - последняя версия, поддерживающая старые платформы, такие как Windows XP , Windows Vista . Поддержка AIX , Solaris и z / OS также может быть ограничена в более поздних версиях (т. Е. Сборка зависит от поддержки компилятора). ICU был включен в качестве стандартного компонента в Microsoft Windows с Windows 10 версии 1703.

ICU исторически использовала UTF-16 и до сих пор использует только для Java; в то время как для C / C ++ поддерживается UTF-8 , включая правильную обработку «недопустимого UTF-8».

ICU 68 не может быть собран с компилятором C ++ 20, но должен быть возможен с 69.1.

Происхождение и развитие

После того, как Taligent стал частью IBM в начале 1996 года, Sun Microsystems решила, что новый язык Java должен лучше поддерживать интернационализацию. Поскольку Taligent имела опыт работы с такими технологиями и была близка географически, их текстовой и международной группе было предложено внести международные классы в Java Development Kit как часть API-интерфейсов интернационализации JDK 1.1 . Большая часть этого кода все еще существует в и пакетах. Дополнительные функции интернационализации добавлялись с каждым последующим выпуском Java. java.textjava.util

Затем классы интернационализации Java были перенесены на C ++ и C как часть библиотеки, известной как ICU4C («ICU для C»). Проект ICU также предоставляет ICU4J («ICU для Java»), который добавляет функции, отсутствующие в стандартных библиотеках Java. ICU4C и ICU4J очень похожи, но не идентичны; например, ICU4C включает API регулярных выражений, а ICU4J - нет. Обе платформы со временем были усовершенствованы для поддержки новых возможностей и новых функций Unicode и Common Locale Data Repository (CLDR).

ICU был выпущен как проект с открытым исходным кодом в 1999 году под названием IBM Classes for Unicode. Позже он был переименован в Международные компоненты для Unicode. В мае 2016 года проект ICU присоединился к консорциуму Unicode в качестве технического комитета ICU-TC , и теперь исходные тексты библиотеки распространяются по лицензии Unicode.

MessageFormat

Частью ICU является класс MessageFormat , система форматирования, которая позволяет любому количеству аргументов управлять формой множественного числа ( plural, selectordinal) или более общим выбором стиля switch-case ( select) для таких вещей, как грамматический род . Эти утверждения могут быть вложенными. ICU MessageFormat был создан путем добавления системы множественного числа и выбора к одноименной системе в Java SE .

Смотрите также

использованная литература

внешние ссылки