gpt4 book ai didi

php - 不适用于 Yii2 中的环境翻译

转载 作者:可可西里 更新时间:2023-10-31 23:31:03 25 4
gpt4 key购买 nike

我已经设置了 3 个环境

我的应用需要加载不同的翻译集,因为每个环境都不同。

我有 ROHUDE 语言。

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

在 frontend/config main.php 我有:

'sourceLanguage' => 'en',
'语言' => 'en',

frontend/web/index.php 我有:

defined('YII_ENV') 或 define('YII_ENV', 'dev_ro');

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

(file_exists(__DIR__ . '/../../environments/' . YII_ENV . '/common/config/main-local.php') ? require(__DIR__ . '/../../environments/' . YII_ENV . '/common/config/main-local.php') : [])

现在,在 environments/dev_ro/common/config/ 中,在 components 中,我有:

'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

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

常用配置:

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

在翻译文件/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');

关于php - 不适用于 Yii2 中的环境翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com