Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation TSD Script

Chapitre 10 : Programmation en vue d'une utilisation internationale

Retour à la table des matières


Introduction

A mesure que de nombreux éditeurs de logiciels étendent leur marché, il devient inévitable que des logiciels développés dans un pays soient commercialisés ou utilisés dans d'autres. Les développeurs doivent donc connaître les contraintes spécifiques associées à la conception de produits destinés à être commercialisés à l'étranger.

Outre les différences culturelles dont vous devrez peut-être tenir compte lors de l'écriture du code, vous devez être conscient des effets que la localisation peut avoir sur les applications. On appelle "localisation" la modification d'une application logicielle afin de l'adapter à un groupe culturel spécifique.

Comment faire si vous ne connaissez pas les spécificités culturelles d'un pays étranger ? Comment créer des logiciels aisément localisables ?

Ressources d'internationalisation

La solution la plus simple pour faciliter la localisation consiste à placer les ressources concernées dans des fichiers .df. Ainsi, les images bitmap, les menus, les chaînes de caractères, les icônes et les boîtes de dialogue sont compilés et stockés séparément du reste du code. Lorsque l'application correspondante est commercialisée hors du pays d'origine, les outils et les instructions nécessaires à la modification de ces ressources sont fournis aux distributeurs étrangers.

Une fois les ressources localisées, les fichiers sont reconstruits et copiés sur le support d'installation.

Ainsi, aucune intervention sur le code n'est nécessaire et le support d'installation ne nécessite aucune autre modification. Suite à cette opération, le programme d'installation est également localisé.

Support des API des systèmes d'exploitation

Chaque fois que possible, les applications Tivoli évitent d'utiliser leur propre code pour gérer l'internationalisation. Ainsi, tout processus de copie à caractères larges intégré de façon native à un système d'exploitation peut convertir du code à deux octets en code à un octet.

Les données d'internationalisation et les appels d'API fournis par le système d'exploitation hôte sont toujours utilisés à la place des fonctions livrées avec les applications Tivoli. Cela permet de réduire la taille de ces applications et facilite la prise en charge de nouveaux environnements locaux.

Support d'Unicode

Les chaînes utilisées par les applications Tivoli sont stockées sous forme de chaînes Unicode. Unicode (ou ISO 10646) est un système qui utilise des caractères uniformes codés sur 16 bits, qui prennent simultanément en charge les alphabets de tous les environnements locaux internationaux.

De nombreuses autres applications internationales utilisent la norme ISO 8859/x pour le codage des chaînes de caractères internationales (codées sur plusieurs octets). Cette norme prévoit l'utilisation de caractères codés sur 8 bits pour les alphabets qui comportent peu de lettres, et sur 16 bits pour ceux qui en comportent beaucoup. Les applications utilisant des pages de codes à plusieurs octets peuvent nécessiter un peu moins de mémoire, mais leurs performances sont moindres et inacceptables.

Une chaîne ISO peut contenir une combinaison de caractères codés sur 8 bits et de caractères codés sur 16 bits. Des opérations simples, telles que la sauvegarde d'un caractère ou le comptage des caractères d'une chaîne, s'en trouvent compliquées car il n'existe aucune manière de déterminer de façon fiable si un octet représente un caractère entier ou une partie d'un caractère, sans examiner un certain nombre des octets qui le précèdent.

Considérations culturelles

Le support d'internationalisation des scripts TSD facilite l'écriture de code satisfaisant aux exigences des environnements locaux. Toutefois, il est important de garder à l'esprit qu'il existe des particularités culturelles et qu'elles peuvent affecter la perception d'une application écrite dans un pays et traduite pour un autre environnement local.

Vous devez être conscient, par exemple, que la couleur violet peut être associée à différentes choses selon les cultures :

Catégories culturelles

Vous devez faire particulièrement attention aux éléments suivants lors de l'écriture d'applications destinées au marché international :

Pages de codes

Les systèmes d'exploitation s'adaptent à l'alphabet d'une langue en utilisant une page de codes différente. Une page de codes est essentiellement un tableau d'associations entre des numéros et des caractères, qui permet l'affichage correct des chaînes de caractères.

Pour afficher une chaîne de caractères, l'ordinateur recherche les numéros qu'elle contient dans la page de codes appropriée et affiche les caractères correspondants. Les applications doivent donc être écrites de telle sorte que les chaînes appropriées soient transmises au système d'exploitation via la page de codes.

