Internationalization 如何从yii2中的核心消息覆盖所需消息
在yii2中,我想覆盖一些核心消息转换,例如: 在@yii/messages/vi/yii.php中,has key=>翻译的消息:Internationalization 如何从yii2中的核心消息覆盖所需消息,internationalization,yii2,translation,Internationalization,Yii2,Translation,在yii2中,我想覆盖一些核心消息转换,例如: 在@yii/messages/vi/yii.php中,has key=>翻译的消息: 'Update' => 'Sửa' 但在我的应用程序中,我想将其更改为: 'Update' => 'Cập nhật' 我已经创建了文件:@app/messages/vi/yii.php,其中只有一个需要覆盖的消息: return [ 'Update' => 'Cập nhật' ]; 在main.php配置中,我向组件添加了以下内
'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'
],
],
],
它可以工作,但仅适用于覆盖消息,核心的其他消息不起作用。尝试类似的操作
'i18n'=>[
'yii'=>[
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => "@vendor/yiisoft/yii2/messages",
'sourceLanguage' => 'en_US', // put your language here
'fileMap' => [
'yii'=>'yii.php',
]
]
]
],
我认为您应该将yii.php从core复制到
@common/messages//yii.php
并对其进行编辑。它应该工作稳定。感谢您的快速解决方案,但是如果核心消息将被更新,那么我们将丢失它们。我认为我们应该只覆盖所需的消息,而不是从core.core更新复制所有消息,然后是当前消息不更新。这不会影响您当前的项目。所以它工作稳定。您的解决方案对我没有帮助,文件映射只是用于将类别映射到物理文件。