Bien que l'internationalisation d'une application (i18n pour faire plus court) implique plus que simplement traduire ses messages textes en un autre format de message,- les dates et heures, ainsi que les formats courants ton également besoin d'être changés, certaines langues s'écrivent de droite à gauche, l'encodage des caractères peut être différent et d'autres choses peuvent avoir besoin d'être modifiées - il s'agit quand même d'un premier pas nécessaire. wxWidgets fournit des facilités pour la traduction des messages avec sa classe wxLocale et est elle-même complètmeent traduite dans différentes langues. Merci de consulter la page d'accueil wxWidgets pour la dernière mise à jour des traductions - et si vous faites une traduction dans une langue qui n'est pas encore publiée, elle sera acceptée avec reconnaissance pour être inclue dans les versions fuures de la bibliothèque!
L'approche wxWidgets à i18n suit le package GNu gettext. wxWidgets utilise les catalogues de messages compatibles binairement avec les catalogues gettext et cela permet d'utiliser tous les programmes de ce package. Notez qu'aucune bibliothèque additionnelle n'est nécessaire au moment de l'exécution, vous avez seulement les catalogues de messages à distribuer et rien d'autre.
Durant le développement du programme, vous aurez besoin du package gettext pour travailler avec les catalogues de messages. Avertissement: les versions < 0.10 de gettext sont réputées pourêtre bugguées, vous devriez donc trouver une des dernière version!
Il y a deux sortes de catalogues de messages : les catalogues sources qui sont des fichiers textes avec l'extension .po, et les catalogues binaires, qui sont créés depuis les précédents avec le programme msgfmt (faisant partie du package gettext) et ont l'extension .mo. Seuls les fichiers binaires sont nécessaires durant l'exécution du programme.
Le programme i18n implique plusieurs étapes:
Voir également la documentation de GNU gettext.
Voir aussi Ecrire des applications non-anglaises. Cet article se concentre sur les problèmes relatifs à la manipulation des jeux de caractères.
Finalement, jetez un coup d'oeil à l'exemple i18n qui vous montre à quoi cela ressemble dans la pratique.
Traduire les accélérateurs de menus
Si vous traduisez les noms des modificateurs de raccourcis (Ctrl, Alt et Shift) dans vos étiquettes de menus, vous pouvez trouver des accélérateurs qui ne fonctionneront plus. Dans vos catalogues de messages, vous devrez fournir des traductions individuelles de ces modificateurs à partir de leur noms en miniscules (ctrl, alt, shist) afin que le code des accélérateurs wxWidgets puisse les reconnaitre même après leur traduction. wxWidgets ne fourni actuellement pas de traduction pour tous. wxWidgets ne gère pas encore les noms de touches spéciales tels que Backspace, End, Insert, etc.