Pour ceux qui ne me connaissent pas, je suis un des auteurs de Celestia. Je suis un utilisateur de Linux et KDE, et je m'occupe donc principalement de l'interface KDE. En 2003, j'ai commencé à traduire l'interface en Français, ce qui se fait très facilement pour les programmes KDE tout étant prévu dans l'API pour l'internationalisation.
Puis, début 2005 avec l'aide d'Eugine Kosenko, un dévelopeur ukrainien, l'internationalisation a été étendue au moteur de Celestia. Ceci a conduit à la première release entièrement internationalisée sous KDE, la 1.4.0. Tout allait donc pour le mieux dans le meilleur des mondes...
Malheureusement, pour les utilisateurs de Windows qui représentent une écrasante majorité des utilisateurs de Celestia, il n'en était pas de même. Pourtant le mécanisme de traduction utilisé par KDE, gettext, est très facilement ré-utilisable sous Windows, en tous les cas au moins en ce qui concerne le moteur.
Le problème est que le nombre de développeurs actifs est très restreint, grossièrement les rôles sont répartis comme suit :
- Chris Laurel: Moteur astro + OpenGL + Win32 + Snowboarding
- Da-Woon Jung: OSX
- Pat Suwalski: Gnome/GTK
- Fridger Schrempp: Textures, "caution" scientifique
- moi-même: KDE
Chris, qui est donc la seule personne à s'occuper de la version Windows a beaucoup d'autres choses à sa charge. De plus l'interface utilisateur n'est pas sa préoccupation majeure et étant américain l'internationalisation n'est pas vraiment un sujet qui le passionne, même s'il trouve par ailleurs cela nécessaire.
Heureusement, en janvier Vincent s'est intéressé au problème et nous sommes finalement parvenus à compiler la version Windows avec gettext, ce qui, couplé à une traduction manuelle du fichier de ressources, permet d'obtenir Celestia entièrement en français.
Je me suis depuis penché sur le problème afin de finaliser cette internationalisation sous Windows. J'ai intégré la traduction du fichier de ressource au framework gettext et réglé les problèmes de tables de caractères.
Voici le résultat :

Vous noterez qu'il reste encore quelques problèmes : des chaînes sont coupées et la mise en page de la boîte de dialogue donne un résultat étrange en français: Chercher [lunaire] éclipse sur [Terre].
Windows ne gère pas la mise en page des éléments (widgets) graphiques, il n'est pas capable de redimensionner un bouton par exemple en fonction du texte qu'il contient. Ceci explique qu'en remplaçant les libellés anglais par du français certains soient tronqués. De plus Chris n'a pas pensé aux problèmes d'internationalisation lorsqu'il a conçu les dialogues. Comparer par exemple au découvreur d'éclipse sous KDE.

Il faut donc retravailler toutes les boîtes de dialogues. Mon problème est que je n'ai pas Visual Studio, qui est apparemment le seul logiciel capable d'éditer les interfaces définie dans des fichiers de ressources.
Je suis donc à la recherche de quelqu'un qui dispose de Visual Studio et qui pourrait faire ce travail. Et j'espère avoir plus de chance pour trouver une telle personne ici, sur un forum en français que sur le forum officiel où l'intérêt pour l'internationalisation n'a jamais été très élevé.
J'aimerai aussi avoir des retours sur les éventuels problèmes que vous pourriez rencontrer sur cette version, et bien sûr des corrections, suggestions, etc pour amméliorer la traduction française.
La quasi totalité des modifications ont été commitées, il est donc possible de compiler la version internationalisée en appliquant <a href="http://epicycle.free.fr/celestia-win-i18n.patch" target="_blank">ce petit patch</a> aux sources CVS.
Une <a href="http://epicycle.free.fr/celestia-i18n.zip" target="_blank">version binaire</a> est aussi disponible pour tester. Déziper dans votre répertoire celestia (aucun fichier ne sera écrasé) et lancer celestia-i18n.exe
Pour utiliser une autre langue, faire en ligne de commande:
Code: Select all
> set LANGUAGE=es
> celestia-i18n.exe
Pour terminer, un petit guide sur le fonctionnement de l'internationalisation :
1 - La première étape consiste à extraire les chaînes à traduire des sources: fichiers C++, fichiers de définition d'interface (y compris fichier de resources Windows), solarsys.ssc, etc... Pour cela, on utilise le makefile du répertoire po, il faut donc disposer des autotools. Ceci est fait régulièrement et le résultat (celestia.pot et les différents .po mis à jour) sont commités dans CVS.
$ make celestia.pot-update
$ make update-po
2 - Traductions des .po par les traducteurs
<a href="http://celestia.teyssier.org/i18n/" target="_blank">http://celestia.teyssier.org/i18n/</a>
3 - Utiliser le script translate_resources.pl dans le répertoire po:
- Il traduit le fichier de resources src/celestia/res/celestia.rc à partir des fichiers .po
- Il produit une dll par langue ne contenant que la resource et les installe dans le répertoire locale
- Et il compile les po en gmo et les installe dans locale
Pour l'utiliser vous devez avoir: perl.exe, rc.exe, link.exe et msgfmt.exe dans votre PATH.
Pour tester une nouvelle traduction, seule l'étape 3 est nécessaire.