如何在运行时更改Kohana 2.3.4中locale.php文件中定义的默认语言环境?
我使用Kohana :: config_set('locale.language',array('en','United States'));但是在重定向之后它不起作用,它会获得默认值(来自locale.php)。
由于
答案 0 :(得分:3)
我认为您需要在会话或Cookie中保留动态设置。 如果您使用i18n,则可以在 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';
在 framework / application / 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));