我创建了一个名为GalleryManager的扩展,存储在应用程序的extensions目录中。 我有这个结构:
gallerymanager
|-- assets
|-- messages
| |-- en
| | |-- main.php
| |-- es
| | |-- main.php
| GalleryManager.php
我的GalleryManager类(在GalleryManager.php中定义)类似于:
class GalleryManager extends CApplicationComponent{...
这就是documentation关于定义翻译类别的说法:
扩展类(例如小部件,模块)的消息可以是 特别管理和使用。特别是,如果消息属于 类名为Xyz的扩展名,则可以是消息类别 以'Xyz.categoryName'格式指定。和相应的 消息文件被假定为 'BasePath / messages / LanguageID / categoryName.php',其中'BasePath' 指的是包含扩展类文件的目录。什么时候 使用Yii :: t()翻译扩展消息,类别名称 应设置为'Xyz.categoryName'。
所以,我在视图中尝试这样的一行:
<?php echo Yii::t('GalleryManager.main', 'Add');?>
它不起作用。 为了使翻译适用于Yii扩展,我还需要做些什么?
答案 0 :(得分:1)
您所做的一切都是正确的,并且根据文档。
您确定要在主配置中正确声明扩展名吗?你应该在那里:
'components' => array(
/* load extension */
'GalleryManager' => array(
'class' => 'app.extensions.GalleryManager',
),
我有时候不会自己加载这样的扩展(因为这仍然有效),但是对于要工作的消息,我相信你也必须在配置中声明它。