我设置了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'),
这是电影,我的事:
解决方法:
问题出现在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');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。