如何在Yii2高级版中使用Yii::t()配置gettext


How to configure gettext with Yii::t() in Yii2 advanced?

我安装了Yii2高级模板,并用PhpMessageSource配置Yii::t(),但我需要用GettextMessageSource配置它。我被添加到common/config/main-local.php这个代码:

'i18n' => [
            'translations' => [
                'app*' => [
                    'class' => 'yii'i18n'GettextMessageSource',
                    'basePath' => '@app/messages',
                    'sourceLanguage' => 'en-US',
                ],
            ],
        ],

放在前端/messages/ru ru app.po文件示例文本:

msgid "TEST"
msgstr "Текст"

附加视图文件:

Yii::t('app', 'TEST');

但它不起作用,我需要在哪里存储.po文件,或者我做错了什么?

'basePath' => '@app/messages',

更改为'basePath' => '@common/messages','basePath' => '@root/common/messages

并将您的消息替换为常用消息。

我也遇到了GettextMessageSource的问题。检查你的po文件是否有行msgctxt它应该是这样的:

msgctxt "app"
msgid "Settings"
msgstr "Ustawienia"

您还可以传递一个参数it Yii::t()

Yii::t("app", "some text: {someVariable}",["someVariable"=>$whatEverYouWant]))