Yii2 - 多语言
Yii2 - Multi language
我正在尝试使用 i18l 设置网站的前端翻译。这是我的 i18l.php 文件放在 frontend/config
<?php
return [
'sourcePath' => 'frontend',
'languages' => ['en-US', 'pt-BR'] , //Add languages to the array for the language files to be generated.
'translator' => 'Yii::t',
'sort' => false,
'removeUnused' => false,
'only' => ['*.php'],
'except' => [
'.svn',
'.git',
'.gitignore',
'.gitkeep',
'.hgignore',
'.hgkeep',
'/messages',
'/vendor',
],
'format' => 'php',
'messagePath' => 'frontend' . DIRECTORY_SEPARATOR . 'translations',
'overwrite' => true,
];
我的 main.php 也在前端
(...)
'language' => 'en-US',
'components' => [
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => 'frontend/translations',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
]
我在站点和布局上使用 <?= Yii::t('app', 'some string') ?>
,当我 运行 命令 ./yii message/extract @frontend/config/i18n.php它为我创建了一个名为 'translations' 的文件夹,其中包含其他两个文件夹 'en-US' 和 'pt-BR',它们都带有 app.php,我已经填充了一些翻译。但是,当我按应有的方式更改 main.php 上的语言时,仍然没有翻译发生(我认为)。
如果有人能帮助我,我将不胜感激。
谢谢。
很棒 post,包含所有需要的细节。
我也在为同样的事情苦苦挣扎,但你做得很好。
因此,如果您可以 运行 命令并生成文件,那么 sourcePath
就是 正确的 。
如果它在 运行 时不显示翻译消息,尽管您的设置已更改,那么,我认为 问题 可能在您的 basePath
上:
尝试在您的 basePath 配置中使用以下内容:
'basePath' => '@frontend/translations',
我正在尝试使用 i18l 设置网站的前端翻译。这是我的 i18l.php 文件放在 frontend/config
<?php
return [
'sourcePath' => 'frontend',
'languages' => ['en-US', 'pt-BR'] , //Add languages to the array for the language files to be generated.
'translator' => 'Yii::t',
'sort' => false,
'removeUnused' => false,
'only' => ['*.php'],
'except' => [
'.svn',
'.git',
'.gitignore',
'.gitkeep',
'.hgignore',
'.hgkeep',
'/messages',
'/vendor',
],
'format' => 'php',
'messagePath' => 'frontend' . DIRECTORY_SEPARATOR . 'translations',
'overwrite' => true,
];
我的 main.php 也在前端
(...)
'language' => 'en-US',
'components' => [
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => 'frontend/translations',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
]
我在站点和布局上使用 <?= Yii::t('app', 'some string') ?>
,当我 运行 命令 ./yii message/extract @frontend/config/i18n.php它为我创建了一个名为 'translations' 的文件夹,其中包含其他两个文件夹 'en-US' 和 'pt-BR',它们都带有 app.php,我已经填充了一些翻译。但是,当我按应有的方式更改 main.php 上的语言时,仍然没有翻译发生(我认为)。
如果有人能帮助我,我将不胜感激。
谢谢。
很棒 post,包含所有需要的细节。
我也在为同样的事情苦苦挣扎,但你做得很好。
因此,如果您可以 运行 命令并生成文件,那么 sourcePath
就是 正确的 。
如果它在 运行 时不显示翻译消息,尽管您的设置已更改,那么,我认为 问题 可能在您的 basePath
上:
尝试在您的 basePath 配置中使用以下内容:
'basePath' => '@frontend/translations',