我安装了Yii2高级模板,并用PhpMessageSource配置Yii::t(),但我需要用GettextMessageSource配置它。我被添加到common/config/main-local.php这个代码:
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yiii18nGettextMessageSource',
'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]))