Я пытаюсь настроить внешний перевод веб-сайта с помощью i18l. Вот мой файл i18l.php, размещенный в интерфейсе/конфигурации
<?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, перевода не происходит (я так думаю). Я был бы признателен, если бы кто-нибудь мог помочь мне в этом.
Спасибо.
<?=
может быть рискованно. Не во всех настройках включены короткие теги. может показаться глупым, но это может вывести из строя всю вашу систему при переходе на новый сервер. Почему бы не использовать<?php echo
вместо этого? :) - person Gogol   schedule 18.05.2015Yii::t
. yiiframework.com/doc-2.0/ - person M Sost   schedule 18.05.2015