0

I'm installed Yii2 advanced template and configure Yii::t() with PhpMessageSource, but i need configure it with GettextMessageSource. I'm added to common/config/main-local.php this code:

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

Put at frontend/messages/ru-RU app.po file sample text:

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

Add in view file:

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

But it doesn't work, where i need to store .po files or what i'm doing wrong?

Demir Volkov
  • 3
  • 1
  • 2

3 Answers3

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

change to 'basePath' => '@common/messages', or 'basePath' => '@root/common/messages

and replace your messages to common/messages.

Skatox
  • 4,237
  • 12
  • 42
  • 47
zelenin
  • 804
  • 7
  • 10
1

I had also problem with GettextMessageSource. Check your po file if it has line msgctxt It should look like this:

msgctxt "app"
msgid "Settings"
msgstr "Ustawienia"
Marcin
  • 21
  • 2
0

you can also pass a parameter it Yii::t()

Yii::t("app", "some text: {someVariable}",["someVariable"=>$whatEverYouWant]))
yousef
  • 1,240
  • 12
  • 13