15
Feb
Traduire un package Plone 3 ¶
Je n'ai pas creusé plus que ça, mais apparemment il y a de beaux conflits entre zope.i18n et PlacelessTranslationService. Du coup, tant que l'on veut ajouter des traductions à un domaine non existant, se servir de zope.i18n ne pose pas de problème. Par contre, si l'on désire ajouter des traductions au domaine plone par exemple, ça ce complique.
Le seul moyen que j'ai pu trouver après quelques heures d'introspection est d'enregistrer un .po qui se trouve hors du répertoire locales (si vous le mettez dedans, ça casse tout) lors de l'initialisation du paquet. Cela donne un bout de code horrible qui me ferais presque honte... Voyez plutôt le contenu de mon __init__.py:
def initialize(context):
"""Initializer called when used as a Zope 2 product."""
context._ProductContext__app.Control_Panel.TranslationService._load_i18n_dir(os.path.dirname(__file__)+'/i18n')
Alors, oui, c'est dégueulasse, mais ça marche.






En ce qui me concerne impossible d'utiliser linguaplone avec Plone 3 si j'ai des types de contenus un peu exotiques : plone s'emmêle les les pinceau et souvent ne propose pas de langue de traduction alors que tout est correctement configuré et que ca marche pour d'autres types de contenus plus classiques... plus quelques plantage aléatoires non répertoriés avec 0 réponse dans google... bref l'internationalisation dans Plone 3 c'est surement la plus grosse régression par rapport à Plone 2 (dommage car c'est vraiment là que Plone avait une énorme longueur d'avance sur les autres cms qui proposent généralement des systèmes de d'internationalisation bien pourris .. quand ils en proposent.
Je crois que c'est pas la seule régression de Plone... La seule vrai question c'est: est-ce que ça vas aller en s'arrangeant avec les versions suivante. Avec tous les refactoring zope3 complant, on est en droit de se poser la question...
on peut utiliser la recette plone.recipe.command pour créer un lien symbolique i18n dans /parts vers un répertoire à l'abri de la construction-destruction du script buildout