Internationalisation

Tout ce qui concerne ce programme de rêveurs (et de professionnels) nommé Celestia

Moderator: Modérateur lunaire

ChrisT
Taikonaute
Posts: 8
Joined: Wed Aug 02, 2006 7:29 pm
Location: Lyon
Contact:

Post by ChrisT »

Bonjour tout le monde,

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 :
Image


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.

Image


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.
Last edited by ChrisT on Thu Aug 03, 2006 10:20 pm, edited 1 time in total.
Christophe
User avatar
Jeam Tag
Modérateur lunaire
Posts: 523
Joined: Thu Jan 06, 2005 8:09 pm
Location: Nulle part à Livérion
Contact:

Post by Jeam Tag »

ChrisT wrote: Bonjour tout le monde
Bonjour Christophe, et bienvenue sur ce modeste forum. Les amateurs de Celestia savent le beau boulot que tu abats pour ce programme!
Bon, simple utilisateur win sans connaissances de programmation, je ne saurais être d'une grande aide, mais j'encourage les gens qui ont quelques lumières à se pencher sur la question. Certes, cette période de vacances désertifie un peu plus les échanges, mais le sujet est d'importance : allez-y!
Jeam.
Last edited by Jeam Tag on Fri Aug 04, 2006 9:08 am, edited 1 time in total.
User avatar
psykotik
admin
Posts: 462
Joined: Thu Jan 06, 2005 12:05 am
Location: Genève
Contact:

Post by psykotik »

J'épingle le sujet.
Celestia 1.5, GeForce 7300 GS, drivers Nvidia 177.82, sous Ubuntu 8.10. Sur GNU/Linux, c'est 'achement plus rapide.
ChrisT
Taikonaute
Posts: 8
Joined: Wed Aug 02, 2006 7:29 pm
Location: Lyon
Contact:

Post by ChrisT »

Bon j'ai pu me débrouiller et modifier les dialogues moi-même.

Image

J'en ai profité pour activer le système de styles sous XP. La binaire doit rester compatible avec les version antérieures de Windows.

Les liens vers le binaire et le patch on été mis à jour. Pour compiler vous devez aussi ajouter le fichier <a href="http://epicycle.free.fr/celestia.exe.manifest" target="_blank">celestia.exe.manifest</a> dans le répertoire src/celestia/res/.
Last edited by ChrisT on Sun Aug 06, 2006 3:46 pm, edited 1 time in total.
Christophe
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

Salut Christophe,

Tout d'abord, Merci beaucoup d'avoir consacré autant de temps à l'internationalisation sous Windows, qui, bien que justement controversé, reste le système d'exploitation en vigueur chez la plupart des utilisateurs de Celestia, et aussi, dans la plupart des écoles, collèges, lycées, facs,... La traduction des menus via les fichiers .po, représente une énorme avancée !

Concernant les boîtes de dialogues, je les avais également modifiées moi-même pour qu'elles soient adaptées à la longueur des textes français. Désolé donc de ne pas avoir répondu à ton message, j'étais en Week-end à Paris...

Juste une petite question pour finir : ton éxécutif (binaire) celestia-i18n.exe correspond-il exactement à la version 1.4.1 officielle où intègre-t-il des mods du CVS actuel ?

Encore merci pour ton efficacité.
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
ChrisT
Taikonaute
Posts: 8
Joined: Wed Aug 02, 2006 7:29 pm
Location: Lyon
Contact:

Post by ChrisT »

Pas de problème Vincent, ça m'a donné l'occasion d'approfondir mes connaissances du dev Windows. C'est un peu archaïque comparé aux toolkits modernes, mais c'est pas si terrible, enfin tant qu'on ne fait pas d'internationalisation !

Pour répondre à ta question il s'agit bien de la version CVS courante, pas de la version 1.4.1. Mais elle n'intègre pas les dernières modifications de Chris sur le rendu de l'atmosphère.

Une autre évolution qui me trotte dans la tête, ça serait de pouvoir ouvrir les fichiers .kmz de Google Earth dans Celestia. Enfin uniquement la partie positionnement, pas les modèles et textures qui peuvent être incluses. On pourrait avoir accès aux lieux préférés de Google Earth directement depuis un sous-menu des signets. Est-ce que vous trouveriez ça utile ?
Christophe
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

ChrisT wrote:Une autre évolution qui me trotte dans la tête, ça serait de pouvoir ouvrir les fichiers .kmz de Google Earth dans Celestia. Enfin uniquement la partie positionnement, pas les modèles et textures qui peuvent être incluses. On pourrait avoir accès aux lieux préférés de Google Earth directement depuis un sous-menu des signets. Est-ce que vous trouveriez ça utile ?
Personnellement, Je pense aussi que ce serait très utile, la recherche de 'localisations' dans Celestia n'étant pas actuellement très facile, surtout pour les nouveaux utilisateurs. Cela permettrait aussi de partager/échanger des informations de lieux via le net.