Un système d'exploitation peut prendre en charge plusieurs pages de codes contenant des caractères communs. Notez qu'un caractère commun à plusieurs pages ne doit pas nécessairement être associé au même numéro dans chacune de ces pages.

Par exemple, la lettre e porte le numéro 233 dans la page de codes de l'alphabet Latin utilisée par Windows 95, alors qu'elle est associée au numéro 130 dans la page de codes de l'alphabet Latin utilisée par MS-DOS.

Le concepteur d'interfaces de la boîte à outils du développeur (Developer's Toolkit Interface Designer) permet de charger les chaînes écrites pour une page de codes et de les traduire pour une autre page de codes. Le système d'exploitation natif détermine quelle page de codes est disponible aux applications.

Dispositions de clavier

Des pages de codes différentes impliquent des dispositions de clavier différentes. Une application internationale doit donc permettre l'adaptation de ses raccourcis-clavier par défaut à tous les types de claviers.

Tri et comparaison des chaînes

Des environnements locaux différents peuvent impliquer des ordres de tri différents. Une application internationale doit donc être écrite de telle sorte que l'ordre alphabétique de la page de codes locale permette d'obtenir des listes triées dans l'ordre désiré.

La comparaison de chaînes sans tenir compte de la distinction majuscules/minuscules n'a pas la même signification dans tous les environnements locaux. Ainsi, dans les langues idéographiques telles que le japonais et le chinois, le terme "distinction majuscules/minuscules" est dépourvu de sens, alors que dans d'autres alphabets, les lettres peuvent avoir davantage de formes que la majuscule et la minuscule.

