[imp] Translation cache?
Fabio Gomes
flgomes at fazenda.sp.gov.br
Fri Oct 29 14:23:31 PDT 2004
Em Sex 29 Out 2004 12:48, Jan Schneider escreveu:
> Zitat von Fabio Gomes <flgomes at fazenda.sp.gov.br>:
> > Em Qui 28 Out 2004 17:15, Jan Schneider escreveu:
> >> Zitat von Fabio Gomes <flgomes at fazenda.sp.gov.br>:
> >> > Hi list,
> >> >
> >> > I'm getting a strange behavior of my Horde installation after update.
> >> > Any translation made in the .po files doesn't reflect in the system.
> >> > I'm using a Solaris 8 box and I compiled the .po with:
> >> >
> >> > msgfmt -v -o ../locale/pt_BR/LC_MESSAGES/horde.mo pt_BR.po
> >> >
> >> > The weird thing is that the same command still working with may horde
> >> > 2.0 installation. It seems the gettext is caching the translation, or
> >> > something about that.
> >>
> >> Exactly, this how gettext works.
> >>
> >> > I created a langtest.php (language test) as suggested in
> >> > docs/TRANSLATION. That worked fine and the updates was displayed.
> >> > Invoking gettext in the command line also works:
> >> >
> >> > # export TEXTDOMAINDIR=/usr/local/apache/htdocs/horde-2.2.7/locale
> >> > # gettext horde "Mail"
> >> > Webmail
> >> >
> >> > The above shows my update. I changed "Mail" translation from
> >> > "Correio" to "Webmail". The Apache (webserver) was restarted to see if
> >> > anything changes. Nothing changed.
> >>
> >> That should have worked. Other than that I don't know what to tell you.
> >>
> >> Jan.
> >
> > Do you want to know a funny thing? Renaming horde/locale to a random name
> > doesn't affect the translations. The pages still being translated.
> > Is there any way to track horde and see what file it is using as source
> > for its translations?
>
> Only by tracing the Apache processes, this is handled tranparently by the
> PHP gettext extension. Actually by the gettext library.
>
Well, I was avoiding tracing the process. But I did:
1099: open("/usr/local/apache/htdocs/horde-2.2.7/locale/pt_BR/LC_MESSAG
ES/horde.mo", O_RDONLY) = 7
1099: fstat64(7, 0xFFBE92E8) = 0
1099: mmap(0x00000000, 20924, PROT_READ, MAP_SHARED, 7, 0) = 0xFE660000
1099: close(7) = 0
Yes, he's open the right file. At least, thats what it says. And then, maps
the file descriptor of the horde.mo to memory (is that right?).
When I remove the horde/locale directory it tries to open the horde.mo and
gives an error. But I didn't see the apache falling back to another .mo file:
6559: open("/usr/local/apache/htdocs/horde-2.2.7/lib/../locale/pt_BR/LC
_MESSAGES/horde.mo", O_RDONLY) Err#2 ENOENT
Maybe it's getting the translations from a already mapped file descriptor. I
don't know how to trace this, and that's not valueable.
Do you know any other way to clean completely the Apache/PHP caches', besides
apache restart and machine reboot?
Regards,
--
----------------------------------------------------------------------
Fábio Gomes <flgomes at fazenda.sp.gov.br>
DTI Desenvolvimento <dtidesenv at fazenda.sp.gov.br>
Telefone: 11-3243-3400 ramal 4447
Visite: http://sefaznet.sede.fazenda.sp.gov.br/email/
----------------------------------------------------------------------
More information about the imp
mailing list