如何在yii2中覆盖核心消息中所需的消息

时间:2016-08-23 08:19:39

标签: internationalization yii2 translation

在yii2中,我想覆盖一些核心消息翻译,例如: 在@ yii / messages / vi / yii.php中,有key =>已翻译的消息:

'Update' => 'Sửa'

但在我的应用程序中,我想将其更改为:

'Update' => 'Cập nhật'

我创建了文件:@ app / messages / vi / yii.php,只有一条需要覆盖的消息:

return [
    'Update' => 'Cập nhật'
];

在我的main.php配置中,我将其添加到组件:

'i18n' => [
      'translations' => [
            'yii' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'basePath' => '@app/messages'
           ],
      ],
],

它可以工作,但仅适用于覆盖消息,其他核心消息不起作用。

2 个答案:

答案 0 :(得分:1)

我认为您应该将yii.php从核心复制到@common/messages/<your language>/yii.php并进行编辑。它应该是稳定的。

答案 1 :(得分:0)

尝试像这样的事情

'i18n'=>[

                    'yii'=>[
                        'class' => 'yii\i18n\PhpMessageSource',
                        'basePath' => "@vendor/yiisoft/yii2/messages",
                        'sourceLanguage' => 'en_US', // put your language here
                        'fileMap' => [
                            'yii'=>'yii.php',
                        ]
                    ]
                ]
            ],