I hope we are all talking about Cake 1.2 here? I am not sure that you should mess with l10n directly at all. When you do, you are effectively setting the language at different "levels" in the locale classes. This is what I believe is causing your problems. If you set the language in l10n, then i18n will not pick this up.
define('DEFAULT_LANGUAGE', 'eng'); <- deprecated, use Configure::write() Configure::write('Config.language', 'eng'); <- sets the language. This value is used by i18n. I can switch languages in my app by resetting this value in beforeFilter. No need to call up an instance of l10n. If you want to switch it "on the fly" during rendering (don't know why really, but)... then it is another matter since i18n does not recheck the config once it has been setup. Then you need to get the current instance of i18n and set the language there: App::import('Core', 'i18n'); $i18n = I18n::getInstance(); $i18n->l10n->get($lang); hope this helps. /Martin On Apr 21, 12:28 pm, francky06l <[EMAIL PROTECTED]> wrote: > I use the l10n/i18n to set language, my method is close to yours > except that I set the language using : > $l10n = & new L10n(); > $l10n->__setLanguage($lang) > > hth > > On Apr 21, 8:51 am, David Christopher Zentgraf <[EMAIL PROTECTED]> > wrote: > > > This seems to be the cause of a lot of complaints about l10n/i18n not > > working. > > > I set up two languages in my app: 'eng' and 'jpn'. > > > In core.php I added: > > define('DEFAULT_LANGUAGE', 'eng'); > > Configure::write('Config.language', 'en'); > > > In my app_controller beforeFilter: > > $lang = $this->Auth->user('pref_lang'); // user pref saved in the > > DB > > $this->L10n->get($lang); // Config.language gets set to 'ja' here > > > I put a debug on line 124 of i18n.php: > > Debugger::log('l10n instance: '.$_this->l10n->locale.', Configure: > > '.Configure::read('Config.language')); > > > 2008-04-21 15:34:44 Debug: "l10n instance: eng, Configure: en" > > 2008-04-21 15:34:44 Debug: "l10n instance: eng, Configure: ja" > > 2008-04-21 15:34:44 Debug: "l10n instance: eng, Configure: ja" > > 2008-04-21 15:34:44 Debug: "l10n instance: eng, Configure: ja" > > ... > > > The very first instance of l10n seems to get the default language from > > core.php, but afterwards my beforeFilter is changing it. i18n holds on > > to just one instance of l10n though, which causes it to continue to > > use the default value. > > > I opened a ticket for it:https://trac.cakephp.org/ticket/4509 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---