在kohana2中设置语言环境

时间:2011-11-08 22:45:20

标签: php internationalization kohana

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

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

由于

1 个答案:

答案 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));