International Components for Unicode
(ICU, internacionalizační komponenty pro Unicode) je projekt vyspělé multiplatformní knihovny s otevřeným zdrojovým kódem pro jazyky C/C++ a Java pro podporu Unicode, internacionalizaci a globalizaci softwaru. ICU podporuje množství operačních systémů a prostředí. ICU poskytuje aplikacím v jazycích C, C++ a Java stejné výsledky na všech platformách. Projekt ICU je sponzorovaný, podporovaný a používaný firmou IBM a mnoha jinými společnostmi.

ICU poskytuje následující služby: zpracovávání textu v Unicode, úplné vlastnosti znaků a konverze znakových sad; regulární výrazy v Unicode; kompletní sady Unicode; hranice znaků, slov a řádků; jazykově specifické abecední řazení a vyhledávání; normalizace, převody mezi malými a velkými písmeny a transliterace písem; vyčerpávající locale data a architektura balíků prostředků používajících Common Locale Data Repository (CLDR); complex text layout pro arabštinu, hebrejštinu a indická a thajská písma; práce s kalendáři a časovými zónami; na pravidlech založené formátování a analýza dat, časů, čísel, peněžních údajů a zpráv.

ICU poskytuje širší internacionalizační prostředky než standardní knihovny pro C a C++.

Počátek a vývoj 

ICU je odvozeno z frameworků pro C++ vytvořených firmou Taligent v polovině 90. let 20. století. Poté, co se na začátku roku 1996 stal Taligent součástí IBM, a Sun Microsystems „potřeboval podporu internacionalizace a lokalizace pro svůj nový jazyk Java, využily obě firmy faktu, že Taligent disponuje vynikající internacionalizační technologií a talentovanými inženýry a sídlí asi 100 metrů od oddělení JavaSoft firmy Sun v Cupertinu v Kalifornii. Skupina Text a internacionalizace z vývojářů firmy Taligent tak vytvořila internacionalizační třídy pro Java Development Kit.“ Některé kódy pro zpracování textů, formátování dat a další vlastnosti knihovny ICU byly přepsány v jazyce Java a daly základ internacionalizačnímu API pro JDK 1.1. Značná část tohoto kódu stále existuje v balíčcích java.text a java.util. Další internacionalizační vlastnosti byly přidávány v každém dalším vydání jazyka Java.

Programátoři firmy IBM přepsali internacionalizační třídy pro jazyk Java do jazyka C++ a některé třídy převedli na funkce v jazyce C. Takto vzniklá verze knihovny ICU pro C/C++ je známa jako ICU4C („ICU pro jazyk C“), původní verze pro Javu jako ICU4J („ICU pro Javu“). ICU4J doplňuje vlastnosti chybějící ve standardních knihovnách jazyka Java. Verze ICU pro jazyk C a pro Javu si jsou velmi podobné, ale ne identické; ICU4C například obsahuje API pro regulární výrazy, které v ICU4J není. Oba frameworky byly postupně vylepšovány, aby podporovaly nové prostředky a nové vlastnosti kódování Unicode a Common Locale Data Repository (CLDR).

ICU byl vydán jako projekt s otevřenými zdrojovými texty v roce 1999 pod jménem . Později byl přejmenován na .

Odkazy

Reference

Související články 

 Uconv
 UCM
 Uniscribe
 OpenType
 Apple Type Services for Unicode Imaging
 Apple Advanced Typography
 Pango
 Graphite (SIL)
 GNU gettext
 NetRexx (ICU license)

Externí odkazy 
 Web ICU

Unicode
Programové knihovny