Affichage des articles dont le libellé est respire. Afficher tous les articles
Affichage des articles dont le libellé est respire. Afficher tous les articles

mercredi 21 octobre 2009

Grosse Fatigue

Les lecteurs attentifs l'auront noté : ce blog, après l'effervescence des débuts, est retombé dans une léthargie profonde ; mais ce n'est que la partie visible de l'iceberg. Depuis un mois environ, j'ai eu une phase à vide, ou je n'avais plus aucun courage pour maintenir quoi que ce soit ; ce qui s'est plus ou moins ressenti sur mes projets personnels. Mais bon, je ne m'excuserais pas plus longtemps pour le manque de billets, je ne voudrais pas passer pour l'homme le plus ennuyeux du monde ;)

Récemment, j'ai repris une activité timide, notamment sur DeSmuME et Yabause (enfin, sur mini18n, en fait), mais surtout sur respire (ma bibliothèque de manipulation de fichiers resources) qui devrait bientôt être assez développée pour réécrire le fichier resource de Yabause à l'identique. Et oui ! Incroyable ! Elle sera capable de faire rien, ce qu'on appelle un point fixe en mathématiques :) Mais heu... bon... ensuite, je pourrais ajouter des trucs super intéressants dedans :p

Pour finir, un peu de musique avec un truc sur lequel je bloque depuis un moment déja : L'hymne à la joie de The CNK ; c'est très très bon et en plus, c'est français, unbelibubble, non ?

lundi 21 septembre 2009

Trad' en trois actes

ACTE I : innocence

Il y a quelques temps, suite à une idée de Romanito, je m'étais lancé dans l'écriture d'une extension MediaWiki pour gérer des traductions. Le principe était simple, les chaînes à traduire et les traductions étaient stockées dans des pages wiki, l'extension ne fournissant qu'une manière simplifiée d'éditer les pages. Les traductions pouvaient ensuite être récupérée par un script Python pour être incluse dans le logiciel à traduire. Le système était simpl(ist)e, fonctionnel et je l'ai d'ailleurs mis en production et testé sur le wiki de Yabause.

Cette partie de l'histoire s'achève là, ou presque... je me suis ensuite rendu compte que pour pouvoir traduire le port Windows de Yabause, il me faudrait des outils qui n'existaient pas encore et je me suis alors lancé dans leur développement. Et je n'ai pas fini.

ACTE II : révélation

Une bonne partie de mon temps de travail est consacrée au développement d'Okawix, un navigateur hors-ligne pour les contenus de Wikipédia. Un des points fort du logiciel est qu'il permet de récupérer facilement le contenu de tous les wikis géré par la fondation (oui, même Wikipédia en normand, dé diou). Pour faire bonne mesure, il fallait pouvoir proposer aux utilisateurs une traduction de l'interface dans un maximum de langues.

Tout ceci nous a amené à découvrir un projet absolument fabuleux: translatewiki.net (TWN). En gros, l'idée est la même : amener des gens à traduire en passant par une extension de MediaWiki ; par contre, le projet est beaucoup plus avancé : l'extension est stable, gère plusieurs projets, plusieurs formats de fichier et les contributeurs sont nombreux.

Après avoir fourni un patch pour le support des DTD, Okawix est venu s'ajouter à la liste des projets gérés par TWN. Et la, je dois dire que j'ai été impressioné par la vitesse à laquelle le logiciel a été traduit dans des langues plus ou moins exotiques. De plus, TWN est configuré pour accéder directement à notre dépôt : en lecture, pour récupérer les nouvelles chaînes à traduire, et en écriture, pour nous envoyer les traductions. Un vrai bonheur.

ACTE III : tentation

Avec d'un coté un mini-projet que je suis seul à (ne pas) maintenir et de l'autre un projet maintenu, actif, en évolution et qui a réuni autour de lui une communauté de traducteurs, je pense que le choix va être rapidement fait :)

Bien sur, tout n'est pas encore prêt à fonctionner et le ne le sera pas demain : il faut déja postuler sur TWN et être accepté ; mais même avant cela, il faut terminer la bibliothèque Respire pour que le port Windows soit complétement traductible, écrire un patch pour TWN pour gérer le fichiers de traduction de mini18n et surement d'autres détails à régler.

Bref... encore pas mal de choses à faire en perspective, mais l'idée d'avoir un système de traduction fonctionnant de manière autonome est séduisante, très séduisante et mérite surement le détour.

lundi 14 septembre 2009

Début de la fin

Après avoir longtemps attendu que ma partie développeur arrive à pondre un moteur de blog assez fonctionnel pour pouvoir poster un billet, ma partie utilisateur en a eu marre et a créé un compte sur blogger ; au final, tout le monde est content, je peux poster facilement des trucs et j'ai du temps pour coder d'autres trucs.

"Quels autres trucs ?" me diraient vous... hé bien, principalement respire, qui devrait au final être une bibliothèque pour gérer des fichiers resources windows. L'idée au final étant de coupler respire et mini18n pour permettre de traduire les interfaces des différents ports de Yabause (et surement de DeSmuME aussi) en n'ayant à maintenir qu'une seule traduction par langue ; et non pas, une traduction pour la version Gtk+, une pour la version Windows, etc.

Au début, je comptais gérer ça avec un simple grep, mais dans un fichier resource les tailles des éléments sont en dur, il faut donc redimenssioner les éléments que l'on vient de traduire, et ceux qui les contiennent aussi, hu... donc voila, je me suis lancé dans un compilateur de fichiers resources et histoire de rendre le sport intéressant, je suis parti from scratch, en C pur, mode guerrier assoifé de sang.

De la à ce que mon coté utilisateur s'impatiente et demande un truc vite fait avec lex et yacc...