Seul bémol, tout le monde ne dispose pas de textures de niveaux 11 ou 12, et leur rendu dans Celestia n'est pas aussi efficace que dans Google Earth, qui a été conçu spécialement pour ce genre de choses... Personnellement, j'utilise Celestia pour le rendu 3D, Stellarium comme planetarium, et Google Earth pour les closes-up (vues rapprochées) de la Terre. Chacun de ces 3 excellents logiciels a sa spécificité... D'où la question de la pertinence d'intégrer des fonctions de GE dans Celestia...
Last edited by vincent on Tue Aug 08, 2006 4:37 pm, edited 1 time in total.
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
User avatar
Jeam Tag
Modérateur lunaire
Posts: 523
Joined: Thu Jan 06, 2005 8:09 pm
Location: Nulle part à Livérion
Contact:

Post by Jeam Tag »

ChrisT wrote:Une autre évolution qui me trotte dans la tête, ça serait de pouvoir ouvrir les fichiers .kmz de Google Earth dans Celestia. Enfin uniquement la partie positionnement, pas les modèles et textures qui peuvent être incluses. On pourrait avoir accès aux lieux préférés de Google Earth directement depuis un sous-menu des signets. Est-ce que vous trouveriez ça utile ?
Hello Christophe, ce serait un truc rigolo...
- Eh OUI, de grâce, sans les modèles (qui pour l'instant restent d'une mochetée crasse) ni les textures ajoutées, qui elles peuvent être l'objet, lorsqu'elles valent le coup, de textures alternatives ou de tuiles de textures virtuelles comme Celestia sait déjà bien les gerer-
... qui m'éviterais de jongler entre les deux softs - vieille discussion que j'avais un peu alimentée avec mon pauvre anglais dans le purgatoire de Shatters (et ici, mais la flemme de retrouver les liens) lorsqu'il était apparu une proposition de positionnement des 'Celestians' dans un petit soft de cartographie en ligne (qui m'avait rappelé ce que font les Orbiterfans) :P
(confer les tentatives d'ajouts que j'avais essayés dans Celestia et GE: voir fichiers joints, another W-I-P... )
[attachmentid=70][attachmentid=71] (Supprimer ".txt" dans l'intitulé du fichier pour l'ouvrir dans GE: j'ai ajouté ça au pif, parceque l'interface de ce forum ne reconnaissait pas l'extension .kml comme valide pour un fichier à télécharger..
Jeam
Last edited by Jeam Tag on Tue Aug 08, 2006 7:13 pm, edited 1 time in total.
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

Christophe,

Je viens de remarquer que celestia-i18n.exe ne permet d'afficher que les modes de rendu "de base" et multitextures". Les modes suivants ne sont pas accessibles. Je crois me souvenir d'un bug identique dans une ancienne version CVS. Donc ta version i18n est peut-être issue de cette version CVS...

Quant à la version CVS de ce matin, les menus ne sont pas encore traduits. Est-ce parce que tes derniers mods (traduction des menus) n'ont pas encore été intégrés à la version CVS actuelle, ou parce qu'il faut traduire le fichier de resources src/celestia/res/celestia.rc à partir des fichiers .po manuellement ?
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
ChrisT
Taikonaute
Posts: 8
Joined: Wed Aug 02, 2006 7:29 pm
Location: Lyon
Contact:

Post by ChrisT »

vincent wrote:Je viens de remarquer que celestia-i18n.exe ne permet d'afficher que les modes de rendu "de base" et multitextures". Les modes suivants ne sont pas accessibles. Je crois me souvenir d'un bug identique dans une ancienne version CVS. Donc ta version i18n est peut-être issue de cette version CVS...
C'est la version CVS du 7, j'avais un crash au démarrage sur le CVS d'hier. En fait je développe sur une machine virtuelle VMWare où je n'ai aucune accélération OpenGL donc je ne vois que le mode de base.
vincent wrote:Quant à la version CVS de ce matin, les menus ne sont pas encore traduits. Est-ce parce que tes derniers mods (traduction des menus) n'ont pas encore été intégrés à la version CVS actuelle, ou parce qu'il faut traduire le fichier de resources src/celestia/res/celestia.rc à partir des fichiers .po manuellement ?
Les deux en fait. Tout n'a pas encore été commité, en particulier le chargement de la dll qui contient les ressources traduites. Une fois que cela aura été commité il faudra lancer le script perl po\translate_resources.pl pour générer les .mo et les dll.
Christophe
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

ChrisT wrote: C'est la version CVS du 7, j'avais un crash au démarrage sur le CVS d'hier. En fait je développe sur une machine virtuelle VMWare où je n'ai aucune accélération OpenGL donc je ne vois que le mode de base.
OK, pas de problème, la version CVS de ce matin affiche tous les modes de rendu.

<!--quoteo--><div class='quotetop'>CITATION</div><div class='quotemain'><!--quotec-->Les deux en fait. Tout n'a pas encore été commité, en particulier le chargement de la dll qui contient les ressources traduites. Une fois que cela aura été commité il faudra lancer le script perl po\translate_resources.pl pour générer les .mo et les dll.<!--QuoteEnd--></div><!--QuoteEEnd-->Serait-il possible d'inclure les .mo et les .dll générés directement au CVS ? Je sais que vu le nombre de langues, ça augmenterait la taille du fichier d'installation. Mais ça éviterait aux utilisateurs d'avoir à le faire.
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
ChrisT
Taikonaute
Posts: 8
Joined: Wed Aug 02, 2006 7:29 pm
Location: Lyon
Contact:

Post by ChrisT »

vincent wrote: Serait-il possible d'inclure les .mo et les .dll générés directement au CVS ? Je sais que vu le nombre de langues, ça augmenterait la taille du fichier d'installation. Mais ça éviterait aux utilisateurs d'avoir à le faire.
Non, les .mo et .dll sont des binaires, leur génération fait logiquement partie de l'étape de compilation. Bien-sûr ils seront inclus dans la version binaire. Les utilisateurs qui compilent le CVS devront les compiler eux-mêmes, ce qui a priori ne pose pas de problème. Perl et gettext sont nécessaires en plus des outils de compilation habituels.
Last edited by ChrisT on Wed Aug 09, 2006 8:17 pm, edited 1 time in total.
Christophe
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

<!--QuoteBegin-ChrisT+--><div class='quotetop'>CITATION(ChrisT)</div><div class='quotemain'><!--QuoteEBegin-->Non, les .mo et .dll sont des binaires, leur génération fait logiquement partie de l'étape de compilation.<!--QuoteEnd--></div><!--QuoteEEnd-->Evidemment, désolé pour la confusion. C'est tout à fait normal/logique que les utilisateurs qui compilent le CVS soient amenés à les compiler eux-mêmes.

<!--quoteo--><div class='quotetop'>CITATION</div><div class='quotemain'><!--quotec-->Bien-sûr ils seront inclus dans la version binaire.<!--QuoteEnd--></div><!--QuoteEEnd-->Voilà, c'est plus ça que j'voulais dire ;). Merci ! Tout est OK pour moi.
Last edited by vincent on Thu Aug 10, 2006 3:53 pm, edited 1 time in total.
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

