International Components for Unicode

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir ICU.

L'International Components for Unicode (ICU) est un projet open source qui fourni des bibliothèques pour les langages informatique C/C++ et Java pour supporter Unicode, l'internationalisation et la mondialisation des logiciels. ICU est largement portable vers beaucoup de systèmes d'exploitations et d'environnements. Il donne aux applications les mêmes comportements et résultats sur toutes les plateformes et entre les logiciels C/C++ et Java. Le projet ICU est un projet dont les code sources sont disponibles qui est sponsorisé, supporté et utilisé par IBM et beaucoup d'autres entreprises.

Certains des services fournis sont les suivants :

  • Texte : gestion de texte Unicode, propriété des caractères et les conversions de jeu de caractères
  • Analyse : Unicode expressions rationnelles; jeu Unicode complet; limites de caractère de mot et de lignes
  • Comparaison : Algorithmes de collation et de recherche sensibles à la casse
  • Transformations : normalization, majuscules/minuscules, script transliterations
  • Régionalisation : Comprehensive locale data and resource bundle architecture
  • Layout de texte complexe : arabe, hébreu, hindou/indien et thaï
  • Temps: Multi-calendriers et fuseaux horaires
  • Formatage et Parsing: dates, heures, nombres, monnaies, messages et basé sur des règles.

[modifier] Origine et développement

Le travail initial d' ICU vient du framework C++ écrit par une entreprise appelée Taligent, qui fut rachetée par IBM. Certaines des fonctionnalités liées à la gestion de texte , au formatage des dates, etc. ont été réécrites en Java et devinrent le JDK 1.1 internationalization APIs, qui a été contribué à Sun Microsystems par l'équipe ICU. Une grande portion de cela existe toujours dans les paquets java.text et java.util . ICU a été livré en tant que projet open source en 1999 sous le nom "IBM Classes for Unicode". Il fut ensuite renommé "International Components For Unicode".

Originellement, ICU a été intégralement écrit en Java. Ces fonctionnalités furent ensuite réécrites et étendues en C et en C++ pour atteindre les internationalization short comings qui sont inhérents à ces langages. Usuellement un système d'exploitation fournit ces fonctionnalités, mais le support pour une telle internationalization APIs et fonctionnalité est d'habitude inconsistent ou manquant suivant chaque système d'exploitation.

La version Java existe aujourd'hui sous le nom ICU4J, et la version C/C++ existe aujourd'hui sous le nom ICU4C. Le projet et les deux sous-projets continuent à être développé pour les support plus avancés de Unicode/i18n .

[modifier] exemple

Exemple de code utilisant la bibliothèque ICU, pour le formatage de nombre décimaux.

  #include <unicode/choicfmt.h>
  #include <unicode/unistr.h>
  #include <unicode/ustream.h>
  
  int main(int argc, char *argv[]) {
      double limits[] = {1,2,3,4,5,6,7};
      UnicodeString monthNames[] = {
          "Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
      ChoiceFormat fmt(limits, monthNames, 7);
      UnicodeString str;
      for (double x = 1.0; x <= 8.0; x += 1.0) {
          fmt.format(x, str);
          cout << x << " -> "
               << str << endl;
      }
      cout << endl;
      return 0;
  }

[modifier] Liens externes

Autres langues