Require.js Replace! (i18n pour SDK)

Je m’intéresse beaucoup dernièrement aux applications basé sur Backbone.js, et Require.js. Surtout require puisque les modules AMD permettent réellement de structurer son code de manière simplifiée et de facilement séparer les différentes sections /logiques applicationnelles. Et puis, AMD est un principe plutôt universel  du côté du navigateur et ne dépend pas d’aucune préférence en termes de structuration MVC. Ce faisant, il s’adapte aisément à plusieurs types d’application web; des plus complexes aux plus simples.

Évidemment, Backbone est selon moi un framework MV* très important dans mon travail de tous les jours (principalement la programmation d’application Facebook). Les applications sur la plateforme Facebook étant loadées dans un iframe coûtent très cher en termes de performance, et reloader une page est une option que je préfère éviter autant que possible. Ainsi, les routers de Backbone.js et les « one-page application » deviennent monnaie courante.

Le seul problème que j’avais de manière récurrente était de facilement travailler avec le SDK de Facebook et mes modules AMD. En soit, on peut loader la SDK avec une configuration shim et récupérer la variable globale qu’il instancie, c’est la solution simple. Mais étant au Québec, les applications sont très souvent prévues pour être bilingue. Ainsi, je me retrouvais à devoir loader ce SDK dans une langue ou dans l’autre à l’aide de require.js, mais cela ne se faisait pas sans une certaine difficulté.

C’est pourquoi j’ai récemment publié un petit loader plugin nommé « Replace! » pour require.js qui permet d’aisément remplacer un pattern définie dans le chemin d’une ressource. Pour travailler avec des SDK et des problématiques d’internationalisation (i18n), ce dernier s’est montré très utile, mais le code est assez flexible et pourrait probablement servir à d’autres fins.

Le tout est publié sur Github et des tests unitaires sont déjà présents pour assurer la qualité du code. Le plugin en est encore à sa première version, et des retours d’utilisation seraient très appréciés.

Repositories de Require Replace!