Christophe,

Un dernier détail : le menu contextuel obtenu en faisant un click-droit sur un objet n'est pas traduit. Je l'ai personnellement traduit 'à la main' dans ma propre version française. Mais il peut sûrement être internationnalisé, vu que tu as réussi à internationnaliser le menu général...
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

vincent wrote:Christophe,

Un dernier détail : le menu contextuel obtenu en faisant un click-droit sur un objet n'est pas traduit. Je l'ai personnellement traduit 'à la main' dans ma propre version française. Mais il peut sûrement être internationnalisé, vu que tu as réussi à internationnaliser le menu général...
Christophe a commité ses dernières mises à jours et la version CVS est désormais entièrement dispo en français (en autres), même le menu contextuel, et avec les accents et tout et tout... :)

Par contre, Chris Laurel travaille actuellement sur une amélioration du rendu des étoiles, des atmosphères, de l'illumination das planètes, etc... Pour ceux qui lisent l'anglais, ça se passe ici : <a href="http://www.shatters.net/forum/viewforum ... 51bf851ac6" target="_blank">http://www.shatters.net/forum/viewforum ... f851ac6</a>
Donc la version CVS, qui intègre maintenant tous les changements de Christophe concernant l'internationalisation, n'est pas encore tout à fait aboutie. La sortie d'une nouvelle version officielle n'est pas prévue avant plusieurs semaines...

C'est pourquoi je vais essayer de récupérer tous les changements apportés par Christophe concernant l'internationalisation, et de les intégrer à la version 1.4.1 pour en faire une version 1.4.1 (stable) entièrement en français (et internationalisée)... J'essaierai de vous proposer cette version d'ici la fin du mois...
Last edited by vincent on Sun Aug 13, 2006 11:13 pm, edited 1 time in total.
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
Post Reply