Google Groups Home
Help | Sign in
Message from discussion .po files not being read suddenly
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
foo.logica@gmail.com  
View profile
 More options Mar 26, 9:55 pm
From: "foo.log...@gmail.com" <foo.log...@gmail.com>
Date: Wed, 26 Mar 2008 18:55:36 -0700 (PDT)
Local: Wed, Mar 26 2008 9:55 pm
Subject: Re: .po files not being read suddenly
Stranger and stranger. I decided to disable Auth because it was that
that I'd added to the site before i18n stopped working. As soon as I
did that, my Configure::read('Config.language') now shows the new
language setting. Why would Auth be screwing around with
Config.language?

Unfortunately, I'm still not seeing anything translated ;-(

I'm using cake_1.2.x.x_24.01.2008, btw.

As an aside, does anyone know how to globally disable Auth without
removing it from the $components array in AppController? Doing that
isn't great because I then had to comment out all of the Auth-

>allow(...) calls in 5 other controllers.

On Mar 26, 9:37 pm, "foo.log...@gmail.com" <foo.log...@gmail.com>
wrote:
> I think I've narrowed down the problem if not the solution. Looking
> through i18n.php I noticed that the getInstance() method checks the
> session, but only if the language is not found in the core config.

> function &getInstance() {
>         static $instance = array();
>         if (!$instance) {
>                 $instance[0] =& new I18n();
>                 $instance[0]->l10n =& new L10n();

>                 $language = Configure::read('Config.language');
>                 if ($language === null && !empty($_SESSION['Config']['language'])) {
>                         $language = $_SESSION['Config']['language'];
>                 }

>                 $instance[0]->l10n->get($language);
>         }
>         return $instance[0];

> }

> Since I'm doing language switching this seems backwards to me. If it's
> been switched, the new language would never be picked up here, it
> seems. Anyway, I stuck debug("i18n: ${language}"); in there but
> $language is consistently empty.

> Trying my initial hunch, I modified the method to have:

> if (!empty($_SESSION['Config']['language']))
> {
>         $language = $_SESSION['Config']['language'];}

> else
> {
>         $language = Configure::read('Config.language');

> }

> This seems more reasonable to me because my language switching code (a
> modified version of  Jason Chow's P28NComponent) is writing the newly-
> requested lang to the session.

> But the debug() is still showing it's empty, however. So, I put
> debug($_SESSION) in my default.ctp and it properly shows the new
> language, eg:

> Array
> (
>     [Config] => Array
>         (
>             [userAgent] => 67d3fbdba7bd59adfe49aefd8b4eb32b
>             [time] => 1206579533
>             [rand] => 563719418
>             [timeout] => 9
>             [language] => fr
>         )
> )

> When I print the output from Configure::read('Config.language') on the
> page I see "en-us". This doesn't change even when I modify the
> component to add a Configure::write('Config.language', $lang);

> Does anyone have any thoughts on why the session appears to be empty
> in the i18n class? And, if this is normal, why getInstance() would
> bother checking it?

> On Mar 26, 12:59 am, "foo.log...@gmail.com" <foo.log...@gmail.com>
> wrote:

> > I got some L10n stuff working yesterday but it now seems to have
> > stopped. I'd extracted a new default.pot file because I had a lot more
> > strings to translate. I had the script overwrite the one I made
> > yesterday and copied it into:

> > locale/eng/LC_MESSAGES/default.po
> > locale/fre/LC_MESSAGES/default.po
> > locale/spa/LC_MESSAGES/default.po

> > Later on, I noticed that I wasn't seeing any changes when switching
> > languages. $session->read('Config.language') does show the change from
> > one language to another. And I can immediately see changes to a msgstr
> > in the eng default.po, so I know that one's being read.

> > I have caching disabled and I've made no other changes to core.
> > Neither have I done anything to the language settings I had.

> > Any idea what I may have done (or left out) to cause this?


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google