Yii DbMessageSource App *错误

时间:2016-03-16 16:09:01

标签: php yii2

我目前正在使用yii2构建第二个系统。它将使用Yii1数据库中的一些表进行翻译。 Yii1项目最初是使用文件翻译的,但现在已经移到了db。 Yii1系统的所有翻译都使用三个类别appflashemail中的一个,绝大多数使用app

在Yii2项目中,我在web.php配置文件中有以下内容。

'i18n' => [
    'translations' => [      
        '*' => [
            'class' => 'yii\i18n\DbMessageSource',
            'db' => 'cdb',
            'sourceMessageTable' => 'translation_source',

            'messageTable' => 'translation',
            'forceTranslation'=>true,
        ],
    ],
],

系统上使用app的所有翻译均未翻译,但所有其他类别均为。如果我将上面的代码更改为

'i18n' => [
    'translations' => [
        'app*' => [

然后我收到其他类别的错误,但没有appapp字符串按预期翻译。我得到的错误是

  

无法找到“flash”类别的消息来源。

但是,如果我将配置更改为以下内容,则适用于所有翻译。

'i18n' => [
    'translations' => [       
        '*' => [
            'class' => 'yii\i18n\DbMessageSource',
            'db' => 'cdb',
            'sourceMessageTable' => 'translation_source',

            'messageTable' => 'translation',
            'forceTranslation' => true,
        ],
        'app*' => [
            'class' => 'yii\i18n\DbMessageSource',
            'db' => 'cdb',
            'sourceMessageTable'=>'translation_source',

            'messageTable' => 'translation',
            'forceTranslation' => true,
        ],

    ],
],

我必须两次有效地包含相同的代码块,这似乎很奇怪。任何人都可以告诉我如何在一个数组中实现这一点,或者这是预期的行为?

**更新**

我确实在文档Docs中看到了*的一些提及。我也在Forum

中看到了这一点

0 个答案:

没有答案