Localiser, c’est aussi bidouiller

Publié le par /

Des extensions comme Stylish ou GreaseMonkey ont beaucoup fait dans ma prise de conscience du caractère bidouillable du Web. Stylish permet d’appliquer une feuille de style personnalisée à n’importe quel site. Par exemple si vous trouvez qu’une fonte trop petite ou une largeur de colonne excessive rendent la lecture d’un de vos sites favori fatigante, vous pouvez aisément y remédier. Et si vous n’y connaissez rien en CSS, des utilisateurs partagent leurs feuilles de style alternatives sur un site. GreaseMonkey sert lui à exécuter des scripts sur certaines pages, vous permettant de les modifier à volonté. Là encore, des milliers de scripts créés par la communauté sont disponibles, qui améliorent l’interface de Facebook, YouTube, etc.

M’est soudain venue l’idée d’appliquer le même principe à la localisation. Il y a de nombreux sites populaires dont l’interface n’est pas localisée ou pas disponible dans toutes les langues. Pourquoi ne pas les localiser collectivement via une extension au navigateur ? Il suffit d’extraire toutes les chaines des pages, les traduire, partager la traduction, et disposer d’une extension qui à la demande interroge un annuaire pour savoir si une traduction de la page sur laquelle on est est disponible.

Je viens de torcher un prototype sous forme d’une extension Firefox, lionish. C’est évidemment moche, plein de bogues et ça noie votre ordinateur dans du pipi de chat. Si des téméraires veulent essayer et me faire des retours, ils seront les bienvenus. L’extension se contente d’extraire toutes les chaînes d’une page, et de les convertir à un pseudo format gettext. Et bien sûr elle peut charger un tel fichier depuis une URL et tenter de l’utiliser pour traduire la page. Un xpi est disponible sous Github, mais il est évidemment bien plus sûr de le cuire vous même avec le SDK JetPack.

Pour mes tests, j’ai joué avec un tutoriel de Webmaker traduit dans un pad. Le pad permet de collaborer pour traduire une page (sous réserve qu’il ne soit pas vandalisé).

Si l’idée plait, je vous laisse le soin de la développer, trouver des idées pour partager les localisations, etc. Pour ma part, je vais probablement juste m’en servir pour traduire les quelques pages dont je vais peut-être avoir besoin pour un atelier de bidouille Web.

Mise à jour du 25 juin : on me souffle que ça manque de documentation. Pour traduire une page :

  • cliquez sur l’icône de l’extension dans la barre des extensions, puis sur Extract. La liste des chaînes à un format pseudo gettext s’affiche ;
  • copiez cette liste quelque part, par exemple dans un Pad, et traduisez les chaînes ;
  • dans la fenêtre de l’extension, entrez l’URL du fichier contenant les traductions (attention, si vous avez traduit dans un pad, il faut récupérer l’URL de la version en texte brut, ie du lien Plain Text du menu Import / Export) ;
  • en cliquant sur Translate la magie devrait s’opérer.

Attention, encore une fois ça n’est qu’une validation du principe, ni testée ni dévérolée. De nombreuses questions restent en suspend, mais avant d’aller plus loin j’aimerais avoir quelques retours, pour savoir si le concept est intéressant ou si c’est une grosse connerie.

Pour réagir, n'hésitez-pas à m'écrire : clochix chez clochix.net ou à soumettre l'url de votre commentaire :
(Je traite les mentions à la main, elles peuvent mettre plusieurs jours avant d'apparaître)

Si vous avez un compte Github, vous pouvez me proposer des corrections en éditant ce billet

Fork me on GitHub