Тези дни получих няколко питания, как точно се реализира мултиезичност в Yii Framework. Ще ви опиша в лесни стъпки, как да настройте рамката и след това как да използвате нейните функции.
В тази статия се взима базовата подредба на директориите в Yii, както е описана в документацията.
Да започнем с конфигурацията.
1) В директорията protected създаваме папка messages, в която ще се съдържат нашите езикови файлове. Езиковите файлове представляват прости php файлове, които съдържат един масив от низове. Например:
return array(
‘String in English’=>’Низ на български’
);
2) Копираме съдържанието на framework/messages в папката protected/messages.
3) След това добавяме следното към protected/config/main.php
1 2 3 4 5 6 7 8 9 10 | return array( ...... 'language'=>'bg', 'components'=>array( 'coreMessages'=>array( 'basePath'=>'protected/messages', ), ...... ), ); |
С това се приключва конфигурирането. Използването е много лесно. Да кажем, че някъде в кода трябва да преведете ‘Some string’. Първо, на мястото, където е необходимо извиквате:
1 | Yii::t('yii','Some string'); |
След това, във файла protected/messages/bg/yii.php добавяме нашият превод:
1 | 'Some string'=>'Някакъв стринг', |
Функцията Yii::t() търси съответствие на ‘Some string’ във файла protected/messages/bg/yii.php. Щом го открие връща съответстващото му – ‘Някакъв стринг’.
С настройката ‘language’=>’bg’ казваме на Yii да зарежда файлове от protected/messages/bg. Ако е например ‘language’=>’de’, то Yii ще зарежда файлове от protected/messages/de.
Ако имате още въпроси се обърнете към мен или прочетете документацията(+линк1).
И от мен едно голямо БЛАГОДАРЯ за статията, свърши ми чудесна работа
Yii Forever
22:49
Отново мерси за подробното обяснение, задължен съм ти.