Guide to bilingual blog
By Jean-Christophe Dubacq on Monday 2 July 2007, 16:50 - Dotclear - Permalink
Important [mise à jour] : Depuis la sortie de la version finale de Dotclear, il s'est produit plusieurs choses: ces plugins sont devenus incompatibles avec la dernière version en particulier (pas complètement, mais un peu). De plus, peu de temps avant la sortie, la gestion des langues a été pas mal remaniée. De fait, j'ai beaucoup modifié mes plugins (et grandement amélioré la gestion). Il y a maintenant un seul billet et des traductions associées. Regardez l'extension Le premier plugin est prevnext. Il s'appuie fortement sur le plugin metadata qui contenait déjà beaucoup d'éléments utilisables pour gérer la traduction de billets. Il permet de définir les éléments suivants : Il n'y a pas plus de documentations que cela, sinon de télécharger mon thème qui utilise tout ça... Le deuxième plugin est supportedlang. J'avais commencé par utiliser le plugin autoLocale mais le plugin ne chargeait pas les traductions des autres plugins, une fois reconnu la langue du navigateur. À force de bricolage, je n'ai pas gardé grand chose. Concrètement, il suffit de modifier vos préférences (sous Firefox 2, c'est dans Éditions → préférences → avancés → Général → Choisir la langue pour l'affichage des pages). Si vous préférez un affichage en anglais, anglais ce sera. Si c'est du français qui tient le haut du panier, le blog s'exprimera en français. Et si ma maîtrise de l'espagnol était meilleure, vous auriez la possibilité de lire les informations de ce blog en espagnol (les dates, les rubriques dans la colonne d'à côté, etc.). Le problème qui restait était que les widgets sur le côté s'affichaient avec le titre toujours en français (ou pour être plus précis, avec le titre dans la langue préférée du navigateur de la dernière fois où j'avais inséré le widget dans la colonne — c'est-à-dire en français). J'ai donc recopié les widgets d'origine en modifiant uniquement que le titre est stocké en anglais tout le temps, et traduit en fonction de la langue du lecteur (et non pas en fonction de la langue de l'auteur du blog). Ça me paraît mieux, et de toute façon, c'est moi qui commande. C'est très répétitif, et pour simplifier, le plugin suppose que les plugins widgets et blogroll sont tous deux installés (il ne fait que des petites modifications subtiles). En fait, c'est uniquement une liste de traductions. Comme mon thème doit s'afficher de façon un peu changée (par exemple « Published » en anglais doit s'afficher « Publié le » en français), j'avais besoin d'une petite liste auxiliaire. Ce n'est pas indispensable si vous ne mettez pas de texte de ce genre, mais que vous copiez mon thème ou recréez le votre, c'est probablement nécessaire.PrevNext : navigation contextuelle et traductions
SupportedLang : la voix de son maître
TranslatedWidgets : une pâle copie de l'original
PersonalTranslations : le plugin qui ne sert à rien
Comments
Eh bien, je suis impressionnée, surtout par la mise au point de ton système de navigation. J'ai planché pas mal là-dessus pour améliorer la navigation de mon photoblog.
J'ai vu dans un autre billet que mon plugin sameCat t'a inspiré : J'en très honoré même si ma contribution est surement minime à coté de ce que tu as fait ici.
J'ai mis en place sur mon blog également une navigation contextuelle du même tag mais sur un seul tag courant et en passant le paramètre par l'url. Je ne l'est pas encore diffusé en plugin car c'est pas encore suffisamment propre.
Je vais étudier de près ce que tu appel "groupe de traduction" pour voir si je peux l'utiliser pour faire des regroupement de billets constituant les différents chapitres d'une nouvelle par exemple.
Merci beaucoup d'avoir mis ton travail à disposition.
Je confirme que SameCat a été un des premiers plugins que j'ai décortiqué. Il doit d'ailleurs en rester des traces dans la façon dont Prevnext fonctionne (par exemple, une classe séparé avec une instance) alors que ma façon de modifier DotClear a elle-même évoluée.
Et pour répondre à ta question, le plugin metadata permet d'attribuer des tags a des posts, mais en fait aussi des trucs, des bidules et des machins (comprendre: par défaut, un mot-clé est une métadonnée de type tag, mais il est possible d'attribuer des métadonnées de type arbitraire. Par exemple, tu pourrais attribuer une métadonnée de type chapitre, et en modifiant à peine ce que j'ai fait, faire afficher tous les billets qui ont le même chapitre. Enfin, à peine, c'est plus vite dit que fait !
Oui, j'ai comencé à regarder le code et une première chose m'intrique : Dans class.dc.prevnext.php :
$currenttag='photo' où photo semble être un paramètre codé en dur.
J'ai un bug sur ma config (qui ne laisse rien passer
) :
J'ai du déclarer toute les méthodes public function, dans le fichier plugins/prevnext/_public.php, en public static function, sinon j'ai plein d'alertes.
Merci des précisions.
Le tag codé en dur « photo » ne sert à rien ; tous les usages que je fais de cette fonction sont de toute façon initialisés avec une valeur. Je ne sais même pas pourquoi j'ai mis une valeur par défaut.
Quant à « public static », à bien y réfléchir, oui, il faut sans doute les mettre public static, puisque lorsque les méthodes sont invoquées par DotClear (suite aux ajouts de comportement), il n'y a pas d'instance de ma classe tplPrevNext qui est créée par l'appel à ses fonctions. Une révision est à attendre.
Je suis en train de reconstruire mon blog afin qu'il soit complètement bilingue et ce post est extrêmement utile et les plugins très bien fait, MERCI.
J'ai une question toute fois, à propos du flux RSS, j'ai remarqué que dans le votre il y a un paramètre navlang=en qui traine mais quand on visualise le flux, il y a des billets en français dedans. Je n'ai pas trouvé si Dotclear intègre nativement un flux par langue ou pas, enfin je suis un peu paumé pour réussir à fournir deux flux distincts en fonction de la langue... SI vous avez des infos, ce serait formidable (même juste un lien ferait l'affaire).
Et bravo encore pour le travail sur les plugins.
bonjour,
mon commentaire n'est peu être pas au bon endroit mais j'ai essayer d'appliquer tes plugins dans un dotclear 2 version finale mais j'ai rencontré quelques problèmes notamment pour les fichiers de langues que je n'ai pas réussi à trouver et à installer.
Cela semble marcher avec l'anglais et le français mais pas avec l'allemand
Où peut on trouver ces fichiers de langues pour la traduction de l'interface (sidebar notamment)
Bonjour,
Je lis ici qu'un nouveau plugin sera prêt en novembre passé. Est-il quelque part, je n'arrive pas à le trouver...
Ça m'intéresse beaucoup!
merci merci!