Départ | ||
Francisation Au départ on a un petit programme en anglais. Quand on clique sur le bouton, le programme affiche une fenêtre d'alerte avec le nom que l'on a saisi. Ce que l'on veut c'est franciser ce programme. | ||
Interne | ||
Quand on clique sur le bouton, la méthode Bouton est appelé. Celle-ci utilise la fonction NXRunAlertPanel pour afficher une petite fenêtre avec un message construit dynamiquement. Cette méthode pourrait être du type : Mais en fait le programmeur a suivi les règles de codage de NeXT et il a ainsi utilisé le codage suivant : La fonction NXLocalizedString sert à traduire facilement une chaîne de caractères. Pour cela le système utilise un fichier de traduction lu au moment du démarrage de l'application. Ce fichier a un format du type : La fonction NXLocalizedString recherche le nom "Hello" dans le fichier et récupère la chaîne "Hello %s". La chaîne "%s is the name" est juste une aide pour le traducteur. Ce fichier de traduction est normalement généré de façon automatique par la commande genstrings par analyse des sources Objective-C. Dans le wrapper de l'application se trouve un répertoire English.lproj qui contient tous les fichiers qui doivent être modifier lors d'une traductions : Le programme étant très simple, nous n'y trouvons que deux fichiers : un nib qui contient la description de l'interface graphique, et un strings qui contient les chaînes à traduire. | ||
Traduction | ||
Pour effectuer la traduction, il suffit de dupliquer le répertoire English.lproj en le renommant French.lproj. Il ne reste plus qu'à modifier le fichier strings pour obtenir : Pour le fichier nib il suffit de lancer Interface Builder et de traduire toutes les chaînes. | ||
Arrivée | ||
On a ainsi un programme avec deux langues, et si le français est la langue par défaut (on modifie cela par le programme Preference), en relançant le programme on obtient : On a ainsi réalisé une traduction sans avoir les sources du programme. | ||