Yii Framework Forum: Мультиязычность - Переключение Языков - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Мультиязычность - Переключение Языков Rate Topic: -----

#1 User is offline   tuschkan 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 20-April 11
  • Location:Kiev, Ukraine

Posted 06 January 2013 - 03:21 PM

Я организовал переключение языков в админке:

1. Список языков. По событию "On select" вызываю экшн ChangeLanguage в DefaultController:

class DefaultController extends Controller {
... 
   public function actionChangeLanguage()
    {
        if(isset($_POST['_lang']) && !empty($_POST['_lang'])) 
        {
            Yii::app()->setLanguage($_POST['_lang']);
            Yii::app()->session['_lang'] = $_POST['_lang'];
            $this->redirect(Yii::app()->user->returnUrl);
        }
    }

...
}


2. В Controller, который наследуется DefaultController следующий код:
class Controller extends CController
{

    function init()
    {
        parent::init();
        Yii::app()->setLanguage(isset(Yii::app()->session['_lang']) ? Yii::app()->session['_lang'] : Yii::app()->language); 
    } 
...


Затем выбираю в селекте язык (ex. English) и:
- Yii::app()->session['_lang'] возвращает 'en'
- Yii::app()->language возвращает язык, установленный в protected\config\main.php

'language'=>'ru',


Т.е. язык не изменяется и перевод с помощью Yii:t не работает пока я не добавлю в views\layouts\main.php такой же код, как в function init() в Controller:
<?php Yii::app()->setLanguage(isset(Yii::app()->session['_lang']) ? Yii::app()->session['_lang'] : Yii::app()->language); ?>


Подскажите, почему язык не устанавливатся без вставки кода в views\layouts\main.php
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users