Bonjour !

J'ai un problème de "rafraîchissement" avec Globalize sur les textes
statiques (<%="mon_texte".t%>).

Quand Je modifie la traduction, celle-ci n'est prise en compte qu'après
redémarrage du serveur (mongrel). Hors, la nouvelle traduction a bien
été enregistrée en base (table globalize_traductions).

Pour tester, j'ai utilisé 2 méthodes différentes pour afficher dans la
vue le même texte traduit :

<%= "mon texte".t %> : méthode classique, le "rafraîchissement" ne
fonctionne pas

Et

<%= mon_objet_ViewTranslation.text %>: là par contre le
"rafraîchissement" fonctionne et j'obtiens mon texte modifié

Il me semble que le problème vienne d'une mauvaise gestion du système de
cache de Globalize
(globalize/lib/globalize/localization/db_view_translator.rb)...

En effet, pour tester j'ai dévalider la gestion du cache de Globalize
((globalize/lib/globalize/localization/db_view_translator.rb) :

      def fetch_from_cache(key, language, real_default, num, namespace =
nil)
        return real_default if language.nil?

        zero_form   = num == 0
        plural_idx  = language.plural_index(num)        #
language-defined plural form
        zplural_idx = zero_form ? 0 : plural_idx # takes zero-form into
account

#---Suppression de la gestion du cache pour test---
#        cached = cache_fetch(key, language, zplural_idx, namespace)
#        if cached
#          result = cached
#        else
          result = fetch_view_translation(key, language, zplural_idx,
namespace)

          # set to plural_form if no zero-form exists
          result ||= fetch_view_translation(key, language, plural_idx,
namespace) if zero_form

          cache_add(key, language, zplural_idx, result, namespace)
#        end
        result ||= real_default
      end

Et là... bingo ça fonctionne...par contre je n'ai plus de gestion de
cache à l'affichage...pas top

J'ai vu dans l'api de Globalize que la classe
Globalize::DbViewTranslator possédait une méthode cache_reset() qui
pourrait être utile (ma première idée serait de faire un raz du cache à
chaque fois que je modifie une traduction pour forcer la lecture en
base)

Avant d'aller plus loin dans ma réflexion, quelqu'un a-t'il déjà eu ce
problème ? Et trouver une solution ?

Merci pour toutes vos réponses.

J.



------------------------------------------------------------------------
Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86
http://www.pickabee.com

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à