Discussion:Main Page

Aller à : navigation, rechercher

Cette page de discussion peut être l'équivalent du "bar du coin" ou on parle des choses en général.

Multilanguisme & xml/xsl

Plusieurs possibilités s'offrent à nous sur la façon de "moderniser" l'implémentation existante dans la version 1.2 d'OF du mulilanguisme.

Tout d'abord, il y a deux méthodes de stockage des traductions :

  • par base de données (dans ce cas on se tournerait vers la classe Translation2)
  • soit en mettant les textes dans du xml. Mais on perd en facilité de maintenance, ou alors on crée (ou on trouve) une classe qui gère ça.

Ensuite, vient le méthode de conversion de la feuille xsl :

Dans les deux cas, on part d'une feuille xsl qui va contenir des balises <text> définissant le texte à remplacer dans la bonne langue par exemple :

<b><center>
        <text>aircraft list</text>
        <xsl:value-of select="registration"/>
 </center></b>

On a donc deux choix :

  • soit on effectue la transformation du <text>aircraft list</text> en premier puis on obtient une deuxième feuille XSL (en fait la même que celle de Joël)
  • soit on effectue la transformation du xml via la feuille de style "générique", on obtient alors une sortie presque-html avec les <text> puis on les remplace par la langue finale.

Intérêt de la première méthode : on peut mettre en cache nos feuilles de styles adaptées à chaque langue, sachant que les modifications sur les langues ne doivent pas apparaitre dans une version stable d'OF.

Intérêt de la seconde méthode : elle me parait plus simple...

Dernier point : mappage xml/base de données

Dans translation2, les textes sont référencés selon 2 éléments (Translation_Table) : un id qui "nomme" le texte et un page_id. Ainsi on peut avoir deux ids identiques mais sur des pages différentes. D'ou ma question : comment en verriez-vous l'utilisation concrète ? (quelles règles on se fixe ?)

Je vous propose la suivante, on fait un "mappage" base de données/xml ainsi :

<text page="admin">aircraft list</text>

avec le contenu élément de text qui correspond à l'id de la base de données et l'attribut page qui correspond au page_id.

Avantage : on peut définir une page générique (champ page_id vide dans la base et sans attribut page sur le xml) qui contient les intitulés qui reviennent le plus souvent (comme "valider", "annuler", etc.)

Inconvénient : la présence très fréquente de l'attribut page qui n'apporte pas grand chose.

Une autre méthode : on ne met pas d'attribut page, et pour faire la relation on utilise le nom de la feuille xsl comme page_id.

Avantage : c'est plus léger

Inconvénient : faut ré-écrire pour chaque page des mots identiques

J'attend vos avis ;-)