|
Bien que Timer soit une application en Visual C++ plutôt simple
qui compte des minutes et donne une alerte sonore, ce programme a constitué
un banc d'essai significatif en ce qui concerne des caractéristiques
particulières de l'interface utilisateur, de la localisation
et de la conception du logiciel, caractéristiques qui sont significatives
pour l'internationalisation de programmes plus importants. Il arrive
souvent que l'exigence de l'internationalisation empêche d'utiliser
de fonctions disponibles toutes prêtes dans l'environnement de
développement, ce qui rend nécessaire la conception de
fonctions spécifiques : c'est le cas de Timer. On peut télécharger
les versions de Crypt en français, anglais et italien. On peut
substituer le fichier de l'alerte sonore avec un autre .wav quelconque.
|
 |
|
On a écrit du code pour réaliser une interface utilisateur
non standard caractérisée par des boutons de type owner-drawn
et une barre de progression particulière, sans utiliser les composants
standard de Windows disponibles dans l'environnement de développement
Visual C++. L'interface utilisateur inclut l'aide en ligne et l'aide
contextuelle.
|
 |
|
Localisation
Toute les chaînes de texte de la fenêtre de dialogue, y
compris les textes statiques, ne sont pas des constantes dans la description
d'une ressource, mais sont contenues dans une table de chaînes
du fichier .rc. On peut localiser en traduisant la table de chaînes,
sans chercher les chaînes dans les instructions de définition
des ressources. Toutes les chaînes sont UNICODE et on a utilisé
les fonctions de texte API bimodal. Le code des messages d'erreur de
la saisie est réalisé avec des fonctions DDV_ e DDX_ spécifiques,
de telle façon que les boîtes de dialogue d'erreur soient
localisées et maintiennent les couleurs et l'aspect graphique
de l'application. Les textes des images bimap sont les seuls à
n'être pas inclus dans la table de chaînes.
Toutes les chaînes de l'aide contextuelle sont affichées
par l'application avec des appels à des API WinHelp. Les fonctions
des boutons Quitter et ? ont été codées
de façon que les correspondantes chaînes de l'aide contextuelle
ne soient pas fournies par le système d'exploitation. Autrement,
par exemple, si une version de Timer en français est exécutée
sous un système d'exploitation localisé en anglais, l'aide
contextuelle apparaît en anglais.
|
|
Conception du logiciel ; liaison
des liens des .exe et.dll statique/dynamique
Timer est développé avec liaison des liens statique
et le logiciel est internationalisé au niveau des ressources :
les versions localisées contiennent toutes les ressources spécifiques
dont elles ont besoin. On a préféré la liaison
statique pour assurer la portabilité sur des plates-formes Windows
différentes et pour simplifier l'installation.
Une version avec liaison dynamique a aussi été
développée : elle est constituée d'un exécutable
et d'une seule librairie dynamique (dll) qui contient toutes
les ressources du programme, aussi bien en anglais qu'en français.
Quand on utilise cette version, l'interface utilisateur apparaît
en anglais ou en français, selon la langue sélectionnée
dans Panneau de configuration Paramètres régionaux.
Une autre version avec liaison dynamique utilise un seul fichier
exécutable pour les différentes langues avec une libraire
dynamique de taille plus petite qui contient seulement les ressources
d'une langue. Par conséquent l'interface utilisateur est
toujours dans cette langue. Cette conception prévoit la localisation
du programme simplement par l'édition dans la langue du cas des
ressources de la librairie dynamique, sans modifier l'exécutable,
qui demeure toujours le même, quelconque soit la langue du logiciel.
|