cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yves Zoundi <yves.zou...@bibl.ulaval.ca>
Subject Gestion des paramètres linguistiques dans la session
Date Wed, 19 Jul 2006 14:02:10 GMT
Bonjour à tous et à toutes.

    Je travaille sur un projet impliquant Apache Cocoon et j'éprouve des 
difficultés à afficher les pages dans la langue de l'usager.
    Je devrais être en mesure d'enregistrer les préférences 
linguistiques de l'usager idéalement dans la session et  les changements 
de langue doivent être reflétés dans toutes les pages du site Web. 
J'utilise actuellement le transformeur /i18n/ et l'action /LocaleAction./

    Cependant un problème se pose lorsque j'utilise des pipeline de type 
/caching./ et je ne trouve aucune solution à cela depuis environ une 
semaine.  J'ai absolument besoin du cache.  Il semble que la langue ne 
soit pas une clé du cache de Cocoon.

    J'ai utilisé comme on me l 'a suggéré le générateur de statut de 
Cocoon /StatusGenerator/ pour avoir un aperçu des clés de Apache Cocoon 
pour la gestion du cache. Il semble que Cocoon ne stocke pas dans le 
cache des informations en fonction des paramètres linguistiques.  Je 
constate que les dictionnaires sont bel et bien dans le cache ainsi que 
les pages avec l'information sur la langue sous la forme 
(http://url_langue ).

    Au niveau de l'action LocaleAction, j'ai pris le temps de lire en 
détail la documentation pour m'assurer qu'il n'y a pas d'erreurs à ce 
niveau.

Voici un extrait de mon code actuel :
..
<map:transformer name="i18n"
src="org.apache.cocoon.transformation.I18nTransformer">
     <catalogues default="default">
       <catalogue id="default" name="messages"
location="translations/default"/>
     </catalogues>
     <untranslated-text>untranslated</untranslated-text>
     <cache-at-startup>true</cache-at-startup>
 </map:transformer>
...
<map:action name="locale" src="org.apache.cocoon.acting.LocaleAction">
     <locale-attribute>locale</locale-attribute>
     <use-locale>false</use-locale>
     <default-locale language="fr" country="CA"/>
     <store-in-request>true</store-in-request>
     <create-session>true</create-session>
     <store-in-session>true</store-in-session>
     <store-in-cookie>false</store-in-cookie>
   </map:action>
</map:actions>
...

<map:pipeline type="caching">

<map:act type = "locale">
    <!-- welcome page -->
    <map:match pattern="">
      <map:generate src="welcome.xml"/>
      <map:transform src="welcome.xslt">
        <map:parameter name="contextPath" value="{request:contextPath}"/>
      </map:transform>
   <map:transform type = "i18n">
      <map:parameter name = "locale" value = "{session-attr:locale}"/>
   </map:transform>
      <map:serialize type="xhtml"/>
    </map:match>
</map:act>
...
=================================================================

/Fichier sitemap.xmap dans le répertoire/ _test_

...
<map:action name="locale" src="org.apache.cocoon.acting.LocaleAction">
     <locale-attribute>locale</locale-attribute>
     <use-locale>false</use-locale>
     <default-locale language="fr" country="CA"/>
     <store-in-request>true</store-in-request>
     <create-session>true</create-session>
     <store-in-session>true</store-in-session>
     <store-in-cookie>false</store-in-cookie>
   </map:action>
</map:actions>
...
<map:transformer name="i18n"
src="org.apache.cocoon.transformation.I18nTransformer">
     <catalogues default="default">
       <catalogue id="default" name="messages"
location="../translations/default"/>
     </catalogues>
     <untranslated-text>untranslated</untranslated-text>
     <cache-at-startup>true</cache-at-startup>
 </map:transformer>
...
<map:act type = "locale">
    <!-- welcome page -->
    <map:match pattern="">
   <map:generate src="test.html"/>    
   <map:transform type = "i18n">
      <map:parameter name = "locale" value = "{session-attr:locale}"/>
   </map:transform>
      <map:serialize type="html"/>
    </map:match>
</map:act>
...

Merci pour votre aide.

Yves Zoundi

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message