Хочу сделать добавление виджетов из админки, но не понимаю, как сделать локализацию.
Лезть в какой-то файл и че-то там менять при каждом добавлении виджета вообще не вариант.
Поэтому нужен какой-то механизм автоматизации.
Пока приходит в голову сделать функцию которая будет возвращать массив с переводами, может подскажете чего поизящнее?
Локализация виджетов
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Локализация виджетов
Ну я в курсе этой статьи, там и говорится как раз, что переводы должны лежать в папке messages либо корня либо модуля.
А вот как сделать что бы можно было хранить файлы перевода в папке с виджетом?
А вот как сделать что бы можно было хранить файлы перевода в папке с виджетом?
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Локализация виджетов
Может есть какая-нибудь возможность зарегистрировать файл перевода?
Да, думаю что самым логичным было бы через функцию зарегистрировать папку с переводами в init виджета. Ну если нет, то сам напишу. В исходниках CPhpMessageSource ничего не нашел.
Да, думаю что самым логичным было бы через функцию зарегистрировать папку с переводами в init виджета. Ну если нет, то сам напишу. В исходниках CPhpMessageSource ничего не нашел.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Локализация виджетов
Вот как-то так, по памяти
Код: Выделить всё
class MyWidget extends CWidget {
private $_message;
public function init(){
$this->_message=Yii::createComponent(array(
'class'=>'CPhpMessageSource',
'basePath'=>dirname(__FILE__).'/messages'
));
}
public function run(){
echo Yii::t('site','{who} translate my message, please!',array('{who}'=>'Yii'),$this->_message);
}
}
Жду Yii 3!
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Локализация виджетов
Да. Спасибо, mc-bar