我安装了Yii2高级模板并使用PhpMessageSource配置Yii :: t(),但我需要使用GettextMessageSource对其进行配置。我已将此代码添加到common / config / main-local.php:
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\GettextMessageSource',
'basePath' => '@app/messages',
'sourceLanguage' => 'en-US',
],
],
],
放入frontend / messages / ru-RU app.po文件示例文本:
msgid "TEST"
msgstr "Текст"
添加视图文件:
Yii::t('app', 'TEST');
但它不起作用,我需要存储.po文件或我做错了什么?
答案 0 :(得分:1)
'basePath' => '@app/messages',
改为
'basePath' => '@common/messages',
或'basePath' => '@root/common/messages
并将您的邮件替换为公共邮件。
答案 1 :(得分:1)
我还遇到了GettextMessageSource的问题。检查你的po文件是否有行msgctxt 它应该是这样的:
msgctxt "app"
msgid "Settings"
msgstr "Ustawienia"
答案 2 :(得分:0)
你也可以传递一个参数Yii :: t()
Yii::t("app", "some text: {someVariable}",["someVariable"=>$whatEverYouWant]))