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');

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...