В интернете не особо много примеров использования перевода текстов в Yii Framework используя i18n. Поэтому эта заметка покажет как шаг за шагом переводить элементы интерфейса.

Шаг первый.

Определяем и меняем язык приложения на лету. Для этого открываем и редактируем, например, файл protected/views/layout/main.php

$lang = $_GET['lang'];//Yii::app()->language;
echo $lang.'<br/>';
Yii::app()->setLanguage($lang);
echo Yii::t('blog','Active record class "{class}" does not have a scope named "{scope}".');

Шаг второй.

Создадим папку "ru"; или соответствующую вашему языку в папке protected/messages/

Шаг третий.

Создадим файл с сообщениями который называется blog.php в папке protected/messages/ru (ru меняем на нужный вам язык) и наполним его следующим содержимым:

return array (
     'Active record class "{class}" does not have a scope named "{scope}".' => 'В классе ActiveRecord "{class}" нет именованной группы условий "{scope}".',
);

Шаг четвёртый.

Откроем наш блог с параметром /index.php?lang=fr и наслаждаемся вариантом.

Более подробно _про интернализацию в Yii_ можно почитать http://www.yiiframework.com/doc/guide/1.1/ru/topics.i18n

Комментарии

comments powered by Disqus