php – 在Yii2中不使用环境翻译

我设置了3个环境.

我的应用程序需要加载不同的翻译集,因为每个env都不同.

我有RO,HU,DE语言.

我正在尝试设置翻译,但它不起作用.

在frontend / config main.PHP我有

‘sourceLanguage’=> “恩”,
    ‘language’=> “恩”,

在frontend / web / index.PHP我有

定义(‘YII_ENV’)或定义(‘YII_ENV’,’dev_ro’);

另外,我正在合并配置数组:

(file_exists(__ DIR__.’/../../environments /’.YII_ENV.’/ common / config / main-local.PHP’)?require(__ DIR__.’/ /././ environment /’.YII_ENV .’/common/config/main-local.PHP’):[])

现在,在环境/ dev_ro / common / config /中,我有以下组件:

'i18n' => [
            'translations' => [
                'companie' => [
                    'class' => 'yii\i18n\PHPMessageSource',
                    'basePath' => '@app/messages',
                    'sourceLanguage' => 'en',
                    'fileMap' => [
                        'companie' => 'companie.PHP',
                    ],
                ],
            ],
        ],

在Companie模型中,我有

'nume' => Yii::t('companie', 'Name'),

这是电影,我的事:

movie

解决方法:

问题出现在app *中,因为它不是app *类,这有效:

    'i18n' => [
        'translations' => [
            '*' => [
                'class' => 'yii\i18n\PHPMessageSource',
                'fileMap' => [
                    'companie' => 'companie.PHP',
                ],
            ],
        ],
    ],

或者如果你想写’companie *’=>

如果它仍然无法正常工作,则确实设置了错误的翻译文件路径.认情况下,它必须是BasePath / messages / LanguageID / CategoryName.PHP.

如果你想在后端和前端使用一个文件,你应该在common config(高级yii应用程序)中创建例如公共别名,并在i18n config中设置这个别名.这是完整的例子:

常见配置:

Yii::setAlias('@common', dirname(__DIR__));
return [
    'language' => 'ru',
    'sourceLanguage' => 'ru',
    'components' => [
    'i18n' => [
        'translations' => [
            '*' => [
                'class' => 'yii\i18n\PHPMessageSource',
                'basePath' => '@common/messages',
                'fileMap' => [
                    'companie' => 'companie.PHP',
                ],
  ....

在traslate文件/common/messages/en-US/companie.PHP

<?PHP
return [
    'string in russian' => 'string in english'
];

使用以下代码检查翻译:

\Yii::$app->language = 'en-US';
echo \Yii::t('companie', 'string in russian');

相关文章

1、将Yii2.0advanced版中应用主体frontend或backend应用复制...
Yii2restfulAPI文档一、配置模块:1.Config/main.php:  2...
Yii在framework/i18n/data/%lang%.php文件中有很多翻译.这...
在Yii2中,官方的页面多语言解决方案有两个:方案1,使用Yii...
Yii2.0对数据库查询的一些简单的操作1234567891011121314151...
数据查询User::find()->all();此方法返回所有数据;User:...