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]
-~----------~----~----~----~------~----~------~--~---