En cas d'utilisation d'un fichier .df, la boîte à outils du développeur (Developer's Toolkit) effectue des appels natifs au système d'exploitation pour le tri et la comparaison des chaînes.

Concaténation de chaînes

Combiner des sous-chaînes pour créer des phrases complètes est une erreur que commettent couramment les développeurs dans les versions internationales initiales d'une application. Les phrases étant souvent structurées différemment dans les différents environnements locaux, l'ordre des verbes, des noms, des adjectifs et des adverbes peut varier. De nombreuses langues associent un genre aux différents éléments du langage, ce qui entraîne l'utilisation de mots différents selon, par exemple, que le nom qualifié est masculin, féminin ou neutre.

Remarque : Evitez autant que possible de combiner des sous-chaînes.

Editeurs de saisie

Les langues idéographiques (telles que le japonais et le chinois) comportent trop de caractères pour que ceux-ci puissent tous être représentés sur un clavier. Aussi la plupart des systèmes d'exploitation permettent-ils aux utilisateurs d'entrer la prononciation phonétique des caractères à l'aide d'un alphabet spécifique. Ils leur proposent ensuite l'ensemble des idéogrammes susceptibles de correspondre, parmi lesquels les utilisateurs peuvent alors faire leur choix. Le caractère sélectionné est ensuite placé dans le document ou dans la zone d'entrée. Plusieurs alphabets phonétiques peuvent être disponibles pour chaque environnement local.

La boîte à outils du développeur (Developer's Toolkit) supporte l'éditeur de saisie (IME, Input Method Editor) fourni avec le système d'exploitation.

Formats numériques

Les différents environnements locaux utilisent différents formats pour afficher les informations numériques, les dates, les heures et les montants monétaires. Par exemple :

Tailles de papier (feuilles et enveloppes)

Le format de papier 8,5" x 11", par exemple, n'étant pas utilisé dans tous les environnements locaux, une application internationale doit permettre l'utilisation de différentes tailles pour l'impression de pages et d'enveloppes.
La boîte à outils du développeur (Developer's Toolkit) n'offre pas de mécanisme permettant de convertir les tailles de papiers.

Unités de mesure

Hormis les Etats-Unis, la plupart des environnements locaux imposent aux applications d'utiliser le système métrique et non les unités de mesure anglo-saxonnes.
La boîte à outils du développeur (Developer's Toolkit) n'offre pas de mécanisme permettant de convertir les unités de mesure anglo-saxonnes en unités du système métrique.

Augmentation de l'espace occupé par les textes

Une fois le texte traduit dans une langue étrangère, sa nouvelle taille peut être nettement supérieure ou inférieure à sa taille originale. (Ce phénomène se mesure à l'aide d'un coefficient de foisonnement.)

Par exemple, la traduction en espagnol ou en allemand d'un paragraphe en anglais augmente la taille globale du texte original d'environ 30 %.

Le tableau suivant illustre ce concept :

Nombre de caractères Coefficient de foisonnement
1 à 10 100 à 200 %
11 à 20 80 à 100 %
21 à 30 60 à 80 %
31 à 50 40 à 60 %
51 à 70 31 à 40 %
Plus de 70 30 %

Symboles (icônes, images bitmap) et couleurs

Le symboles graphiques figurant dans les icônes ou autres images bitmap doivent avoir une signification universelle ou pouvoir être modifiés facilement. Autant que possible, il faut éviter d'incorporer du texte dans les images bitmap des applications internationales. Sinon, ces images devront être traduites pour chaque environnement local.

Il est également possible que des symboles qui peuvent sembler innocents et universels puissent être perçus comme tendancieux ou insultants dans certains environnements locaux.

Les mêmes précautions doivent être prises en ce qui concerne l'utilisation de la couleur dans les boîtes de dialogue et les fenêtres. Dans certains environnements locaux, les couleurs ont des significations ou des connotations très différentes de celles qu'elles ont en Occident.

A titre d'exemple, le tableau suivant illustre les différences d'interprétation des couleurs entre la France et la Chine :

Couleur Nation et interprétation
Rouge Chine : prospérité, renaissance
France : puissance, arrêt, danger
Blanc Chine : mort, deuil
France : pureté, innocence
Jaune China : joie, richesse, rang, honneur
France : prudence, risque de danger physique

Support d'environnement local

Les applications logicielles utilisent le concept d'environnement local pour identifier un groupe culturel pour lequel une application peut être localisée.

La langue, le pays et la nationalité (culture) sont des entités indépendantes : à chaque combinaison de ces entités doit être associé un environnement local différent. Par exemple, les suisses sont susceptibles de parler les quatre langues suivantes :

Chacune des combinaisons possibles nécessite un environnement local distinct.

Environnement locaux étrangers supportés

Les environnements locaux suivants sont entièrement pris en charge dans TSD Script pour Windows, UNIX et OS/2 :

Améliorations facilitant l'utilisation internationale

Impression des caractères étendus

Les jeux de caractères utilisés, de même que d'autres caractéristiques des imprimantes, peuvent désormais être contrôlés par l'intermédiaire d'une entrée dans le fichier softart.ini. L'entrée "ControlString" de la section Printer du fichier softart.ini contient une séquence de caractères qui est envoyée à l'imprimante chaque fois que le fichier PRN ou LPT1 est ouvert en écriture.

Il est ainsi possible d'imprimer des chaînes qui contiennent des caractères "étendus", c'est-à-dire des caractères dont la valeur ASCII est supérieure à 128. Ces derniers sont utilisés par les versions internationales des systèmes d'exploitation pour afficher des caractères qui ne sont pas disponibles sur un clavier français standard (tels que le caractère allemand correspondant au son "ss").

Par exemple, si vous utilisez une imprimante laser Hewlett-Packard, les chaînes de contrôle "\x1B(9U", pour Microsoft Windows, et "\x1B(12U", pour IBM OS/2, permettent de sélectionner le jeu de caractères approprié pour l'impression des caractères étendus. Si vous utilisez une imprimante d'une autre marque, reportez-vous à sa documentation pour connaître les séquences de contrôle appropriées.

Utilisation de caractères internationaux dans les fichiers de configuration

Evitez d'inclure des caractères "étendus" dans les fichiers de configuration utilisés par la boîte à outils du développeur (Developer's Toolkit) (sai_sql.cfg, softart.ini, etc.). c'est-à-dire des caractères dont la valeur ASCII est supérieure à 128.

Prise en charge de l'an 2000

Les valeurs ci-après sont utilisées pour permettre la prise en charge de l'"an 2000" dans les environnements locaux dont les formats de dates natifs sont codés sur deux chiffres. Si l'année est comprise entre :

Pour éviter toute erreur concernant le siècle, utilisez l'icône Paramètres régionaux du Panneau de configuration de Windows pour sélectionner un format de date codé sur quatre chiffres.

Remarque : Sous UNIX, utilisez la valeur par défaut de l'environnement local.


Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation TSD Script

Retour à la table des matières

Copyright