Международные компоненты для Unicode - International Components for Unicode
Разработчики) | Консорциум Unicode |
---|---|
Первый выпуск | 1999 г. |
Стабильный выпуск | 69.1 / 18 марта 2020 г .
|
Репозиторий | |
Написано в | C / C ++ (C ++ 11) и Java |
Операционная система | Кроссплатформенность |
Тип | библиотеки для Unicode и интернационализации |
Лицензия | Лицензия Unicode |
Веб-сайт | www |
Международные компоненты для 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.text
java.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 .
Смотрите также
- Продвинутая типографика Apple
- Службы Apple Type для обработки изображений Unicode
- GNU GetText
- Графит (SIL)
- NetRexx (лицензия ICU)
- OpenType
- Панго
- Uconv
- Не описывать