Application.php 1.14 KB
<?php

class Application extends CWebApplication
{
    public function init()
    {
        $app = $this;
        preg_match("#^(en|ru)#", $app->request->pathInfo, $langMatches);
        if (0 != count($langMatches)) { // set language from `lang` param
            if (count(array_intersect(array($langMatches[0]), Yii::app()->params['languages'])) == 0)
                $this->request->redirect('/');
            $app->language = $langMatches[0];
            $app->request->cookies['lang'] = new CHttpCookie('lang', Yii::app()->language);
        } else if (isset($app->request->cookies['lang'])) { // set last remembered language
            $app->language = $app->request->cookies['lang']->value;
        } else {
            // todo: set language by request headers
            // $al =  $_SERVER["HTTP_ACCEPT_LANGUAGE"];
        }
        parent::init();

        // todo: warning! remove this handler on production(after messages translation complete).
        Yii::app()->messages->onMissingTranslation = array(new MissingTranslationEventHandler(), 'missingTranslation');
        Yii::app()->messages->forceTranslation = true; // allow ru->ru translation
    }
}