2011-11-08 112 views
1

如何在运行时更改Kohana 2.3.4中的locale.php文件中定义的默认语言环境?在kohana2中设置语言环境

我使用Kohana :: config_set('locale.language',array('en','United States'));但重定向后它不起作用,它会得到默认值(从locale.php)。

感谢

+0

难道你不能改变它在'locale.php'中? – hakre

+0

是的,但是当我更改语言时,我也想更改语言环境。在locale.php中,我定义了$ config ['language'] = array('no','Norsk'); – kromol

回答

3

我认为你需要保持你的动态设置在会话或饼干。 如果你NEDD国际化,您可以在bootstrap.php中使用简单的代码:

I18n::$source = Kohana::config('my.default_language'); 
I18n::lang(I18n::$source); 

/application/config/my.php

$config['languages'] = array(
    'ru' => 'Русский', 
    'en' => 'English', 
    'pl' => 'Poland', 
); 
$config['default_language'] = 'en'; 

框架/应用/classes/controller/template.php

class Controller_Template extends Kohana_Controller_Template { 
    ... 
    $session = Session::instance(); 
    if (Request::current()->param('lang') != null) 
    { 
     $session->set('lang', Request::current()->param('lang')); 
    } 
    I18n::lang($session->get('lang', I18n::$source));