【问题标题】:Access a module's translation from differernt modules in Yii从 Yii 中的不同模块访问模块的翻译
【发布时间】:2014-07-24 02:53:31
【问题描述】:

我真的需要一些帮助。

我在我的项目中创建了两个模块:adminaccount。 在我的 admin 模块中,我有 User model

我已经设法使用以下结构翻译了我的管理模块

modules
   -admin
       -models
       -controllers
       -views
       -messages
         - en
           user.php  
         - ru
           user.php
       -AdminModule.php

并使用以下表达式Yii::t("adminModule.user","Username") 输出我翻译的消息。

但是,如果我尝试从 帐户模块 访问 用户模型,这将不起作用。字段未翻译,应用程序甚至出现异常: include(adminModule.php): failed to open stream: No such file or directory

好像我无法包含我的 admin 模块。所以我尝试在我的 account/AccountModule.php 中按如下方式导入它

 public function init() {

    $this->setImport(array(
        'account.models.*',
        'account.components.*',            
        'application.modules.admin.models.*',
        'application.modules.admin.messages.*',
    ));
}

在我的主 config 文件中,我按照建议添加了以下代码行。 但没有帮助,我仍然有同样的异常。

'sourceLanguage' => 'en',
'language' => 'ru',

我已经尝试了以下资源中建议的很多东西

  1. Yii modules internationalization
  2. http://www.rymland.org/post/27?title=Enforcing+translation+of+message+in+Yii
  3. yii use message in module

另请阅读 Yii 文档

  1. http://yiiframework.ru/doc/guide/ru/topics.i18n

但没有任何帮助。

如果有人有一些想法,请向您寻求帮助, 提前致谢

【问题讨论】:

  • 你试过Yii::t("admin.user","Username")吗?据我所知,这应该完全以模块名称定义命名,在这种情况下是“admin”而不是“adminModule”。
  • 是的,我试过了,没用

标签: yii module internationalization translation


【解决方案1】:

解决方案非常简单。 我试图以错误的方式导入我的 管理模块

public function init() {

    $this->setImport(array(
        'account.models.*',
        'account.components.*',
        'application.modules.admin.models.*',
        'application.modules.*'
    ));
}

通过这样做,我假设导入了我的所有模块,包括 管理模块。但我错了。

正确的方法是使用下面的语句!

public function init() {
        ...
        'application.modules.admin.AdminModule'            
    ));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多