Plugin Rosetta 0.5 pour Dotclear

Ce plugin permet de « lier » des billets (ou des pages) traduits entre eux, formant ainsi une « chaîne » de traduction.

Présentation et utilisation

Il offre, côté public, un widget, affiché lorsqu’on consulte une page ou un billet, et qui fournit la liste des traductions existantes, si elles existent.

Une balise template est également disponible pour fournir cette information dans les contextes de liste de billets (et de pages), comme la page d’accueil, les catégories, … Sa syntaxe est la suivante :

{{tpl:RosettaEntryList [include_current={std|link|none}]}}

Ou include_current permet de préciser si le billet ou la page courante doit être incluse ou pas dans la liste des traductions (std, par défaut), éventuellement avec son lien (link), ou pas (none).

Le plugin Rosetta est également capable, si l’option est activée, lors de l’affichage d’un billet ou d’une page, ou d’une liste de billets ou de pages (page d’accueil et suivantes, billets d’une catégorie, …), de chercher à fournir la ou les traductions correspondantes aux réglages du navigateur de votre lecteur.

Nota : pour désactiver ce mécanisme pour le lien d’un billet ou d’une page, il suffit de rajouter un paramètre ?lang=nn à son URL, où nn correspond à la langue du billet ou de la page en question.

Côté administration, sa page de réglage (voir l’option Rosetta dans le menu Blog), permet de l’activer et éventuellement d’activer le système pré-cité de chargement de traduction à la volée.

La gestion de la « chaîne » de traduction d’un billet ou d’une page se gère, pour l’instant, au niveau de l’édition de ces entrées, en bas de la page :

Cette nouvelle zone liste les traductions existantes pour l’entrée en cours d’édition, vous permet d’aller les éditer, de les supprimer de la « chaîne » de traduction de ce billet ou de cette page (icône en bout de chacune des lignes), d’attacher une traduction à cette chaîne, de créer une nouvelle traduction en basculant ou pas sur l’édition de cette nouvelle entrée.

Attention : Toute la gestion de la « chaîne » de traduction nécessite que Javascript soit activé. La gestion non Javascript n’étant pas encore développée dans cette version du plugin.

Notez que ce plugin ne modifie rien du côté des billets ou des pages et se contente de gérer ces « chaînes » de traductions dans une table qui lui est propre. Le désactiver ou le supprimer n’affectera donc pas le fonctionnement normal de votre blog.

Le widget se configure de manière très simple, à l’image des autres widgets de Dotclear :

Support et suite du développement

Support

J’inaugure avec ce plugin, une nouvelle façon de supporter mes développements. Je verrai à l’usage si c’est pertinent où s’il faut que je revienne à l’ancien fonctionnement (à savoir via les commentaires des billets d’annonce des plugins).

Dorénavant, le dépôt mercurial de ce plugin est visible ici, et vous pouvez y ouvrir des tickets, voire pourquoi pas, me proposer des pull requests.

Suite du développement

Je vais attendre les éventuels retours avant d’aller plus loin dans le codage de ce plugin.

Dans les voies de développement possibles, outre la fin de la gestion des chaînes de traduction des billets et des pages (voir les deux premiers onglets de la page principale du plugin, pour l’instant vierges), j’envisage d’étendre ce mécanisme aux catégories et aux mot-clés, de prévoir des flux RSS/Atom limités à une seule langue, en ce qui concerne le contenu, et, question contenant, la gestion de l’affichage des éléments de navigation du blog en fonction de la langue réglée au niveau de son navigateur par le lecteur — il est très possible que cette fonctionnalité soit prise en charge par un autre plugin, je pense qu’on sort un peu du cadre de mon développement.

Nikrou, lors d’une discussion avec moi sur IRC au sujet de ce plugin, a aussi évoqué l’idée d’avoir une langue « neutre », qui permettrait d’avoir un « fallback » si un billet n’était pas traduit dans la langue choisie. Je verrai éventuellement comment mettre ça en place. L’idée étant d’avoir une langue de référence (par exemple l’anglais) et d’y revenir si jamais une traduction était manquante.

Ce plugin, tel qu’il est codé aujourd’hui, ne gère qu’un élément partiel du blog (billet/page). Il n’est pas, pour l’instant, prévu pour mettre en place un blog multi-lingue, il en est bien loin et je pense que ça conception devrait être revue complètement dans ce cas là.

Conclusion

Je vous livre ce plugin en l’état sachant qu’il reste pas mal de choses à développer pour qu’il soit plus robuste, je n’ai probablement pas pensé à tous les cas d’erreur pouvant se produire pendant la gestion de la « chaîne » de traduction.

N’hésitez-pas à me communiquer toutes les remarques ou idées que vous auriez à son sujet, voire dans un cadre plus général au sujet de l’aspect multilingue de Dotclear, nativement géré de manière très basique. En effet, la langue (proposée par le widget Langues du blog est traitée comme un contexte, à l’image des catégories ou des mot-clés, et pas comme un attribut du contexte courant.

Enjoy!


Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/12776

Haut de page