/ / Стъпки за превръщането на Yii :: t () в работа с разширения в Yii - php, yii

Стъпки за превръщането на Yii :: t () в работа с разширения в Yii - php, yii

Създадох разширение, наречено GalleryManager, съхранено в директорията с разширения на приложението. Имам тази структура:

gallerymanager
|--  assets
|--  messages
|    |-- en
|    |    |-- main.php
|    |-- es
|    |    |-- main.php
|    GalleryManager.php

Моят клас на GalleryManager (дефиниран в GalleryManager.php) е като:

class GalleryManager extends CApplicationComponent{...

Това е, което документация казва за определяне на категории за превод:

Съобщения за клас на разширение (напр. джаджа, модул) специално управлявани и използвани. По-специално, ако дадено съобщение принадлежи на разширение, чието име е Xyz, тогава категорията на съобщението може да бъде зададен във формат "Xyz.categoryName". И съответното Предполага се, че файлът с съобщение е "BasePath / messages / LanguageID / categoryName.php", където "BasePath" се отнася за директорията, която съдържа файла с разширения клас. Кога използвайки Yii :: t (), за да преведе съобщението за разширение, името на категорията трябва да бъде зададено като "Xyz.categoryName".

Така че аз изпробвам ред като този в изглед:

<?php echo Yii::t("GalleryManager.main", "Add");?>

И не работи. Какво друго трябва да направя, за да направя преводите за разширение Yii?

Отговори:

1 за отговор № 1

Всичко, което сте направили, е правилно и според документацията.

Сигурни ли сте, че декларирате правилно разширението в главния конфиг? трябва да имате там:

"components" => array(
/* load extension */
"GalleryManager" => array(
"class" => "app.extensions.GalleryManager",
),

Понякога не зареждам такива разширения като себе си (защото това все още работи по друг начин), но за да работя с съобщения, вярвам, че трябва да го декларирате и в конфиг.