首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使Yii::t()在Yii中使用扩展的步骤

问使Yii::t()在Yii中使用扩展的步骤
EN

Stack Overflow用户
提问于 2014-02-26 20:54:17
回答 1查看 342关注 0票数 0

我已经创建了一个名为GalleryManager的扩展,它存储在应用程序的扩展目录中。我有这样的结构:

代码语言:javascript
复制
gallerymanager
|--  assets
|--  messages
|    |-- en
|    |    |-- main.php
|    |-- es
|    |    |-- main.php
|    GalleryManager.php

我的GalleryManager类(在GalleryManager.php中定义)类似于:

代码语言:javascript
复制
class GalleryManager extends CApplicationComponent{...

关于定义翻译类别,文档就是这样说的:

扩展类(例如,小部件、模块)的消息可以进行特殊管理和使用。特别是,如果消息属于类名为Xyz的扩展名,那么消息类别可以指定为‘Xyz.classyName’格式。相应的消息文件被假定为'BasePath/messages/LanguageID/categoryName.php',,其中'BasePath‘指包含扩展名类文件的目录。当使用Yii::t()翻译扩展消息时,类别名称应该设置为‘Xyz.classyName’。

所以,我正在尝试这样一种观点:

代码语言:javascript
复制
<?php echo Yii::t('GalleryManager.main', 'Add');?>

但不起作用。我还需要做些什么才能使翻译为Yii扩展工作呢?

EN

回答 1

Stack Overflow用户

发布于 2014-02-27 01:43:59

你所做的一切都是正确的,并根据文件。

您确定在主配置中正确声明了扩展吗?你应该在里面:

代码语言:javascript
复制
'components' => array(
            /* load extension */
            'GalleryManager' => array(
                'class' => 'app.extensions.GalleryManager',
            ),

有时,我自己不会加载这样的扩展(因为这仍然有效),但是要使消息正常工作,我相信您也必须在配置中声明它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22053021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档